2 ; Low level stuff for screen output/console input
5 .constructor soft80_init, 24
6 .destructor soft80_shutdown
9 .import __textcolor, __bgcolor
11 .importzp ptr1, ptr2, ptr3
26 ; copy charset to RAM under I/O -> FIXME: generate at runtime
37 lda #>soft80_lo_charset
39 lda #<soft80_lo_charset
41 lda #>soft80_hi_charset
43 lda #<soft80_hi_charset
69 lda 646 ; use current textcolor
73 lda VIC_BG_COLOR0 ; use current bgcolor
96 .byte $0f,$03,$0f,$00,$0f,$07,$05,$0e
97 .byte $0f,$05,$0e,$0b,$0f,$0b,$0f,$0f
98 .byte $0f,$0b,$0f,$0b,$07,$07,$0e,$00
99 .byte $00,$0f,$0e,$0f,$0c,$0b,$03,$03
100 .byte $0f,$0b,$05,$05,$0b,$05,$0b,$0b
101 .byte $0d,$07,$0f,$0f,$0f,$0f,$0f,$0d
102 .byte $0b,$0b,$0b,$0b,$05,$01,$0b,$01
103 .byte $0b,$0b,$0f,$0f,$0d,$0f,$07,$0b
104 .byte $0b,$0f,$0f,$0f,$0f,$0f,$0f,$0f
105 .byte $0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f
106 .byte $0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f
107 .byte $0f,$0f,$0f,$09,$07,$03,$0b,$0f
108 .byte $0f,$0b,$03,$0b,$03,$01,$01,$0b
109 .byte $05,$01,$09,$05,$07,$05,$05,$0b
110 .byte $03,$0b,$03,$0b,$01,$05,$05,$05
111 .byte $05,$05,$01,$0b,$07,$0b,$0f,$0a
113 .byte $0f,$03,$0f,$0f,$0f,$07,$05,$0e
114 .byte $0f,$0a,$0e,$0b,$0f,$0b,$0f,$0f
115 .byte $0f,$0b,$0f,$0b,$07,$07,$0e,$00
116 .byte $00,$0f,$0e,$0f,$0c,$0b,$03,$03
117 .byte $0f,$0b,$05,$05,$09,$05,$05,$0b
118 .byte $0b,$0b,$05,$0b,$0f,$0f,$0f,$0d
119 .byte $05,$0b,$05,$05,$05,$07,$05,$05
120 .byte $05,$05,$0f,$0f,$0b,$0f,$0b,$05
121 .byte $05,$0f,$07,$0f,$0d,$0f,$09,$0f
122 .byte $07,$0b,$0d,$07,$03,$0f,$0f,$0f
123 .byte $0f,$0f,$0f,$0f,$0b,$0f,$0f,$0f
124 .byte $0f,$0f,$0f,$0b,$07,$0b,$0b,$0b
125 .byte $0f,$0b,$05,$05,$05,$07,$07,$05
126 .byte $05,$0b,$0d,$05,$07,$01,$01,$05
127 .byte $05,$05,$05,$05,$0b,$05,$05,$05
128 .byte $05,$05,$0d,$0b,$07,$0b,$0f,$0a
130 .byte $0f,$03,$0f,$0f,$0f,$07,$0a,$0e
131 .byte $0f,$05,$0e,$0b,$0f,$0b,$0f,$0f
132 .byte $0f,$0b,$0f,$0b,$07,$07,$0e,$0f
133 .byte $00,$0f,$0d,$0f,$0c,$0b,$03,$03
134 .byte $0f,$0b,$05,$00,$07,$0d,$0b,$07
135 .byte $0b,$0b,$0b,$0b,$0f,$0f,$0f,$0b
136 .byte $01,$03,$0d,$0d,$05,$03,$07,$0d
137 .byte $05,$05,$0b,$0b,$0b,$08,$0b,$0d
138 .byte $01,$0b,$07,$09,$0d,$0b,$0b,$09
139 .byte $07,$0f,$0f,$07,$0b,$05,$03,$0b
140 .byte $03,$09,$03,$09,$01,$05,$05,$05
141 .byte $05,$05,$01,$0b,$0b,$0b,$05,$0b
142 .byte $0f,$05,$05,$07,$05,$07,$07,$07
143 .byte $05,$0b,$0d,$03,$07,$01,$01,$05
144 .byte $05,$05,$05,$07,$0b,$05,$05,$05
145 .byte $0b,$05,$0b,$0b,$0b,$0b,$0a,$05
147 .byte $09,$03,$0f,$0f,$0f,$07,$0a,$0e
148 .byte $0f,$0a,$0e,$08,$0f,$08,$03,$0f
149 .byte $08,$00,$00,$03,$07,$07,$0e,$0f
150 .byte $0f,$0f,$05,$0f,$0c,$03,$03,$03
151 .byte $0f,$0b,$0f,$05,$0b,$0b,$0b,$0f
152 .byte $0b,$0b,$01,$01,$0f,$01,$0f,$0b
153 .byte $05,$0b,$0b,$0b,$01,$0d,$03,$0b
154 .byte $0b,$09,$0f,$0f,$07,$0f,$0d,$0b
155 .byte $01,$0d,$03,$07,$09,$05,$01,$05
156 .byte $03,$03,$0d,$05,$0b,$01,$05,$05
157 .byte $05,$05,$05,$07,$0b,$05,$05,$05
158 .byte $05,$05,$0d,$0b,$0b,$0b,$05,$00
159 .byte $00,$01,$03,$07,$05,$03,$03,$01
160 .byte $01,$0b,$0d,$03,$07,$05,$01,$05
161 .byte $03,$05,$03,$0b,$0b,$05,$05,$01
162 .byte $0b,$0b,$0b,$00,$0b,$0b,$05,$05
164 .byte $09,$03,$00,$0f,$0f,$07,$05,$0e
165 .byte $05,$05,$0e,$08,$0c,$08,$03,$0f
166 .byte $08,$00,$00,$03,$07,$07,$0e,$0f
167 .byte $0f,$0f,$03,$03,$0f,$03,$0f,$0c
168 .byte $0f,$0f,$0f,$00,$0d,$07,$04,$0f
169 .byte $0b,$0b,$0b,$0b,$0f,$0f,$0f,$0b
170 .byte $05,$0b,$07,$0d,$0d,$0d,$05,$0b
171 .byte $05,$0d,$0f,$0f,$0b,$08,$0b,$0b
172 .byte $07,$09,$05,$07,$05,$01,$0b,$05
173 .byte $05,$0b,$0d,$03,$0b,$01,$05,$05
174 .byte $05,$05,$07,$0b,$0b,$05,$05,$01
175 .byte $0b,$05,$0b,$0b,$0b,$0b,$0f,$00
176 .byte $00,$05,$05,$07,$05,$07,$07,$05
177 .byte $05,$0b,$0d,$03,$07,$05,$01,$05
178 .byte $07,$05,$03,$0d,$0b,$05,$05,$01
179 .byte $0b,$0b,$0b,$00,$07,$0b,$05,$0a
181 .byte $0f,$03,$00,$0f,$0f,$07,$05,$0e
182 .byte $05,$0a,$0e,$0b,$0c,$0f,$0b,$0f
183 .byte $0b,$0f,$0b,$0b,$07,$07,$0e,$0f
184 .byte $0f,$00,$03,$03,$0f,$0f,$0f,$0c
185 .byte $0f,$0f,$0f,$05,$03,$05,$05,$0f
186 .byte $0b,$0b,$05,$0b,$0b,$0f,$0b,$07
187 .byte $05,$0b,$07,$05,$0d,$05,$05,$0b
188 .byte $05,$05,$0b,$0b,$0b,$0f,$0b,$0f
189 .byte $05,$05,$05,$07,$05,$07,$0b,$09
190 .byte $05,$0b,$0d,$05,$0b,$05,$05,$05
191 .byte $03,$09,$07,$0d,$0b,$05,$0b,$01
192 .byte $05,$09,$07,$0b,$0d,$0b,$0f,$0b
193 .byte $0f,$05,$05,$05,$05,$07,$07,$05
194 .byte $05,$0b,$05,$05,$07,$05,$05,$05
195 .byte $07,$0b,$05,$05,$0b,$05,$0b,$05
196 .byte $05,$0b,$07,$0b,$07,$0b,$05,$0a
198 .byte $0f,$03,$00,$0f,$0f,$07,$0a,$0e
199 .byte $0a,$05,$0e,$0b,$0c,$0f,$0b,$00
200 .byte $0b,$0f,$0b,$0b,$07,$07,$0e,$0f
201 .byte $0f,$00,$07,$03,$0f,$0f,$0f,$0c
202 .byte $0f,$0b,$0f,$05,$0b,$05,$08,$0f
203 .byte $0d,$07,$0f,$0f,$0b,$0f,$0b,$07
204 .byte $0b,$01,$01,$0b,$0d,$0b,$0b,$0b
205 .byte $0b,$0b,$0f,$0b,$0d,$0f,$07,$0b
206 .byte $0b,$09,$03,$09,$09,$09,$0b,$0d
207 .byte $05,$01,$0d,$05,$01,$05,$05,$0b
208 .byte $07,$0d,$07,$03,$0d,$09,$0b,$05
209 .byte $05,$0d,$01,$09,$0d,$03,$0f,$0b
210 .byte $0f,$05,$03,$0b,$03,$01,$07,$0b
211 .byte $05,$01,$0b,$05,$01,$05,$05,$0b
212 .byte $07,$0d,$05,$0b,$0b,$0b,$0b,$05
213 .byte $05,$0b,$01,$0b,$0b,$0b,$05,$05
215 .byte $0f,$03,$00,$0f,$00,$07,$0a,$0e
216 .byte $0a,$0a,$0e,$0b,$0c,$0f,$0b,$00
217 .byte $0b,$0f,$0b,$0b,$07,$07,$0e,$0f
218 .byte $0f,$00,$0f,$03,$0f,$0f,$0f,$0c
219 .byte $0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f
220 .byte $0f,$0f,$0f,$0f,$07,$0f,$0f,$0f
221 .byte $0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f
222 .byte $0f,$0f,$0f,$07,$0f,$0f,$0f,$0f
223 .byte $0f,$0f,$0f,$0f,$0f,$0f,$0f,$03
224 .byte $0f,$0f,$03,$0f,$0f,$0f,$0f,$0f
225 .byte $07,$0d,$0f,$0f,$0f,$0f,$0f,$0f
226 .byte $0f,$03,$0f,$0f,$0f,$0f,$0f,$0f
227 .byte $0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f
228 .byte $0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f
229 .byte $0f,$0f,$0f,$0f,$0f,$0f,$0f,$0f
230 .byte $0f,$0f,$0f,$0b,$0b,$0b,$0f,$05