Top secrets sources NedoPC pentevo

Rev

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

        cpu     mn1613alt
        page    0

        irp     instr,ld,std

        ; X'00000'...X'0ffff' addressable
        assume  csbr:0,ssbr:0,tsr0:0,tsr1:0

        instr   r1,X'1000'
        instr   r1,X'ffff'
        expect  110
        instr   r1,X'10000'
        endexpect
        instr   r1,csbr,X'1000'
        instr   r1,csbr,X'ffff'
        expect  110
        instr   r1,csbr,X'10000'
        endexpect
        instr   r1,ssbr,X'1000'
        instr   r1,ssbr,X'ffff'
        expect  110
        instr   r1,ssbr,X'10000'
        endexpect
        instr   r1,tsr0,X'1000'
        instr   r1,tsr0,X'ffff'
        expect  110
        instr   r1,tsr0,X'10000'
        endexpect
        instr   r1,tsr1,X'1000'
        instr   r1,tsr1,X'ffff'
        expect  110
        instr   r1,tsr1,X'10000'
        endexpect

        ; X'04000...X'13fff addressable
        assume  csbr:1
        expect  110
        instr   r1,X'1000'
        endexpect
        instr   r1,X'4000'
        instr   r1,X'ffff'
        instr   r1,X'10000'
        instr   r1,X'13fff'
        expect  110
        instr   r1,X'14000'
        endexpect

        ; X'3c000...X'3ffff and X'00000...X'0bfff addressable
        assume  csbr:15
        instr   r1,X'0000'
        instr   r1,X'1000'
        instr   r1,X'bfff'
        expect  110
        instr   r1,X'c000'
        endexpect
        expect  110
        instr   r1,X'3bfff'
        endexpect
        instr   r1,X'3c000'
        endm

        irp     instr,lr,str
        instr   r2, ( r3 )
        instr   r2,ssbr,-(r4)
        instr   r2,tsr0,(r1)+
        endm

        irp     instr,mvwr,mvbr,bswr,dswr,awr,swr,cwr,cbr,ladr,andr,orr,eorr
        instr   r0,(r2)
        instr   r0,(r3),lm
        expect  1445
        instr   r1,(r2)
        endexpect
        expect  1350
        instr   r0,(r3)+
        endexpect
        endm

        irp     instr,mvwi,awi,swi,cwi,cbi,ladi,andi,ori,eori,ladi
        instr   r3,X'5678'
        instr   x1,X'8765',pz
        endm

        irp     instr,ad,sd
        instr   dr0,(r2)
        expect  1445
        instr   dr1,(r2)
        endexpect
        instr   dr0,(r2),c
        expect  1360
        instr   dr0,(r2),xyz
        endexpect
        instr   dr0,(r2),pz
        expect  1360
        instr   dr0,(r2),c,xyz
        endexpect
        instr   dr0,(r2),c,pz
        expect  1445
        instr   dr0,(r2),cc,pz
        endexpect
        endm

        irp     instr,m,d,fa,fs,fm,fd
        instr   dr0,(r2)
        expect  1445
        instr   dr1,(r2)
        endexpect
        expect  1360
        instr   dr0,(r2),xyz
        endexpect
        instr   dr0,(r2),pz
        endm

        irp     instr,daa,das
        instr   r0,(r2)
        expect  1445
        instr   r1,(r2)
        endexpect
        instr   r0,(r2),c
        expect  1360
        instr   r0,(r2),xyz
        endexpect
        instr   r0,(r2),pz
        expect  1360
        instr   r0,(r2),c,xyz
        endexpect
        instr   r0,(r2),c,pz
        expect  1445
        instr   r0,(r2),cc,pz
        endexpect
        endm

        irp     instr,rdr,wtr
        instr   r4,(r3)
        instr   x1,(x0)
        endm

        assume  csbr:0

        irp     instr,bd,bald
        instr   X'3456'
        expect  110
        instr   X'12345'
        endexpect
        endm

        irp     instr,bl,ball
        instr   (X'3456')
        expect  1350
        instr   X'3456'
        endexpect
        expect  110
        instr   (X'12345')
        endexpect
        endm

        irp     instr,br,balr
        instr   (r2)
        expect  1350
        instr   (r0)
        endexpect
        endm

        irp     instr,tset,trst
        instr   r4,X'2345'
        instr   r4,X'2345',nz
        expect  110
        instr   r4,X'12345',nz
        endexpect
        endm

        neg     r1
        neg     r1,c
        expect  1360
        neg     r1,xyz
        endexpect
        neg     r1,c,pz
        expect  1445
        neg     r1,x,pz
        endexpect
        expect  1360
        neg     r1,c,xyz
        endexpect

        fix     r0,dr0
        fix     r0,dr0,z
        flt     dr0,r0
        flt     dr0,r0,z

        srbt    r0,r2
        debp    r2,r0
        blk     (r2),(r1),r0
        expect  1350
        blk     (r3),(r1),r0
        endexpect
        expect  1350
        blk     (r2),(r3),r0
        endexpect
        expect  1445
        blk     (r2),(r1),r4
        endexpect

        irp     reg,ssbr,tsr0,tsr1,osr0,osr1,osr2,osr3
        lb      reg,X'2345'
        expect  110
        lb      reg,X'12345'
        endexpect
        endm

        irp     reg,csbr,ssbr,tsr0,tsr1,osr0,osr1,osr2,osr3
        stb     reg,X'2345'
        expect  110
        stb     reg,X'12345'
        endexpect
        endm

        irp     reg,sbrb,icb,npp
        irp     instr,ls,sts
        instr   reg,X'2345'
        expect  110
        instr   reg,X'12345'
        endexpect
        endm
        endm

        irp     reg,csbr,ssbr,tsr0,tsr1,osr0,osr1,osr2,osr3
        cpyb    r4,reg
        endm

        irp     reg,ssbr,tsr0,tsr1,osr0,osr1,osr2,osr3
        setb    r4,reg
        endm

        irp     reg,sbrb,icb,npp
        irp     instr,cpys,sets
        instr   r4,reg
        endm
        endm

        irp     reg,tcr,tir,tsr,scr,ssr,sir,iisr
        cpyh    r4,reg
        endm

        irp     reg,tcr,tir,tsr,scr,ssr,sor,iisr
        seth    r4,reg
        endm

        pshm
        popm

        retl

        ; floating point support is experimental:

        dc      0.0             ; 0000 0000 = 0.0000 * 16^(-64)
        dc      1.0             ; 4110 0000 = 1/16 * 16^1
        dc      2.0             ; 4120 0000 = 1/8 * 16^1
        dc      4.0             ; 4140 0000 = 1/4 * 16^1
        dc      8.0             ; 4180 0000 = 1/2 * 16^1
        dc      16.0            ; 4210 0000 = 1/16 * 16^2
        dc      24.0            ; 4218 0000 = 3/16 * 16^2
        dc      42.0            ; 422A 0000 = 21/8 * 16^2
        dc      0.125           ; 4020 0000 = 1/8 * 16^0
        dc      0.0078125       ; 3F20 0000 = 1/8 * 16^-1
        dc      1000.0          ; 433E 8000 = 0.24414062 * 16^3
        dc      -1000.0         ; C33E 8000 = -0.24414062 * 16^3
;       dc      0.1             ; 4019 999A = 0.1 * 16^0
;       dc      7.237005E75     ; 7FFF FFFf (almost maximum)
;       dc      5.39761E-79     ; 0010 0000 or 000F FFFF (smallest non-denormal number)