blob: c1bf1afa10fd5744d5761561a7ace78025bca489 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
|
;; BEGIN BOOTSTRAP
@opt stack_pointer RG
@opt csr_scratch RH
@use ext_std:*
@let vector_table 0x10
@let vt_ISR0 0x10 ; ISR0
@let vt_ISR1 0x11 ; ISR1
@let vt_ISR2 0x12 ; ISR2
@let vt_ISR3 0x13 ; ISR3
@let vt_stack_addr 0x14 ; Stack address
@let vt_term_pp_addr 0x15 ; Terminal peripheral address
@let vt_kb_pp_addr 0x16 ; Keyboard peripheral address
@let vt_gr_mode_addr 0x17 ; Graphics mode setting address
@let vt_sprite_mem 0x18 ; Sprite memory address
@let vt_text_mem 0x19 ; Text memory buffer address
@let stack_segment 0x8000
@let mmio_segment 0xE000
@let terminal_addr 0xE000
@let keyboard_addr 0xE001
@let gr_mode_addr 0xE002
@let sprite_mem 0xE800
@let text_mem 0xF800
@let gr_disabled_mode 0b00
@let gr_text_mode 0b01
@let gr_sprite_mode 0b10
@address 0x0
ldi vt_stack_addr RA
ldr RA __STACK_POINTER
jpi program_segment
@address vector_table
keyboard_isr ; 0x10
hlt_isr ; 0x11
hlt_isr ; 0x12
hlt_isr ; 0x13
stack_segment ; 0x14
terminal_addr ; 0x15
keyboard_addr ; 0x16
gr_mode_addr ; 0x17
sprite_mem ; 0x18
text_mem ; 0x19
@label hlt_isr
ldi 0x55 RE
hlt
@label keyboard_isr
spu RA
spu RB
ldi vt_kb_pp_addr RA
ldr RA RA
ldr RA RA
ldi vt_term_pp_addr RB
ldr RB RB
str RA RB
spo RB
spo RA
rti
@label program_segment
ldi vt_gr_mode_addr RA
ldr RA RA
ldi gr_disabled_mode RB
str RB RA
jpi main
;; END BOOTSTRAP
@label TEXT_MODE
1
@label int_0
23
@label int_1
63488
@label int_2
72
@label int_3
63489
@label int_4
69
@label int_5
63490
@label int_6
76
@label int_7
63491
@label int_8
76
@label int_9
63492
@label int_10
79
@label main
; builtin call store [<ast.Constant object at 0x1045a3d90>, <ast.Name object at 0x1045a3d60>]
ldi int_0 RA
ldr RA RA
spu RA
spo RB
spo RA
str RB RA
; builtin call store [<ast.Constant object at 0x1045a3c70>, <ast.Constant object at 0x1045a3c40>]
ldi int_1 RA
ldr RA RA
spu RA
ldi int_2 RA
ldr RA RA
spu RA
spo RB
spo RA
str RB RA
; builtin call store [<ast.Constant object at 0x1045a3b50>, <ast.Constant object at 0x1045a3b20>]
ldi int_3 RA
ldr RA RA
spu RA
ldi int_4 RA
ldr RA RA
spu RA
spo RB
spo RA
str RB RA
; builtin call store [<ast.Constant object at 0x1045a3a30>, <ast.Constant object at 0x1045a3a00>]
ldi int_5 RA
ldr RA RA
spu RA
ldi int_6 RA
ldr RA RA
spu RA
spo RB
spo RA
str RB RA
; builtin call store [<ast.Constant object at 0x1045a3910>, <ast.Constant object at 0x1045a38e0>]
ldi int_7 RA
ldr RA RA
spu RA
ldi int_8 RA
ldr RA RA
spu RA
spo RB
spo RA
str RB RA
; builtin call store [<ast.Constant object at 0x1045a37f0>, <ast.Constant object at 0x1045a37c0>]
ldi int_9 RA
ldr RA RA
spu RA
ldi int_10 RA
ldr RA RA
spu RA
spo RB
spo RA
str RB RA
; builtin call asm [<ast.Constant object at 0x1045a2c20>]
ldi 1 RA
|