aboutsummaryrefslogtreecommitdiffstats
path: root/asm/test_py_src.atk16
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