bf8e43d46128840ef52b61b556a613c32cff487e
[calu.git] / 3_test / uartint.s
1 .text
2 start:
3         br+ main ;br+ 
4         call+ uartrdy ;call+ 0x80(128, 128)
5         ret
6 main:
7         ldi r1, 0x200b ;ldi r1, 8203
8         ldi r2, 0x200c ;ldi r2, 8204
9         ldi r3, 0x2010 ;ldi r3, 8208
10         ldi r4, 0x2024 ;ldi r4, 8228
11         ldi r5, 3
12         stw r5, 0(r4)
13         br+ start
14         ; stwnv r5, 0(r4)
15 uartrdy:
16         ; load instructions into ram
17         ldi r8, 0x2037 ; paddr
18         ldi r9, 0x203b ; pdata
19
20     ; x"e7390000"; -- ldw r7, 0(r2)
21         xor r10, r10, r10
22         stw r10, 0(r8)
23         xor r10, r10, r10
24         ldi r10, 0xe739
25         lls r10, r10, 16
26         stw r10, 0(r9)
27
28         ;x"e7b98000"; -- stw r7, 0(r3)
29         xor r10, r10, r10
30         ldi r10, 1
31         stw r10, 0(r8)
32         xor r10, r10, r10
33         ldi r10, 0xe7b9
34         lls r10, r10, 8
35         addi r10, r10, 0x80
36         lls r10, r10, 8
37         stw r10, 0(r9)
38
39         ;x"e7b88000"; -- stw r7, 0(r1)
40         xor r10, r10, r10
41         ldi r10, 2
42         stw r10, 0(r8)
43         xor r10, r10, r10
44         ldi r10, 0xe7b8
45         lls r10, r10, 8
46         addi r10, r10, 0x80
47         lls r10, r10, 8
48         stw r10, 0(r9)
49
50         ;x"eb000008"; -- ret-
51         xor r10, r10, r10
52         ldi r10, 3
53         stw r10, 0(r8)
54         xor r10, r10, r10
55         ldi r10, 0xeb00
56         lls r10, r10, 16
57         addi r10, r10, 0x8
58         stw r10, 0(r9)
59         br hmm
60
61 .org 0x1fc
62 hmm:
63         ldinv r0, 0
64 ; real ram...
65 woot: