OriVEmu/work_dir/ROMs/test.lst
2024-09-30 01:21:31 +02:00

1116 lines
48 KiB
Plaintext

001 0000 .org 0
002 0000 _p00_config = 0x0000
003 0000 _p03_set = 0x0003
004 0000 _p04_RAM0 = 0x0004
005 0000 _p05_RAM1 = 0x0005
006 0000 _p06_RAM2 = 0x0006
007 0000 _p07_set = 0x0007
008 0000 _p0a_mem_man = 0x000a
009 0000 _p0b_set = 0x000b
010 0000 _p1d_set = 0x001d
011 0000 _p3b_set = 0x003b
012 0000 _pfa_vbank = 0x00fa
013 0000 _pfc_color_reg = 0x00fc
014 0000 _pf8_vmode = 0xf8
015 0000
016 0000 CONFIG_TURBO_BIT = 3
017 0000 CONFIG_WIDE_BIT = 4
018 0000 CONFIG_MEM_TEST_BIT = 5
019 0000
020 0000 MEMM_RAM0EN_BIT = 0
021 0000 MEMM_RAM1EN_BIT = 1
022 0000 MEMM_RAM2EN_BIT = 2
023 0000 MEMM_TURBO_BIT = 5
024 0000 VB_WIDE_BIT = 7
025 0000
026 0000 VBANK_START = 0xc000
027 0000 RAM1_WINDOW = 0x4000
028 0000
029 0000 TEST_16C_PALLETE = 0x5f
030 0000
031 0000 TEST_VBANK_IDX = 0x00
032 0000
033 0000 ; registers global:
034 0000 ; B - configuration switches
035 0000 ; C - phase (0x00/0xFF)
036 0000
037 0000 init:
038 0000 31 FF 3F ld sp, 0x3fff
039 0003 3E 98 ld a, 0x98
040 0005 D3 03 out (_p03_set), a
041 0007 3E 80 ld a, 0x80
042 0009 D3 07 out (_p07_set), a
043 000B 3E 80 ld a, 0x80
044 000D D3 0B out (_p0b_set), a
045 000F 3E 92 ld a, 0x92
046 0011 D3 1D out (_p1d_set), a
047 0013 3E 16 ld a, 0x16
048 0015 D3 3B out (_p3b_set), a
049 0017 3E 56 ld a, 0x56
050 0019 D3 3B out (_p3b_set), a
051 001B 3E 96 ld a, 0x96
052 001D D3 3B out (_p3b_set), a
053 001F 3E 10 ld a, 0x10
054 0021 D3 0A out (_p0a_mem_man), a
055 0023 3E 00 ld a, 0x00
056 0025 D3 F8 out (_pf8_vmode), a
057 0027 C3 BD 00 jp fill_vmem
058 002A
059 002A main:
060 002A DB 00 in a, (_p00_config)
061 002C 47 ld b, a ; save configuration to B
062 002D C3 E4 00 jp set_turbo
063 0030 main_turbo:
064 0030 3E 00 ld a, TEST_VBANK_IDX
065 0032 C3 F3 00 jp set_vbank ; set video bank to 0 (0xC000-0xFFFF)
066 0035 main_vbank:
067 0035 CB 68 bit CONFIG_MEM_TEST_BIT, b
068 0037 20 55 jr NZ, mem_test
069 0039 main_memt:
070 0039 78 ld a, b ; load configuretion to A
071 003A E6 07 and 0x07 ; extract video test number
072 003C 26 00 ld h, 0
073 003E 6F ld l, a
074 003F 29 add hl, hl
075 0040 11 AD 00 ld de, video_tests
076 0043 19 add hl, de
077 0044 7E ld a, (hl)
078 0045 23 inc hl
079 0046 66 ld h, (hl)
080 0047 6F ld l, a
081 0048 E9 jp (hl)
082 0049 main_video_end:
083 0049 11 6B 00 ld de, TEST_TITLE
084 004C FD 26 00 ld iyh, 0
085 004F FD 2E 1C ld iyl, 28
086 0052 21 58 00 ld hl, main_title_end
087 0055 C3 4D 05 jp print_str
088 0058 main_title_end:
089 0058 ; wait loop
090 0058 16 00 ld d, 0
091 005A wait_loop0:
092 005A 14 inc d
093 005B 21 00 00 ld hl, 0x0000
094 005E wait_loop1:
095 005E 23 inc hl
096 005F 7C ld a, h
097 0060 D6 80 sub a, 0x80
098 0062 38 FA jr C, wait_loop1
099 0064 7A ld a, d
100 0065 D6 04 sub a, 4
101 0067 38 F1 jr C, wait_loop0
102 0069 18 BF jr main
103 006B
104 006B TEST_TITLE:
105 006B .db "ORION-128 NG tests (andreil, 2020)", 0x00
105 006B 4F52494F4E2D313238204E472074657374732028616E647265696C2C20323032
105 008B 302900
106 008E
107 008E mem_test:
108 008E ; monochrome video mode
109 008E 3E 00 ld a, VMODE_2COLOR_1PALLETE
110 0090 D3 F8 out (_pf8_vmode), a
111 0092 ; disable widescreen
112 0092 3E 00 ld a, TEST_VBANK_IDX
113 0094 D3 FA out (_pfa_vbank), a
114 0096 ; enable turbo mode
115 0096 DB 0A in a, (_p0a_mem_man)
116 0098 CB EF set MEMM_TURBO_BIT, a
117 009A D3 0A out (_p0a_mem_man), a
118 009C mem_test_main_loop:
119 009C ; draw screen
120 009C 11 6B 00 ld de, TEST_TITLE
121 009F FD 26 00 ld iyh, 0
122 00A2 FD 2E 1F ld iyl, 31
123 00A5 21 58 00 ld hl, main_title_end
124 00A8 C3 4D 05 jp print_str
125 00AB 18 EF jr mem_test_main_loop
126 00AD
127 00AD video_tests:
128 00AD 26 02 .DW test_2colors_pallet1
129 00AF 3C 02 .DW test_2colors_pallet2
130 00B1 52 02 .DW test_4colors_pallet1
131 00B3 6B 02 .DW test_4colors_pallet2
132 00B5 84 02 .DW test_16colors_group
133 00B7 9D 02 .DW test_16colors_pallet
134 00B9 B7 02 .DW test_3bit
135 00BB D3 02 .DW test_4bit
136 00BD
137 00BD fill_vmem:
138 00BD ; enable window on RAM1
139 00BD DB 0A in a, (_p0a_mem_man)
140 00BF CB CF set MEMM_RAM1EN_BIT, a
141 00C1 D3 0A out (_p0a_mem_man), a
142 00C3 0E 00 ld c, 0
143 00C5 ; set RAM 1 segment
144 00C5 loop_seg:
145 00C5 79 ld a, c
146 00C6 D3 05 out (_p05_RAM1), a
147 00C8 ; screen pointer
148 00C8 21 00 40 ld hl, RAM1_WINDOW
149 00CB 16 00 ld d, 00
150 00CD loop_vm:
151 00CD 72 ld (hl), d
152 00CE 23 inc hl
153 00CF ; check end
154 00CF 7C ld a, h
155 00D0 FE 80 cp 0x80
156 00D2 20 F9 jr NZ, loop_vm
157 00D4 79 ld a, c
158 00D5 0C inc c
159 00D6 FE 10 cp 16
160 00D8 20 EB jr NZ, loop_seg
161 00DA ; disable window on RAM1
162 00DA DB 0A in a, (_p0a_mem_man)
163 00DC CB 8F res MEMM_RAM1EN_BIT, a
164 00DE 00 nop
165 00DF D3 0A out (_p0a_mem_man), a
166 00E1 C3 2A 00 jp main
167 00E4
168 00E4 set_turbo:
169 00E4 DB 0A in a, (_p0a_mem_man)
170 00E6 CB AF res MEMM_TURBO_BIT, a
171 00E8 CB 58 bit CONFIG_TURBO_BIT, b
172 00EA 28 02 jr Z, turbo_not_set
173 00EC CB EF set MEMM_TURBO_BIT, a
174 00EE turbo_not_set:
175 00EE D3 0A out (_p0a_mem_man), a
176 00F0 C3 30 00 jp main_turbo
177 00F3
178 00F3 set_vbank:
179 00F3 CB 60 bit CONFIG_WIDE_BIT, b
180 00F5 20 02 jr NZ, wide_not_set
181 00F7 CB FF set VB_WIDE_BIT, a
182 00F9 wide_not_set:
183 00F9 D3 FA out (_pfa_vbank), a
184 00FB C3 35 00 jp main_vbank
185 00FE
186 00FE VMODE_2COLOR_1PALLETE = 0x00
187 00FE VMODE_2COLOR_2PALLETE = 0x01
188 00FE VMODE_4COLOR_1PALLETE = 0x04
189 00FE VMODE_4COLOR_2PALLETE = 0x05
190 00FE VMODE_16COLOR_GROUP = 0x06
191 00FE VMODE_16COLOR_PALLET = 0x0e
192 00FE VMODE_3BIT = 0x10
193 00FE VMODE_4BIT = 0x14
194 00FE
195 00FE VIDEO_TEST_0_TITLE:
196 00FE .db "TEST: 2 colors, pallete 1 ", 0x00
196 00FE 544553543A203220636F6C6F72732C2070616C6C657465203120202020202020
196 011E 2020202000
197 0123 VIDEO_TEST_1_TITLE:
198 0123 .db "TEST: 2 colors, pallete 2 ", 0x00
198 0123 544553543A203220636F6C6F72732C2070616C6C657465203220202020202020
198 0143 2020202000
199 0148 VIDEO_TEST_2_TITLE:
200 0148 .db "TEST: 4 colors, pallete 1 ", 0x00
200 0148 544553543A203420636F6C6F72732C2070616C6C657465203120202020202020
200 0168 2020202000
201 016D VIDEO_TEST_3_TITLE:
202 016D .db "TEST: 4 colors, pallete 2 ", 0x00
202 016D 544553543A203420636F6C6F72732C2070616C6C657465203220202020202020
202 018D 2020202000
203 0192 VIDEO_TEST_4_TITLE:
204 0192 .db "TEST: 16 colors, group ", 0x00
204 0192 544553543A20313620636F6C6F72732C2067726F757020202020202020202020
204 01B2 2020202000
205 01B7 VIDEO_TEST_5_TITLE:
206 01B7 .db "TEST: 16 colors, pallete (port 0xFC)", 0x00
206 01B7 544553543A20313620636F6C6F72732C2070616C6C6574652028706F72742030
206 01D7 7846432900
207 01DC VIDEO_TEST_6_TITLE:
208 01DC .db "TEST: 3bit colors ", 0x00
208 01DC 544553543A203362697420636F6C6F7273202020202020202020202020202020
208 01FC 2020202000
209 0201 VIDEO_TEST_7_TITLE:
210 0201 .db "TEST: 4bit colors ", 0x00
210 0201 544553543A203462697420636F6C6F7273202020202020202020202020202020
210 0221 2020202000
211 0226
212 0226 test_2colors_pallet1:
213 0226 3E 00 ld a, VMODE_2COLOR_1PALLETE
214 0228 D3 F8 out (_pf8_vmode), a
215 022A C3 02 03 jp fill_scr_1
216 022D test_2colors_pallet1_end:
217 022D 11 FE 00 ld de, VIDEO_TEST_0_TITLE
218 0230 FD 26 00 ld iyh, 0
219 0233 FD 2E 1D ld iyl, 29
220 0236 21 49 00 ld hl, main_video_end
221 0239 C3 4D 05 jp print_str
222 023C
223 023C test_2colors_pallet2:
224 023C 3E 01 ld a, VMODE_2COLOR_2PALLETE
225 023E D3 F8 out (_pf8_vmode), a
226 0240 C3 02 03 jp fill_scr_1
227 0243 test_2colors_pallet2_end:
228 0243 11 23 01 ld de, VIDEO_TEST_1_TITLE
229 0246 FD 26 00 ld iyh, 0
230 0249 FD 2E 1D ld iyl, 29
231 024C 21 49 00 ld hl, main_video_end
232 024F C3 4D 05 jp print_str
233 0252
234 0252 test_4colors_pallet1:
235 0252 3E 04 ld a, VMODE_4COLOR_1PALLETE
236 0254 D3 F8 out (_pf8_vmode), a
237 0256 C3 02 03 jp fill_scr_1
238 0259 test_4colors_pallet1_end:
239 0259 C3 7F 03 jp fill_scr_2_4c
240 025C test_4colors_pallet1_end2:
241 025C 11 48 01 ld de, VIDEO_TEST_2_TITLE
242 025F FD 26 00 ld iyh, 0
243 0262 FD 2E 1D ld iyl, 29
244 0265 21 49 00 ld hl, main_video_end
245 0268 C3 4D 05 jp print_str
246 026B
247 026B test_4colors_pallet2:
248 026B 3E 05 ld a, VMODE_4COLOR_2PALLETE
249 026D D3 F8 out (_pf8_vmode), a
250 026F C3 02 03 jp fill_scr_1
251 0272 test_4colors_pallet2_end:
252 0272 C3 7F 03 jp fill_scr_2_4c
253 0275 test_4colors_pallet2_end2:
254 0275 11 6D 01 ld de, VIDEO_TEST_3_TITLE
255 0278 FD 26 00 ld iyh, 0
256 027B FD 2E 1D ld iyl, 29
257 027E 21 49 00 ld hl, main_video_end
258 0281 C3 4D 05 jp print_str
259 0284
260 0284 test_16colors_group:
261 0284 3E 06 ld a, VMODE_16COLOR_GROUP
262 0286 D3 F8 out (_pf8_vmode), a
263 0288 C3 02 03 jp fill_scr_1
264 028B test_16colors_group_end:
265 028B C3 CA 03 jp fill_scr_2_16c
266 028E test_16colors_group_end2:
267 028E 11 92 01 ld de, VIDEO_TEST_4_TITLE
268 0291 FD 26 00 ld iyh, 0
269 0294 FD 2E 1D ld iyl, 29
270 0297 21 49 00 ld hl, main_video_end
271 029A C3 4D 05 jp print_str
272 029D
273 029D test_16colors_pallet:
274 029D 3E 0E ld a, VMODE_16COLOR_PALLET
275 029F D3 F8 out (_pf8_vmode), a
276 02A1 C3 02 03 jp fill_scr_1
277 02A4 test_16colors_pallet_end:
278 02A4 3E 5F ld a, TEST_16C_PALLETE
279 02A6 D3 FC out (_pfc_color_reg), a
280 02A8 test_16colors_pallet_end2:
281 02A8 11 B7 01 ld de, VIDEO_TEST_5_TITLE
282 02AB FD 26 00 ld iyh, 0
283 02AE FD 2E 1D ld iyl, 29
284 02B1 21 49 00 ld hl, main_video_end
285 02B4 C3 4D 05 jp print_str
286 02B7
287 02B7 test_3bit:
288 02B7 3E 10 ld a, VMODE_3BIT
289 02B9 D3 F8 out (_pf8_vmode), a
290 02BB C3 02 03 jp fill_scr_1
291 02BE test_3bit_end:
292 02BE C3 47 04 jp fill_scr_blue
293 02C1 test_3bit_end3:
294 02C1 C3 C3 04 jp fill_scr_red
295 02C4 test_3bit_end4:
296 02C4 11 DC 01 ld de, VIDEO_TEST_6_TITLE
297 02C7 FD 26 00 ld iyh, 0
298 02CA FD 2E 1D ld iyl, 29
299 02CD 21 49 00 ld hl, main_video_end
300 02D0 C3 4D 05 jp print_str
301 02D3
302 02D3 test_4bit:
303 02D3 3E 14 ld a, VMODE_4BIT
304 02D5 D3 F8 out (_pf8_vmode), a
305 02D7 C3 02 03 jp fill_scr_1
306 02DA test_4bit_end:
307 02DA ; fill I
308 02DA C3 7F 03 jp fill_scr_2_4c
309 02DD test_4bit_end2:
310 02DD C3 47 04 jp fill_scr_blue
311 02E0 test_4bit_end3:
312 02E0 C3 C3 04 jp fill_scr_red
313 02E3 test_4bit_end4:
314 02E3 11 01 02 ld de, VIDEO_TEST_7_TITLE
315 02E6 FD 26 00 ld iyh, 0
316 02E9 FD 2E 1D ld iyl, 29
317 02EC 21 49 00 ld hl, main_video_end
318 02EF C3 4D 05 jp print_str
319 02F2
320 02F2 test_ret_table:
321 02F2 2D 02 .DW test_2colors_pallet1_end
322 02F4 43 02 .DW test_2colors_pallet2_end
323 02F6 59 02 .DW test_4colors_pallet1_end
324 02F8 72 02 .DW test_4colors_pallet2_end
325 02FA 8B 02 .DW test_16colors_group_end
326 02FC A4 02 .DW test_16colors_pallet_end
327 02FE BE 02 .DW test_3bit_end
328 0300 DA 02 .DW test_4bit_end
329 0302
330 0302 fill_scr_1:
331 0302 ; usage:
332 0302 ; hl - screen pointer
333 0302 ; de - temp
334 0302 21 00 C0 ld hl, VBANK_START
335 0305 loop_f1_col:
336 0305 2E 00 ld l, 0
337 0307 loop_f1_row:
338 0307 36 FF ld (hl), 0xff
339 0309 23 inc hl
340 030A 36 81 ld (hl), 0x81
341 030C 23 inc hl
342 030D 36 81 ld (hl), 0x81
343 030F 23 inc hl
344 0310 36 81 ld (hl), 0x81
345 0312 23 inc hl
346 0313 36 81 ld (hl), 0x81
347 0315 23 inc hl
348 0316 36 81 ld (hl), 0x81
349 0318 23 inc hl
350 0319 36 81 ld (hl), 0x81
351 031B 23 inc hl
352 031C 36 FF ld (hl), 0xff
353 031E 23 inc hl
354 031F ; check column end
355 031F 7D ld a, l
356 0320 FE E0 cp 0xe0
357 0322 38 E3 jr C, loop_f1_row
358 0324 11 20 00 ld de, 0x0020
359 0327 7C ld a, h
360 0328 19 add hl, de
361 0329 ; check row end
362 0329 FE FF cp 0xff
363 032B 20 D8 jr NZ, loop_f1_col
364 032D ; print column numbers
365 032D 16 00 ld d, 0
366 032F 21 00 00 ld hl, 0 ; h=*10 , l=*1
367 0332 fill1_nbrs:
368 0332 7D ld a, l
369 0333 C6 30 add a, '0'
370 0335 FD 62 ld iyh, d
371 0337 FD 2E 1F ld iyl, 31
372 033A DD 21 41 03 ld ix, fill1_enbrs1
373 033E C3 2F 05 jp print_chr
374 0341 fill1_enbrs1:
375 0341 7C ld a, h
376 0342 C6 30 add a, '0'
377 0344 FD 62 ld iyh, d
378 0346 FD 2E 1E ld iyl, 30
379 0349 DD 21 50 03 ld ix, fill1_enbrs2
380 034D C3 2F 05 jp print_chr
381 0350 fill1_enbrs2:
382 0350 2C inc l
383 0351 7D ld a, l
384 0352 FE 0A cp 10
385 0354 38 03 jr C, fill1_nnbrs
386 0356 24 inc h
387 0357 2E 00 ld l, 0
388 0359 fill1_nnbrs:
389 0359 14 inc d
390 035A 7A ld a, d
391 035B FE 40 cp 64
392 035D 38 D3 jr C, fill1_nbrs
393 035F fill1_end:
394 035F ; return to test
395 035F 78 ld a, b ; load configuration to A
396 0360 E6 07 and 0x07 ; extract video test number
397 0362 26 00 ld h, 0
398 0364 6F ld l, a
399 0365 29 add hl, hl
400 0366 11 F2 02 ld de, test_ret_table
401 0369 19 add hl, de
402 036A 7E ld a, (hl)
403 036B 23 inc hl
404 036C 66 ld h, (hl)
405 036D 6F ld l, a
406 036E E9 jp (hl)
407 036F
408 036F test_ret_table_2:
409 036F 00 00 .DW 0
410 0371 00 00 .DW 0
411 0373 5C 02 .DW test_4colors_pallet1_end2
412 0375 75 02 .DW test_4colors_pallet2_end2
413 0377 8E 02 .DW test_16colors_group_end2
414 0379 00 00 .DW 0
415 037B 00 00 .DW 0
416 037D DD 02 .DW test_4bit_end2
417 037F
418 037F fill_scr_2_4c:
419 037F ; enable window on RAM1
420 037F DB 0A in a, (_p0a_mem_man)
421 0381 CB CF set MEMM_RAM1EN_BIT, a
422 0383 D3 0A out (_p0a_mem_man), a
423 0385 ; set RAM 1 to segment #7
424 0385 3E 07 ld a, 7
425 0387 D3 05 out (_p05_RAM1), a
426 0389 ; screen pointer
427 0389 21 00 40 ld hl, RAM1_WINDOW
428 038C 16 00 ld d, 0 ; columns
429 038E fill2_row:
430 038E ; col N
431 038E 3E 00 ld a, 0
432 0390 fill2_sr1:
433 0390 36 FF ld (hl), 0xff
434 0392 23 inc hl
435 0393 3C inc a
436 0394 FE E0 cp 0xe0
437 0396 38 F8 jr C, fill2_sr1
438 0398 ; skip 4 rows
439 0398 7A ld a, d
440 0399 11 20 00 ld de, 0x0020
441 039C 19 add hl, de
442 039D 57 ld d, a
443 039E ; col N+1
444 039E 3E 00 ld a, 0
445 03A0 fill2_sr2:
446 03A0 36 00 ld (hl), 0x00
447 03A2 23 inc hl
448 03A3 3C inc a
449 03A4 FE E0 cp 0xe0
450 03A6 38 F8 jr C, fill2_sr2
451 03A8 ; skip 4 rows
452 03A8 7A ld a, d
453 03A9 11 20 00 ld de, 0x0020
454 03AC 19 add hl, de
455 03AD 57 ld d, a
456 03AE ; decrease columns counter
457 03AE 14 inc d
458 03AF 7A ld a, d
459 03B0 FE 20 cp 32
460 03B2 38 DA jr C, fill2_row
461 03B4 fill2_end:
462 03B4 ; disable window on RAM1
463 03B4 DB 0A in a, (_p0a_mem_man)
464 03B6 CB 8F res MEMM_RAM1EN_BIT, a
465 03B8 D3 0A out (_p0a_mem_man), a
466 03BA ; return to test
467 03BA 78 ld a, b ; load configuration to A
468 03BB E6 07 and 0x07 ; extract video test number
469 03BD 26 00 ld h, 0
470 03BF 6F ld l, a
471 03C0 29 add hl, hl
472 03C1 11 6F 03 ld de, test_ret_table_2
473 03C4 19 add hl, de
474 03C5 7E ld a, (hl)
475 03C6 23 inc hl
476 03C7 66 ld h, (hl)
477 03C8 6F ld l, a
478 03C9 E9 jp (hl)
479 03CA
480 03CA fill_scr_2_16c:
481 03CA ; enable window on RAM1
482 03CA DB 0A in a, (_p0a_mem_man)
483 03CC CB CF set MEMM_RAM1EN_BIT, a
484 03CE D3 0A out (_p0a_mem_man), a
485 03D0 ; set RAM 1 to segment #7
486 03D0 3E 07 ld a, 7
487 03D2 D3 05 out (_p05_RAM1), a
488 03D4 ; screen pointer
489 03D4 21 00 40 ld hl, RAM1_WINDOW
490 03D7 16 00 ld d, 0 ; columns
491 03D9 fill3_row:
492 03D9 ; calculate fill value
493 03D9 7A ld a, d
494 03DA E6 0F and 0x0f
495 03DC CB 27 sla a
496 03DE CB 27 sla a
497 03E0 CB 27 sla a
498 03E2 CB 27 sla a
499 03E4 5F ld e, a
500 03E5 0E 00 ld c, 0
501 03E7 ; rows main
502 03E7 fill3_sr1:
503 03E7 79 ld a, c
504 03E8 E6 0F and 0x0f
505 03EA 83 add a, e
506 03EB 77 ld (hl), a
507 03EC 23 inc hl
508 03ED 77 ld (hl), a
509 03EE 23 inc hl
510 03EF 77 ld (hl), a
511 03F0 23 inc hl
512 03F1 77 ld (hl), a
513 03F2 23 inc hl
514 03F3 77 ld (hl), a
515 03F4 23 inc hl
516 03F5 77 ld (hl), a
517 03F6 23 inc hl
518 03F7 77 ld (hl), a
519 03F8 23 inc hl
520 03F9 77 ld (hl), a
521 03FA 23 inc hl
522 03FB 0C inc c
523 03FC 79 ld a, c
524 03FD FE 1C cp 0x1c
525 03FF 38 E6 jr C, fill3_sr1
526 0401 ; rows titles
527 0401 ;ld a, d
528 0401 ;and 0x0f
529 0401 ;jr NZ, fill3_nz
530 0401 3E 01 ld a, 1
531 0403 fill3_nz:
532 0403 5F ld e, a
533 0404 3E 00 ld a, 0
534 0406 fill3_sr2:
535 0406 73 ld (hl), e
536 0407 23 inc hl
537 0408 73 ld (hl), e
538 0409 23 inc hl
539 040A 73 ld (hl), e
540 040B 23 inc hl
541 040C 73 ld (hl), e
542 040D 23 inc hl
543 040E 73 ld (hl), e
544 040F 23 inc hl
545 0410 73 ld (hl), e
546 0411 23 inc hl
547 0412 73 ld (hl), e
548 0413 23 inc hl
549 0414 73 ld (hl), e
550 0415 23 inc hl
551 0416 3C inc a
552 0417 FE 04 cp 0x4
553 0419 38 EB jr C, fill3_sr2
554 041B ; decrease columns counter
555 041B 14 inc d
556 041C 7A ld a, d
557 041D FE 40 cp 64
558 041F 38 B8 jr C, fill3_row
559 0421 fill3_end:
560 0421 ; disable window on RAM1
561 0421 DB 0A in a, (_p0a_mem_man)
562 0423 CB 8F res MEMM_RAM1EN_BIT, a
563 0425 D3 0A out (_p0a_mem_man), a
564 0427 ; return to test
565 0427 78 ld a, b ; load configuration to A
566 0428 E6 07 and 0x07 ; extract video test number
567 042A 26 00 ld h, 0
568 042C 6F ld l, a
569 042D 29 add hl, hl
570 042E 11 6F 03 ld de, test_ret_table_2
571 0431 19 add hl, de
572 0432 7E ld a, (hl)
573 0433 23 inc hl
574 0434 66 ld h, (hl)
575 0435 6F ld l, a
576 0436 E9 jp (hl)
577 0437
578 0437 test_ret_table_3:
579 0437 00 00 .DW 0
580 0439 00 00 .DW 0
581 043B 00 00 .DW 0
582 043D 00 00 .DW 0
583 043F 00 00 .DW 0
584 0441 00 00 .DW 0
585 0443 C1 02 .DW test_3bit_end3
586 0445 E0 02 .DW test_4bit_end3
587 0447
588 0447 fill_scr_blue:
589 0447 ; enable window on RAM1
590 0447 DB 0A in a, (_p0a_mem_man)
591 0449 CB CF set MEMM_RAM1EN_BIT, a
592 044B D3 0A out (_p0a_mem_man), a
593 044D ; set RAM 1 to segment #6
594 044D 3E 06 ld a, 6
595 044F D3 05 out (_p05_RAM1), a
596 0451 ; screen pointer
597 0451 21 00 40 ld hl, RAM1_WINDOW
598 0454 16 00 ld d, 0 ; columns
599 0456 fill4_row:
600 0456 0E 00 ld c, 0
601 0458 ; rows main
602 0458 fill4_sr1:
603 0458 7D ld a, l
604 0459 E6 08 and 0x08
605 045B FE 08 cp 0x08
606 045D 38 05 jr C, fill4_ff
607 045F 3E 00 ld a, 0x00
608 0461 C3 66 04 jp fill4_st
609 0464 fill4_ff:
610 0464 3E FF ld a, 0xff
611 0466 fill4_st:
612 0466 77 ld (hl), a
613 0467 23 inc hl
614 0468 77 ld (hl), a
615 0469 23 inc hl
616 046A 77 ld (hl), a
617 046B 23 inc hl
618 046C 77 ld (hl), a
619 046D 23 inc hl
620 046E 77 ld (hl), a
621 046F 23 inc hl
622 0470 77 ld (hl), a
623 0471 23 inc hl
624 0472 77 ld (hl), a
625 0473 23 inc hl
626 0474 77 ld (hl), a
627 0475 23 inc hl
628 0476 0C inc c
629 0477 79 ld a, c
630 0478 FE 1C cp 0x1c
631 047A 38 DC jr C, fill4_sr1
632 047C ; rows titles
633 047C ;ld a, d
634 047C ;and 0x0f
635 047C ;jr NZ, fill3_nz
636 047C 3E 01 ld a, 1
637 047E fill4_nz:
638 047E 1E 00 ld e, 0
639 0480 3E 00 ld a, 0
640 0482 fill4_sr2:
641 0482 73 ld (hl), e
642 0483 23 inc hl
643 0484 73 ld (hl), e
644 0485 23 inc hl
645 0486 73 ld (hl), e
646 0487 23 inc hl
647 0488 73 ld (hl), e
648 0489 23 inc hl
649 048A 73 ld (hl), e
650 048B 23 inc hl
651 048C 73 ld (hl), e
652 048D 23 inc hl
653 048E 73 ld (hl), e
654 048F 23 inc hl
655 0490 73 ld (hl), e
656 0491 23 inc hl
657 0492 3C inc a
658 0493 FE 04 cp 0x4
659 0495 38 EB jr C, fill4_sr2
660 0497 ; decrease columns counter
661 0497 14 inc d
662 0498 7A ld a, d
663 0499 FE 40 cp 64
664 049B 38 B9 jr C, fill4_row
665 049D fill4_end:
666 049D ; disable window on RAM1
667 049D DB 0A in a, (_p0a_mem_man)
668 049F CB 8F res MEMM_RAM1EN_BIT, a
669 04A1 D3 0A out (_p0a_mem_man), a
670 04A3 ; return to test
671 04A3 78 ld a, b ; load configuration to A
672 04A4 E6 07 and 0x07 ; extract video test number
673 04A6 26 00 ld h, 0
674 04A8 6F ld l, a
675 04A9 29 add hl, hl
676 04AA 11 37 04 ld de, test_ret_table_3
677 04AD 19 add hl, de
678 04AE 7E ld a, (hl)
679 04AF 23 inc hl
680 04B0 66 ld h, (hl)
681 04B1 6F ld l, a
682 04B2 E9 jp (hl)
683 04B3
684 04B3 test_ret_table_4:
685 04B3 00 00 .DW 0
686 04B5 00 00 .DW 0
687 04B7 00 00 .DW 0
688 04B9 00 00 .DW 0
689 04BB 00 00 .DW 0
690 04BD 00 00 .DW 0
691 04BF C4 02 .DW test_3bit_end4
692 04C1 E3 02 .DW test_4bit_end4
693 04C3
694 04C3 fill_scr_red:
695 04C3 ; enable window on RAM1
696 04C3 DB 0A in a, (_p0a_mem_man)
697 04C5 CB CF set MEMM_RAM1EN_BIT, a
698 04C7 D3 0A out (_p0a_mem_man), a
699 04C9 ; set RAM 1 to segment #2
700 04C9 3E 02 ld a, 2
701 04CB D3 05 out (_p05_RAM1), a
702 04CD ; screen pointer
703 04CD 21 00 40 ld hl, RAM1_WINDOW
704 04D0 16 00 ld d, 0 ; columns
705 04D2 fill5_row:
706 04D2 0E 00 ld c, 0
707 04D4 ; rows main
708 04D4 fill5_sr1:
709 04D4 7D ld a, l
710 04D5 E6 10 and 0x10
711 04D7 FE 10 cp 0x10
712 04D9 38 05 jr C, fill5_ff
713 04DB 3E 00 ld a, 0x00
714 04DD C3 E2 04 jp fill5_st
715 04E0 fill5_ff:
716 04E0 3E FF ld a, 0xff
717 04E2 fill5_st:
718 04E2 77 ld (hl), a
719 04E3 23 inc hl
720 04E4 77 ld (hl), a
721 04E5 23 inc hl
722 04E6 77 ld (hl), a
723 04E7 23 inc hl
724 04E8 77 ld (hl), a
725 04E9 23 inc hl
726 04EA 77 ld (hl), a
727 04EB 23 inc hl
728 04EC 77 ld (hl), a
729 04ED 23 inc hl
730 04EE 77 ld (hl), a
731 04EF 23 inc hl
732 04F0 77 ld (hl), a
733 04F1 23 inc hl
734 04F2 0C inc c
735 04F3 79 ld a, c
736 04F4 FE 1C cp 0x1c
737 04F6 38 DC jr C, fill5_sr1
738 04F8 ; rows titles
739 04F8 ;ld a, d
740 04F8 ;and 0x0f
741 04F8 ;jr NZ, fill3_nz
742 04F8 3E 01 ld a, 1
743 04FA fill5_nz:
744 04FA 1E 00 ld e, 0
745 04FC 3E 00 ld a, 0
746 04FE fill5_sr2:
747 04FE 73 ld (hl), e
748 04FF 23 inc hl
749 0500 73 ld (hl), e
750 0501 23 inc hl
751 0502 73 ld (hl), e
752 0503 23 inc hl
753 0504 73 ld (hl), e
754 0505 23 inc hl
755 0506 73 ld (hl), e
756 0507 23 inc hl
757 0508 73 ld (hl), e
758 0509 23 inc hl
759 050A 73 ld (hl), e
760 050B 23 inc hl
761 050C 73 ld (hl), e
762 050D 23 inc hl
763 050E 3C inc a
764 050F FE 04 cp 0x4
765 0511 38 EB jr C, fill5_sr2
766 0513 ; decrease columns counter
767 0513 14 inc d
768 0514 7A ld a, d
769 0515 FE 40 cp 64
770 0517 38 B9 jr C, fill5_row
771 0519 fill5_end:
772 0519 ; disable window on RAM1
773 0519 DB 0A in a, (_p0a_mem_man)
774 051B CB 8F res MEMM_RAM1EN_BIT, a
775 051D D3 0A out (_p0a_mem_man), a
776 051F ; return to test
777 051F 78 ld a, b ; load configuration to A
778 0520 E6 07 and 0x07 ; extract video test number
779 0522 26 00 ld h, 0
780 0524 6F ld l, a
781 0525 29 add hl, hl
782 0526 11 B3 04 ld de, test_ret_table_4
783 0529 19 add hl, de
784 052A 7E ld a, (hl)
785 052B 23 inc hl
786 052C 66 ld h, (hl)
787 052D 6F ld l, a
788 052E E9 jp (hl)
789 052F
790 052F print_chr:
791 052F ; parameters:
792 052F ; A - char
793 052F ; iyh - column
794 052F ; iyl - row
795 052F ; ix - return address
796 052F ; usage:
797 052F ; shadow registers
798 052F D9 exx
799 0530 ; get character start
800 0530 11 5F 05 ld de, font
801 0533 26 00 ld h, 0
802 0535 6F ld l, a
803 0536 29 add hl, hl ; *2
804 0537 29 add hl, hl ; *2
805 0538 29 add hl, hl ; *2
806 0539 19 add hl, de
807 053A ; calculate screen start
808 053A FD 7D ld a, iyl ;28
809 053C 87 add a, a ; *2
810 053D 87 add a, a ; *2
811 053E 87 add a, a ; *2
812 053F 5F ld e, a
813 0540 FD 7C ld a, iyh ;0
814 0542 C6 C0 add a, 0xc0
815 0544 57 ld d, a
816 0545 ; set count
817 0545 01 08 00 ld bc, 0x0008
818 0548 ED B0 ldir
819 054A D9 exx
820 054B DD E9 jp ix
821 054D
822 054D print_str:
823 054D ; parameters:
824 054D ; de - string start (ZERO-ended)
825 054D ; iyh - column
826 054D ; iyl - row
827 054D ; hl - return address
828 054D DD 21 5A 05 ld ix, print_str_add
829 0551 print_str_loop:
830 0551 1A ld a, (de)
831 0552 FE 00 cp 0
832 0554 28 08 jr Z, print_str_exit
833 0556 13 inc de
834 0557 C3 2F 05 jp print_chr
835 055A print_str_add:
836 055A FD 24 inc iyh
837 055C 18 F3 jr print_str_loop
838 055E print_str_exit:
839 055E E9 jp hl
840 055F
841 055F font:
842 055F .db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // 0
842 055F 0000000000000000
843 0567 .db 0x00, 0x3E, 0x41, 0x55, 0x41, 0x55, 0x49, 0x3E // 1
843 0567 003E41554155493E
844 056F .db 0x00, 0x3E, 0x7F, 0x6B, 0x7F, 0x6B, 0x77, 0x3E // 2
844 056F 003E7F6B7F6B773E
845 0577 .db 0x00, 0x22, 0x77, 0x7F, 0x7F, 0x3E, 0x1C, 0x08 // 3
845 0577 0022777F7F3E1C08
846 057F .db 0x00, 0x08, 0x1C, 0x3E, 0x7F, 0x3E, 0x1C, 0x08 // 4
846 057F 00081C3E7F3E1C08
847 0587 .db 0x00, 0x08, 0x1C, 0x2A, 0x7F, 0x2A, 0x08, 0x1C // 5
847 0587 00081C2A7F2A081C
848 058F .db 0x00, 0x08, 0x1C, 0x3E, 0x7F, 0x3E, 0x08, 0x1C // 6
848 058F 00081C3E7F3E081C
849 0597 .db 0x00, 0x00, 0x1C, 0x3E, 0x3E, 0x3E, 0x1C, 0x00 // 7
849 0597 00001C3E3E3E1C00
850 059F .db 0xFF, 0xFF, 0xE3, 0xC1, 0xC1, 0xC1, 0xE3, 0xFF // 8
850 059F FFFFE3C1C1C1E3FF
851 05A7 .db 0x00, 0x00, 0x1C, 0x22, 0x22, 0x22, 0x1C, 0x00 // 9
851 05A7 00001C2222221C00
852 05AF .db 0xFF, 0xFF, 0xE3, 0xDD, 0xDD, 0xDD, 0xE3, 0xFF // a
852 05AF FFFFE3DDDDDDE3FF
853 05B7 .db 0x00, 0x0F, 0x03, 0x05, 0x39, 0x48, 0x48, 0x30 // b
853 05B7 000F030539484830
854 05BF .db 0x00, 0x08, 0x3E, 0x08, 0x1C, 0x22, 0x22, 0x1C // c
854 05BF 00083E081C22221C
855 05C7 .db 0x00, 0x18, 0x14, 0x10, 0x10, 0x30, 0x70, 0x60 // d
855 05C7 0018141010307060
856 05CF .db 0x00, 0x0F, 0x19, 0x11, 0x13, 0x37, 0x76, 0x60 // e
856 05CF 000F191113377660
857 05D7 .db 0x00, 0x08, 0x2A, 0x1C, 0x77, 0x1C, 0x2A, 0x08 // f
857 05D7 00082A1C771C2A08
858 05DF .db 0x00, 0x60, 0x78, 0x7E, 0x7F, 0x7E, 0x78, 0x60 // 10
858 05DF 0060787E7F7E7860
859 05E7 .db 0x00, 0x03, 0x0F, 0x3F, 0x7F, 0x3F, 0x0F, 0x03 // 11
859 05E7 00030F3F7F3F0F03
860 05EF .db 0x00, 0x08, 0x1C, 0x2A, 0x08, 0x2A, 0x1C, 0x08 // 12
860 05EF 00081C2A082A1C08
861 05F7 .db 0x00, 0x66, 0x66, 0x66, 0x66, 0x00, 0x66, 0x66 // 13
861 05F7 0066666666006666
862 05FF .db 0x00, 0x3F, 0x65, 0x65, 0x3D, 0x05, 0x05, 0x05 // 14
862 05FF 003F65653D050505
863 0607 .db 0x00, 0x0C, 0x32, 0x48, 0x24, 0x12, 0x4C, 0x30 // 15
863 0607 000C324824124C30
864 060F .db 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7F, 0x7F // 16
864 060F 00000000007F7F7F
865 0617 .db 0x00, 0x08, 0x1C, 0x2A, 0x08, 0x2A, 0x1C, 0x3E // 17
865 0617 00081C2A082A1C3E
866 061F .db 0x00, 0x08, 0x1C, 0x3E, 0x7F, 0x1C, 0x1C, 0x1C // 18
866 061F 00081C3E7F1C1C1C
867 0627 .db 0x00, 0x1C, 0x1C, 0x1C, 0x7F, 0x3E, 0x1C, 0x08 // 19
867 0627 001C1C1C7F3E1C08
868 062F .db 0x00, 0x08, 0x0C, 0x7E, 0x7F, 0x7E, 0x0C, 0x08 // 1a
868 062F 00080C7E7F7E0C08
869 0637 .db 0x00, 0x08, 0x18, 0x3F, 0x7F, 0x3F, 0x18, 0x08 // 1b
869 0637 0008183F7F3F1808
870 063F .db 0x00, 0x00, 0x00, 0x70, 0x70, 0x70, 0x7F, 0x7F // 1c
870 063F 0000007070707F7F
871 0647 .db 0x00, 0x00, 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00 // 1d
871 0647 000014227F221400
872 064F .db 0x00, 0x08, 0x1C, 0x1C, 0x3E, 0x3E, 0x7F, 0x7F // 1e
872 064F 00081C1C3E3E7F7F
873 0657 .db 0x00, 0x7F, 0x7F, 0x3E, 0x3E, 0x1C, 0x1C, 0x08 // 1f
873 0657 007F7F3E3E1C1C08
874 065F .db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // 20
874 065F 0000000000000000
875 0667 .db 0x00, 0x18, 0x3C, 0x3C, 0x18, 0x18, 0x00, 0x18 // 21
875 0667 00183C3C18180018
876 066F .db 0x00, 0x36, 0x36, 0x14, 0x00, 0x00, 0x00, 0x00 // 22
876 066F 0036361400000000
877 0677 .db 0x00, 0x36, 0x36, 0x7F, 0x36, 0x7F, 0x36, 0x36 // 23
877 0677 0036367F367F3636
878 067F .db 0x00, 0x08, 0x1E, 0x20, 0x1C, 0x02, 0x3C, 0x08 // 24
878 067F 00081E201C023C08
879 0687 .db 0x00, 0x60, 0x66, 0x0C, 0x18, 0x30, 0x66, 0x06 // 25
879 0687 0060660C18306606
880 068F .db 0x00, 0x3C, 0x66, 0x3C, 0x28, 0x65, 0x66, 0x3F // 26
880 068F 003C663C2865663F
881 0697 .db 0x00, 0x18, 0x18, 0x18, 0x30, 0x00, 0x00, 0x00 // 27
881 0697 0018181830000000
882 069F .db 0x00, 0x06, 0x0C, 0x18, 0x18, 0x18, 0x0C, 0x06 //
882 069F 00060C1818180C06
883 06A7 .db 0x00, 0x60, 0x30, 0x18, 0x18, 0x18, 0x30, 0x60 //
883 06A7 0060301818183060
884 06AF .db 0x00, 0x00, 0x36, 0x1C, 0x7F, 0x1C, 0x36, 0x00
884 06AF 0000361C7F1C3600
885 06B7 .db 0x00, 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00
885 06B7 000008083E080800
886 06BF .db 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x30, 0x60
886 06BF 0000000030303060
887 06C7 .db 0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00
887 06C7 000000003C000000
888 06CF .db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x60
888 06CF 0000000000006060
889 06D7 .db 0x00, 0x00, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x00
889 06D7 0000060C18306000
890 06DF .db 0x00, 0x3C, 0x66, 0x6E, 0x76, 0x66, 0x66, 0x3C
890 06DF 003C666E7666663C
891 06E7 .db 0x00, 0x18, 0x18, 0x38, 0x18, 0x18, 0x18, 0x7E
891 06E7 001818381818187E
892 06EF .db 0x00, 0x3C, 0x66, 0x06, 0x0C, 0x30, 0x60, 0x7E
892 06EF 003C66060C30607E
893 06F7 .db 0x00, 0x3C, 0x66, 0x06, 0x1C, 0x06, 0x66, 0x3C
893 06F7 003C66061C06663C
894 06FF .db 0x00, 0x0C, 0x1C, 0x2C, 0x4C, 0x7E, 0x0C, 0x0C
894 06FF 000C1C2C4C7E0C0C
895 0707 .db 0x00, 0x7E, 0x60, 0x7C, 0x06, 0x06, 0x66, 0x3C
895 0707 007E607C0606663C
896 070F .db 0x00, 0x3C, 0x66, 0x60, 0x7C, 0x66, 0x66, 0x3C
896 070F 003C66607C66663C
897 0717 .db 0x00, 0x7E, 0x66, 0x0C, 0x0C, 0x18, 0x18, 0x18
897 0717 007E660C0C181818
898 071F .db 0x00, 0x3C, 0x66, 0x66, 0x3C, 0x66, 0x66, 0x3C
898 071F 003C66663C66663C
899 0727 .db 0x00, 0x3C, 0x66, 0x66, 0x3E, 0x06, 0x66, 0x3C
899 0727 003C66663E06663C
900 072F .db 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00
900 072F 0000181800181800
901 0737 .db 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x30
901 0737 0000181800181830
902 073F .db 0x00, 0x06, 0x0C, 0x18, 0x30, 0x18, 0x0C, 0x06
902 073F 00060C1830180C06
903 0747 .db 0x00, 0x00, 0x00, 0x3C, 0x00, 0x3C, 0x00, 0x00
903 0747 0000003C003C0000
904 074F .db 0x00, 0x60, 0x30, 0x18, 0x0C, 0x18, 0x30, 0x60
904 074F 006030180C183060
905 0757 .db 0x00, 0x3C, 0x66, 0x06, 0x1C, 0x18, 0x00, 0x18
905 0757 003C66061C180018
906 075F .db 0x00, 0x38, 0x44, 0x5C, 0x58, 0x42, 0x3C, 0x00
906 075F 0038445C58423C00
907 0767 .db 0x00, 0x3C, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x66
907 0767 003C66667E666666
908 076F .db 0x00, 0x7C, 0x66, 0x66, 0x7C, 0x66, 0x66, 0x7C
908 076F 007C66667C66667C
909 0777 .db 0x00, 0x3C, 0x66, 0x60, 0x60, 0x60, 0x66, 0x3C
909 0777 003C66606060663C
910 077F .db 0x00, 0x7C, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7C
910 077F 007C66666666667C
911 0787 .db 0x00, 0x7E, 0x60, 0x60, 0x7C, 0x60, 0x60, 0x7E
911 0787 007E60607C60607E
912 078F .db 0x00, 0x7E, 0x60, 0x60, 0x7C, 0x60, 0x60, 0x60
912 078F 007E60607C606060
913 0797 .db 0x00, 0x3C, 0x66, 0x60, 0x60, 0x6E, 0x66, 0x3C
913 0797 003C6660606E663C
914 079F .db 0x00, 0x66, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x66
914 079F 006666667E666666
915 07A7 .db 0x00, 0x3C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C
915 07A7 003C18181818183C
916 07AF .db 0x00, 0x1E, 0x0C, 0x0C, 0x0C, 0x6C, 0x6C, 0x38
916 07AF 001E0C0C0C6C6C38
917 07B7 .db 0x00, 0x66, 0x6C, 0x78, 0x70, 0x78, 0x6C, 0x66
917 07B7 00666C7870786C66
918 07BF .db 0x00, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7E
918 07BF 006060606060607E
919 07C7 .db 0x00, 0x63, 0x77, 0x7F, 0x6B, 0x63, 0x63, 0x63
919 07C7 0063777F6B636363
920 07CF .db 0x00, 0x63, 0x73, 0x7B, 0x6F, 0x67, 0x63, 0x63
920 07CF 0063737B6F676363
921 07D7 .db 0x00, 0x3C, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C
921 07D7 003C66666666663C
922 07DF .db 0x00, 0x7C, 0x66, 0x66, 0x66, 0x7C, 0x60, 0x60
922 07DF 007C6666667C6060
923 07E7 .db 0x00, 0x3C, 0x66, 0x66, 0x66, 0x6E, 0x3C, 0x06
923 07E7 003C6666666E3C06
924 07EF .db 0x00, 0x7C, 0x66, 0x66, 0x7C, 0x78, 0x6C, 0x66
924 07EF 007C66667C786C66
925 07F7 .db 0x00, 0x3C, 0x66, 0x60, 0x3C, 0x06, 0x66, 0x3C
925 07F7 003C66603C06663C
926 07FF .db 0x00, 0x7E, 0x5A, 0x18, 0x18, 0x18, 0x18, 0x18
926 07FF 007E5A1818181818
927 0807 .db 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3E
927 0807 006666666666663E
928 080F .db 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x18
928 080F 0066666666663C18
929 0817 .db 0x00, 0x63, 0x63, 0x63, 0x6B, 0x7F, 0x77, 0x63
929 0817 006363636B7F7763
930 081F .db 0x00, 0x63, 0x63, 0x36, 0x1C, 0x36, 0x63, 0x63
930 081F 006363361C366363
931 0827 .db 0x00, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x18, 0x18
931 0827 006666663C181818
932 082F .db 0x00, 0x7E, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x7E
932 082F 007E060C1830607E
933 0837 .db 0x00, 0x1E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1E
933 0837 001E18181818181E
934 083F .db 0x00, 0x00, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x00
934 083F 00006030180C0600
935 0847 .db 0x00, 0x78, 0x18, 0x18, 0x18, 0x18, 0x18, 0x78
935 0847 0078181818181878
936 084F .db 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, 0x00, 0x00
936 084F 0008142241000000
937 0857 .db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F
937 0857 000000000000007F
938 085F .db 0x00, 0x0C, 0x0C, 0x06, 0x00, 0x00, 0x00, 0x00
938 085F 000C0C0600000000
939 0867 .db 0x00, 0x00, 0x00, 0x3C, 0x06, 0x3E, 0x66, 0x3E
939 0867 0000003C063E663E
940 086F .db 0x00, 0x60, 0x60, 0x60, 0x7C, 0x66, 0x66, 0x7C
940 086F 006060607C66667C
941 0877 .db 0x00, 0x00, 0x00, 0x3C, 0x66, 0x60, 0x66, 0x3C
941 0877 0000003C6660663C
942 087F .db 0x00, 0x06, 0x06, 0x06, 0x3E, 0x66, 0x66, 0x3E
942 087F 000606063E66663E
943 0887 .db 0x00, 0x00, 0x00, 0x3C, 0x66, 0x7E, 0x60, 0x3C
943 0887 0000003C667E603C
944 088F .db 0x00, 0x1C, 0x36, 0x30, 0x30, 0x7C, 0x30, 0x30
944 088F 001C3630307C3030
945 0897 .db 0x00, 0x00, 0x3E, 0x66, 0x66, 0x3E, 0x06, 0x3C
945 0897 00003E66663E063C
946 089F .db 0x00, 0x60, 0x60, 0x60, 0x7C, 0x66, 0x66, 0x66
946 089F 006060607C666666
947 08A7 .db 0x00, 0x00, 0x18, 0x00, 0x18, 0x18, 0x18, 0x3C
947 08A7 000018001818183C
948 08AF .db 0x00, 0x0C, 0x00, 0x0C, 0x0C, 0x6C, 0x6C, 0x38
948 08AF 000C000C0C6C6C38
949 08B7 .db 0x00, 0x60, 0x60, 0x66, 0x6C, 0x78, 0x6C, 0x66
949 08B7 006060666C786C66
950 08BF .db 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18
950 08BF 0018181818181818
951 08C7 .db 0x00, 0x00, 0x00, 0x63, 0x77, 0x7F, 0x6B, 0x6B
951 08C7 00000063777F6B6B
952 08CF .db 0x00, 0x00, 0x00, 0x7C, 0x7E, 0x66, 0x66, 0x66
952 08CF 0000007C7E666666
953 08D7 .db 0x00, 0x00, 0x00, 0x3C, 0x66, 0x66, 0x66, 0x3C
953 08D7 0000003C6666663C
954 08DF .db 0x00, 0x00, 0x7C, 0x66, 0x66, 0x7C, 0x60, 0x60
954 08DF 00007C66667C6060
955 08E7 .db 0x00, 0x00, 0x3C, 0x6C, 0x6C, 0x3C, 0x0D, 0x0F
955 08E7 00003C6C6C3C0D0F
956 08EF .db 0x00, 0x00, 0x00, 0x7C, 0x66, 0x66, 0x60, 0x60
956 08EF 0000007C66666060
957 08F7 .db 0x00, 0x00, 0x00, 0x3E, 0x40, 0x3C, 0x02, 0x7C
957 08F7 0000003E403C027C
958 08FF .db 0x00, 0x00, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x18
958 08FF 000018187E181818
959 0907 .db 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3E
959 0907 000000666666663E
960 090F .db 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x3C, 0x18
960 090F 0000000066663C18
961 0917 .db 0x00, 0x00, 0x00, 0x63, 0x6B, 0x6B, 0x6B, 0x3E
961 0917 000000636B6B6B3E
962 091F .db 0x00, 0x00, 0x00, 0x66, 0x3C, 0x18, 0x3C, 0x66
962 091F 000000663C183C66
963 0927 .db 0x00, 0x00, 0x00, 0x66, 0x66, 0x3E, 0x06, 0x3C
963 0927 00000066663E063C
964 092F .db 0x00, 0x00, 0x00, 0x3C, 0x0C, 0x18, 0x30, 0x3C
964 092F 0000003C0C18303C
965 0937 .db 0x00, 0x0E, 0x18, 0x18, 0x30, 0x18, 0x18, 0x0E
965 0937 000E18183018180E
966 093F .db 0x00, 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18
966 093F 0018181800181818
967 0947 .db 0x00, 0x70, 0x18, 0x18, 0x0C, 0x18, 0x18, 0x70
967 0947 007018180C181870
968 094F .db 0x00, 0x00, 0x00, 0x3A, 0x6C, 0x00, 0x00, 0x00
968 094F 0000003A6C000000
969 0957 .db 0x00, 0x08, 0x1C, 0x36, 0x63, 0x41, 0x41, 0x7F
969 0957 00081C366341417F