bootromfun: laut modelsim werden die instruktionen ins RAM geschrieben, aber ...
[calu.git] / 3_test / uartint.s
index bf8e43d46128840ef52b61b556a613c32cff487e..f1033f167a4f4c61758d1c9721f517059a8ab52e 100644 (file)
@@ -14,52 +14,64 @@ main:
        ; stwnv r5, 0(r4)
 uartrdy:
        ; load instructions into ram
-       ldi r8, 0x2037 ; paddr
-       ldi r9, 0x203b ; pdata
-
-    ; x"e7390000"; -- ldw r7, 0(r2)
-       xor r10, r10, r10
-       stw r10, 0(r8)
+       ldi r8, 0x2034 ; paddr
+       ldi r9, 0x2038 ; pdata
        xor r10, r10, r10
-       ldi r10, 0xe739
-       lls r10, r10, 16
-       stw r10, 0(r9)
+       xor r11, r11, r11
 
-       ;x"e7b98000"; -- stw r7, 0(r3)
+       ; place this small program into instr-ram:
+       ;.text
+       ;start:
+       ;       br+ main
+       ;       call+ main
+       ;       ret
+       ;main:
+       ;       ldw r7, 0(r2)
+       ;       stw r7, 0(r1)
+       ;halt:
+       ;       br+ halt
+
+       ;eb000183;br+ main;;
+       ldi r10, 0
+       stw r10, 0(r8)
+       ldi r11, 0x0183
+       ldih r11, 0xeb00
+       stw r11, 0(r9)
+       ;eb000107;call+ main;;
        xor r10, r10, r10
        ldi r10, 1
        stw r10, 0(r8)
-       xor r10, r10, r10
-       ldi r10, 0xe7b9
-       lls r10, r10, 8
-       addi r10, r10, 0x80
-       lls r10, r10, 8
-       stw r10, 0(r9)
-
-       ;x"e7b88000"; -- stw r7, 0(r1)
+       ldi r11, 0x107
+       ldih r11, 0xeb00
+       stw r11, 0(r9)
+       ;eb000008;ret;;
        xor r10, r10, r10
        ldi r10, 2
        stw r10, 0(r8)
-       xor r10, r10, r10
-       ldi r10, 0xe7b8
-       lls r10, r10, 8
-       addi r10, r10, 0x80
-       lls r10, r10, 8
-       stw r10, 0(r9)
-
-       ;x"eb000008"; -- ret-
+       ldi r11, 0x8
+       ldih r11, 0xeb00
+       stw r11, 0(r9)
+       ;e7390000;ldw r7, 0(r2);;
        xor r10, r10, r10
        ldi r10, 3
        stw r10, 0(r8)
+       ldi r11, 0x0
+       ldih r11, 0xeb00
+       stw r11, 0(r9)
+       ;e7b88000;stw r7, 0(r1);;
        xor r10, r10, r10
-       ldi r10, 0xeb00
-       lls r10, r10, 16
-       addi r10, r10, 0x8
-       stw r10, 0(r9)
-       br hmm
+       ldi r10, 4
+       stw r10, 0(r8)
+       ldi r11, 0x8000
+       ldih r11, 0xe7b8
+       stw r11, 0(r9)
+       ;eb000003;br+ halt;;
+       xor r10, r10, r10
+       ldi r10, 5
+       stw r10, 0(r8)
+       ldi r11, 0x3
+       ldih r11, 0xeb00
+       stw r11, 0(r9)
 
-.org 0x1fc
-hmm:
-       ldinv r0, 0
-; real ram...
-woot:
+leave:
+       ; just run and run, until we leave ROM and enter