Top secrets sources NedoPC pentevo

Rev

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

        cpu     80960
        org     0

        fpu     on
        supmode on

start:
        flushreg
        fmark
        mark
        ret
        syncf
        faultno
        faultg
        faulte
        faultge
        faultl
        faultne
        faultle
        faulto

        addc    r3,r4,r5        ; lokale Register
        addc    g3,g4,g5        ; globale Register
        addc    g3,g5           ; impl. src2=dest
        addc    10,r4,g10       ; src1 immediate
        addc    g2,20,g4        ; src2 immediate

        addr    r3,r4,r5        ; Float: normale Register
        addr    fp2,r4,r5       ; Float-Register
        addr    r3,fp1,r5
        addr    r3,r4,fp3
        addr    0,r4,r5         ; Float-Konstanten
        addr    r3,1,r5

        addc    sp,fp,rip       ; Sonderregister

        addi    r3,r4,r5        ; nur noch mal zum Testen der Opcodes...
        addo    r3,r4,r5       

        calls   g2              ; nur ein Operand:
        calls   4

        chkbit  7,r5            ; kein Ziel

        classr  fp1             ; ein Float-Operand
        classrl g4

        cosr    fp1             ; dito mit Ziel
        cosr    g4,fp2

        modpc   r3,r4,r5        ; nur im Supervisor-Mode erlaubt

        bbc     r4,g5,$+32      ; COBR-Anweisungen
        bbs     10,r10,$+32
        cmpobge 10,r4,$+32
        testne  r5

        b       $-32            ; CTRL-Anweisungen
        call    $+32
        bal     $+64
        ble     $-64

        bx      (r5)            ; MEMA ohne disp
        bx      2345(r5)        ; MEMA mit disp
        bx      2345            ; MEMA ohne base
        bx      -30(r5)         ; MEMB base+disp
        bx      5000(r5)        ; dito positiv
        bx      $(ip)           ; PC-relativ
        bx      [r4]            ; nur Index
        bx      [r4*1]          ; Scaling
        bx      [r4*2]
        bx      [r4*4]
        bx      [r4*8]
        bx      [r4*16]
        bx      0(r5)[r4]       ; base+index
        bx      12345678h       ; nur disp
        bx      450[r6*4]       ; disp+index
        bx      123(r5)[r6*4]   ; volles Programm

        st      r7,123(r5)[r6*4]; mit 2 Ops
        ld      123(r5)[r6*4],r7

        db      1
        align   4
        db      1,2
        align   4
        db      1,2,3
        align   4
        db      1,2,3,4
        dw      1
        align   4
        dw      1,2
        dd      1
        dd      1.0
        dq      1.0
        dt      1.0
        dw      0

; register aliases

reg_r0  reg     r0
reg_r1  reg     r1
reg_r2  reg     r2
reg_r3  reg     r3
reg_r4  reg     r4
reg_r5  reg     r5
reg_r6  reg     r6
reg_r7  reg     r7
reg_r8  reg     r8
reg_r9  reg     r9
reg_r10 reg     r10
reg_r11 reg     r11
reg_r12 reg     r12
reg_r13 reg     r13
reg_r14 reg     r14
reg_r15 reg     r15
reg_g0  equ     g0
reg_g1  equ     g1
reg_g2  equ     g2
reg_g3  equ     g3
reg_g4  equ     g4
reg_g5  equ     g5
reg_g6  equ     g6
reg_g7  equ     g7
reg_g8  equ     g8
reg_g9  equ     g9
reg_g10 equ     g10
reg_g11 equ     g11
reg_g12 equ     g12
reg_g13 equ     g13
reg_g14 equ     g14
reg_g15 equ     g15
reg_fp  reg     fp
reg_sp  reg     sp
reg_pfp reg     pfp
reg_rip reg     rip
reg_fp0 equ     fp0
reg_fp1 equ     fp1
reg_fp2 equ     fp2
reg_fp3 equ     fp3

        addc    r3,r4,r5
        addc    reg_r3,reg_r4,reg_r5
        addc    g3,g4,g5
        addc    reg_g3,reg_g4,reg_g5
        addc    sp,fp,rip
        addc    reg_sp,reg_fp,reg_rip
        st      r7,123(r5)[r6*4]
        st      reg_r7,123(reg_r5)[reg_r6*4]
        addr    fp2,r4,r5
        addr    reg_fp2,reg_r4,reg_r5

        space   32

        word    1,2,3,4,5