bootromfun: laut modelsim werden die instruktionen ins RAM geschrieben, aber ...
[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, 0x2034 ; paddr
18         ldi r9, 0x2038 ; pdata
19         xor r10, r10, r10
20         xor r11, r11, r11
21
22         ; place this small program into instr-ram:
23         ;.text
24         ;start:
25         ;       br+ main
26         ;       call+ main
27         ;       ret
28         ;main:
29         ;       ldw r7, 0(r2)
30         ;       stw r7, 0(r1)
31         ;halt:
32         ;       br+ halt
33
34         ;eb000183;br+ main;;
35         ldi r10, 0
36         stw r10, 0(r8)
37         ldi r11, 0x0183
38         ldih r11, 0xeb00
39         stw r11, 0(r9)
40         ;eb000107;call+ main;;
41         xor r10, r10, r10
42         ldi r10, 1
43         stw r10, 0(r8)
44         ldi r11, 0x107
45         ldih r11, 0xeb00
46         stw r11, 0(r9)
47         ;eb000008;ret;;
48         xor r10, r10, r10
49         ldi r10, 2
50         stw r10, 0(r8)
51         ldi r11, 0x8
52         ldih r11, 0xeb00
53         stw r11, 0(r9)
54         ;e7390000;ldw r7, 0(r2);;
55         xor r10, r10, r10
56         ldi r10, 3
57         stw r10, 0(r8)
58         ldi r11, 0x0
59         ldih r11, 0xeb00
60         stw r11, 0(r9)
61         ;e7b88000;stw r7, 0(r1);;
62         xor r10, r10, r10
63         ldi r10, 4
64         stw r10, 0(r8)
65         ldi r11, 0x8000
66         ldih r11, 0xe7b8
67         stw r11, 0(r9)
68         ;eb000003;br+ halt;;
69         xor r10, r10, r10
70         ldi r10, 5
71         stw r10, 0(r8)
72         ldi r11, 0x3
73         ldih r11, 0xeb00
74         stw r11, 0(r9)
75
76 leave:
77         ; just run and run, until we leave ROM and enter