; 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