.text
start:
br+ main ;br+
- call+ uartrdy ;call+ 0x80(128, 128)
+ call+ uartrdy
ret
main:
+ ldi r0, 0x2000 ; status...
ldi r1, 0x200b ;ldi r1, 8203
ldi r2, 0x200c ;ldi r2, 8204
- ldi r3, 0x2010 ;ldi r3, 8208
- ldi r4, 0x2024 ;ldi r4, 8228
- ldi r5, 3
- stw r5, 0(r4)
- br+ start
- ; stwnv r5, 0(r4)
+ ; ldi r4, 0x2024 ;ldi r4, 8228
+ ; ldi r5, 3 ; enable interrupts
+ ; stw r5, 0(r4)
+ ldw r5, 0(r0)
+ andx r5, 0x2
+ brzs+ main
uartrdy:
ldw r7, 0(r2)
- xor r10, r10, r10
- ldi r10, 0x41
- stw r10, 0(r1) ;TODO: remove plz, kkthx
- ; load instructions into ram
- ldi r8, 0x2034 ; paddr
- ldi r9, 0x2038 ; pdata
- xor r10, r10, r10
- xor r11, r11, r11
-
- ; place this small program into instr-ram:
- ;.text
- ;start:
- ; br+ main
- ; call+ main
- ; ret
- ;main:
- ; 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)
- ldi r11, 0x107
- ldih r11, 0xeb00
- stw r11, 0(r9)
- ;eb000008;ret;;
- xor r10, r10, r10
- ldi r10, 2
- stw r10, 0(r8)
- ldi r11, 0x8
- ldih r11, 0xeb00
- stw r11, 0(r9)
- ;e7b88000;stw r7, 0(r1);;
- xor r10, r10, r10
- 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)
-
-leave:
- ; just run and run, until we leave ROM and enter
+ stw r7, 0(r1)
+ br main