Top secrets sources NedoPC pentevo

Rev

Blame | Last modification | View Log | Download | RSS feed | ?url?

        cpu     mb90500
        page    0

;----------------------------------------------------------------
; some preliminaries to keep the source code in acceptable size
; you didn't see this - you didn't see this - ignore it

#define R8MODES r0,r1,r2,r3,r4,r5,r6,r7
#define R16MODES rw0,rw1,rw2,rw3,rw4,rw5,rw6,rw7
#define R32MODES rl0,(rl0),rl1,(rl1),rl2,(rl2),rl3,(rl3)
#define MEM1MODES @rw0,@rw1,@rw2,@rw3
#define MEM1AMODES @rw0+,@rw1+,@rw2+,@rw3+
#define MEM2MODES @rw0+10,@rw1-10,@rw2+20,@rw3-30,@rw4+40,@rw5-50,@rw6+60,@rw7-70,@rw0+1000,@rw1-1000,@rw2+2000,@rw3-3000,@rw0+rw7,@rw1+rw7,@pc+5,1234h

enum8_x macro memo
        irp     var,R8MODES
        memo    var
        endm
        irp     var,MEM1MODES,MEM1AMODES
        memo    var
        endm
        irp     var,MEM2MODES
        memo    var
        endm
        endm

enum16_x macro memo
        irp     var,R16MODES
        memo    var
        endm
        irp     var,MEM1MODES,MEM1AMODES
        memo    var
        endm
        irp     var,MEM2MODES
        memo    var
        endm
        endm

enum32_x macro memo
        irp     var,R32MODES
        memo    var
        endm
        irp     var,MEM1MODES,MEM1AMODES
        memo    var
        endm
        irp     var,MEM2MODES
        memo    var
        endm
        endm

enum8_px macro memo,par
        irp     var,R8MODES
        memo    par,var
        endm
        irp     var,MEM1MODES,MEM1AMODES
        memo    par,var
        endm
        irp     var,MEM2MODES
        memo    par,var
        endm
        endm

enum16_px macro memo,par
        irp     var,R16MODES
        memo    par,var
        endm
        irp     var,MEM1MODES,MEM1AMODES
        memo    par,var
        endm
        irp     var,MEM2MODES
        memo    par,var
        endm
        endm

enum32_px macro memo,par
        irp     var,R32MODES
        memo    par,var
        endm
        irp     var,MEM1MODES,MEM1AMODES
        memo    par,var
        endm
        irp     var,MEM2MODES
        memo    par,var
        endm
        endm

enum8_xp macro memo,par
        irp     var,R8MODES
        memo    var,par
        endm
        irp     var,MEM1MODES,MEM1AMODES
        memo    var,par
        endm
        irp     var,MEM2MODES
        memo    var,par
        endm
        endm

enum16_xp macro memo,par
        irp     var,R16MODES
        memo    var,par
        endm
        irp     var,MEM1MODES,MEM1AMODES
        memo    var,par
        endm
        irp     var,MEM2MODES
        memo    var,par
        endm
        endm

enum32_xp macro memo,par
        irp     var,R32MODES
        memo    var,par
        endm
        irp     var,MEM1MODES,MEM1AMODES
        memo    var,par
        endm
        irp     var,MEM2MODES
        memo    var,par
        endm
        endm

enum8_xpp macro memo,par1,par2
        irp     var,R8MODES
        memo    var,par1,par2
        endm
        irp     var,MEM1MODES
        memo    var,par1,par2
        endm
        irp     var,MEM2MODES
        memo    var,par1,par2
        endm
        endm

enum16_xpp macro memo,par1,par2
        irp     var,R16MODES
        memo    var,par1,par2
        endm
        irp     var,MEM1MODES
        memo    var,par1,par2
        endm
        irp     var,MEM2MODES
        memo    var,par1,par2
        endm
        endm

enumseg macro   memo
        irp     var,pcb,dtb,adb,spb
        memo    var
        endm
        endm

;----------------------------------------------------------------
; let's go...

        add     a,#12h
        add     a,123h
        enum8_px add,a
        enum8_xp add,a

        addc    a
        enum8_px addc,a

        enum16_px addcw,a

        adddc   a

        addl    a,#12345678h
        enum32_px addl,a

        addsp   #20
        addsp   #-20
        addsp   #200
        addsp   #-200

        addw    a
        addw    a,#1234h
        enum16_px addw,a
        enum16_xp addw,a

        and     a,#12h
        and     a,123h          ; translates to 16 bit!
        enum8_px and,a
        enum8_px and,a
        and     ccr,#12h

        enum32_px andl,a

        andw    a
        andw    a,#1234h
        enum16_px andw,a
        enum16_xp andw,a

        asr     a,r0
        asrl    a,r0
        asrw    a
        asrw    a,r0

        bbc     80h:4,$+2
        bbc     180h:4,$+2
        bbc     280h:4,$+2

        bbs     80h:4,$+2
        bbs     180h:4,$+2
        bbs     280h:4,$+2

        bz      $+2
        beq     $+2
        bnz     $+2
        bne     $+2
        bc      $+2
        blo     $+2
        bnc     $+2
        bhs     $+2
        bn      $+2
        bp      $+2
        bv      $+2
        bnv     $+2
        bt      $+2
        bnt     $+2
        blt     $+2
        bge     $+2
        ble     $+2
        bgt     $+2
        bls     $+2
        bhi     $+2
        bra     $+2

        call    0ff1234h
        call    @rw0
        call    @rw1
        call    @rw2
        call    @rw3
        call    @rw4
        call    @rw5
        call    @rw6
        call    @rw7
        call    @@rw0
        call    @@rw1
        call    @@rw2
        call    @@rw3
        call    @@rw0+
        call    @@rw1+
        call    @@rw2+
        call    @@rw3+
        call    @@rw0+10
        call    @@rw1-10
        call    @@rw2+20
        call    @@rw3-30
        call    @@rw4+40
        call    @@rw5-50
        call    @@rw6+60
        call    @@rw7-70
        call    @@rw0+1000
        call    @@rw1-1000
        call    @@rw2+2000
        call    @@rw3-3000
        call    @@rw0+rw7
        call    @@rw1+rw7
        call    @@pc+5
        call    @1234h

        callp   0123456h
        callp   @rl0
        callp   @(rl0)
        callp   @rl1
        callp   @(rl1)
        callp   @rl2
        callp   @(rl2)
        callp   @rl3
        callp   @(rl3)
        callp   @@rw0
        callp   @@rw1
        callp   @@rw2
        callp   @@rw3
        callp   @@rw0+
        callp   @@rw1+
        callp   @@rw2+
        callp   @@rw3+
        callp   @@rw0+10
        callp   @@rw1-10
        callp   @@rw2+20
        callp   @@rw3-30
        callp   @@rw4+40
        callp   @@rw5-50
        callp   @@rw6+60
        callp   @@rw7-70
        callp   @@rw0+1000
        callp   @@rw1-1000
        callp   @@rw2+2000
        callp   @@rw3-3000
        callp   @@rw0+rw7
        callp   @@rw1+rw7
        callp   @@pc+5
        callp   @1234h

        callv   #10

        cbne    a,#12,$
        enum8_xpp cbne,#12,$

        clrb    80h:4
        clrb    180h:4
        clrb    280h:4

        cmp     a
        cmp     a,#12h
        enum8_px cmp,a

        cmpl    a,#12345678h
        enum32_px cmpl,a

        cmpw    a
        cmpw    a,#1234h
        enum16_px cmpw,a

        cmr

        cwbne   a,#1234,$
        enum16_xpp cwbne,#1234,$

        enum8_xp dbnz,$

        enum8_x dec

        enum32_x decl

        enum16_x decw

        div     a
        enum8_px div,a

        enum16_px divw,a

        divu    a
        enum8_px divu,a

        enum16_px divuw,a

        enum16_xp dwbnz,$

        ext
        extw

        enum8_x inc

        enum32_x incl

        enum16_x incw

        enumseg fils
        enumseg filsi
        enumseg filsw
        enumseg filswi

        int     0ff1234h
        int     #11

        int9

        intp    123456h

        jctx    @a

        jmp     @a
        jmp     0ff1234h
        jmp     @rw0
        jmp     @rw1
        jmp     @rw2
        jmp     @rw3
        jmp     @rw4
        jmp     @rw5
        jmp     @rw6
        jmp     @rw7
        jmp     @@rw0
        jmp     @@rw1
        jmp     @@rw2
        jmp     @@rw3
        jmp     @@rw0+
        jmp     @@rw1+
        jmp     @@rw2+
        jmp     @@rw3+
        jmp     @@rw0+10
        jmp     @@rw1-10
        jmp     @@rw2+20
        jmp     @@rw3-30
        jmp     @@rw4+40
        jmp     @@rw5-50
        jmp     @@rw6+60
        jmp     @@rw7-70
        jmp     @@rw0+1000
        jmp     @@rw1-1000
        jmp     @@rw2+2000
        jmp     @@rw3-3000
        jmp     @@rw0+rw7
        jmp     @@rw1+rw7
        jmp     @@pc+5
        jmp     @1234h

        jmpp    0123456h
        jmpp    @rl0
        jmpp    @(rl0)
        jmpp    @rl1
        jmpp    @(rl1)
        jmpp    @rl2
        jmpp    @(rl2)
        jmpp    @rl3
        jmpp    @(rl3)
        jmpp    @@rw0
        jmpp    @@rw1
        jmpp    @@rw2
        jmpp    @@rw3
        jmpp    @@rw0+
        jmpp    @@rw1+
        jmpp    @@rw2+
        jmpp    @@rw3+
        jmpp    @@rw0+10
        jmpp    @@rw1-10
        jmpp    @@rw2+20
        jmpp    @@rw3-30
        jmpp    @@rw4+40
        jmpp    @@rw5-50
        jmpp    @@rw6+60
        jmpp    @@rw7-70
        jmpp    @@rw0+1000
        jmpp    @@rw1-1000
        jmpp    @@rw2+2000
        jmpp    @@rw3-3000
        jmpp    @@rw0+rw7
        jmpp    @@rw1+rw7
        jmpp    @@pc+5
        jmpp    @1234h

        link    #10

        lsl     a,r0
        lsll    a,r0
        lslw    a
        lslw    a,r0

        lsr     a,r0
        lsrl    a,r0
        lsrw    a
        lsrw    a,r0

        mov     a,#123
        mov     a,@a
        mov     a,@rl0+10
        mov     a,@rl1-20
        mov     a,@rl2+30
        mov     a,@rl3-40
        mov     a,12h
        mov     a,123h
        mov     a,dtb
        mov     a,adb
        mov     a,ssb
        mov     a,usb
        mov     a,dpr
        mov     a,pcb
        enum8_px mov,a
        mov     123h,a
        mov     @rl0+10,a
        mov     @rl1-20,a
        mov     @rl2+30,a
        mov     @rl3-40,a
        mov     12h,a
        mov     dtb,a
        mov     adb,a
        mov     ssb,a
        mov     usb,a
        mov     dpr,a
        enum8_xp mov,a
        mov     rp,#12
        mov     ilm,#12
        mov     123h,#12
        mov     23h,#12
        enum8_xp mov,#12
        enum8_px mov,r2
        enum8_xp mov,r2
        mov     @a,t
        mov     @al,ah

        movb    a,123h:4
        movb    a,23h:4
        movb    a,1234h:4
        movb    123h:4,a
        movb    23h:4,a
        movb    1234h:4,a

        enum16_px movea,a
        enum16_px movea,rw2

        movl    a,#12345678h
        enum32_px movl,a
        enum32_xp movl,a

        movn    a,#4

        irp     reg2,pcb,dtb,adb,spb
         irp     reg1,pcb,dtb,adb,spb
          movs    reg1,reg2
          movsi   reg1,reg2
          movsd   reg1,reg2
          movsw   reg1,reg2
          movswi  reg1,reg2
          movswd  reg1,reg2
         endm
        endm

        movw    a,#1234h
        movw    a,@a
        movw    a,sp
        movw    a,@rl0+10
        movw    a,@rl1-20
        movw    a,@rl2+30
        movw    a,@rl3-40
        movw    a,23h
        movw    a,123h
        enum16_px movw,a
        movw    @rl0+10,a
        movw    @rl1-20,a
        movw    @rl2+30,a
        movw    @rl3-40,a
        movw    sp,a
        movw    23h,a
        movw    123h,a
        enum16_xp movw,a
        enum16_xp movw,#1234h
        enum16_px movw,rw2
        enum16_xp movw,rw2
        movw    23h,#1234h
        movw    @a,t
        movw    @al,ah

        movx    a,#12h
        movx    a,@a
        movx    a,@rl0+10
        movx    a,@rl1-20
        movx    a,@rl2+30
        movx    a,@rl3-40
        movx    a,23h
        movx    a,123h
        enum8_px movx,a

        mul     a
        enum8_px mul,a

        mulw    a
        enum16_px mulw,a

        mulu    a
        enum8_px mulu,a

        muluw   a
        enum16_px muluw,a

        ncc

        neg     a
        enum8_x neg

        negw    a
        enum16_x negw

        nop

        not     a
        enum8_x not

        notw    a
        enum16_x notw

        nrml    a,r0

        or      a,#12h
        or      a,123h          ; translates to 16 bit!
        enum8_px or,a
        enum8_xp or,a
        or      ccr,#12h

        enum32_px orl,a

        orw     a
        orw     a,#1234h
        enum16_px orw,a
        enum16_xp orw,a

        popw    a
        popw    ah
        popw    ps
        popw    rw4
        popw    rw4,rw6
        popw    rw1,rw3-rw4
        popw    rw6-rw2,rw4

        pushw   a
        pushw   ah
        pushw   ps
        pushw   rw4
        pushw   rw4,rw6
        pushw   rw1,rw3-rw4
        pushw   rw6-rw2,rw4

        ret
        reti
        retp

        rolc    a
        enum8_x rolc

        rorc    a
        enum8_x rorc

        sbbs    1234h:4,$

        enumseg sceqd
        enumseg sceqi
        enumseg scweqd
        enumseg scweqi

        setb    80h:4
        setb    180h:4
        setb    280h:4

        sub     a,#12h
        sub     a,123h
        enum8_px sub,a
        enum8_xp sub,a

        subc    a
        enum8_px subc,a

        enum16_px subcw,a

        subdc   a

        subl    a,#12345678h
        enum32_px subl,a

        subw    a
        subw    a,#1234h
        enum16_px subw,a
        enum16_xp subw,a

        swap
        swapw

        unlink

        wbtc    34h:7

        wbts    34h:7

        enum8_px xch,a
        enum8_xp xch,a
        enum8_px xch,r2
        enum8_xp xch,r2

        enum16_px xchw,a
        enum16_xp xchw,a
        enum16_px xchw,rw2
        enum16_xp xchw,rw2

        xor     a,#12h
        xor     a,123h          ; translates to 16 bit!
        enum8_px xor,a
        enum8_xp xor,a

        enum8_px xorl,a

        xorw    a
        xorw    a,#1234h
        enum16_px xorw,a
        enum16_xp xorw,a

        zext
        zextw

;-------------------------------------------------------------------------
; automatic extension

        mov     1234h,r4        ; normal
        mov     123h,r4         ; extend dir->abs
        mov     12h,r4          ; extend io->abs

        movw    1234h,rw4       ; normal
        movw    123h,rw4        ; extend dir->abs
        movw    12h,rw4         ; extend io->abs

        movw    1234h,#5678h    ; normal
        movw    123h,#5678h     ; extend dir->abs
        movw    12h,#5678h      ; normal, exception!

;-------------------------------------------------------------------------
; check banking

        assume  pcb:0
        assume  dtb:1
        assume  adb:2
        assume  usb:3
        assume  ssb:4

        pcb
        mov     a,02000h
        mov     a,12000h
        adb
        mov     a,22000h
        spb
        mov     a,32000h
        supmode on
        spb
        mov     a,42000h