Top secrets sources NedoPC pentevo

Rev

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

        cpu     tms9900
        page    0
        supmode off                     ; TMS9900 has no privileged mode, instructions shall not generate warnings

        a       r5,r3

        a       wr5,wr3
        ab      wr6,*wr10
        c       wr7,*wr2+
        cb      wr8,@1234h
        s       wr9,@1234h(wr6)

        sb      *wr10,wr9
        soc     *wr11,*wr6
        socb    *wr12,*wr1+
        szc     *wr13,@1234h
        szcb    *wr14,@1234h(wr14)

        mov     *wr15+,wr10
        movb    *wr0+,*wr6
        a       *wr1+,*wr6+
        ab      *wr2+,@1234h
        c       *wr3+,@1234h(wr7)

        cb      *wr4+,wr5
        s       *wr5+,*wr13
        sb      *wr6+,*wr13+
        soc     *wr7+,@1234h
        socb    *wr8+,@1234h(wr12)

        szc     @1234h,wr10
        szcb    @1234h,*wr2
        mov     @1234h,*wr3+
        movb    @1234h,@2345h
        a       @1234h,@2345h(wr8)

        ab      @1234h(wr9),wr5
        c       @1234h(wr10),*wr1
        cb      @1234h(wr11),*wr14+
        s       @1234h(wr12),@2345h
        sb      @1234h(wr13),@2345h(wr5)


        coc     wr12,wr5
        czc     *wr4,wr10
        xor     *wr12+,wr7
        mpy     @1234h,wr4
        div     @200(wr4),wr6
        xop     @2345h,wr5

        b       @1234h
        bl      *wr5
        blwp    *wr7+
        clr     wr4
        seto    @1234h(wr8)
        inv     wr7
        neg     *wr15
        abs     wr3
        swpb    wr9
        inc     *wr12+
        inct    *wr12+
        dec     *wr12+
        dect    *wr12+
        x       *wr6

        ldcr    wr5,10
        stcr    wr6,16

        sbo     10
        sbz     -33
        tb      34h

        jeq     lab
        jgt     lab
        jh      lab
        jhe     lab
        jl      lab
        jle     lab
lab:    jlt     lab
        jmp     lab
        jnc     lab
        jne     lab
        jno     lab
        joc     lab
        jop     lab

        sla     wr1,1
        sra     wr5,wr0
        src     wr6,10
        srl     wr10,15

        ai      wr5,1234h
        andi    wr10,2345h
        ci      wr15,3456h
        li      wr5,4567h
        ori     wr10,5678h

        lwpi    1234h
        limi    2345h

        stst    wr2
        stwp    wr6

        rtwp
        idle
        rset
        ckof
        ckon
        lrex

        padding on

        byte    1,2,3,4,5
        word    1,2,3,4,5       ; inserts pad byte before
        byte    "Hello World"
        byte    1,2,3,4,5,6     ; no pad needed, byte-oriented insn
        word    1,2,3,4,5       ; two odd lengths add up to even length -> no padding needed
        byte    "Hello World!"
        word    1,2,3,4,5       ; even number of bytes on previous insn -> no padding needed

        padding off

        byte    1,2,3,4,5
        byte    "Hello World"
        byte    1,2,3,4,5,6
        byte    "Hello World!"
        word    1,2,3,4,5


table   equ     1234h
oldval  equ     2345h
newval  equ     3456h
new     equ     4567h
loc     equ     5678h
count   equ     6789h
list    equ     789ah
tran    equ     89abh
testbits equ    9abch
testbit equ     0abcdh
ones    equ     0bcdeh
temp    equ     0cdefh
change  equ     0def0h
bits    equ     0ef01h
testva  equ     0f012h
prt     equ     r3

        a       r5,@table
        ab      3,*2+
        ai      6,0ch
        s       @oldval,@newval
        sb      *6+,1
        mpy     @new,5
        div     @loc,2
        inc     @count
        inct    5
        dec     @count
        dect    prt
        abs     @list(7)
        neg     5
        b       *3
        bl      @tran
        blwp    @tran
        rtwp
        jmp     $
        jh      $
        jl      $
        jhe     $
        jle     $
        jgt     $
        jlt     $
        jeq     $
        jne     $
        joc     $
        jnc     $
        jno     $
        jop     $
        x       @tran
        c       r5,@table
        cb      3,*2+
        ci      9,0f330h
        coc     @testbits,8
        czc     @testbit,8
        rset
        idle
        ckof
        ckon
        lrex
        sbo     20
        sbz     30
        tb      40
        ldcr    @1234h,7
        stcr    @1234h,7
        li      7,5
        limi    3
        lwpi    12h
        mov     7,7
        mov     @ones,9
        movb    @temp,3
        swpb    *0+
        stst    7
        stwp    r5
        andi    0,6d03h
        ori     5,60d3h
        xor     @change,2
        inv     11
        clr     *0bh
        seto    3
        soc     3,@new
        socb    5,8
        szc     5,7
        SZCB    @bits,@testva
        sra     5,0
        sla     10,5
        srl     0,3
        src     2,7
        xop     *4,wr4

        cpu     tms9995

        mpys    wr5
        divs    *wr9+
        lst     wr4
        lwp     wr8

        cpu     tms9940

        irp     instr,rset,lrex,ckon,ckof       ; deleted on TMS9940
        expect  1500
        instr
        endexpect
        endm

        liim    2                       ; new on TMS9940
        dca     *wr5
        dcs     *wr7+

        cpu     tms99105

        ; these instructions are privileged on 99xxx (and TI990 computer):

        irp     instr,idle,rset,ckon,ckof,lrex
        expect  50
        instr
        endexpect
        endm
        expect  50
        limi    1234h
        endexpect

        bind    @1234h(wr9)
        evad    *wr4

        blsk    wr5,1234h

        am      @1234h(wr13),@2345h(wr5)
        sm      @1234h(wr13),@2345h(wr5)

        slam    @1234h(wr13),10
        sram    *wr13,11

        tmb     *wr2,wr0
        tcmb    @1234h(wr13),10
        tsmb    @1234h(wr13),10

        rtwp    0
        rtwp    1
        rtwp    2
        expect  1985
        rtwp    3
        endexpect
        rtwp    4
        expect  1320
        rtwp    5
        endexpect

        cpu     tms99110

        ; only on TI990 & TMS99110

        expect  50     
        lmf     r5,0
        endexpect
        expect  50
        lds     @bits
        endexpect
        expect  50
        ldd     @bits
        endexpect

        mm      @1234h(wr13),@2345h(wr5)
        cr      @1234h(wr13),@2345h(wr5)
        cer
        cre
        negr
        cri
        ar      @1234h(wr9)
        sr      *wr10
        mr      @1234h(wr9)
        dr      *wr10
        lr      @1234h(wr9)
        str     *wr10
        cir     @1234h(wr9)

        ; only on TI990/12

        cpu     ti990/12

        ; Type 11 instructions have a byte count as third argument.
        ; The TMS99xxx only implements AM and SM of those, with the
        ; additional restriction that the byte count is limited to 4,
        ; i.e. operand size is fixed to 32 bits.  This is also the
        ; default for TI990/12 if the third argument is omitted:

        am      *WR7,@1234h(wr9),4
        am      *WR7,@1234h(wr9)
        sm      *WR7,@1234h(wr9),8
        nrm     *WR8,@1234h(wr10),7
        rto     *WR9,@1234h(wr11),6
        lto     *WR10,@1234h(wr12),5
        cnto    *WR11,@1234h(wr13),4
        bdc     *WR12,@1234h(wr14),3
        dbc     *WR13,@1234h(wr15),2
        swpm    *WR14,@1234h(wr1),1
        xorm    *WR15,@1234h(wr2),wr0
        orm     *WR1,@1234h(wr3),15
        andm    *WR2,@1234h(wr4),14

        emd
        eint
        dint
        cdi
        negd
        cde
        ced
        xit

        ad      *wr9
        cid     wr5
        dd      *wr12+
        ld      @1234h
        md      @1234h(wr12)
        sd      wr12
        std     @1234h(wr12)

        expect  2170
        crc     @1234h(wr12),@5678(wr13)
        endexpect
        crc     @1234h(wr12),@5678h(wr13),,wr15
        ckpt    wr15
        crc     @1234h(wr12),@5678h(wr13),,
        crc     @1234h(wr12),@5678h(wr13),wr0
        crc     @1234h(wr12),@5678h(wr13),12
        cs      @1234h(wr12),@5678h(wr13),12
        movs    @1234h(wr12),@5678h(wr13),12
        mvsk    @1234h(wr12),@5678h(wr13),12
        mvsr    @1234h(wr12),@5678h(wr13),12
        pops    @1234h(wr12),@5678h(wr13),12
        pshs    @1234h(wr12),@5678h(wr13),12
        seqb    @1234h(wr12),@5678h(wr13),12
        sneb    @1234h(wr12),@5678h(wr13),12
        ts      @1234h(wr12),@5678h(wr13),12
        ckpt    nothing
        expect  2170
        crc     @1234h(wr12),@5678(wr13)
        endexpect

        expect  2180,2180
        iof     @1234h,1
        iof     @1234h,(1)
        endexpect
        iof     @1234h,(1,8)

        insf    @0aa55h,@3366h,(1,8)
        xv      @0aa55h,@3366h,(1,8)
        xf      @0aa55h,@3366h,(1,8)

        arj     dest,,wr3
        arj     dest,wr3
        arj     dest,1,wr3
        arj     dest,8,wr3
        srj     dest,8,wr3
dest:

        stpc    r4
        lim     r5
        lcs     r6

        mova    @1234h(wr12),*wr4

        slsl    eq,@1234h,@5678h
        slsp    ne,@1234h,@5678h

        ep      @1234h,@5678h,6,10

        ; leave out some values that may be subject of rounding errors:

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