; ; DZ80 V3.4.1 8080 Disassembly of archive/VT100.bin ; 2016/08/03 14:55 ; ; Comments beginning with ";;" borrowed from Adam Mayer's (https://github.com/phooky) ; work at https://github.com/phooky/VT100-Hax/blob/master/ROMs/haxrom.d80 and http://vt100romhax.tumblr.com ; ; All other comments/annotations by Jeff Parsons (@jeffpar) ; ; ; Data area definitions ; 20 4E stack_top equ 204eh 20 4E scratch_start equ 204eh ; ; The "Keys Flag Byte/Buffer" at 0x2068 contains the following bits: ; ; 0-1 Key counter ; 2 Key counter overflow bit ; 3 Setup ; 4 Control ; 5 Shift ; 6 Caps Lock ; 7 Last Key ; 20 68 key_flags equ 2068h ; "Keys Flag Buffer" 20 6A key_buffer equ 206ah ; start of the "three place New Key Address Buffer" 20 F6 cursor_address equ 20f6h 21 2D cursor_countdn equ 212dh 21 BA cursor_visible equ 21bah ; ; Reset vector ; 00 00 org 0 39 0000 F3 di 40 0001 31 4E 20 lxi sp,stack_top ; SP = 0x204e 41 0004 C3 3B 00 jmp reset ; ; Interrupt vector 0x1 for Keyboard ; 00 08 org 8 46 0008 CD FD 00 call X00fd 47 000B FB ei 48 000C C9 ret ; ; Interrupt vector 0x2 for PUSART ; 00 10 org 10h 53 0010 CD CC 03 call X03cc 54 0013 FB ei 55 0014 C9 ret ; ; Interrupt vector 0x3 for Keyboard and PUSART ; 00 18 org 18h 60 0018 CD CC 03 call X03cc 61 001B CD FD 00 call X00fd 62 001E FB ei 63 001F C9 ret ; ; Interrupt vector 0x4 for Video (vertical retrace) ; 00 20 org 20h 68 0020 CD CF 04 call X04cf 69 0023 C9 ret ; ; Interrupt vector 0x5 for Keyboard and Video ; 00 28 org 28h 74 0028 CD CF 04 call X04cf 75 002B C9 ret ; ; Interrupt vector 0x6 for PUSART and Video ; 00 30 org 30h 80 0030 CD CC 03 X0030: call X03cc 81 0033 CD CF 04 call X04cf 82 0036 FB ei 83 0037 C9 ret ; ; Interrupt vector 0x7 for Keyboard and PUSART and Video ; 00 38 org 38h 88 0038 C3 30 00 jmp X0030 ; ; Beginning of power-up (reset) code at 0x003b ; 93 003B 1E 01 reset: mvi e,1 94 003D F3 X003d: di 95 003E 3E 0F mvi a,0fh 96 0040 D3 62 out 62h ;; 0x0f to NVR latch 97 0042 2F cma ;; invert A (0xf0) 98 0043 D3 42 out 42h ;; 0xf0 to brightness ;; ;; Run checksum on each 2K ROM, indicating with ;; the keyboard LEDs which is being scanned. ;; The # of the chip being scanned is stored in B. ;; 104 0045 AF xra a ;; zero A 105 0046 57 mov d,a ;; zero D, L, H 106 0047 6F mov l,a 107 0048 67 mov h,a 108 0049 3C X0049: inr a ;; next 2K ROM 109 004A 47 mov b,a ;; store the current ROM # in B 110 004B D3 82 out 82h ;; show current ROM on LEDs 111 004D 0E 08 mvi c,8 ;; Checksum over 8 256B blocks 112 004F 07 X004f: rlc ;; Rotate A left 113 0050 AE xra m ;; A <- A ^ memory 114 0051 2C inr l ;; next memory address 115 0052 C2 4F 00 jnz X004f ;; ... repeat until end of block 116 0055 24 inr h ;; next block 117 0056 0D dcr c ;; decrement block count 118 0057 C2 4F 00 jnz X004f ;; ... repeat until end of chip 119 005A B7 ora a ;; Check the value of the accumulator 120 005B C2 5B 00 X005b: jnz X005b ;; If it's not zero, hang forever 121 005E 78 mov a,b ;; Put the ROM # back in the accumulator 122 005F FE 04 cpi 4 ;; If it's not 4... 123 0061 C2 49 00 jnz X0049 ;; repeat for the next ROM 125 0064 3C inr a 126 0065 D3 82 out 82h ;; write 5 to LEDs (turns on L2 and L4) 128 0067 0E AA mvi c,0aah ;; Test pattern: 0xaa 129 0069 06 2C mvi b,2ch ;; 0x2c is the top of RAM on the basic board 130 006B DB 42 in 42h ;; 131 006D E6 02 ani 2 ;; flags buffer &= 0x02 : is AVO installed? 132 006F C2 74 00 jnz X0074 ;; if bit 2 is not set, AVO is installed 133 0072 06 40 mvi b,40h ;; 0x40 is the top of RAM on the AVO 134 0074 60 X0074: mov h,b ;; load HL with top of RAM 135 0075 2B dcx h ;; dec HL 136 0076 36 00 X0076: mvi m,0 ;; M <- 0 137 0078 2B dcx h ;; dec HL 138 0079 7C mov a,h ;; a <- h 139 007A FE 1F cpi 1fh ;; compare to 1f (top of ROM) 140 007C C2 76 00 jnz X0076 ;; continue to zero if not at ROM 142 007F 23 inx h ;; ;; Zero all RAM. C gets the high byte of the address of the top of ;; RAM, HL is loaded with it, and it zeros memory all the way down, ;; leaving the start of RAM in HL ;; ;; From start of RAM, test that it's all zero ;; 150 0080 7E X0080: mov a,m ;; read a byte of memory 151 0081 B7 ora a 152 0082 CA 90 00 jz X0090 ;; if it's zero, skip ahead 153 0085 E6 0F ani 0fh 154 0087 7C mov a,h 155 0088 C2 A1 00 jnz X00a1 ;; err 156 008B FE 30 cpi 30h 157 008D DA A1 00 jc X00a1 ;; err 158 0090 71 X0090: mov m,c ;; run test pattern through ram 159 0091 7E mov a,m 160 0092 A9 xra c 161 0093 CA A8 00 jz X00a8 ;; jump to 00a8 if ok 162 0096 E6 0F ani 0fh 163 0098 7C mov a,h 164 0099 C2 A1 00 jnz X00a1 ;; err 165 009C FE 30 cpi 30h 166 009E D2 A8 00 jnc X00a8 ;; ok 167 00A1 16 01 X00a1: mvi d,1 168 00A3 FE 2C cpi 2ch 169 00A5 DA A5 00 X00a5: jc X00a5 ;; Hang if non-AVO memory 170 00A8 AF X00a8: xra a 171 00A9 23 inx h 172 00AA B5 ora l 173 00AB C2 80 00 jnz X0080 174 00AE B4 ora h 175 00AF B8 cmp b 176 00B0 C2 80 00 jnz X0080 177 00B3 79 mov a,c ;; Repeat mem test with pattern 0x55 178 00B4 07 rlc 179 00B5 4F mov c,a 180 00B6 DA 74 00 jc X0074 ;; ;; Memory test is done ;; 184 00B9 D5 push d 185 00BA CD A4 02 call X02a4 ;; zero scratch and screen mem 186 00BD CD EB 02 call X02eb ;; Set a number of scratch values to fixed values 187 00C0 CD 5B 17 call X175b ;; .... more memory initialization 188 00C3 D1 pop d 189 00C4 CA CB 00 X00c4: jz X00cb 190 00C7 7A mov a,d 191 00C8 F6 02 ori 2 192 00CA 57 mov d,a 193 00CB 3E 2F X00cb: mvi a,2fh 194 00CD 32 C9 21 sta X21c9 195 00D0 D3 62 out 62h ; ; Prepare to enter the "beep" loop ; 199 00D2 01 FF 0F X00d2: lxi b,X0fff 200 00D5 FB ei 201 00D6 3E 08 X00d6: mvi a,8 202 00D8 A3 ana e 203 00D9 3E 7F mvi a,7fh 204 00DB C2 E0 00 jnz X00e0 205 00DE 3E FF mvi a,0ffh 206 00E0 D3 82 X00e0: out 82h 207 00E2 0B dcx b 208 00E3 78 mov a,b 209 00E4 B1 ora c 210 00E5 C2 D6 00 jnz X00d6 ; ; Done "beeping" now ; 214 00E8 D3 82 X00e8: out 82h ; A = 0, so all LEDs off now 215 00EA 3A 68 20 lda key_flags 216 00ED B7 ora a 217 00EE FA F5 00 jm X00f5 218 00F1 7A mov a,d 219 00F2 F6 04 ori 4 220 00F4 57 mov d,a 221 00F5 D5 X00f5: push d ; ; The next call issues the following: ; ; 03A2 CD8103 CALL 0381 ;stack=204A ; 0B67 CDAD10 CALL 10AD ;stack=2048 ; chipset.outPort(0x00A2,DC012,0x00) at 10BD ; chipset.outPort(0x00A2,DC012,0x04) at 10C1 ; ; and then: ; ; 03A2 CD8103 CALL 0381 ;stack=204A ; 0B67 CDAD10 CALL 10AD ;stack=2048 ; 10C9 CDAA0F CALL 0FAA ;stack=2046 ; 0FB6 CC8814 CALLZ 1488 ;stack=2040 ; 1488 CD9314 CALL 1493 ;stack=203E ; chipset.inPort(0x0042,FLAGS.BUFFER): 0x60 at 1493 ; ; Note that once we're inside 0FAA, that appears to be where we stay. ; 242 00F6 CD A2 03 call X03a2 244 00F9 D1 pop d 245 00FA C3 75 08 jmp X0875 ; ; Keyboard interrupt handler ; 249 00FD F5 X00fd: push psw 250 00FE DB 82 in 82h ;; Read from keyboard port 251 0100 E5 push h 252 0101 C5 push b 253 0102 47 mov b,a ;; copy b <- a 254 0103 D6 7C sui 7ch ;; subtract 0x7c from a 255 0105 FA 1A 01 jm X011a ;; jump to 011a if a is a normal key 256 0108 67 mov h,a ;; otherwise h <- a 257 0109 24 inr h ;; h++ 258 010A 3E 10 mvi a,10h ;; a <- 0x10 259 010C 0F rrc 260 010D 07 X010d: rlc 261 010E 25 dcr h 262 010F C2 0D 01 jnz X010d 263 0112 21 68 20 lxi h,key_flags ;; load keys flag addresss 264 0115 B6 ora m ;; or in control bit 265 0116 77 mov m,a ;; store again 266 0117 C3 2D 01 jmp X012d ;; jump to end to interrupt 268 011A 21 68 20 X011a: lxi h,key_flags ;; load keys flag address 269 011D 3E 07 mvi a,7 270 011F A6 ana m ;; load key counter 271 0120 FE 04 cpi 4 ;; if overflow.. (>3 keys) 272 0122 F2 2D 01 jp X012d ;; discard keypress and end interrupt 273 0125 34 inr m ;; otherwise increment key counter 274 0126 21 6A 20 lxi h,key_buffer ;; load key address buffer 275 0129 CD DE 13 call X13de ;; add key counter to address buffer 276 012C 70 mov m,b ;; save key to address buffer 277 012D C1 X012d: pop b 278 012E E1 pop h 279 012F F1 pop psw 280 0130 C9 ret ;; ;; End of keyboard interrupt handler ;; 284 0131 E6 7F X0131: ani 7fh 285 0133 4F mov c,a 286 0134 3A 7B 20 lda X207b 287 0137 B7 ora a 288 0138 C2 FF 01 jnz X01ff 289 013B 79 X013b: mov a,c 290 013C FE 01 cpi 1 291 013E CA C3 01 jz X01c3 292 0141 3A A7 21 lda X21a7 293 0144 E6 20 ani 20h 294 0146 C2 75 01 jnz X0175 295 0149 3A 78 21 lda X2178 296 014C B7 ora a 297 014D C2 5F 01 jnz X015f 298 0150 79 mov a,c 299 0151 FE 41 cpi 41h 300 0153 FA 5B 01 jm X015b 301 0156 3E 1B mvi a,1bh 302 0158 CD 18 0F call X0f18 303 015B 79 X015b: mov a,c 304 015C C3 0D 08 jmp X080d 306 015F 3E 1B X015f: mvi a,1bh 307 0161 CD 18 0F call X0f18 308 0164 79 mov a,c 309 0165 FE 41 cpi 41h 310 0167 F2 5B 01 jp X015b 311 016A 3E 3F mvi a,3fh 312 016C CD 18 0F X016c: call X0f18 313 016F 79 mov a,c 314 0170 C6 40 adi 40h 315 0172 C3 0D 08 jmp X080d 317 0175 3A 78 21 X0175: lda X2178 318 0178 B7 ora a 319 0179 C2 9E 01 jnz X019e 320 017C 79 mov a,c 321 017D FE 41 cpi 41h 322 017F FA 5B 01 jm X015b 323 0182 FE 50 cpi 50h 324 0184 FA 9E 01 jm X019e 325 0187 3E 1B X0187: mvi a,1bh 326 0189 CD 18 0F call X0f18 327 018C 3E 4F mvi a,4fh 328 018E CD 18 0F X018e: call X0f18 329 0191 C3 5B 01 jmp X015b 331 0194 3E 1B X0194: mvi a,1bh 332 0196 CD 18 0F call X0f18 333 0199 3E 5B mvi a,5bh 334 019B C3 8E 01 jmp X018e 336 019E 3A BC 21 X019e: lda X21bc 337 01A1 B7 ora a 338 01A2 CA B5 01 jz X01b5 339 01A5 79 mov a,c 340 01A6 FE 41 cpi 41h 341 01A8 F2 87 01 jp X0187 342 01AB 3E 1B X01ab: mvi a,1bh 343 01AD CD 18 0F call X0f18 344 01B0 3E 4F mvi a,4fh 345 01B2 C3 6C 01 jmp X016c 347 01B5 79 X01b5: mov a,c 348 01B6 FE 41 cpi 41h 349 01B8 FA AB 01 jm X01ab 350 01BB FE 50 cpi 50h 351 01BD FA 94 01 jm X0194 352 01C0 C3 87 01 jmp X0187 354 01C3 21 15 08 X01c3: lxi h,X0815 355 01C6 E5 push h 356 01C7 3A A5 21 lda X21a5 357 01CA B7 ora a 358 01CB C0 rnz 359 01CC CD 53 08 call X0853 360 01CF 01 0E 02 lxi b,X020e 361 01D2 21 68 20 lxi h,key_flags 362 01D5 7E mov a,m 363 01D6 E6 10 ani 10h 364 01D8 C2 00 09 jnz X0900 365 01DB 7E mov a,m 366 01DC E6 20 ani 20h 367 01DE CA E4 01 jz X01e4 368 01E1 01 D2 00 lxi b,X00d2 369 01E4 3E 25 X01e4: mvi a,25h 370 01E6 F6 08 ori 8 371 01E8 B0 ora b 372 01E9 D3 01 out 1 373 01EB 3A 7F 20 lda X207f 374 01EE 81 add c 375 01EF 4F mov c,a 376 01F0 C5 X01f0: push b 377 01F1 CD 93 14 call X1493 378 01F4 C1 pop b 379 01F5 3A 7F 20 lda X207f 380 01F8 B9 cmp c 381 01F9 C2 F0 01 jnz X01f0 382 01FC C3 94 03 jmp X0394 384 01FF 21 12 08 X01ff: lxi h,X0812 385 0202 E5 push h 386 0203 AF xra a 387 0204 32 30 21 sta X2130 388 0207 32 B8 21 sta X21b8 389 020A 21 A3 21 lxi h,X21a3 390 020D 79 mov a,c 391 020E D6 41 X020e: sui 41h 392 0210 47 mov b,a 393 0211 7E X0211: mov a,m 394 0212 CA 22 02 jz X0222 395 0215 05 dcr b 396 0216 CA 26 02 jz X0226 397 0219 05 dcr b 398 021A CA 15 18 jz X1815 399 021D 05 dcr b 400 021E CA 1E 18 jz X181e 401 0221 C9 ret 403 0222 3D X0222: dcr a 404 0223 F8 rm 405 0224 77 mov m,a 406 0225 C9 ret 408 0226 3C X0226: inr a 409 0227 FE 20 cpi 20h 410 0229 C8 rz 411 022A 77 mov m,a 412 022B C9 ret 414 022C 3A A7 21 X022c: lda X21a7 415 022F 2F cma 416 0230 E6 10 ani 10h 417 0232 21 A5 21 lxi h,X21a5 418 0235 B6 ora m 419 0236 C2 41 08 jnz X0841 420 0239 3A BF 21 lda X21bf 421 023C 01 11 02 lxi b,X0211 422 023F A0 ana b 423 0240 C2 45 02 jnz X0245 424 0243 0E 13 mvi c,13h 425 0245 79 X0245: mov a,c 426 0246 D6 11 sui 11h 427 0248 32 C4 21 sta X21c4 428 024B CD 7E 0F call X0f7e 429 024E C3 12 08 jmp X0812 431 0251 F3 X0251: di 432 0252 31 4E 20 lxi sp,stack_top ; SP = 0x204e 433 0255 21 00 20 lxi h,2000h 434 0258 E5 push h 435 0259 7E mov a,m 436 025A 1F rar 437 025B DA 65 02 jc X0265 438 025E DB 42 in 42h 439 0260 E6 02 ani 2 440 0262 CA 69 02 jz X0269 441 0265 3C X0265: inr a 442 0266 32 C8 21 sta X21c8 443 0269 CD A2 03 X0269: call X03a2 444 026C 3A 50 20 lda X2050 445 026F 3D dcr a 446 0270 32 53 21 sta X2153 447 0273 E1 pop h 448 0274 7E mov a,m 449 0275 36 7F mvi m,7fh 450 0277 B7 ora a 451 0278 CA 98 02 jz X0298 452 027B F2 85 02 jp X0285 453 027E 21 CB 21 lxi h,X21cb 454 0281 36 0A mvi m,0ah 455 0283 E6 7F ani 7fh 456 0285 32 BD 21 X0285: sta X21bd 457 0288 C6 30 adi 30h 458 028A 2A F6 20 lhld cursor_address 459 028D 77 mov m,a 460 028E FE 34 cpi 34h 461 0290 CA 98 02 jz X0298 462 0293 3E 20 mvi a,20h 463 0295 32 A5 21 sta X21a5 464 0298 CD F2 0B X0298: call X0bf2 465 029B 01 11 00 lxi b,X0011 466 029E CD 7E 0F call X0f7e 467 02A1 C3 AE 03 jmp X03ae ;; ;; Zero all scratch and screen RAM above stack ;; 471 02A4 21 4E 20 X02a4: lxi h,scratch_start ;; HL = 0x204e (just above stack) 472 02A7 11 B2 0F lxi d,0fb2h ;; DE = 0x0fb2 (every byte from 0x204e up to 0x3000) 473 02AA 06 00 mvi b,0 ;; B = 0 474 02AC CD 83 10 call memset ;; memset(0x1083): set 0x0fb2 bytes to 0 starting at 0x204e 475 02AF 2F cma ;; invert A 476 02B0 32 04 21 sta X2104 ;; store A in 0x2104 477 02B3 21 04 20 lxi h,X2004 ;; HL <- 0x2004 478 02B6 22 52 20 shld X2052 ;; *(0x2052) = 0x2004 479 02B9 21 D0 22 lxi h,X22d0 ;; HL <- 0x22d0 480 02BC 22 F6 20 shld cursor_address ;; *(20f6) = 0x22d0 481 02BF C9 ret ;; ;; Initialize start of screen RAM and wipe attribute RAM to 0xff ;; 485 02C0 CD 15 0A X02c0: call X0a15 ;; 0x2140 = 0xe605 486 02C3 21 00 20 lxi h,2000h ;; HL = 0x2000 487 02C6 11 D9 02 lxi d,X02d9 ;; DE = 0x02d9 488 02C9 06 12 mvi b,12h ;; B = 18 489 02CB CD 8B 03 call memmove ;; copy 18 bytes from 0x02d9 to 0x2000 490 02CE 21 00 30 lxi h,3000h ;; HL = 0x3000 491 02D1 11 00 10 lxi d,1000h ;; DE = 0x1000 492 02D4 06 FF mvi b,0ffh ;; B = 0xFF 493 02D6 C3 83 10 jmp memset ;; invoke memset(0x1083) to set all of attribute RAM to 0xFF and return ;; ;; 0x02d9 through 0x02eb are the initial values for the screen RAM; ;; it's copied into low RAM at 0x2000 during init. ;; X02d9: 499 02D9 db 07fh,070h,003h 7F 70 03 500 02DC db 07fh,0f2h,0d0h 7F F2 D0 501 02DF db 07fh,070h,006h 7F 70 06 502 02E2 db 07fh,070h,00ch 7F 70 0C 503 02E5 db 07fh,070h,00fh 7F 70 0F 504 02E8 db 07fh,070h,003h 7F 70 03 ;; ;; Initialize several scratch values. We don't know what all of these are for yet. ;; 508 02EB 21 12 02 X02eb: lxi h,212h ;; HL = 0x0212 (530.) 509 02EE 22 2D 21 shld cursor_countdn ;; Store 0x0212 at cursor_countdn [0x212d] 510 02F1 3E 35 mvi a,35h ;; A = 0x35 511 02F3 32 2C 21 sta X212c ;; 0x212c = 0x35 512 02F6 3E 01 mvi a,1 ;; A = 1 513 02F8 32 5B 20 sta X205b ;; 0x205b = 1 514 02FB 32 76 21 sta X2176 ;; 0x2176 = 1 515 02FE 21 FF 07 lxi h,X07ff ;; HL = 0x07ff 516 0301 22 49 21 shld X2149 ;; store 0xff07 at 0x2149 517 0304 3E 02 mvi a,2 ;; A = 2 518 0306 32 73 20 sta X2073 ;; 0x2073 = 2 519 0309 3E F7 mvi a,0f7h ;; A = 0xf7 520 030B 32 FA 20 sta X20fa ;; 0x20fa = 0xf7 521 030E DB 42 in 42h ;; read flags buffer 522 0310 E6 04 ani 4 ;; And it with 0x04 (check graphics flag) 523 0312 3E 01 mvi a,1 ;; A=1 524 0314 C2 1A 03 jnz X031a ;; if no graphics skip 525 0317 32 79 20 sta X2079 ;; else store 1 in 0x2079 526 031A 3E FF X031a: mvi a,0ffh ;; A = 0xff 527 031C 32 0E 21 sta X210e ;; 0x210e = 0xff 528 031F 32 BA 21 sta cursor_visible ;; set cursor_visible [0x21ba] to 0xff (initially visible) 529 0322 26 80 mvi h,80h ;; H = 0x80 530 0324 6C mov l,h ;; L = 0x80 531 0325 22 C0 20 shld X20c0 ;; Store 0x8080 at 0x20c0 532 0328 C9 ret 534 0329 3E 40 X0329: mvi a,40h 535 032B D3 01 out 1 536 032D 3A 58 21 lda X2158 537 0330 D3 02 out 2 538 0332 3A A4 21 lda X21a4 539 0335 D3 01 out 1 540 0337 CD 94 03 call X0394 541 033A 3E 10 mvi a,10h 542 033C 32 C9 21 sta X21c9 543 033F D3 62 out 62h 544 0341 C9 ret 546 0342 3A A2 21 X0342: lda X21a2 547 0345 B7 ora a 548 0346 CA 4B 03 jz X034b 549 0349 3E 10 mvi a,10h 550 034B 47 X034b: mov b,a 551 034C D3 C2 out 0c2h 552 034E 3A 7C 20 lda X207c 553 0351 D3 C2 out 0c2h 554 0353 FE 20 cpi 20h 555 0355 21 70 09 lxi h,X0970 556 0358 C2 5E 03 jnz X035e 557 035B 21 70 03 lxi h,X0370 558 035E 22 01 20 X035e: shld X2001 559 0361 3A A8 21 lda X21a8 560 0364 E6 10 ani 10h 561 0366 C8 rz 562 0367 78 mov a,b 563 0368 D3 C2 out 0c2h 564 036A C9 ret 566 036B 3A A6 21 X036b: lda X21a6 567 036E E6 20 ani 20h 568 0370 C2 75 03 X0370: jnz X0375 569 0373 3E 01 mvi a,1 570 0375 F6 0A X0375: ori 0ah 571 0377 D3 A2 out 0a2h 572 0379 3A 5B 21 lda X215b 573 037C F6 0C ori 0ch 574 037E D3 A2 out 0a2h 575 0380 C9 ret 577 0381 3A A2 21 X0381: lda X21a2 578 0384 B7 ora a 579 0385 CA 63 0B jz X0b63 580 0388 C3 77 0B jmp X0b77 ;; ;; memmove(0x038b): Move B bytes at DE to HL ;; memmove: 585 038B 1A ldax d ;; Load memory at DE into accumulator 586 038C 77 mov m,a ;; Store it at HL 587 038D 23 inx h ;; HL++ 588 038E 13 inx d ;; DE++ 589 038F 05 dcr b ;; B-- 590 0390 C2 8B 03 jnz memmove ;; until B is zero 591 0393 C9 ret 593 0394 3A A5 21 X0394: lda X21a5 594 0397 B7 ora a 595 0398 3E 01 mvi a,1 596 039A C2 9F 03 jnz X039f 597 039D 3E 05 mvi a,5 598 039F C3 7B 1F X039f: jmp X1f7b 600 03A2 CD 81 03 X03a2: call X0381 601 03A5 CD DB 1D call X1ddb 602 03A8 CD 6B 03 call X036b 603 03AB C3 42 03 jmp X0342 605 03AE CD 88 14 X03ae: call X1488 606 03B1 CD 87 05 call X0587 607 03B4 21 77 21 lxi h,X2177 608 03B7 7E mov a,m 609 03B8 B7 ora a 610 03B9 36 00 mvi m,0 611 03BB C4 20 1A cnz X1a20 612 03BE 3A A5 21 lda X21a5 613 03C1 B7 ora a 614 03C2 CA AE 03 jz X03ae 615 03C5 AF xra a 616 03C6 32 44 21 sta X2144 617 03C9 C3 AE 03 jmp X03ae ;; ;; Receiver interrupt handler ;; 621 03CC F5 X03cc: push psw 622 03CD C5 push b 623 03CE E5 push h 624 03CF DB 00 in 0 ;; Read from PUSART data 625 03D1 E6 7F ani 7fh 626 03D3 CA 3A 04 jz X043a 627 03D6 4F mov c,a 628 03D7 3A A5 21 lda X21a5 629 03DA B7 ora a 630 03DB C2 3A 04 jnz X043a 631 03DE DB 01 in 1 ;; Read from PUSART ctrl 632 03E0 E6 38 ani 38h 633 03E2 CA ED 03 jz X03ed 634 03E5 0E 1A mvi c,1ah 635 03E7 3E 27 mvi a,27h 636 03E9 F6 10 ori 10h 637 03EB D3 01 out 1 638 03ED 79 X03ed: mov a,c 639 03EE FE 7F cpi 7fh 640 03F0 CA 37 04 jz X0437 641 03F3 3A A7 21 lda X21a7 642 03F6 E6 10 ani 10h 643 03F8 79 mov a,c 644 03F9 CA 09 04 jz X0409 645 03FC 21 C2 21 lxi h,X21c2 646 03FF FE 11 cpi 11h 647 0401 CA 3E 04 jz X043e 648 0404 FE 13 cpi 13h 649 0406 CA 44 04 jz X0444 650 0409 21 C0 20 X0409: lxi h,X20c0 651 040C 4E mov c,m 652 040D 44 mov b,h 653 040E 02 stax b 654 040F 79 mov a,c 655 0410 3C inr a 656 0411 E6 BF ani 0bfh 657 0413 77 mov m,a 658 0414 47 mov b,a 659 0415 3A C1 20 lda X20c1 660 0418 90 sub b 661 0419 C2 27 04 jnz X0427 662 041C 71 mov m,c 663 041D 78 mov a,b 664 041E 3C inr a 665 041F E6 BF ani 0bfh 666 0421 6F mov l,a 667 0422 36 1A mvi m,1ah 668 0424 C3 31 04 jmp X0431 670 0427 F2 2C 04 X0427: jp X042c 671 042A C6 40 adi 40h 672 042C FE 20 X042c: cpi 20h 673 042E C2 37 04 jnz X0437 674 0431 01 13 01 X0431: lxi b,X0113 675 0434 CD 7E 0F call X0f7e 676 0437 CD 47 0E X0437: call X0e47 677 043A E1 X043a: pop h 678 043B C1 pop b 679 043C F1 pop psw 680 043D C9 ret ;; ;; End of keyboard interrupt handler ;; 684 043E 3E FE X043e: mvi a,0feh 685 0440 A6 ana m 686 0441 C3 47 04 jmp X0447 688 0444 3E 01 X0444: mvi a,1 689 0446 B6 ora m 690 0447 77 X0447: mov m,a 691 0448 C3 37 04 jmp X0437 693 044B X044b: db 30h 30 694 044C 29 dad h 695 044D 31 21 32 lxi sp,X3221 696 0450 40 mov b,b 697 0451 33 inx sp 698 0452 23 inx h 699 0453 34 inr m 700 0454 24 inr h 701 0455 35 dcr m 702 0456 25 dcr h 703 0457 36 5E mvi m,5eh 704 0459 37 stc 705 045A 26 38 mvi h,38h 706 045C 2A 39 28 lhld X2839 707 045F 2D dcr l 708 0460 5F mov e,a 709 0461 3D dcr a 710 0462 2B dcx h 711 0463 60 mov h,b 712 0464 7E mov a,m 713 0465 5B mov e,e 714 0466 7B mov a,e 715 0467 5D mov e,l 716 0468 7D mov a,l 717 0469 3B dcx sp 718 046A 3A 2F 3F lda X3f2f 719 046D 27 daa 720 046E 22 2C 3C shld X3c2c 721 0471 2E 3E mvi l,3eh 722 0473 5C mov e,h 723 0474 7C mov a,h 724 0475 db 20h 20 X0476: 726 0476 KBTab: db 20h, 7fh, 7fh, 7fh, 00h, 'p', 'o', 'y', 't', 'w', 'q' 20 7F 7F 7F 00 70 6F 79 74 77 71 727 0481 db 0c3h, 00h, 00h, 00h, ']', '[', 'i', 'u', 'r', 'e', '1' C3 00 00 00 5D 5B 69 75 72 65 31 728 048C db 0c4h, 00h, 0c2h, 081h, '`', '-', '9', '7', '4', '3', 1bh C4 00 C2 81 60 2D 39 37 34 33 1B 729 0497 db 0c1h, 0d2h, 0d0h, 08h, '=', '0', '8', '6', '5', '2', 09h C1 D2 D0 08 3D 30 38 36 35 32 09 730 04A2 db 0b7h, 0d3h, 0d1h, 0b0h, 0ah, '\', 'l', 'k', 'g', 'f', 'a' B7 D3 D1 B0 0A 5C 6C 6B 67 66 61 731 04AD db 0b8h, 8dh, 0b2h, 0b1h, 00h, 27h, 3bh, 'j', 'h', 'd', 's' B8 8D B2 B1 00 27 3B 6A 68 64 73 732 04B8 db 0aeh, 0ach, 0b5h, 0b4h, 0dh, '.', ',', 'n', 'b', 'x', 82h AE AC B5 B4 0D 2E 2C 6E 62 78 82 733 04C3 db 0b9h, 0b3h, 0b6h, 0adh, 00h, '/', 'm', ' ', 'v', 'c', 'z' B9 B3 B6 AD 00 2F 6D 20 76 63 7A 734 04CE FF rst 7 ;; ;; Vertical interrupt handler ;; 738 04CF F5 X04cf: push psw 739 04D0 E5 push h 740 04D1 D5 push d 741 04D2 CD 4E 10 call X104e 742 04D5 C5 push b 743 04D6 3E 09 mvi a,9 744 04D8 D3 A2 out 0a2h 745 04DA FB ei 746 04DB 3A 65 20 lda X2065 747 04DE B7 ora a 748 04DF C2 0B 05 jnz X050b 749 04E2 21 51 20 lxi h,X2051 750 04E5 B6 ora m 751 04E6 CA 3E 05 jz X053e 752 04E9 3E 01 mvi a,1 753 04EB 32 65 20 sta X2065 754 04EE B6 ora m 755 04EF 36 00 mvi m,0 756 04F1 3E 01 mvi a,1 757 04F3 32 5B 20 sta X205b 758 04F6 3A 56 21 lda X2156 759 04F9 F2 05 05 jp X0505 760 04FC 3E 99 mvi a,99h 761 04FE 32 5B 20 sta X205b 762 0501 3A 55 21 lda X2155 763 0504 3D dcr a 764 0505 CD 2F 12 X0505: call X122f 765 0508 32 7A 20 sta X207a 766 050B 01 5B 20 X050b: lxi b,X205b 767 050E 0A ldax b 768 050F 21 5A 20 lxi h,X205a 769 0512 86 add m 770 0513 27 daa 771 0514 E6 0F ani 0fh 772 0516 77 mov m,a 773 0517 57 mov d,a 774 0518 E6 03 ani 3 775 051A D3 A2 out 0a2h 776 051C 7A mov a,d 777 051D 1F rar 778 051E A7 ana a 779 051F 1F rar 780 0520 F6 04 ori 4 781 0522 D3 A2 out 0a2h 782 0524 7A mov a,d 783 0525 B7 ora a 784 0526 C2 3E 05 jnz X053e 785 0529 32 65 20 sta X2065 786 052C 0A ldax b 787 052D B7 ora a 788 052E 3A 56 21 lda X2156 789 0531 FA 38 05 jm X0538 790 0534 3A 55 21 lda X2155 791 0537 3D dcr a 792 0538 CD CE 11 X0538: call X11ce 793 053B 32 7A 20 sta X207a 794 053E 21 78 20 X053e: lxi h,X2078 795 0541 7E mov a,m 796 0542 B7 ora a 797 0543 CA 4F 05 jz X054f 798 0546 35 dcr m 799 0547 E6 04 ani 4 800 0549 0F rrc 801 054A 0F rrc 802 054B 0F rrc 803 054C 32 46 21 sta X2146 804 054F 21 2C 21 X054f: lxi h,X212c 805 0552 7E mov a,m 806 0553 3D dcr a 807 0554 C2 69 05 jnz X0569 808 0557 36 35 mvi m,35h 809 0559 3E 08 mvi a,8 810 055B D3 A2 out 0a2h 811 055D 21 CB 21 lxi h,X21cb 812 0560 7E mov a,m 813 0561 B7 ora a 814 0562 CA 6A 05 jz X056a 815 0565 D3 A2 out 0a2h 816 0567 EE 01 xri 1 817 0569 77 X0569: mov m,a 818 056A 3E 40 X056a: mvi a,40h 819 056C 32 48 21 sta X2148 820 056F 21 7F 20 lxi h,X207f 821 0572 34 inr m 822 0573 3A A3 21 lda X21a3 823 0576 D3 42 out 42h 824 0578 3A 58 21 lda X2158 825 057B D3 02 out 2 826 057D 3A C9 21 lda X21c9 827 0580 D3 62 out 62h 828 0582 C1 pop b 829 0583 D1 pop d 830 0584 E1 pop h 831 0585 F1 pop psw 832 0586 C9 ret 834 0587 3A A5 21 X0587: lda X21a5 835 058A 21 7B 20 lxi h,X207b 836 058D B6 ora m 837 058E C0 rnz 838 058F CD 75 06 call X0675 839 0592 C8 rz 840 0593 47 X0593: mov b,a 841 0594 3A 7B 20 lda X207b 842 0597 B7 ora a 843 0598 78 mov a,b 844 0599 C2 A9 05 jnz X05a9 845 059C 3A 79 20 lda X2079 846 059F 07 rlc 847 05A0 78 mov a,b 848 05A1 DA A9 05 jc X05a9 849 05A4 FE 20 cpi 20h 850 05A6 DA B2 08 jc X08b2 851 05A9 2A 40 21 X05a9: lhld X2140 852 05AC E9 pchl 854 05AD FE 1B X05ad: cpi 1bh 855 05AF C2 CC 05 jnz X05cc 856 05B2 21 B8 05 lxi h,X05b8 857 05B5 C3 18 0A jmp X0a18 859 05B8 FE 32 X05b8: cpi 32h 860 05BA C2 C5 05 jnz X05c5 861 05BD 3E 01 mvi a,1 862 05BF 32 79 20 sta X2079 863 05C2 C3 15 0A jmp X0a15 865 05C5 47 X05c5: mov b,a 866 05C6 3E 1B mvi a,1bh 867 05C8 CD D2 05 call X05d2 868 05CB 78 mov a,b 869 05CC CD D2 05 X05cc: call X05d2 870 05CF C3 62 0C jmp X0c62 872 05D2 4F X05d2: mov c,a 873 05D3 C5 X05d3: push b 874 05D4 CD 88 14 call X1488 875 05D7 C1 pop b 876 05D8 DB 42 in 42h 877 05DA E6 04 ani 4 878 05DC C2 D3 05 jnz X05d3 879 05DF 79 mov a,c 880 05E0 D3 E2 out 0e2h 881 05E2 C9 ret 883 05E3 CD 46 0C X05e3: call X0c46 884 05E6 F5 X05e6: push psw 885 05E7 FE 7F cpi 7fh 886 05E9 CA 73 06 jz X0673 887 05EC E5 push h 888 05ED D5 push d 889 05EE C5 push b 890 05EF 4F mov c,a 891 05F0 21 FC 20 lxi h,X20fc 892 05F3 56 mov d,m 893 05F4 23 inx h 894 05F5 7A mov a,d 895 05F6 85 add l 896 05F7 6F mov l,a 897 05F8 7A mov a,d 898 05F9 D6 02 sui 2 899 05FB F2 FF 05 jp X05ff 900 05FE 7A mov a,d 901 05FF 32 FC 20 X05ff: sta X20fc 902 0602 56 mov d,m 903 0603 3A FA 20 lda X20fa 904 0606 B2 ora d 905 0607 47 mov b,a 906 0608 7A mov a,d 907 0609 07 rlc 908 060A 79 mov a,c 909 060B D2 16 06 jnc X0616 910 060E D6 5F sui 5fh 911 0610 FE 20 cpi 20h 912 0612 D2 16 06 jnc X0616 913 0615 4F mov c,a 914 0616 7A X0616: mov a,d 915 0617 E6 40 ani 40h 916 0619 79 mov a,c 917 061A CA 24 06 jz X0624 918 061D FE 23 cpi 23h 919 061F C2 24 06 jnz X0624 920 0622 0E 1E mvi c,1eh 921 0624 3A FB 20 X0624: lda X20fb 922 0627 B1 ora c 923 0628 4F mov c,a 924 0629 3A 42 21 lda X2142 925 062C B7 ora a 926 062D CA 41 06 jz X0641 927 0630 21 F8 20 lxi h,X20f8 928 0633 3A 53 21 lda X2153 929 0636 BE cmp m 930 0637 C2 41 06 jnz X0641 931 063A 36 00 mvi m,0 932 063C C5 push b 933 063D CD 55 09 call X0955 934 0640 C1 pop b 935 0641 2A F6 20 X0641: lhld cursor_address 936 0644 71 mov m,c 937 0645 7C mov a,h 938 0646 C6 10 adi 10h 939 0648 67 mov h,a 940 0649 70 mov m,b 941 064A 78 mov a,b 942 064B 32 F5 20 sta X20f5 943 064E 21 F4 20 lxi h,X20f4 944 0651 71 mov m,c 945 0652 21 F8 20 lxi h,X20f8 946 0655 3A 53 21 lda X2153 947 0658 BE cmp m 948 0659 C2 68 06 jnz X0668 949 065C 79 mov a,c 950 065D 32 F4 20 sta X20f4 951 0660 3A A8 21 lda X21a8 952 0663 E6 40 ani 40h 953 0665 C3 6D 06 jmp X066d 955 0668 34 X0668: inr m 956 0669 CD 36 16 call X1636 957 066C AF xra a 958 066D 32 42 21 X066d: sta X2142 959 0670 C1 X0670: pop b 960 0671 D1 pop d 961 0672 E1 pop h 962 0673 F1 X0673: pop psw 963 0674 C9 ret 965 0675 3A C4 21 X0675: lda X21c4 966 0678 B7 ora a 967 0679 C2 85 06 jnz X0685 968 067C 21 C0 20 lxi h,X20c0 969 067F 7E mov a,m 970 0680 23 inx h 971 0681 96 sub m 972 0682 C2 87 06 jnz X0687 973 0685 AF X0685: xra a 974 0686 C9 ret 976 0687 6E X0687: mov l,m 977 0688 26 20 mvi h,20h 978 068A 56 mov d,m 979 068B 21 C1 20 lxi h,X20c1 980 068E 7E mov a,m 981 068F 3C inr a 982 0690 E6 BF ani 0bfh 983 0692 F6 80 ori 80h 984 0694 77 mov m,a 985 0695 2B dcx h 986 0696 96 sub m 987 0697 F2 9C 06 jp X069c 988 069A C6 40 adi 40h 989 069C FE 30 X069c: cpi 30h 990 069E C2 A7 06 jnz X06a7 991 06A1 01 11 01 lxi b,X0111 992 06A4 CD 7E 0F call X0f7e 993 06A7 7A X06a7: mov a,d 994 06A8 B7 ora a 995 06A9 C9 ret 997 06AA 3A 68 20 X06aa: lda key_flags ; A <- [Keys flag buffer] 998 06AD 5F mov e,a 999 06AE E6 80 ani 80h ; bit 7 set? 1000 06B0 C8 rz ; return if not 1001 06B1 21 41 08 lxi h,X0841 1002 06B4 E5 push h 1003 06B5 7B mov a,e 1004 06B6 E6 07 ani 7 1005 06B8 FE 04 cpi 4 1006 06BA FA C2 06 jm X06c2 1007 06BD AF xra a 1008 06BE 32 67 20 sta X2067 1009 06C1 C9 ret 1011 06C2 57 X06c2: mov d,a 1012 06C3 0E 00 mvi c,0 1013 06C5 06 04 mvi b,4 1014 06C7 21 6E 20 lxi h,key_buffer+4 1015 06CA 7E X06ca: mov a,m 1016 06CB B7 ora a 1017 06CC CA E8 06 jz X06e8 1018 06CF E5 push h 1019 06D0 C5 push b 1020 06D1 06 03 mvi b,3 1021 06D3 21 6A 20 lxi h,key_buffer 1022 06D6 BE X06d6: cmp m 1023 06D7 CA DF 06 jz X06df 1024 06DA 23 inx h 1025 06DB 05 dcr b 1026 06DC F2 D6 06 jp X06d6 1027 06DF C1 X06df: pop b 1028 06E0 E1 pop h 1029 06E1 CA E7 06 jz X06e7 1030 06E4 36 00 mvi m,0 1031 06E6 0D dcr c 1032 06E7 0C X06e7: inr c 1033 06E8 23 X06e8: inx h 1034 06E9 05 dcr b 1035 06EA C2 CA 06 jnz X06ca 1036 06ED 7B mov a,e 1037 06EE E6 08 ani 8 1038 06F0 C0 rnz 1039 06F1 B2 ora d 1040 06F2 C2 FB 06 jnz X06fb 1041 06F5 3E E1 mvi a,0e1h 1042 06F7 32 72 20 sta X2072 1043 06FA C9 ret 1045 06FB 21 47 07 X06fb: lxi h,X0747 1046 06FE E5 push h 1047 06FF 3A 72 20 lda X2072 1048 0702 3C inr a 1049 0703 CA 09 07 jz X0709 1050 0706 32 72 20 sta X2072 1051 0709 3A A6 21 X0709: lda X21a6 1052 070C E6 40 ani 40h 1053 070E C8 rz 1054 070F 7B mov a,e 1055 0710 E6 10 ani 10h 1056 0712 C0 rnz 1057 0713 3A 50 21 lda X2150 1058 0716 21 5F 08 lxi h,X085f 1059 0719 06 05 mvi b,5 1060 071B BE X071b: cmp m 1061 071C C8 rz 1062 071D 23 inx h 1063 071E 05 dcr b 1064 071F C2 1B 07 jnz X071b 1065 0722 21 73 20 lxi h,X2073 1066 0725 35 dcr m 1067 0726 C0 rnz 1068 0727 36 02 mvi m,2 1069 0729 3A 72 20 lda X2072 1070 072C FE FF cpi 0ffh 1071 072E C0 rnz 1072 072F 79 mov a,c 1073 0730 FE 01 cpi 1 1074 0732 C0 rnz 1075 0733 06 04 mvi b,4 1076 0735 21 6E 20 lxi h,key_buffer+4 1077 0738 7E X0738: mov a,m 1078 0739 B7 ora a 1079 073A C2 43 07 jnz X0743 1080 073D 23 inx h 1081 073E 05 dcr b 1082 073F C2 38 07 jnz X0738 1083 0742 C9 ret 1085 0743 E1 X0743: pop h 1086 0744 C3 76 07 jmp X0776 1088 0747 79 X0747: mov a,c 1089 0748 FE 04 cpi 4 1090 074A F0 rp 1091 074B 01 6A 20 lxi b,key_buffer 1092 074E 21 6E 20 X074e: lxi h,key_buffer+4 1093 0751 7E X0751: mov a,m 1094 0752 B7 ora a 1095 0753 CA 5B 07 jz X075b 1096 0756 0A ldax b 1097 0757 BE cmp m 1098 0758 CA 66 07 jz X0766 1099 075B 23 X075b: inx h 1100 075C 7D mov a,l 1101 075D FE 72 cpi 72h 1102 075F C2 51 07 jnz X0751 1103 0762 0A ldax b ; A = key (loaded from BC, typically 0x206a) 1104 0763 C3 6C 07 jmp X076c 1106 0766 03 X0766: inx b 1107 0767 15 dcr d 1108 0768 C2 4E 07 jnz X074e 1109 076B C9 ret 1111 076C 47 X076c: mov b,a 1112 076D 3A 67 20 lda X2067 1113 0770 B8 cmp b 1114 0771 78 mov a,b 1115 0772 32 67 20 sta X2067 1116 0775 C0 rnz 1117 0776 E1 X0776: pop h 1118 0777 32 50 21 sta X2150 1119 077A FE 7B cpi 7bh 1120 077C CA 1A 1A jz X1a1a 1121 077F FE 6A cpi 6ah 1122 0781 CA 2C 02 jz X022c 1123 0784 43 mov b,e 1124 0785 5F mov e,a 1125 0786 3A 44 21 lda X2144 1126 0789 B7 ora a 1127 078A C2 41 08 jnz X0841 1128 078D 7B mov a,e 1129 078E E6 F0 ani 0f0h 1130 0790 0F rrc 1131 0791 0F rrc 1132 0792 57 mov d,a 1133 0793 0F rrc 1134 0794 0F rrc 1135 0795 82 add d 1136 0796 57 mov d,a 1137 0797 7B mov a,e 1138 0798 92 sub d 1139 0799 21 76 04 lxi h,X0476 1140 079C 5F mov e,a 1141 079D 16 00 mvi d,0 1142 079F 19 dad d 1143 07A0 4E mov c,m 1144 07A1 79 mov a,c 1145 07A2 B7 ora a 1146 07A3 FA 31 01 jm X0131 1147 07A6 FE 20 cpi 20h 1148 07A8 DA FF 07 jc X07ff 1149 07AB 78 mov a,b 1150 07AC E6 70 ani 70h 1151 07AE CA FF 07 jz X07ff 1152 07B1 79 mov a,c 1153 07B2 FE 7B cpi 7bh 1154 07B4 D2 C2 07 jnc X07c2 1155 07B7 FE 61 cpi 61h 1156 07B9 DA C2 07 jc X07c2 1157 07BC E6 DF ani 0dfh 1158 07BE 4F mov c,a 1159 07BF C3 D7 07 jmp X07d7 1161 07C2 78 X07c2: mov a,b 1162 07C3 E6 30 ani 30h 1163 07C5 CA D7 07 jz X07d7 1164 07C8 21 4B 04 lxi h,X044b 1165 07CB 7E X07cb: mov a,m 1166 07CC B9 cmp c 1167 07CD CA D5 07 jz X07d5 1168 07D0 23 inx h 1169 07D1 23 inx h 1170 07D2 C3 CB 07 jmp X07cb 1172 07D5 23 X07d5: inx h 1173 07D6 4E mov c,m 1174 07D7 78 X07d7: mov a,b 1175 07D8 E6 10 ani 10h 1176 07DA CA FF 07 jz X07ff 1177 07DD 79 mov a,c 1178 07DE FE 41 cpi 41h 1179 07E0 DA E8 07 jc X07e8 1180 07E3 FE 5B cpi 5bh 1181 07E5 DA FC 07 jc X07fc 1182 07E8 FE 3F X07e8: cpi 3fh 1183 07EA CA FC 07 jz X07fc 1184 07ED FE 20 cpi 20h 1185 07EF CA FC 07 jz X07fc 1186 07F2 FE 7B cpi 7bh 1187 07F4 DA 41 08 jc X0841 1188 07F7 FE 7F cpi 7fh 1189 07F9 D2 41 08 jnc X0841 1190 07FC E6 9F X07fc: ani 9fh 1191 07FE 4F mov c,a 1192 07FF B1 X07ff: ora c 1193 0800 F5 push psw 1194 0801 3A A7 21 lda X21a7 1195 0804 E6 80 ani 80h 1196 0806 CA 0C 08 jz X080c 1197 0809 32 54 21 sta X2154 1198 080C F1 X080c: pop psw 1199 080D F6 80 X080d: ori 80h 1200 080F CD 18 0F call X0f18 1201 0812 CD 53 08 X0812: call X0853 1202 0815 3A 50 21 X0815: lda X2150 1203 0818 16 04 mvi d,4 1204 081A 21 6E 20 lxi h,key_buffer+4 1205 081D BE X081d: cmp m 1206 081E CA 41 08 jz X0841 1207 0821 23 inx h 1208 0822 15 dcr d 1209 0823 C2 1D 08 jnz X081d 1210 0826 16 04 mvi d,4 1211 0828 21 6E 20 lxi h,key_buffer+4 1212 082B 7E X082b: mov a,m 1213 082C B7 ora a 1214 082D CA 38 08 jz X0838 1215 0830 23 inx h 1216 0831 15 dcr d 1217 0832 C2 2B 08 jnz X082b 1218 0835 C3 41 08 jmp X0841 1220 0838 3A 50 21 X0838: lda X2150 1221 083B 77 mov m,a 1222 083C 3E E1 mvi a,0e1h 1223 083E 32 72 20 sta X2072 1224 0841 AF X0841: xra a 1225 0842 21 68 20 lxi h,key_flags 1226 0845 56 mov d,m 1227 0846 77 mov m,a 1228 0847 23 inx h 1229 0848 72 mov m,d 1230 0849 23 inx h 1231 084A 16 04 mvi d,4 1232 084C 77 X084c: mov m,a 1233 084D 23 inx h 1234 084E 15 dcr d 1235 084F C2 4C 08 jnz X084c 1236 0852 C9 ret 1238 0853 3A A7 21 X0853: lda X21a7 1239 0856 E6 40 ani 40h 1240 0858 C8 rz 1241 0859 3E 80 mvi a,80h 1242 085B 32 47 21 sta X2147 1243 085E C9 ret 1245 085F 7B X085f: mov a,e 1246 0860 2A 6A 3A lhld X3a6a 1247 0863 64 mov h,h 1248 0864 3A 30 21 lda X2130 1249 0867 D6 02 sui 2 1250 0869 C0 rnz 1251 086A 57 mov d,a 1252 086B 3A 31 21 lda X2131 1253 086E 5F mov e,a 1254 086F 3E 01 X086f: mvi a,1 1255 0871 A3 ana e 1256 0872 C2 3D 00 jnz X003d 1257 0875 7A X0875: mov a,d 1258 0876 B7 ora a 1259 0877 C4 A7 08 cnz X08a7 1260 087A D5 push d 1261 087B CD BE 17 call X17be 1262 087E D1 pop d 1263 087F 3E 02 mvi a,2 1264 0881 A3 ana e 1265 0882 C4 11 1F cnz X1f11 1266 0885 3E 08 mvi a,8 1267 0887 DC A7 08 cc X08a7 1268 088A 3E 04 mvi a,4 1269 088C A3 ana e 1270 088D C4 62 1F cnz X1f62 1271 0890 3E 10 mvi a,10h 1272 0892 DC A7 08 cc X08a7 1273 0895 7A mov a,d 1274 0896 B7 ora a 1275 0897 C2 A0 08 jnz X08a0 1276 089A 3E 08 mvi a,8 1277 089C A3 ana e 1278 089D C2 6F 08 jnz X086f 1279 08A0 7A X08a0: mov a,d 1280 08A1 32 00 20 sta 2000h 1281 08A4 C3 51 02 jmp X0251 1283 08A7 B2 X08a7: ora d 1284 08A8 57 mov d,a 1285 08A9 3E 08 mvi a,8 1286 08AB A3 ana e 1287 08AC C8 rz 1288 08AD 3E 80 mvi a,80h 1289 08AF B2 ora d 1290 08B0 57 mov d,a 1291 08B1 C9 ret 1293 08B2 FE 1B X08b2: cpi 1bh 1294 08B4 CA 9E 09 jz X099e 1295 08B7 FE 10 cpi 10h 1296 08B9 DA D4 08 jc X08d4 1297 08BC 5F mov e,a 1298 08BD D6 18 sui 18h 1299 08BF E6 FD ani 0fdh 1300 08C1 C0 rnz 1301 08C2 7B mov a,e 1302 08C3 FE 1A cpi 1ah 1303 08C5 CA CB 08 jz X08cb 1304 08C8 FE 18 cpi 18h 1305 08CA C0 rnz 1306 08CB CD 15 0A X08cb: call X0a15 1307 08CE 3E 02 mvi a,2 1308 08D0 C3 E6 05 X08d0: jmp X05e6 1310 08D3 C9 ret 1312 08D4 D6 05 X08d4: sui 5 ;; subtract 5 from A and return if negative 1313 08D6 F8 rm 1314 08D7 21 E5 08 lxi h,X08e5 ;; load jump table at 8e5 1315 08DA 87 add a ;; double a 1316 08DB 5F mov e,a 1317 08DC 16 00 mvi d,0 1318 08DE 19 dad d ;; hl = X08e5 + 2A 1319 08DF 5E mov e,m ;; load DE from (HL) little-endian 1320 08E0 23 inx h 1321 08E1 56 mov d,m 1322 08E2 EB xchg 1323 08E3 AF xra a ;; zero A 1324 08E4 E9 pchl ;; jump to address 1326 08E5 X08e5: dw X0900 0009 1327 08E7 dw X0997 ;; immediate return 9709 1328 08E9 dw X0938 3809 1329 08EB dw X0941 4109 1330 08ED dw 0df9h ;; MYSTERY ADDRESS: this isn't even in AVO!!! F90D 1331 08EF dw X0955 5509 1332 08F1 dw X0955 5509 1333 08F3 dw X0955 5509 1334 08F5 dw 094bh 4B09 1335 08F7 dw X08fb FB08 1336 08F9 dw X08fc FC08 1338 08FB 3C X08fb: inr a 1339 08FC 32 FC 20 X08fc: sta X20fc 1340 08FF C9 ret 1342 0900 3A A5 21 X0900: lda X21a5 1343 0903 B7 ora a 1344 0904 C0 rnz 1345 0905 2A 7B 21 lhld X217b 1346 0908 7C mov a,h 1347 0909 BD cmp l 1348 090A C8 rz 1349 090B 21 72 21 lxi h,X2172 1350 090E 3E 10 mvi a,10h 1351 0910 B6 ora m 1352 0911 77 mov m,a 1353 0912 C9 ret 1355 0913 21 72 21 lxi h,X2172 1356 0916 7E mov a,m 1357 0917 E6 EF ani 0efh 1358 0919 77 mov m,a 1359 091A 21 7B 21 lxi h,X217b 1360 091D 46 mov b,m 1361 091E 23 inx h 1362 091F 0E 14 mvi c,14h 1363 0921 11 5C 21 lxi d,X215c 1364 0924 7E X0924: mov a,m 1365 0925 B8 cmp b 1366 0926 CA 30 09 jz X0930 1367 0929 12 stax d 1368 092A 13 inx d 1369 092B 23 inx h 1370 092C 0D dcr c 1371 092D C2 24 09 jnz X0924 1372 0930 1B X0930: dcx d 1373 0931 1A ldax d 1374 0932 F6 80 ori 80h 1375 0934 12 stax d 1376 0935 C3 F3 0E jmp X0ef3 1378 0938 21 78 20 X0938: lxi h,X2078 1379 093B 7E mov a,m 1380 093C C6 08 adi 8 1381 093E D8 rc 1382 093F 77 mov m,a 1383 0940 C9 ret 1385 0941 21 F8 20 X0941: lxi h,X20f8 1386 0944 7E mov a,m 1387 0945 B7 ora a 1388 0946 C8 rz 1389 0947 35 dcr m 1390 0948 C3 36 16 jmp X1636 1392 094B AF X094b: xra a 1393 094C 32 F8 20 sta X20f8 1394 094F C3 36 16 jmp X1636 1396 0952 CD 4B 09 call X094b 1397 0955 3A A8 21 X0955: lda X21a8 1398 0958 E6 20 ani 20h 1399 095A C4 4B 09 cnz X094b 1400 095D 21 F9 20 lxi h,X20f9 1401 0960 56 mov d,m 1402 0961 3A 56 21 lda X2156 1403 0964 BA cmp d 1404 0965 CA 73 09 jz X0973 1405 0968 CD BF 11 call X11bf 1406 096B 78 mov a,b 1407 096C BA cmp d 1408 096D C8 rz 1409 096E 14 inr d 1410 096F 72 mov m,d 1411 0970 C3 36 16 X0970: jmp X1636 1413 0973 3A A6 21 X0973: lda X21a6 1414 0976 E6 80 ani 80h 1415 0978 CA 98 09 jz X0998 1416 097B 0E 01 mvi c,1 1417 097D CD 8E 10 call X108e 1418 0980 3E FF mvi a,0ffh 1419 0982 32 C3 21 sta X21c3 1420 0985 34 inr m 1421 0986 CD E6 0F call X0fe6 1422 0989 3A C3 21 X0989: lda X21c3 1423 098C B7 ora a 1424 098D C2 89 09 jnz X0989 1425 0990 32 F4 20 sta X20f4 1426 0993 3D dcr a 1427 0994 32 F5 20 sta X20f5 1428 0997 C9 X0997: ret 1430 0998 CD 1A 10 X0998: call X101a 1431 099B C3 12 10 jmp X1012 1433 099E AF X099e: xra a 1434 099F 32 7D 20 sta X207d 1435 09A2 32 B8 21 sta X21b8 1436 09A5 21 AB 09 lxi h,X09ab 1437 09A8 C3 18 0A jmp X0a18 1439 09AB FE 30 X09ab: cpi 30h 1440 09AD D2 BD 09 jnc X09bd 1441 09B0 21 7D 20 lxi h,X207d 1442 09B3 4F mov c,a 1443 09B4 7E mov a,m 1444 09B5 B7 ora a 1445 09B6 CA BB 09 jz X09bb 1446 09B9 0E FF mvi c,0ffh 1447 09BB 71 X09bb: mov m,c 1448 09BC C9 ret 1450 09BD 32 7E 20 X09bd: sta X207e 1451 09C0 21 15 0A lxi h,X0a15 1452 09C3 E5 push h 1453 09C4 3A 7D 20 lda X207d 1454 09C7 B7 ora a 1455 09C8 C2 DC 09 jnz X09dc 1456 09CB 3A A7 21 lda X21a7 1457 09CE E6 20 ani 20h 1458 09D0 21 50 0A lxi h,X0a50 1459 09D3 C2 D9 09 jnz X09d9 1460 09D6 21 1C 0A lxi h,X0a1c 1461 09D9 C3 F7 09 X09d9: jmp X09f7 1463 09DC 47 X09dc: mov b,a 1464 09DD 3A A7 21 lda X21a7 1465 09E0 E6 20 ani 20h 1466 09E2 78 mov a,b 1467 09E3 C8 rz 1468 09E4 FE 28 cpi 28h 1469 09E6 11 FD 20 lxi d,X20fd 1470 09E9 CA 32 0C jz X0c32 1471 09EC FE 29 cpi 29h 1472 09EE CA 31 0C jz X0c31 1473 09F1 FE 23 cpi 23h 1474 09F3 21 7B 0A lxi h,X0a7b 1475 09F6 C0 rnz 1476 09F7 11 B9 21 X09f7: lxi d,X21b9 1477 09FA AF xra a 1478 09FB 12 stax d 1479 09FC 3A 7E 20 lda X207e 1480 09FF 4F X09ff: mov c,a 1481 0A00 AF X0a00: xra a 1482 0A01 86 add m 1483 0A02 C8 rz 1484 0A03 23 inx h 1485 0A04 B9 cmp c 1486 0A05 CA 0D 0A jz X0a0d 1487 0A08 23 inx h 1488 0A09 23 inx h 1489 0A0A C3 00 0A jmp X0a00 1491 0A0D 12 X0a0d: stax d 1492 0A0E 7E mov a,m 1493 0A0F 23 inx h 1494 0A10 66 mov h,m 1495 0A11 6F mov l,a 1496 0A12 AF xra a 1497 0A13 E9 pchl 1499 0A14 E1 X0a14: pop h 1500 0A15 21 E6 05 X0a15: lxi h,X05e6 ;; HL = 0x05e6 1501 0A18 22 40 21 X0a18: shld X2140 ;; 0x2140 = 0xe605 1502 0A1B C9 ret ;; ;; This is a table of some sort. ;; 1506 0A1C 41 X0a1c: mov b,c 1507 0A1D 9B sbb e 1508 0A1E 0A ldax b 1509 0A1F 42 mov b,d 1510 0A20 9B sbb e 1511 0A21 0A ldax b 1512 0A22 43 mov b,e 1513 0A23 9B sbb e 1514 0A24 0A ldax b 1515 0A25 44 mov b,h 1516 0A26 9B sbb e 1517 0A27 0A ldax b 1518 0A28 46 mov b,m 1519 0A29 0A ldax b 1520 0A2A 0C inr c 1521 0A2B 47 mov b,a 1522 0A2C 0F rrc 1523 0A2D 0C inr c 1524 0A2E 48 mov c,b 1525 0A2F 96 sub m 1526 0A30 0A ldax b 1527 0A31 49 mov c,c 1528 0A32 A3 ana e 1529 0A33 0B dcx b 1530 0A34 4A mov c,d 1531 0A35 9B sbb e 1532 0A36 0A ldax b 1533 0A37 4B mov c,e 1534 0A38 9B sbb e 1535 0A39 0A ldax b 1536 0A3A 59 mov e,c 1537 0A3B 11 0B 5A lxi d,X5a0b 1538 0A3E C6 0C adi 0ch 1539 0A40 3D dcr a 1540 0A41 DF rst 3 1541 0A42 0B dcx b 1542 0A43 3E E5 mvi a,0e5h 1543 0A45 0B dcx b 1544 0A46 31 57 0C lxi sp,X0c57 1545 0A49 3C inr a 1546 0A4A EB xchg 1547 0A4B 0B dcx b 1548 0A4C 5D mov e,l 1549 0A4D 60 mov h,b 1550 0A4E 0D dcr c 1551 0A4F 00 nop 1552 0A50 63 X0a50: mov h,e 1553 0A51 00 nop 1554 0A52 00 nop 1555 0A53 45 mov b,l 1556 0A54 52 mov d,d 1557 0A55 09 dad b 1558 0A56 4D mov c,l 1559 0A57 A3 ana e 1560 0A58 0B dcx b 1561 0A59 31 57 0C lxi sp,X0c57 1562 0A5C 5B mov e,e 1563 0A5D 8E adc m 1564 0A5E 0A ldax b 1565 0A5F 48 mov c,b 1566 0A60 DF rst 3 1567 0A61 0D dcr c 1568 0A62 44 mov b,h 1569 0A63 55 mov d,l 1570 0A64 09 dad b 1571 0A65 37 stc 1572 0A66 68 mov l,b 1573 0A67 0C inr c 1574 0A68 db 38h 38 1575 0A69 71 mov m,c 1576 0A6A 0C inr c 1577 0A6B 3D dcr a 1578 0A6C DF rst 3 1579 0A6D 0B dcx b 1580 0A6E 3E E5 mvi a,0e5h 1581 0A70 0B dcx b 1582 0A71 5A mov e,d 1583 0A72 C6 0C adi 0ch 1584 0A74 4E mov c,m 1585 0A75 46 mov b,m 1586 0A76 0C inr c 1587 0A77 4F mov c,a 1588 0A78 46 mov b,m 1589 0A79 0C inr c 1590 0A7A 00 nop 1591 0A7B 33 X0a7b: inx sp 1592 0A7C A8 xra b 1593 0A7D 12 stax d 1594 0A7E 34 inr m 1595 0A7F AC xra h 1596 0A80 12 stax d 1597 0A81 35 dcr m 1598 0A82 4A mov c,d 1599 0A83 13 inx d 1600 0A84 36 A4 mvi m,0a4h 1601 0A86 12 stax d 1602 0A87 37 stc 1603 0A88 60 mov h,b 1604 0A89 0D dcr c 1605 0A8A db 38h 38 1606 0A8B A7 ana a 1607 0A8C 0D dcr c 1608 0A8D 00 nop 1609 0A8E 21 C2 16 lxi h,X16c2 1610 0A91 22 40 21 shld X2140 1611 0A94 E1 pop h 1612 0A95 C9 ret 1614 0A96 3E 48 mvi a,48h 1615 0A98 32 7E 20 sta X207e 1616 0A9B 21 00 00 lxi h,0 1617 0A9E 22 30 21 shld X2130 1618 0AA1 E1 pop h 1619 0AA2 21 15 0A X0aa2: lxi h,X0a15 1620 0AA5 E5 push h 1621 0AA6 3A 7D 20 lda X207d 1622 0AA9 B7 ora a 1623 0AAA C0 rnz 1624 0AAB 21 D9 0A lxi h,X0ad9 1625 0AAE CD F7 09 call X09f7 1626 0AB1 3A B9 21 lda X21b9 1627 0AB4 B7 ora a 1628 0AB5 C0 rnz 1629 0AB6 21 30 21 lxi h,X2130 1630 0AB9 3A 4B 21 lda X214b 1631 0ABC B7 ora a 1632 0ABD 5F mov e,a 1633 0ABE C2 C2 0A jnz X0ac2 1634 0AC1 1C inr e 1635 0AC2 7E X0ac2: mov a,m 1636 0AC3 E5 push h 1637 0AC4 D5 push d 1638 0AC5 21 F5 0A lxi h,X0af5 1639 0AC8 47 mov b,a 1640 0AC9 CD F7 09 call X09f7 1641 0ACC D1 pop d 1642 0ACD E1 pop h 1643 0ACE 3A B9 21 lda X21b9 1644 0AD1 B7 ora a 1645 0AD2 C8 rz 1646 0AD3 23 inx h 1647 0AD4 1D dcr e 1648 0AD5 C2 C2 0A jnz X0ac2 1649 0AD8 C9 ret 1651 0AD9 44 X0ad9: mov b,h 1652 0ADA 1E 18 mvi e,18h 1653 0ADC 42 mov b,d 1654 0ADD 07 rlc 1655 0ADE db 18h 18 1656 0ADF 43 mov b,e 1657 0AE0 15 dcr d 1658 0AE1 db 18h 18 1659 0AE2 48 mov c,b 1660 0AE3 53 mov d,e 1661 0AE4 db 18h 18 1662 0AE5 41 mov b,c 1663 0AE6 FE 17 cpi 17h 1664 0AE8 72 mov m,d 1665 0AE9 A6 ana m 1666 0AEA 15 dcr d 1667 0AEB 66 mov h,m 1668 0AEC 53 mov d,e 1669 0AED db 18h 18 1670 0AEE 78 mov a,b 1671 0AEF DF rst 3 1672 0AF0 12 stax d 1673 0AF1 79 mov a,c 1674 0AF2 64 mov h,h 1675 0AF3 db 8 08 1676 0AF4 00 nop 1677 0AF5 63 X0af5: mov h,e 1678 0AF6 C1 pop b 1679 0AF7 0C inr c 1680 0AF8 71 mov m,c 1681 0AF9 16 0C mvi d,0ch 1682 0AFB 6E mov l,m 1683 0AFC 03 inx b 1684 0AFD 0D dcr c 1685 0AFE 4A mov c,d 1686 0AFF 41 mov b,c 1687 0B00 15 dcr d 1688 0B01 4B mov c,e 1689 0B02 FC 14 6C cm X6c14 1690 0B05 db 0edh ED 1691 0B06 13 inx d 1692 0B07 6D mov l,l 1693 0B08 7F mov a,a 1694 0B09 0C inr c 1695 0B0A 68 mov l,b 1696 0B0B F2 13 67 jp X6713 1697 0B0E CF rst 1 1698 0B0F 0D dcr c 1699 0B10 00 nop 1700 0B11 21 19 0B lxi h,X0b19 1701 0B14 22 40 21 shld X2140 1702 0B17 E1 pop h 1703 0B18 C9 ret 1705 0B19 47 X0b19: mov b,a 1706 0B1A FE 20 cpi 20h 1707 0B1C DA B2 08 jc X08b2 1708 0B1F FE 1B cpi 1bh 1709 0B21 21 51 21 lxi h,X2151 1710 0B24 C2 2E 0B jnz X0b2e 1711 0B27 21 AB 09 lxi h,X09ab 1712 0B2A 22 40 21 shld X2140 1713 0B2D C9 ret 1715 0B2E 7E X0b2e: mov a,m 1716 0B2F B7 ora a 1717 0B30 C2 42 0B jnz X0b42 1718 0B33 36 01 mvi m,1 1719 0B35 78 mov a,b 1720 0B36 D6 20 sui 20h 1721 0B38 32 52 21 sta X2152 1722 0B3B 21 19 0B lxi h,X0b19 1723 0B3E 22 40 21 shld X2140 1724 0B41 C9 ret 1726 0B42 36 00 X0b42: mvi m,0 1727 0B44 78 mov a,b 1728 0B45 D6 20 sui 20h 1729 0B47 FE 50 cpi 50h 1730 0B49 D2 4F 0B jnc X0b4f 1731 0B4C 32 F8 20 sta X20f8 1732 0B4F CD BF 11 X0b4f: call X11bf 1733 0B52 3A 52 21 lda X2152 1734 0B55 04 inr b 1735 0B56 B8 cmp b 1736 0B57 D2 5D 0B jnc X0b5d 1737 0B5A 32 F9 20 sta X20f9 1738 0B5D CD 15 0A X0b5d: call X0a15 1739 0B60 C3 36 16 jmp X1636 1741 0B63 AF X0b63: xra a 1742 0B64 32 A2 21 sta X21a2 1743 0B67 CD AD 10 call X10ad 1744 0B6A 0E 50 mvi c,50h 1745 0B6C CD F9 10 call X10f9 1746 0B6F CD 4C 11 call X114c 1747 0B72 0E 50 mvi c,50h 1748 0B74 C3 89 0B jmp X0b89 1750 0B77 3E 01 X0b77: mvi a,1 1751 0B79 32 A2 21 sta X21a2 1752 0B7C CD AD 10 call X10ad 1753 0B7F 0E 84 mvi c,84h 1754 0B81 CD F9 10 call X10f9 1755 0B84 CD 4C 11 call X114c 1756 0B87 0E 84 mvi c,84h 1757 0B89 AF X0b89: xra a 1758 0B8A 32 55 21 sta X2155 1759 0B8D CD BF 11 call X11bf 1760 0B90 78 mov a,b 1761 0B91 32 56 21 sta X2156 1762 0B94 79 mov a,c 1763 0B95 32 50 20 sta X2050 1764 0B98 CD 42 03 call X0342 1765 0B9B CD 48 18 call X1848 1766 0B9E 3E 01 mvi a,1 1767 0BA0 C3 AA 0F jmp X0faa 1769 0BA3 21 F9 20 lxi h,X20f9 1770 0BA6 3A 55 21 lda X2155 1771 0BA9 47 mov b,a 1772 0BAA 7E mov a,m 1773 0BAB B8 cmp b 1774 0BAC CA B8 0B jz X0bb8 1775 0BAF B7 ora a 1776 0BB0 C8 rz 1777 0BB1 21 F9 20 lxi h,X20f9 1778 0BB4 35 dcr m 1779 0BB5 C3 36 16 jmp X1636 1781 0BB8 3A A6 21 X0bb8: lda X21a6 1782 0BBB E6 80 ani 80h 1783 0BBD CA D9 0B jz X0bd9 1784 0BC0 0E 01 mvi c,1 1785 0BC2 CD 8E 10 call X108e 1786 0BC5 3E FF mvi a,0ffh 1787 0BC7 32 C3 21 sta X21c3 1788 0BCA 35 dcr m 1789 0BCB CD EB 0F call X0feb 1790 0BCE 3A C3 21 X0bce: lda X21c3 1791 0BD1 B7 ora a 1792 0BD2 C2 CE 0B jnz X0bce 1793 0BD5 32 F4 20 sta X20f4 1794 0BD8 C9 ret 1796 0BD9 CD 2D 10 X0bd9: call X102d 1797 0BDC C3 12 10 jmp X1012 1799 0BDF 21 78 21 lxi h,X2178 1800 0BE2 36 01 mvi m,1 1801 0BE4 C9 ret 1803 0BE5 21 78 21 lxi h,X2178 1804 0BE8 36 00 mvi m,0 1805 0BEA C9 ret 1807 0BEB 21 A7 21 lxi h,X21a7 1808 0BEE 7E mov a,m 1809 0BEF F6 20 ori 20h 1810 0BF1 77 mov m,a 1811 0BF2 3A A8 21 X0bf2: lda X21a8 1812 0BF5 E6 80 ani 80h 1813 0BF7 26 08 mvi h,8 1814 0BF9 CA FE 0B jz X0bfe 1815 0BFC 26 48 mvi h,48h 1816 0BFE 6C X0bfe: mov l,h 1817 0BFF 22 FD 20 shld X20fd 1818 0C02 22 FF 20 shld X20ff 1819 0C05 AF xra a 1820 0C06 32 FC 20 sta X20fc 1821 0C09 C9 ret 1823 0C0A 26 88 mvi h,88h 1824 0C0C C3 11 0C jmp X0c11 1826 0C0F 26 08 mvi h,8 1827 0C11 6C X0c11: mov l,h 1828 0C12 22 FD 20 shld X20fd 1829 0C15 C9 ret 1831 0C16 21 45 21 lxi h,X2145 1832 0C19 78 mov a,b 1833 0C1A B7 ora a 1834 0C1B C2 23 0C jnz X0c23 1835 0C1E 7E mov a,m 1836 0C1F E6 F0 ani 0f0h 1837 0C21 77 mov m,a 1838 0C22 C9 ret 1840 0C23 D6 05 X0c23: sui 5 1841 0C25 F0 rp 1842 0C26 47 mov b,a 1843 0C27 AF xra a 1844 0C28 37 stc 1845 0C29 17 X0c29: ral 1846 0C2A 04 inr b 1847 0C2B C2 29 0C jnz X0c29 1848 0C2E B6 ora m 1849 0C2F 77 mov m,a 1850 0C30 C9 ret 1852 0C31 13 X0c31: inx d 1853 0C32 3A 7E 20 X0c32: lda X207e 1854 0C35 47 mov b,a 1855 0C36 21 4A 0C lxi h,X0c4a 1856 0C39 23 X0c39: inx h 1857 0C3A 23 inx h 1858 0C3B 7E mov a,m 1859 0C3C B7 ora a 1860 0C3D C8 rz 1861 0C3E B8 cmp b 1862 0C3F C2 39 0C jnz X0c39 1863 0C42 23 inx h 1864 0C43 7E mov a,m 1865 0C44 12 stax d 1866 0C45 C9 ret 1868 0C46 21 FC 20 X0c46: lxi h,X20fc 1869 0C49 34 inr m 1870 0C4A 34 X0c4a: inr m 1871 0C4B C9 ret 1873 0C4C 41 mov b,c 1874 0C4D 48 mov c,b 1875 0C4E 42 mov b,d 1876 0C4F db 8 08 1877 0C50 db 30h 30 1878 0C51 88 adc b 1879 0C52 31 00 32 lxi sp,X3200 1880 0C55 80 add b 1881 0C56 00 nop 1882 0C57 21 79 20 X0c57: lxi h,X2079 1883 0C5A 7E mov a,m 1884 0C5B B7 ora a 1885 0C5C CA 14 0A jz X0a14 1886 0C5F 36 81 mvi m,81h 1887 0C61 E1 pop h 1888 0C62 21 AD 05 X0c62: lxi h,X05ad 1889 0C65 C3 18 0A jmp X0a18 1891 0C68 21 02 21 lxi h,X2102 1892 0C6B 11 F8 20 lxi d,X20f8 1893 0C6E C3 77 0C jmp X0c77 1895 0C71 21 F8 20 lxi h,X20f8 1896 0C74 11 02 21 lxi d,X2102 1897 0C77 06 0B X0c77: mvi b,0bh 1898 0C79 CD 8B 03 call memmove 1899 0C7C C3 36 16 jmp X1636 1901 0C7F 21 8A 0C lxi h,X0c8a 1902 0C82 78 mov a,b 1903 0C83 B7 ora a 1904 0C84 CA 97 0C jz X0c97 1905 0C87 C3 FF 09 jmp X09ff 1907 0C8A 01 A2 0C X0c8a: lxi b,X0ca2 1908 0C8D 04 inr b 1909 0C8E A7 ana a 1910 0C8F 0C inr c 1911 0C90 05 dcr b 1912 0C91 B3 ora e 1913 0C92 0C inr c 1914 0C93 07 rlc 1915 0C94 BB cmp e 1916 0C95 0C inr c 1917 0C96 00 nop 1918 0C97 32 FB 20 X0c97: sta X20fb 1919 0C9A 21 FA 20 lxi h,X20fa 1920 0C9D 7E mov a,m 1921 0C9E F6 F7 ori 0f7h 1922 0CA0 77 mov m,a 1923 0CA1 C9 ret 1925 0CA2 3E FB X0ca2: mvi a,0fbh 1926 0CA4 C3 B5 0C jmp X0cb5 1928 0CA7 3A C8 21 lda X21c8 1929 0CAA B7 ora a 1930 0CAB C2 BB 0C jnz X0cbb 1931 0CAE 3E FD mvi a,0fdh 1932 0CB0 C3 B5 0C jmp X0cb5 1934 0CB3 3E FE mvi a,0feh 1935 0CB5 21 FA 20 X0cb5: lxi h,X20fa 1936 0CB8 A6 ana m 1937 0CB9 77 mov m,a 1938 0CBA C9 ret 1940 0CBB 3E 80 X0cbb: mvi a,80h 1941 0CBD 32 FB 20 sta X20fb 1942 0CC0 C9 ret 1944 0CC1 3A 30 21 lda X2130 1945 0CC4 B7 ora a 1946 0CC5 C0 rnz 1947 0CC6 21 72 21 lxi h,X2172 1948 0CC9 7E mov a,m 1949 0CCA F6 04 ori 4 1950 0CCC 77 mov m,a 1951 0CCD C9 ret 1953 0CCE 3E FB mvi a,0fbh 1954 0CD0 CD BF 0D call X0dbf 1955 0CD3 3A A7 21 lda X21a7 1956 0CD6 E6 20 ani 20h 1957 0CD8 C2 E3 0C jnz X0ce3 1958 0CDB 36 DA mvi m,0dah 1959 0CDD 2B dcx h 1960 0CDE 36 2F mvi m,2fh 1961 0CE0 C3 F3 0E jmp X0ef3 1963 0CE3 36 3F X0ce3: mvi m,3fh 1964 0CE5 23 inx h 1965 0CE6 3E 31 mvi a,31h 1966 0CE8 CD B9 0D call X0db9 1967 0CEB DB 42 in 42h 1968 0CED 47 mov b,a 1969 0CEE 2F cma 1970 0CEF E6 06 ani 6 1971 0CF1 4F mov c,a 1972 0CF2 78 mov a,b 1973 0CF3 E6 08 ani 8 1974 0CF5 CA F9 0C jz X0cf9 1975 0CF8 0C inr c 1976 0CF9 79 X0cf9: mov a,c 1977 0CFA F6 30 ori 30h 1978 0CFC 77 mov m,a 1979 0CFD 23 inx h 1980 0CFE 36 E3 mvi m,0e3h 1981 0D00 C3 F3 0E jmp X0ef3 1983 0D03 3A B8 21 lda X21b8 1984 0D06 B7 ora a 1985 0D07 C0 rnz 1986 0D08 78 mov a,b 1987 0D09 21 72 21 lxi h,X2172 1988 0D0C FE 06 cpi 6 1989 0D0E CA 32 0D jz X0d32 1990 0D11 FE 05 cpi 5 1991 0D13 C0 rnz 1992 0D14 7E mov a,m 1993 0D15 F6 08 ori 8 1994 0D17 77 mov m,a 1995 0D18 C9 ret 1997 0D19 3E F7 mvi a,0f7h 1998 0D1B CD BF 0D call X0dbf 1999 0D1E 06 03 mvi b,3 2000 0D20 3A BD 21 lda X21bd 2001 0D23 B7 ora a 2002 0D24 78 mov a,b 2003 0D25 C2 29 0D jnz X0d29 2004 0D28 AF xra a 2005 0D29 F6 30 X0d29: ori 30h 2006 0D2B 77 mov m,a 2007 0D2C 23 inx h 2008 0D2D 36 EE mvi m,0eeh 2009 0D2F C3 F3 0E X0d2f: jmp X0ef3 2011 0D32 7E X0d32: mov a,m 2012 0D33 F6 01 ori 1 2013 0D35 77 mov m,a 2014 0D36 C9 ret 2016 0D37 3E FE mvi a,0feh 2017 0D39 CD BF 0D call X0dbf 2018 0D3C 3A F9 20 lda X20f9 2019 0D3F 47 mov b,a 2020 0D40 3A 01 21 lda X2101 2021 0D43 B7 ora a 2022 0D44 CA 4A 0D jz X0d4a 2023 0D47 3A 55 21 lda X2155 2024 0D4A 4F X0d4a: mov c,a 2025 0D4B 78 mov a,b 2026 0D4C 91 sub c 2027 0D4D 3C inr a 2028 0D4E CD 7A 0D call X0d7a 2029 0D51 CD BB 0D call X0dbb 2030 0D54 3A F8 20 lda X20f8 2031 0D57 3C inr a 2032 0D58 CD 7A 0D call X0d7a 2033 0D5B 36 D2 mvi m,0d2h 2034 0D5D C3 F3 0E jmp X0ef3 2036 0D60 DB 42 in 42h 2037 0D62 E6 04 ani 4 2038 0D64 C0 rnz 2039 0D65 0E 81 mvi c,81h 2040 0D67 CD 8E 10 call X108e 2041 0D6A 3E FF mvi a,0ffh 2042 0D6C D3 E2 out 0e2h 2043 0D6E 00 nop 2044 0D6F CD 88 14 X0d6f: call X1488 2045 0D72 DB 42 in 42h 2046 0D74 E6 04 ani 4 2047 0D76 C2 6F 0D jnz X0d6f 2048 0D79 C9 ret 2050 0D7A 5F X0d7a: mov e,a 2051 0D7B 16 30 mvi d,30h 2052 0D7D 0E 64 mvi c,64h 2053 0D7F CD 99 0D call X0d99 2054 0D82 CA 88 0D jz X0d88 2055 0D85 77 mov m,a 2056 0D86 23 inx h 2057 0D87 15 dcr d 2058 0D88 0E 0A X0d88: mvi c,0ah 2059 0D8A CD 99 0D call X0d99 2060 0D8D CA 93 0D jz X0d93 2061 0D90 15 dcr d 2062 0D91 77 mov m,a 2063 0D92 23 inx h 2064 0D93 7B X0d93: mov a,e 2065 0D94 F6 30 ori 30h 2066 0D96 77 mov m,a 2067 0D97 23 inx h 2068 0D98 C9 ret 2070 0D99 7B X0d99: mov a,e 2071 0D9A 06 30 mvi b,30h 2072 0D9C 04 X0d9c: inr b 2073 0D9D 91 sub c 2074 0D9E F2 9C 0D jp X0d9c 2075 0DA1 81 add c 2076 0DA2 05 dcr b 2077 0DA3 5F mov e,a 2078 0DA4 78 mov a,b 2079 0DA5 BA cmp d 2080 0DA6 C9 ret 2082 0DA7 3E 45 mvi a,45h 2083 0DA9 32 C7 21 sta X21c7 2084 0DAC CD 81 03 call X0381 2085 0DAF 3E 45 mvi a,45h 2086 0DB1 32 F4 20 sta X20f4 2087 0DB4 AF xra a 2088 0DB5 32 C7 21 sta X21c7 2089 0DB8 C9 ret 2091 0DB9 77 X0db9: mov m,a 2092 0DBA 23 inx h 2093 0DBB 36 3B X0dbb: mvi m,3bh 2094 0DBD 23 inx h 2095 0DBE C9 ret 2097 0DBF 21 72 21 X0dbf: lxi h,X2172 2098 0DC2 A6 ana m 2099 0DC3 77 mov m,a 2100 0DC4 21 5C 21 lxi h,X215c 2101 0DC7 36 1B mvi m,1bh 2102 0DC9 23 inx h 2103 0DCA 36 5B mvi m,5bh 2104 0DCC 23 inx h 2105 0DCD C9 ret 2107 0DCE 42 mov b,d 2108 0DCF 78 mov a,b 2109 0DD0 B7 ora a 2110 0DD1 C2 D8 0D jnz X0dd8 2111 0DD4 CD E5 0D call X0de5 2112 0DD7 C9 ret 2114 0DD8 FE 03 X0dd8: cpi 3 2115 0DDA C0 rnz 2116 0DDB CD EC 0D call X0dec 2117 0DDE C9 ret 2119 0DDF CD 23 0E call X0e23 2120 0DE2 B6 ora m 2121 0DE3 77 mov m,a 2122 0DE4 C9 ret 2124 0DE5 CD 23 0E X0de5: call X0e23 2125 0DE8 2F cma 2126 0DE9 A6 ana m 2127 0DEA 77 mov m,a 2128 0DEB C9 ret 2130 0DEC 21 91 21 X0dec: lxi h,X2191 2131 0DEF AF X0def: xra a 2132 0DF0 77 mov m,a 2133 0DF1 23 inx h 2134 0DF2 7D mov a,l 2135 0DF3 FE A2 cpi 0a2h 2136 0DF5 C2 EF 0D jnz X0def 2137 0DF8 C9 ret 2139 0DF9 CD 23 0E X0df9: call X0e23 2140 0DFC 0C X0dfc: inr c 2141 0DFD B7 ora a 2142 0DFE 1F rar 2143 0DFF DA 0B 0E jc X0e0b 2144 0E02 57 X0e02: mov d,a 2145 0E03 A6 ana m 2146 0E04 7A mov a,d 2147 0E05 CA FC 0D jz X0dfc 2148 0E08 C3 15 0E jmp X0e15 2150 0E0B 23 X0e0b: inx h 2151 0E0C 7D mov a,l 2152 0E0D FE A2 cpi 0a2h 2153 0E0F 3E 80 mvi a,80h 2154 0E11 C2 02 0E jnz X0e02 2155 0E14 0D dcr c 2156 0E15 3A 53 21 X0e15: lda X2153 2157 0E18 B9 cmp c 2158 0E19 DA 1D 0E jc X0e1d 2159 0E1C 79 mov a,c 2160 0E1D 32 F8 20 X0e1d: sta X20f8 2161 0E20 C3 36 16 jmp X1636 2163 0E23 3A F8 20 X0e23: lda X20f8 2164 0E26 4F mov c,a 2165 0E27 57 X0e27: mov d,a 2166 0E28 21 91 21 lxi h,X2191 2167 0E2B 0F X0e2b: rrc 2168 0E2C 0F rrc 2169 0E2D 0F rrc 2170 0E2E E6 1F ani 1fh 2171 0E30 85 add l 2172 0E31 6F mov l,a 2173 0E32 7A mov a,d 2174 0E33 E6 07 ani 7 2175 0E35 57 mov d,a 2176 0E36 3E 80 mvi a,80h 2177 0E38 15 X0e38: dcr d 2178 0E39 F8 rm 2179 0E3A 0F rrc 2180 0E3B C3 38 0E jmp X0e38 2182 0E3E 3A A5 21 X0e3e: lda X21a5 2183 0E41 21 7B 20 lxi h,X207b 2184 0E44 B6 ora m 2185 0E45 47 mov b,a 2186 0E46 C0 rnz 2187 0E47 DB 42 X0e47: in 42h 2188 0E49 E6 01 ani 1 2189 0E4B C8 rz 2190 0E4C 21 C1 21 lxi h,X21c1 2191 0E4F 7E mov a,m 2192 0E50 B7 ora a 2193 0E51 36 00 mvi m,0 2194 0E53 2B dcx h 2195 0E54 C8 rz 2196 0E55 7E mov a,m 2197 0E56 D3 00 out 0 2198 0E58 C9 ret 2200 0E59 F3 X0e59: di 2201 0E5A CD 3E 0E call X0e3e 2202 0E5D FB ei 2203 0E5E 78 mov a,b 2204 0E5F B7 ora a 2205 0E60 C2 6D 0E jnz X0e6d 2206 0E63 DB 42 in 42h 2207 0E65 E6 01 ani 1 2208 0E67 C8 rz 2209 0E68 3A C2 21 lda X21c2 2210 0E6B B7 ora a 2211 0E6C C0 rnz 2212 0E6D 21 73 21 X0e6d: lxi h,X2173 2213 0E70 7E mov a,m 2214 0E71 B7 ora a 2215 0E72 CA 79 0E jz X0e79 2216 0E75 2A 74 21 lhld X2174 2217 0E78 E9 pchl 2219 0E79 3A 72 21 X0e79: lda X2172 2220 0E7C B7 ora a 2221 0E7D C8 rz 2222 0E7E 1E 00 mvi e,0 2223 0E80 1F X0e80: rar 2224 0E81 DA 89 0E jc X0e89 2225 0E84 1C inr e 2226 0E85 1C inr e 2227 0E86 C3 80 0E jmp X0e80 2229 0E89 16 00 X0e89: mvi d,0 2230 0E8B 21 94 0E lxi h,X0e94 2231 0E8E 19 dad d 2232 0E8F 7E mov a,m 2233 0E90 23 inx h 2234 0E91 66 mov h,m 2235 0E92 6F mov l,a 2236 0E93 E9 pchl 2238 0E94 37 X0e94: stc 2239 0E95 0D dcr c 2240 0E96 F0 rp 2241 0E97 12 stax d 2242 0E98 CE 0C aci 0ch 2243 0E9A 19 dad d 2244 0E9B 0D dcr c 2245 0E9C 13 inx d 2246 0E9D 09 dad b 2247 0E9E A0 ana b 2248 0E9F 0E 21 mvi c,21h 2249 0EA1 5C mov e,h 2250 0EA2 db 20h 20 2251 0EA3 46 mov b,m 2252 0EA4 54 mov d,h 2253 0EA5 5D mov e,l 2254 0EA6 13 inx d 2255 0EA7 0E 08 mvi c,8 2256 0EA9 1A X0ea9: ldax d 2257 0EAA 77 mov m,a 2258 0EAB 23 inx h 2259 0EAC 13 inx d 2260 0EAD 0D dcr c 2261 0EAE C2 A9 0E jnz X0ea9 2262 0EB1 21 43 21 lxi h,X2143 2263 0EB4 35 dcr m 2264 0EB5 7E mov a,m 2265 0EB6 4F mov c,a 2266 0EB7 C2 C1 0E jnz X0ec1 2267 0EBA 21 72 21 lxi h,X2172 2268 0EBD 7E mov a,m 2269 0EBE E6 DF ani 0dfh 2270 0EC0 77 mov m,a 2271 0EC1 3A A5 21 X0ec1: lda X21a5 2272 0EC4 B7 ora a 2273 0EC5 C2 CF 0E jnz X0ecf 2274 0EC8 79 mov a,c 2275 0EC9 FE 05 cpi 5 2276 0ECB D2 D2 0E jnc X0ed2 2277 0ECE AF xra a 2278 0ECF 32 44 21 X0ecf: sta X2144 2279 0ED2 78 X0ed2: mov a,b 2280 0ED3 E6 80 ani 80h 2281 0ED5 17 ral 2282 0ED6 3F cmc 2283 0ED7 1F rar 2284 0ED8 32 73 21 sta X2173 2285 0EDB 21 A0 0E lxi h,X0ea0 2286 0EDE 22 74 21 shld X2174 2287 0EE1 78 X0ee1: mov a,b 2288 0EE2 E6 7F ani 7fh 2289 0EE4 47 mov b,a 2290 0EE5 3A A5 21 lda X21a5 2291 0EE8 21 7B 20 lxi h,X207b 2292 0EEB B6 ora m 2293 0EEC 78 mov a,b 2294 0EED C2 93 05 jnz X0593 2295 0EF0 D3 00 out 0 2296 0EF2 C9 ret 2298 0EF3 21 01 0F X0ef3: lxi h,X0f01 2299 0EF6 22 74 21 shld X2174 2300 0EF9 AF xra a 2301 0EFA 32 71 21 sta X2171 2302 0EFD 3C inr a 2303 0EFE 32 73 21 sta X2173 2304 0F01 21 71 21 X0f01: lxi h,X2171 2305 0F04 7E mov a,m 2306 0F05 34 inr m 2307 0F06 21 5C 21 lxi h,X215c 2308 0F09 85 add l 2309 0F0A 6F mov l,a 2310 0F0B 46 mov b,m 2311 0F0C 78 mov a,b 2312 0F0D B7 ora a 2313 0F0E F2 E1 0E jp X0ee1 2314 0F11 AF xra a 2315 0F12 32 73 21 sta X2173 2316 0F15 C3 E1 0E jmp X0ee1 2318 0F18 E5 X0f18: push h 2319 0F19 D5 push d 2320 0F1A 57 mov d,a 2321 0F1B 3A A7 21 lda X21a7 2322 0F1E E6 10 ani 10h 2323 0F20 CA 2B 0F jz X0f2b 2324 0F23 7A mov a,d 2325 0F24 D6 91 sui 91h 2326 0F26 E6 FD ani 0fdh 2327 0F28 CA 61 0F jz X0f61 2328 0F2B 21 72 21 X0f2b: lxi h,X2172 2329 0F2E 7E mov a,m 2330 0F2F F6 20 ori 20h 2331 0F31 77 mov m,a 2332 0F32 21 43 21 X0f32: lxi h,X2143 2333 0F35 7E mov a,m 2334 0F36 34 inr m 2335 0F37 21 5C 20 lxi h,X205c 2336 0F3A 5F mov e,a 2337 0F3B 85 add l 2338 0F3C 6F mov l,a 2339 0F3D 72 mov m,d 2340 0F3E 3E 8D mvi a,8dh 2341 0F40 BA cmp d 2342 0F41 C2 4E 0F jnz X0f4e 2343 0F44 3A A8 21 lda X21a8 2344 0F47 E6 20 ani 20h 2345 0F49 16 8A mvi d,8ah 2346 0F4B C2 32 0F jnz X0f32 2347 0F4E 3A A5 21 X0f4e: lda X21a5 2348 0F51 B7 ora a 2349 0F52 C2 5B 0F jnz X0f5b 2350 0F55 3E 05 mvi a,5 2351 0F57 BB cmp e 2352 0F58 3E 00 mvi a,0 2353 0F5A 1F rar 2354 0F5B 32 44 21 X0f5b: sta X2144 2355 0F5E D1 X0f5e: pop d 2356 0F5F E1 pop h 2357 0F60 C9 ret 2359 0F61 7A X0f61: mov a,d 2360 0F62 E6 7F ani 7fh 2361 0F64 57 mov d,a 2362 0F65 21 C1 21 lxi h,X21c1 2363 0F68 7E mov a,m 2364 0F69 B7 ora a 2365 0F6A C2 75 0F jnz X0f75 2366 0F6D 2B dcx h 2367 0F6E 7E mov a,m 2368 0F6F BA cmp d 2369 0F70 C2 75 0F jnz X0f75 2370 0F73 23 inx h 2371 0F74 72 mov m,d 2372 0F75 4A X0f75: mov c,d 2373 0F76 06 02 mvi b,2 2374 0F78 CD 7E 0F call X0f7e 2375 0F7B C3 5E 0F jmp X0f5e 2377 0F7E 3A A7 21 X0f7e: lda X21a7 2378 0F81 E6 10 ani 10h 2379 0F83 C8 rz 2380 0F84 3A A5 21 lda X21a5 2381 0F87 B7 ora a 2382 0F88 C0 rnz 2383 0F89 79 mov a,c 2384 0F8A 21 BF 21 lxi h,X21bf 2385 0F8D FE 13 cpi 13h 2386 0F8F 78 mov a,b 2387 0F90 CA 9E 0F jz X0f9e 2388 0F93 2F cma 2389 0F94 A6 ana m 2390 0F95 77 mov m,a 2391 0F96 F5 push psw 2392 0F97 E6 02 ani 2 2393 0F99 32 C4 21 sta X21c4 2394 0F9C F1 pop psw 2395 0F9D C0 rnz 2396 0F9E B6 X0f9e: ora m 2397 0F9F 77 mov m,a 2398 0FA0 79 mov a,c 2399 0FA1 21 C0 21 lxi h,X21c0 2400 0FA4 BE cmp m 2401 0FA5 C8 rz 2402 0FA6 77 mov m,a 2403 0FA7 23 inx h 2404 0FA8 77 mov m,a 2405 0FA9 C9 ret ; ; Main loop? ; ; Absent any interrupts, execution gravitates here: ; ; 0FAA: ; ... ; call 1488 ; call 1493 ; read port 0x42 (check flags buffer) ; call 06aa ; check byte at [2068] ; cli ; call 0e3e ; fetch byte at [21A5], OR byte at [207B] ; sti ; ; return byte at [2172] in A ; jmp 0FAE ; 2423 0FAA 21 7F 20 X0faa: lxi h,X207f 2424 0FAD 86 add m 2425 0FAE BE X0fae: cmp m 2426 0FAF C8 rz 2427 0FB0 E5 push h 2428 0FB1 F5 push psw 2429 0FB2 3A 7B 20 lda X207b 2430 0FB5 B7 ora a 2431 0FB6 CC 88 14 cz X1488 2432 0FB9 F1 pop psw 2433 0FBA E1 pop h 2434 0FBB C3 AE 0F jmp X0fae ; ; End of main loop? ; 2439 0FBE 2A 4E 20 X0fbe: lhld scratch_start ; HL = [0x204e] 2440 0FC1 7C mov a,h 2441 0FC2 F6 F0 ori 0f0h 2442 0FC4 67 mov h,a 2443 0FC5 22 4E 20 shld scratch_start ; update [0x204e] 2444 0FC8 3A 50 20 X0fc8: lda X2050 2445 0FCB 47 X0fcb: mov b,a 2446 0FCC 7C mov a,h 2447 0FCD E6 0F ani 0fh 2448 0FCF F6 20 ori 20h 2449 0FD1 67 mov h,a 2450 0FD2 C6 10 adi 10h 2451 0FD4 57 mov d,a 2452 0FD5 5D mov e,l 2453 0FD6 3E FF mvi a,0ffh 2454 0FD8 36 00 X0fd8: mvi m,0 2455 0FDA 12 stax d 2456 0FDB 13 inx d 2457 0FDC 23 inx h 2458 0FDD 05 dcr b 2459 0FDE C2 D8 0F jnz X0fd8 2460 0FE1 3C inr a 2461 0FE2 32 C3 21 sta X21c3 2462 0FE5 C9 ret 2464 0FE6 06 FF X0fe6: mvi b,0ffh 2465 0FE8 C3 ED 0F jmp X0fed 2467 0FEB 06 01 X0feb: mvi b,1 2468 0FED 21 55 21 X0fed: lxi h,X2155 2469 0FF0 56 mov d,m 2470 0FF1 23 inx h 2471 0FF2 5E mov e,m 2472 0FF3 78 mov a,b 2473 0FF4 B7 ora a 2474 0FF5 7A mov a,d 2475 0FF6 F2 FA 0F jp X0ffa 2476 0FF9 7B mov a,e 2477 0FFA CD E6 13 X0ffa: call X13e6 2478 0FFD 7B mov a,e 2479 0FFE 92 sub d 2480 0FFF 4F X0fff: mov c,a 2481 1000 3A 2B 21 lda X212b 2482 1003 56 X1003: mov d,m 2483 1004 77 mov m,a 2484 1005 78 mov a,b 2485 1006 85 add l 2486 1007 6F mov l,a 2487 1008 0D dcr c 2488 1009 7A mov a,d 2489 100A F2 03 10 jp X1003 2490 100D E6 7F ani 7fh 2491 100F 32 2B 21 sta X212b 2492 1012 3E FF X1012: mvi a,0ffh 2493 1014 32 0E 21 sta X210e 2494 1017 C3 36 16 jmp X1636 2496 101A CD 91 11 X101a: call X1191 2497 101D 3A 56 21 lda X2156 2498 1020 CD 2F 12 call X122f 2499 1023 CD E6 0F call X0fe6 2500 1026 3A 55 21 lda X2155 2501 1029 3D dcr a 2502 102A C3 3E 10 jmp X103e 2504 102D CD 91 11 X102d: call X1191 2505 1030 3A 55 21 lda X2155 2506 1033 3D dcr a 2507 1034 CD 2F 12 call X122f 2508 1037 CD EB 0F call X0feb 2509 103A 3A 56 21 lda X2156 2510 103D 3D dcr a 2511 103E CD CE 11 X103e: call X11ce 2512 1041 FB ei 2513 1042 32 7A 20 sta X207a 2514 1045 21 56 21 lxi h,X2156 2515 1048 7E mov a,m 2516 1049 2B dcx h 2517 104A 96 sub m 2518 104B FE 17 cpi 17h 2519 104D C0 rnz 2520 104E 21 7A 20 X104e: lxi h,X207a 2521 1051 7E mov a,m 2522 1052 36 00 mvi m,0 2523 1054 B7 ora a 2524 1055 C8 rz 2525 1056 2A 56 20 lhld X2056 2526 1059 EB xchg 2527 105A 2A 58 20 lhld X2058 2528 105D 72 mov m,d 2529 105E 23 inx h 2530 105F 73 mov m,e 2531 1060 2A 79 21 lhld X2179 2532 1063 EB xchg 2533 1064 2A 75 20 lhld X2075 2534 1067 72 mov m,d 2535 1068 23 inx h 2536 1069 73 mov m,e 2537 106A 21 56 20 X106a: lxi h,X2056 2538 106D 22 58 20 shld X2058 2539 1070 22 75 20 shld X2075 2540 1073 C9 ret 2542 1074 CD E3 13 X1074: call X13e3 2543 1077 E6 80 ani 80h 2544 1079 32 57 21 sta X2157 2545 107C CD 8D 13 call X138d 2546 107F 22 4E 21 shld X214e 2547 1082 C9 ret ;; ;; memset(0x1083): Set DE bytes at address HL to B ;; 2551 1083 70 memset: mov m,b ;; M <- B 2552 1084 23 inx h ;; HL++ 2553 1085 1B dcx d ;; DE-- 2554 1086 7A mov a,d ;; 2555 1087 B3 ora e ;; A = D | E 2556 1088 C2 83 10 jnz memset ;; repeat if A != 0 2557 108B C9 ret 2559 108C 0E 00 mvi c,0 2560 108E 21 51 20 X108e: lxi h,X2051 2561 1091 F3 di 2562 1092 3A 65 20 lda X2065 2563 1095 B6 ora m 2564 1096 FB ei 2565 1097 CA A7 10 jz X10a7 2566 109A 79 mov a,c 2567 109B 1F rar 2568 109C C5 push b 2569 109D DC 88 14 cc X1488 2570 10A0 CD 93 14 call X1493 2571 10A3 C1 pop b 2572 10A4 C3 8E 10 jmp X108e 2574 10A7 79 X10a7: mov a,c 2575 10A8 17 ral 2576 10A9 D0 rnc 2577 10AA C3 91 11 jmp X1191 2579 10AD 21 70 06 X10ad: lxi h,X0670 2580 10B0 22 04 20 shld X2004 2581 10B3 AF xra a 2582 10B4 32 51 20 sta X2051 2583 10B7 32 65 20 sta X2065 2584 10BA 32 5A 20 sta X205a 2585 10BD D3 A2 out 0a2h 2586 10BF 3E 04 mvi a,4 2587 10C1 D3 A2 out 0a2h 2588 10C3 CD 6A 10 call X106a 2589 10C6 FB ei 2590 10C7 3E 01 mvi a,1 2591 10C9 CD AA 0F call X0faa 2592 10CC 21 D0 22 lxi h,X22d0 2593 10CF 7C mov a,h 2594 10D0 C6 10 adi 10h 2595 10D2 57 mov d,a 2596 10D3 5D mov e,l 2597 10D4 01 2F 0D lxi b,X0d2f 2598 10D7 3A C7 21 X10d7: lda X21c7 2599 10DA 77 mov m,a 2600 10DB 23 inx h 2601 10DC 3E FF mvi a,0ffh 2602 10DE 12 stax d 2603 10DF 13 inx d 2604 10E0 0B dcx b 2605 10E1 78 mov a,b 2606 10E2 B1 ora c 2607 10E3 C2 D7 10 jnz X10d7 2608 10E6 3A C7 21 lda X21c7 2609 10E9 32 F4 20 sta X20f4 2610 10EC AF xra a 2611 10ED 32 F9 20 sta X20f9 2612 10F0 32 F8 20 sta X20f8 2613 10F3 3E FF mvi a,0ffh 2614 10F5 32 F5 20 sta X20f5 2615 10F8 C9 ret 2617 10F9 AF X10f9: xra a 2618 10FA 32 51 20 sta X2051 2619 10FD 3A 65 20 X10fd: lda X2065 2620 1100 B7 ora a 2621 1101 C2 FD 10 jnz X10fd 2622 1104 21 D0 22 lxi h,X22d0 2623 1107 06 00 mvi b,0 2624 1109 09 dad b 2625 110A CD BF 11 call X11bf 2626 110D 0C inr c 2627 110E CD 36 11 call X1136 2628 1111 E5 push h 2629 1112 06 01 mvi b,1 2630 1114 CD 36 11 call X1136 2631 1117 E1 pop h 2632 1118 36 7F mvi m,7fh 2633 111A 23 inx h 2634 111B 22 54 20 shld X2054 2635 111E 36 70 mvi m,70h 2636 1120 23 inx h 2637 1121 36 06 mvi m,6 2638 1123 79 mov a,c 2639 1124 CD DE 13 call X13de 2640 1127 36 7F mvi m,7fh 2641 1129 0D dcr c 2642 112A 3E 03 mvi a,3 2643 112C 32 02 20 sta X2002 2644 112F 21 F2 D0 lxi h,Xd0f2 2645 1132 22 04 20 shld X2004 2646 1135 C9 ret 2648 1136 36 7F X1136: mvi m,7fh 2649 1138 23 inx h 2650 1139 54 mov d,h 2651 113A 5D mov e,l 2652 113B 13 inx d 2653 113C 13 inx d 2654 113D 7A mov a,d 2655 113E F6 F0 ori 0f0h 2656 1140 77 mov m,a 2657 1141 23 inx h 2658 1142 73 mov m,e 2659 1143 79 mov a,c 2660 1144 CD DE 13 call X13de 2661 1147 05 dcr b 2662 1148 C2 36 11 jnz X1136 2663 114B C9 ret 2665 114C 21 C2 20 X114c: lxi h,X20c2 2666 114F 0C inr c 2667 1150 0C inr c 2668 1151 0C inr c 2669 1152 11 D0 22 lxi d,X22d0 2670 1155 06 00 mvi b,0 2671 1157 3E 19 mvi a,19h 2672 1159 73 X1159: mov m,e 2673 115A 23 inx h 2674 115B 72 mov m,d 2675 115C 23 inx h 2676 115D EB xchg 2677 115E 09 dad b 2678 115F EB xchg 2679 1160 3D dcr a 2680 1161 C2 59 11 jnz X1159 2681 1164 32 55 21 sta X2155 2682 1167 CD BF 11 call X11bf 2683 116A 78 mov a,b 2684 116B 32 56 21 sta X2156 2685 116E 3C inr a 2686 116F 32 2B 21 sta X212b 2687 1172 2A F2 20 lhld X20f2 2688 1175 3E 17 mvi a,17h 2689 1177 B8 cmp b 2690 1178 CA 7E 11 jz X117e 2691 117B 2A DE 20 lhld X20de 2692 117E 7C X117e: mov a,h 2693 117F F6 F0 ori 0f0h 2694 1181 67 mov h,a 2695 1182 22 4E 20 shld scratch_start ; update [0x204e] 2696 1185 21 13 21 lxi h,X2113 2697 1188 AF xra a 2698 1189 77 X1189: mov m,a 2699 118A 2C inr l 2700 118B 3C inr a 2701 118C 05 dcr b 2702 118D F2 89 11 jp X1189 2703 1190 C9 ret 2705 1191 F3 X1191: di 2706 1192 3A 7A 20 lda X207a 2707 1195 B7 ora a 2708 1196 CA A0 11 jz X11a0 2709 1199 FB X1199: ei 2710 119A CD 88 14 call X1488 2711 119D C3 91 11 jmp X1191 2713 11A0 3A 65 20 X11a0: lda X2065 2714 11A3 B7 ora a 2715 11A4 C2 B0 11 jnz X11b0 2716 11A7 3A 51 20 lda X2051 2717 11AA B7 ora a 2718 11AB FB ei 2719 11AC C8 rz 2720 11AD C3 99 11 jmp X1199 2722 11B0 3A 5B 20 X11b0: lda X205b 2723 11B3 21 5A 20 lxi h,X205a 2724 11B6 86 add m 2725 11B7 27 daa 2726 11B8 E6 0F ani 0fh 2727 11BA CA 99 11 jz X1199 2728 11BD FB ei 2729 11BE C9 ret 2731 11BF E5 X11bf: push h 2732 11C0 06 17 mvi b,17h 2733 11C2 3A A2 21 lda X21a2 2734 11C5 21 C8 21 lxi h,X21c8 2735 11C8 A6 ana m 2736 11C9 E1 pop h 2737 11CA C8 rz 2738 11CB 06 0D mvi b,0dh 2739 11CD C9 ret 2741 11CE B7 X11ce: ora a 2742 11CF F2 E8 11 jp X11e8 2743 11D2 21 04 20 lxi h,X2004 2744 11D5 E5 push h 2745 11D6 7E mov a,m 2746 11D7 23 inx h 2747 11D8 6E mov l,m 2748 11D9 F6 F0 ori 0f0h 2749 11DB 67 mov h,a 2750 11DC 22 4E 20 shld scratch_start ; update [0x204e] 2751 11DF CD 90 12 call X1290 2752 11E2 E1 pop h 2753 11E3 42 mov b,d 2754 11E4 4B mov c,e 2755 11E5 C3 0A 12 jmp X120a 2757 11E8 CD 7F 12 X11e8: call X127f 2758 11EB CD 90 12 call X1290 2759 11EE E5 push h 2760 11EF D5 push d 2761 11F0 EB xchg 2762 11F1 CD 90 12 call X1290 2763 11F4 42 mov b,d 2764 11F5 4B mov c,e 2765 11F6 D1 pop d 2766 11F7 7A mov a,d 2767 11F8 F6 F0 ori 0f0h 2768 11FA 67 mov h,a 2769 11FB 6B mov l,e 2770 11FC 22 4E 20 shld scratch_start ; update [0x204e] 2771 11FF E1 pop h 2772 1200 7C mov a,h 2773 1201 F6 9F ori 9fh 2774 1203 3C inr a 2775 1204 C2 11 12 jnz X1211 2776 1207 CD 99 12 call X1299 2777 120A F3 X120a: di 2778 120B 22 75 20 shld X2075 2779 120E C3 28 12 jmp X1228 2781 1211 CD 9D 12 X1211: call X129d 2782 1214 3A 50 20 lda X2050 2783 1217 0F rrc 2784 1218 57 mov d,a 2785 1219 CD DE 13 call X13de 2786 121C 23 inx h 2787 121D F3 di 2788 121E 22 75 20 shld X2075 2789 1221 7A mov a,d 2790 1222 CD DE 13 call X13de 2791 1225 70 mov m,b 2792 1226 23 inx h 2793 1227 71 mov m,c 2794 1228 60 X1228: mov h,b 2795 1229 69 mov l,c 2796 122A 22 79 21 shld X2179 2797 122D FB ei 2798 122E C9 ret 2800 122F F5 X122f: push psw 2801 1230 CD BE 0F call X0fbe 2802 1233 F1 pop psw 2803 1234 B7 ora a 2804 1235 21 04 20 lxi h,X2004 2805 1238 FA 48 12 jm X1248 2806 123B CD 7F 12 call X127f 2807 123E 7C mov a,h 2808 123F F6 9F ori 9fh 2809 1241 3C inr a 2810 1242 C2 52 12 jnz X1252 2811 1245 CD 99 12 call X1299 2812 1248 F3 X1248: di 2813 1249 22 58 20 shld X2058 2814 124C 46 mov b,m 2815 124D 23 inx h 2816 124E 4E mov c,m 2817 124F C3 71 12 jmp X1271 2819 1252 CD 9D 12 X1252: call X129d 2820 1255 3A 50 20 lda X2050 2821 1258 0F rrc 2822 1259 47 mov b,a 2823 125A CD DE 13 call X13de 2824 125D 23 inx h 2825 125E F3 di 2826 125F 22 58 20 shld X2058 2827 1262 78 mov a,b 2828 1263 46 mov b,m 2829 1264 23 inx h 2830 1265 4E mov c,m 2831 1266 CD DE 13 call X13de 2832 1269 EB xchg 2833 126A 2A 4E 20 lhld scratch_start ; load [0x204e] 2834 126D EB xchg 2835 126E 73 mov m,e 2836 126F 2B dcx h 2837 1270 72 mov m,d 2838 1271 2A 4E 20 X1271: lhld scratch_start ; load [0x204e] 2839 1274 22 56 20 shld X2056 2840 1277 CD 99 12 call X1299 2841 127A 70 mov m,b 2842 127B 23 inx h 2843 127C 71 mov m,c 2844 127D FB ei 2845 127E C9 ret 2847 127F 3C X127f: inr a 2848 1280 47 mov b,a 2849 1281 21 04 20 lxi h,X2004 2850 1284 7E X1284: mov a,m 2851 1285 23 inx h 2852 1286 6E mov l,m 2853 1287 67 mov h,a 2854 1288 05 dcr b 2855 1289 C8 rz 2856 128A CD 99 12 call X1299 2857 128D C3 84 12 jmp X1284 2859 1290 E5 X1290: push h 2860 1291 CD 99 12 call X1299 2861 1294 56 mov d,m 2862 1295 23 inx h 2863 1296 5E mov e,m 2864 1297 E1 pop h 2865 1298 C9 ret 2867 1299 CD DB 13 X1299: call X13db 2868 129C 23 inx h 2869 129D 7C X129d: mov a,h 2870 129E E6 0F ani 0fh 2871 12A0 F6 20 ori 20h 2872 12A2 67 mov h,a 2873 12A3 C9 ret 2875 12A4 CD B0 12 call X12b0 2876 12A7 50 mov d,b 2877 12A8 CD B0 12 call X12b0 2878 12AB db 30h 30 2879 12AC CD B0 12 call X12b0 2880 12AF db 10h 10 2881 12B0 CD 91 11 X12b0: call X1191 2882 12B3 21 13 21 lxi h,X2113 2883 12B6 3A F9 20 lda X20f9 2884 12B9 85 add l 2885 12BA 6F mov l,a 2886 12BB 7E mov a,m 2887 12BC F6 80 ori 80h 2888 12BE 77 mov m,a 2889 12BF CD 8D 13 call X138d 2890 12C2 CD C3 13 call X13c3 2891 12C5 E1 pop h 2892 12C6 7E mov a,m 2893 12C7 CD 95 13 call X1395 2894 12CA 3A 53 21 lda X2153 2895 12CD 21 F8 20 lxi h,X20f8 2896 12D0 B7 ora a 2897 12D1 1F rar 2898 12D2 BE cmp m 2899 12D3 D2 12 10 jnc X1012 2900 12D6 21 F4 20 lxi h,X20f4 2901 12D9 22 F6 20 shld cursor_address 2902 12DC C3 12 10 jmp X1012 2904 12DF 3A 30 21 lda X2130 2905 12E2 FE 02 cpi 2 2906 12E4 D0 rnc 2907 12E5 32 76 21 sta X2176 2908 12E8 21 72 21 X12e8: lxi h,X2172 2909 12EB 7E mov a,m 2910 12EC F6 02 ori 2 2911 12EE 77 mov m,a 2912 12EF C9 ret 2914 12F0 3E FD mvi a,0fdh 2915 12F2 CD BF 0D call X0dbf 2916 12F5 3A 76 21 lda X2176 2917 12F8 F6 32 ori 32h 2918 12FA CD B9 0D call X0db9 2919 12FD 3A A9 21 lda X21a9 2920 1300 F5 push psw 2921 1301 E6 C0 ani 0c0h 2922 1303 F6 18 ori 18h 2923 1305 87 add a 2924 1306 3C inr a 2925 1307 F2 10 13 jp X1310 2926 130A 1F rar 2927 130B 07 rlc 2928 130C F6 04 ori 4 2929 130E E6 7F ani 7fh 2930 1310 CD B9 0D X1310: call X0db9 2931 1313 06 31 mvi b,31h 2932 1315 F1 pop psw 2933 1316 E6 20 ani 20h 2934 1318 C2 1C 13 jnz X131c 2935 131B 04 inr b 2936 131C 78 X131c: mov a,b 2937 131D CD B9 0D call X0db9 2938 1320 3A AB 21 lda X21ab 2939 1323 0F rrc 2940 1324 CD 7A 0D call X0d7a 2941 1327 CD BB 0D call X0dbb 2942 132A 3A AC 21 lda X21ac 2943 132D 0F rrc 2944 132E CD 7A 0D call X0d7a 2945 1331 CD BB 0D call X0dbb 2946 1334 3E 31 mvi a,31h 2947 1336 CD B9 0D call X0db9 2948 1339 3A AA 21 lda X21aa 2949 133C E6 F0 ani 0f0h 2950 133E 0F rrc 2951 133F 0F rrc 2952 1340 0F rrc 2953 1341 0F rrc 2954 1342 CD 7A 0D call X0d7a 2955 1345 36 F8 mvi m,0f8h 2956 1347 C3 F3 0E jmp X0ef3 2958 134A 21 57 21 X134a: lxi h,X2157 2959 134D 7E mov a,m 2960 134E B7 ora a 2961 134F C8 rz 2962 1350 CD 91 11 call X1191 2963 1353 21 13 21 lxi h,X2113 2964 1356 3A F9 20 lda X20f9 2965 1359 85 add l 2966 135A 6F mov l,a 2967 135B 7E mov a,m 2968 135C E6 7F ani 7fh 2969 135E 77 mov m,a 2970 135F CD 8D 13 call X138d 2971 1362 3A 50 20 lda X2050 2972 1365 0F rrc 2973 1366 47 mov b,a 2974 1367 CD DE 13 call X13de 2975 136A AF xra a 2976 136B 77 X136b: mov m,a 2977 136C 23 inx h 2978 136D 05 dcr b 2979 136E C2 6B 13 jnz X136b 2980 1371 3E F0 mvi a,0f0h 2981 1373 32 0E 21 sta X210e 2982 1376 CD 95 13 call X1395 2983 1379 AF xra a 2984 137A 32 57 21 sta X2157 2985 137D C3 36 16 jmp X1636 2987 1380 3A F9 20 X1380: lda X20f9 2988 1383 CD E6 13 call X13e6 2989 1386 21 C2 20 X1386: lxi h,X20c2 2990 1389 87 add a 2991 138A 85 add l 2992 138B 6F mov l,a 2993 138C C9 ret 2995 138D CD 80 13 X138d: call X1380 2996 1390 7E X1390: mov a,m 2997 1391 23 inx h 2998 1392 66 mov h,m 2999 1393 6F mov l,a 3000 1394 C9 ret 3002 1395 E6 70 X1395: ani 70h 3003 1397 47 mov b,a 3004 1398 3A F9 20 lda X20f9 3005 139B 3D dcr a 3006 139C 21 04 20 lxi h,X2004 3007 139F FA BD 13 jm X13bd 3008 13A2 CD E6 13 call X13e6 3009 13A5 57 mov d,a 3010 13A6 E6 7F ani 7fh 3011 13A8 CD 86 13 call X1386 3012 13AB CD 90 13 call X1390 3013 13AE 3A 50 20 lda X2050 3014 13B1 0F rrc 3015 13B2 5F mov e,a 3016 13B3 23 inx h 3017 13B4 14 inr d 3018 13B5 15 dcr d 3019 13B6 16 00 mvi d,0 3020 13B8 19 dad d 3021 13B9 FC BD 13 cm X13bd 3022 13BC 19 dad d 3023 13BD 7E X13bd: mov a,m 3024 13BE E6 8F ani 8fh 3025 13C0 B0 ora b 3026 13C1 77 mov m,a 3027 13C2 C9 ret 3029 13C3 3A 50 20 X13c3: lda X2050 3030 13C6 0F rrc 3031 13C7 54 mov d,h 3032 13C8 5D mov e,l 3033 13C9 CD DE 13 call X13de 3034 13CC EB xchg 3035 13CD CD DB 13 call X13db 3036 13D0 06 03 mvi b,3 3037 13D2 7E X13d2: mov a,m 3038 13D3 12 stax d 3039 13D4 13 inx d 3040 13D5 23 inx h 3041 13D6 05 dcr b 3042 13D7 C2 D2 13 jnz X13d2 3043 13DA C9 ret 3045 13DB 3A 50 20 X13db: lda X2050 3046 13DE 85 X13de: add l 3047 13DF 6F mov l,a 3048 13E0 D0 rnc 3049 13E1 24 inr h 3050 13E2 C9 ret 3052 13E3 3A F9 20 X13e3: lda X20f9 3053 13E6 21 13 21 X13e6: lxi h,X2113 3054 13E9 85 add l 3055 13EA 6F mov l,a 3056 13EB 7E mov a,m 3057 13EC C9 ret 3059 13ED 0E 00 mvi c,0 3060 13EF C3 F4 13 jmp X13f4 3062 13F2 0E FF mvi c,0ffh 3063 13F4 3A B8 21 X13f4: lda X21b8 3064 13F7 B7 ora a 3065 13F8 21 26 14 lxi h,X1426 3066 13FB CA 04 14 jz X1404 3067 13FE FE 3F cpi 3fh 3068 1400 C0 rnz 3069 1401 21 0A 14 lxi h,X140a 3070 1404 78 X1404: mov a,b 3071 1405 41 mov b,c 3072 1406 CD FF 09 call X09ff 3073 1409 C9 ret 3075 140A 01 2A 14 X140a: lxi b,X142a 3076 140D 02 stax b 3077 140E 2F cma 3078 140F 14 inr d 3079 1410 03 inx b 3080 1411 57 mov d,a 3081 1412 14 inr d 3082 1413 04 inr b 3083 1414 47 mov b,a 3084 1415 14 inr d 3085 1416 05 dcr b 3086 1417 4E mov c,m 3087 1418 14 inr d 3088 1419 06 3F mvi b,3fh 3089 141B 14 inr d 3090 141C 07 rlc 3091 141D 66 mov h,m 3092 141E 14 inr d 3093 141F db 8 08 3094 1420 5F mov e,a 3095 1421 14 inr d 3096 1422 09 dad b 3097 1423 6D mov l,l 3098 1424 14 inr d 3099 1425 00 nop 3100 1426 14 X1426: inr d 3101 1427 db 38h 38 3102 1428 14 inr d 3103 1429 00 nop 3104 142A 21 BC 21 X142a: lxi h,X21bc 3105 142D 70 mov m,b 3106 142E C9 ret 3108 142F CD 76 14 call X1476 3109 1432 A7 ana a 3110 1433 21 20 C3 lxi h,Xc320 3111 1436 F2 0B CD jp Xcd0b 3112 1439 76 hlt 3114 143A 14 inr d 3115 143B A8 xra b 3116 143C 21 20 C9 lxi h,Xc920 3117 143F 21 01 21 lxi h,X2101 3118 1442 70 mov m,b 3119 1443 CD 48 18 call X1848 3120 1446 C9 ret 3122 1447 CD 76 14 call X1476 3123 144A A6 ana m 3124 144B 21 80 C9 lxi h,Xc980 3125 144E CD 76 14 call X1476 3126 1451 A6 ana m 3127 1452 21 20 C3 lxi h,Xc320 3128 1455 6B mov l,e 3129 1456 03 inx b 3130 1457 21 A2 21 lxi h,X21a2 3131 145A 70 mov m,b 3132 145B CD 81 03 call X0381 3133 145E C9 ret 3135 145F CD 76 14 call X1476 3136 1462 A6 ana m 3137 1463 21 40 C9 lxi h,Xc940 3138 1466 CD 76 14 call X1476 3139 1469 A8 xra b 3140 146A 21 40 C9 lxi h,Xc940 3141 146D CD 76 14 call X1476 3142 1470 A8 xra b 3143 1471 21 10 C3 lxi h,Xc310 3144 1474 42 mov b,d 3145 1475 03 inx b 3146 1476 E1 X1476: pop h 3147 1477 5E mov e,m 3148 1478 23 inx h 3149 1479 56 mov d,m 3150 147A 23 inx h 3151 147B 7E mov a,m 3152 147C 23 inx h 3153 147D EB xchg 3154 147E 4F mov c,a 3155 147F 2F cma 3156 1480 A6 ana m 3157 1481 77 mov m,a 3158 1482 78 mov a,b 3159 1483 A1 ana c 3160 1484 B6 ora m 3161 1485 77 mov m,a 3162 1486 EB xchg 3163 1487 E9 pchl 3165 1488 CD 93 14 X1488: call X1493 3166 148B E6 10 ani 10h 3167 148D CC AA 06 cz X06aa 3168 1490 C3 59 0E jmp X0e59 ;; ;; SUBROUTINE A ;; 3172 1493 DB 42 X1493: in 42h ;; Read flags buffer 3173 1495 E6 80 ani 80h ;; check if transmit buffer is empty 3174 1497 C8 rz ;; if zero, return 3175 1498 21 44 21 lxi h,X2144 ;; HL = 0x2144 3176 149B 7E mov a,m ;; Load from 2144 3177 149C B7 ora a ;; Check if zero 3178 149D CA A2 14 jz X14a2 ;; 3179 14A0 3E 10 mvi a,10h ;; If not, A = 10 (else A is zero) 3180 14A2 21 A5 21 X14a2: lxi h,X21a5 ;; 3181 14A5 B6 ora m ;; or bits from 0x21a5 3182 14A6 21 45 21 lxi h,X2145 ;; 3183 14A9 B6 ora m ;; or bits from 0x2145 3184 14AA 23 inx h ;; 3185 14AB B6 ora m ;; ... and 0x2146 3186 14AC 23 inx h ;; 3187 14AD B6 ora m ;; ... and 0x2147 3188 14AE 36 00 mvi m,0 ;; zero 0x2147 3189 14B0 23 inx h ;; 3190 14B1 B6 ora m ;; ... and 0x2148 3191 14B2 36 00 mvi m,0 ;; zero 0x2148 3192 14B4 D3 82 out 82h ;; Write to keyboard buffer 3193 14B6 21 74 20 lxi h,X2074 ;; 3194 14B9 34 inr m ;; Increment what's at 0x2074 3195 14BA 3A 77 20 lda X2077 ;; load what's at 0x2077 3196 14BD B7 ora a ;; return if it's not zero 3197 14BE C0 rnz ;; 3198 14BF 3A 65 20 lda X2065 ;; A = [0x2065] 3199 14C2 21 51 20 lxi h,X2051 ;; 3200 14C5 B6 ora m ;; return if [0x2065] | [0x2051] != 0 3201 14C6 C0 rnz 3203 14C7 2A 2D 21 lhld cursor_countdn ; HL = cursor countdown from [0x212d] 3204 14CA 2B dcx h 3205 14CB 7C mov a,h 3206 14CC B5 ora l 3207 14CD CA D4 14 jz X14d4 3208 14D0 22 2D 21 shld cursor_countdn ; update cursor countdown with decremented value 3209 14D3 C9 ret ; ; Cursor countdown reached zero, time to invert the cursor; ; note that the cursor is on (visible) twice as long as it's off ; 3214 14D4 3A BA 21 X14d4: lda cursor_visible ; A = 0xff (visible) or 0x00 (invisible) 3215 14D7 EE FF xri 0ffh ; invert 3216 14D9 32 BA 21 sta cursor_visible ; 3217 14DC 21 12 02 lxi h,212h ; new initial count; start with 0x0212 3218 14DF C2 E5 14 jnz X14e5 ; and stick with that if cursor still visible 3219 14E2 21 09 01 lxi h,109h ; otherwise, use half that value (0x0109) if invisible 3220 14E5 22 2D 21 X14e5: shld cursor_countdn ; store new cursor countdown 3221 14E8 2A F6 20 lhld cursor_address 3222 14EB 46 mov b,m ; B = current cursor 3223 14EC 3A 59 21 lda X2159 ; A = cursor inversion mask (typically 0x80) 3224 14EF A8 xra b ; B = new (inverted) cursor 3225 14F0 77 mov m,a ; store new cursor ; ; Guessing this is AVO-only code, because it's monkeying with cursor_address + 0x1000, which doesn't exist without AVO ; 3229 14F1 11 00 10 lxi d,1000h 3230 14F4 19 dad d 3231 14F5 3A 5A 21 lda X215a 3232 14F8 AE xra m 3233 14F9 77 mov m,a 3234 14FA C9 ret 3236 14FB 74 mov m,h 3237 14FC 78 mov a,b 3238 14FD B7 ora a 3239 14FE CA 15 15 jz X1515 3240 1501 3D dcr a 3241 1502 CA 0A 15 jz X150a 3242 1505 3D dcr a 3243 1506 C0 rnz 3244 1507 CD 15 15 call X1515 3245 150A 3A F8 20 X150a: lda X20f8 3246 150D 47 mov b,a 3247 150E 04 inr b 3248 150F 2A 4E 21 lhld X214e 3249 1512 C3 29 15 jmp X1529 3251 1515 3A F8 20 X1515: lda X20f8 3252 1518 47 mov b,a 3253 1519 3A 57 21 lda X2157 3254 151C B7 ora a 3255 151D 3A 50 20 lda X2050 3256 1520 CA 24 15 jz X1524 3257 1523 0F rrc 3258 1524 90 X1524: sub b 3259 1525 47 mov b,a 3260 1526 2A F6 20 lhld cursor_address 3261 1529 7C X1529: mov a,h 3262 152A C6 10 adi 10h 3263 152C 57 mov d,a 3264 152D 5D mov e,l 3265 152E 3E FF mvi a,0ffh 3266 1530 12 X1530: stax d 3267 1531 36 00 mvi m,0 3268 1533 23 inx h 3269 1534 13 inx d 3270 1535 05 dcr b 3271 1536 C2 30 15 jnz X1530 3272 1539 32 F5 20 sta X20f5 3273 153C AF xra a 3274 153D 32 F4 20 sta X20f4 3275 1540 C9 ret 3277 1541 78 mov a,b 3278 1542 B7 ora a 3279 1543 CA 6A 15 jz X156a 3280 1546 3D dcr a 3281 1547 CA 55 15 jz X1555 3282 154A 3D dcr a 3283 154B C0 rnz 3284 154C CD 55 15 call X1555 3285 154F CD 6A 15 call X156a 3286 1552 C3 4A 13 jmp X134a 3288 1555 21 F9 20 X1555: lxi h,X20f9 3289 1558 7E mov a,m 3290 1559 F5 push psw 3291 155A 47 mov b,a 3292 155B AF xra a 3293 155C 77 mov m,a 3294 155D 0E FF mvi c,0ffh 3295 155F CD 86 15 call X1586 3296 1562 F1 pop psw 3297 1563 77 mov m,a 3298 1564 CD 74 10 call X1074 3299 1567 C3 0A 15 jmp X150a 3301 156A 3A F8 20 X156a: lda X20f8 3302 156D B7 ora a 3303 156E CC 4A 13 cz X134a 3304 1571 CD 15 15 call X1515 3305 1574 21 F9 20 lxi h,X20f9 3306 1577 7E mov a,m 3307 1578 F5 push psw 3308 1579 4F mov c,a 3309 157A 3E 17 mvi a,17h 3310 157C 91 sub c 3311 157D 47 mov b,a 3312 157E CD 86 15 call X1586 3313 1581 F1 pop psw 3314 1582 77 mov m,a 3315 1583 C3 74 10 jmp X1074 3317 1586 05 X1586: dcr b 3318 1587 F8 rm 3319 1588 0C inr c 3320 1589 71 mov m,c 3321 158A C5 push b 3322 158B E5 push h 3323 158C CD E3 13 call X13e3 3324 158F E6 7F ani 7fh 3325 1591 77 mov m,a 3326 1592 3E 70 mvi a,70h 3327 1594 CD 95 13 call X1395 3328 1597 CD 74 10 call X1074 3329 159A 3A 50 20 lda X2050 3330 159D 47 mov b,a 3331 159E CD 29 15 call X1529 3332 15A1 E1 pop h 3333 15A2 C1 pop b 3334 15A3 C3 86 15 jmp X1586 3336 15A6 0E 81 mvi c,81h 3337 15A8 CD 8E 10 call X108e 3338 15AB CD BF 11 call X11bf 3339 15AE 3A 30 21 lda X2130 3340 15B1 B7 ora a 3341 15B2 CA B6 15 jz X15b6 3342 15B5 3D dcr a 3343 15B6 57 X15b6: mov d,a 3344 15B7 3A 31 21 lda X2131 3345 15BA B7 ora a 3346 15BB C2 C0 15 jnz X15c0 3347 15BE 78 mov a,b 3348 15BF 3C inr a 3349 15C0 3D X15c0: dcr a 3350 15C1 5F mov e,a 3351 15C2 78 mov a,b 3352 15C3 BB cmp e 3353 15C4 D8 rc 3354 15C5 7A mov a,d 3355 15C6 BB cmp e 3356 15C7 D0 rnc 3357 15C8 21 55 21 lxi h,X2155 3358 15CB 72 mov m,d 3359 15CC 23 inx h 3360 15CD 73 mov m,e 3361 15CE 4B mov c,e 3362 15CF 42 mov b,d 3363 15D0 79 mov a,c 3364 15D1 90 sub b 3365 15D2 3C inr a 3366 15D3 5F mov e,a 3367 15D4 21 04 20 lxi h,X2004 3368 15D7 78 mov a,b 3369 15D8 B7 ora a 3370 15D9 CA E8 15 jz X15e8 3371 15DC 50 mov d,b 3372 15DD 7E X15dd: mov a,m 3373 15DE E6 7F ani 7fh 3374 15E0 77 mov m,a 3375 15E1 CD 2B 16 call X162b 3376 15E4 15 dcr d 3377 15E5 C2 DD 15 jnz X15dd 3378 15E8 7E X15e8: mov a,m 3379 15E9 F6 80 ori 80h 3380 15EB 77 mov m,a 3381 15EC CD 2B 16 call X162b 3382 15EF 1D dcr e 3383 15F0 C2 E8 15 jnz X15e8 3384 15F3 3E 17 mvi a,17h 3385 15F5 91 sub c 3386 15F6 CA 05 16 jz X1605 3387 15F9 57 mov d,a 3388 15FA 7E X15fa: mov a,m 3389 15FB E6 7F ani 7fh 3390 15FD 77 mov m,a 3391 15FE CD 2B 16 call X162b 3392 1601 15 dcr d 3393 1602 C2 FA 15 jnz X15fa 3394 1605 78 X1605: mov a,b 3395 1606 32 55 21 sta X2155 3396 1609 79 mov a,c 3397 160A 32 56 21 sta X2156 3398 160D 21 13 21 lxi h,X2113 3399 1610 0E 18 mvi c,18h 3400 1612 7E X1612: mov a,m 3401 1613 B7 ora a 3402 1614 F2 23 16 jp X1623 3403 1617 E5 push h 3404 1618 CD 86 13 call X1386 3405 161B 7E mov a,m 3406 161C 23 inx h 3407 161D 66 mov h,m 3408 161E 6F mov l,a 3409 161F CD C3 13 call X13c3 3410 1622 E1 pop h 3411 1623 23 X1623: inx h 3412 1624 0D dcr c 3413 1625 C2 12 16 jnz X1612 3414 1628 C3 48 18 jmp X1848 3416 162B 23 X162b: inx h 3417 162C 6E mov l,m 3418 162D E6 0F ani 0fh 3419 162F F6 20 ori 20h 3420 1631 67 mov h,a 3421 1632 23 inx h 3422 1633 C3 DB 13 jmp X13db 3424 1636 21 0D 00 X1636: lxi h,13 3425 1639 22 2D 21 shld cursor_countdn ; reset cursor countdown to 13 (0x000d) 3426 163C AF xra a 3427 163D 32 BA 21 sta cursor_visible ; reset cursor visibility 3428 1640 2A F6 20 lhld cursor_address 3429 1643 3A F4 20 lda X20f4 3430 1646 47 mov b,a 3431 1647 77 mov m,a 3432 1648 7C mov a,h 3433 1649 C6 10 adi 10h 3434 164B 67 mov h,a 3435 164C 3A F5 20 lda X20f5 3436 164F 77 mov m,a 3437 1650 3A 50 20 lda X2050 3438 1653 3D dcr a 3439 1654 5F mov e,a 3440 1655 3A 7B 20 lda X207b 3441 1658 B7 ora a 3442 1659 C2 7B 16 jnz X167b 3443 165C 3A F9 20 lda X20f9 3444 165F 21 0E 21 lxi h,X210e 3445 1662 BE cmp m 3446 1663 CA 7F 16 jz X167f 3447 1666 77 mov m,a 3448 1667 CD 74 10 call X1074 3449 166A AF xra a 3450 166B 32 54 21 sta X2154 3451 166E 21 57 21 lxi h,X2157 3452 1671 7E mov a,m 3453 1672 B7 ora a 3454 1673 CA 7B 16 jz X167b 3455 1676 7B mov a,e 3456 1677 3D dcr a 3457 1678 B7 ora a 3458 1679 1F rar 3459 167A 5F mov e,a 3460 167B 7B X167b: mov a,e 3461 167C 32 53 21 sta X2153 3462 167F 21 53 21 X167f: lxi h,X2153 3463 1682 11 F8 20 lxi d,X20f8 3464 1685 1A ldax d 3465 1686 BE cmp m 3466 1687 DA 8C 16 jc X168c 3467 168A 7E mov a,m 3468 168B 12 stax d 3469 168C 3A BB 21 X168c: lda X21bb 3470 168F C6 08 adi 8 3471 1691 96 sub m 3472 1692 C2 A1 16 jnz X16a1 3473 1695 23 inx h 3474 1696 B6 ora m 3475 1697 CA A1 16 jz X16a1 3476 169A CD 38 09 call X0938 3477 169D AF xra a 3478 169E 32 54 21 sta X2154 3479 16A1 3A F8 20 X16a1: lda X20f8 3480 16A4 32 BB 21 sta X21bb 3481 16A7 2A 4E 21 lhld X214e 3482 16AA CD DE 13 call X13de 3483 16AD 22 F6 20 shld cursor_address 3484 16B0 7E mov a,m 3485 16B1 32 F4 20 sta X20f4 3486 16B4 47 mov b,a 3487 16B5 7C mov a,h 3488 16B6 C6 10 adi 10h 3489 16B8 67 mov h,a 3490 16B9 7E mov a,m 3491 16BA 32 F5 20 sta X20f5 3492 16BD 2A F6 20 lhld cursor_address 3493 16C0 70 mov m,b 3494 16C1 C9 ret 3496 16C2 47 X16c2: mov b,a 3497 16C3 21 F1 16 lxi h,X16f1 3498 16C6 22 40 21 shld X2140 3499 16C9 AF xra a 3500 16CA 32 2F 21 sta X212f 3501 16CD 32 4B 21 sta X214b 3502 16D0 32 7D 20 sta X207d 3503 16D3 21 30 21 lxi h,X2130 3504 16D6 0E 0F mvi c,0fh 3505 16D8 AF xra a 3506 16D9 77 X16d9: mov m,a 3507 16DA 23 inx h 3508 16DB 0D dcr c 3509 16DC C2 D9 16 jnz X16d9 3510 16DF 21 B8 21 lxi h,X21b8 3511 16E2 36 00 mvi m,0 3512 16E4 78 mov a,b 3513 16E5 FE 40 cpi 40h 3514 16E7 D2 F2 16 jnc X16f2 3515 16EA FE 3C cpi 3ch 3516 16EC DA F2 16 jc X16f2 3517 16EF 77 mov m,a 3518 16F0 C9 ret 3520 16F1 47 X16f1: mov b,a 3521 16F2 78 X16f2: mov a,b 3522 16F3 FE 3A cpi 3ah 3523 16F5 D2 17 17 jnc X1717 3524 16F8 D6 30 sui 30h 3525 16FA FA 17 17 jm X1717 3526 16FD 4F mov c,a 3527 16FE 21 2F 21 lxi h,X212f 3528 1701 7E mov a,m 3529 1702 FE 1A cpi 1ah 3530 1704 D2 13 17 jnc X1713 3531 1707 07 rlc 3532 1708 47 mov b,a 3533 1709 07 rlc 3534 170A 07 rlc 3535 170B 80 add b 3536 170C DA 13 17 jc X1713 3537 170F 81 add c 3538 1710 D2 15 17 jnc X1715 3539 1713 3E FF X1713: mvi a,0ffh 3540 1715 77 X1715: mov m,a 3541 1716 C9 ret 3543 1717 11 30 21 X1717: lxi d,X2130 3544 171A F5 push psw 3545 171B 21 4B 21 lxi h,X214b 3546 171E 4E mov c,m 3547 171F 06 00 mvi b,0 3548 1721 EB xchg 3549 1722 09 dad b 3550 1723 01 2F 21 lxi b,X212f 3551 1726 0A ldax b 3552 1727 77 mov m,a 3553 1728 AF xra a 3554 1729 02 stax b 3555 172A 1A ldax d 3556 172B FE 0F cpi 0fh 3557 172D CA 32 17 jz X1732 3558 1730 3C inr a 3559 1731 12 stax d 3560 1732 F1 X1732: pop psw 3561 1733 47 X1733: mov b,a 3562 1734 FE 3B cpi 3bh 3563 1736 C8 rz 3564 1737 E6 C0 ani 0c0h 3565 1739 78 mov a,b 3566 173A CA 43 17 jz X1743 3567 173D 32 7E 20 sta X207e 3568 1740 C3 A2 0A jmp X0aa2 3570 1743 21 7D 20 X1743: lxi h,X207d 3571 1746 86 add m 3572 1747 D2 4C 17 jnc X174c 3573 174A 3E FF mvi a,0ffh 3574 174C 77 X174c: mov m,a 3575 174D 21 33 17 lxi h,X1733 3576 1750 22 40 21 shld X2140 3577 1753 C9 ret 3579 1754 16 00 X1754: mvi d,0 3580 1756 06 01 mvi b,1 3581 1758 C3 62 17 jmp X1762 ;; ;; Third initialization call? ;; 3585 175B CD C0 02 X175b: call X02c0 ;; Initialize start of screen RAM and wipe attribute RAM to 0xff 3586 175E 06 0A mvi b,0ah ;; B = 0x0a 3587 1760 16 01 mvi d,1 ;; D = 1 3588 1762 C5 X1762: push b ;; push B, D 3589 1763 D5 push d ;; 3590 1764 CD BE 17 call X17be ;; Display wait message 3591 1767 D1 pop d ;; pop D 3592 1768 F3 di ;; disable interrupts(???) 3593 1769 21 7B 21 lxi h,X217b ;; HL = 0x217b 3594 176C 1E 33 mvi e,33h ;; E = 0x33 3595 176E 0E 01 mvi c,1 ;; C = 1 3596 1770 AF xra a ;; A = 0 3597 1771 32 AE 21 X1771: sta X21ae ;; 0x21ae = A 3598 1774 79 mov a,c ;; A = C 3599 1775 32 AD 21 sta X21ad ;; 0x21ad = A 3600 1778 D5 push d ;; push D,H 3601 1779 E5 push h ;; 3602 177A 7A mov a,d ;; A=D 3603 177B B7 ora a ;; or A 3604 177C 7E mov a,m ;; load A from HL 3605 177D 32 AF 21 sta X21af ;; store it in 0x21af 3606 1780 CC AE 18 cz X18ae ;; if A is 0 call X18ae 3607 1783 CD A3 18 call X18a3 ;; call X18a3 3608 1786 E1 pop h ;; pop H,D 3609 1787 D1 pop d 3610 1788 3A AF 21 lda X21af 3611 178B 1D dcr e 3612 178C CA 9E 17 jz X179e 3613 178F 77 mov m,a 3614 1790 3A AD 21 lda X21ad 3615 1793 07 rlc 3616 1794 AE xra m 3617 1795 4F mov c,a 3618 1796 23 inx h 3619 1797 3A AE 21 lda X21ae 3620 179A 3C inr a 3621 179B C3 71 17 jmp X1771 3623 179E BE X179e: cmp m 3624 179F C1 pop b 3625 17A0 0E 00 mvi c,0 3626 17A2 CA AC 17 jz X17ac 3627 17A5 05 dcr b 3628 17A6 C2 62 17 jnz X1762 3629 17A9 CD D0 17 call X17d0 3630 17AC 79 X17ac: mov a,c 3631 17AD B7 ora a 3632 17AE F5 push psw 3633 17AF 0E 40 mvi c,40h 3634 17B1 3E 63 mvi a,63h 3635 17B3 CD 2B 19 call X192b 3636 17B6 21 F2 D0 lxi h,Xd0f2 3637 17B9 22 04 20 shld X2004 3638 17BC F1 pop psw 3639 17BD C9 ret ;; ;; Show wait message ;; 3643 17BE 11 EC 17 X17be: lxi d,X17ec ;; DE = 0x17ec 3644 17C1 06 07 mvi b,7 ;; B = 7 3645 17C3 21 CC 21 lxi h,X21cc ;; HL = 0x21cc 3646 17C6 CD 8B 03 call memmove ;; Initialize 0x21cc to Wait message 3647 17C9 21 71 CC lxi h,Xcc71 ;; HL = 0xcc71 3648 17CC 22 04 20 shld X2004 ;; retarget screen ram to display wait message 3649 17CF C9 ret 3651 17D0 21 7B 21 X17d0: lxi h,X217b 3652 17D3 06 27 mvi b,27h 3653 17D5 36 80 X17d5: mvi m,80h 3654 17D7 23 inx h 3655 17D8 05 dcr b 3656 17D9 C2 D5 17 jnz X17d5 3657 17DC 11 F3 17 lxi d,X17f3 ;; DE = 0x17f3 3658 17DF 06 0B mvi b,0bh ;; B = 11 3659 17E1 CD 8B 03 call memmove ;; store 3660 17E4 0E 01 mvi c,1 3661 17E6 3E 30 mvi a,30h 3662 17E8 32 78 20 sta X2078 3663 17EB C9 ret X17ec: 3665 17EC db 'Wait' 57 61 69 74 3666 17F0 db 07fh,070h,06h 7F 70 06 X17f3: 3668 17F3 db 0,8,06eh,020h 00 08 6E 20 3669 17F7 db 0d0h,050h,0,020h D0 50 00 20 3670 17FB db 0,0e0h,0e0h 00 E0 E0 X17fe: 3672 17FE 3A 55 21 lda X2155 3673 1801 01 FF 00 lxi b,X00ff 3674 1804 C3 0F 18 jmp X180f 3676 1807 CD BF 11 call X11bf 3677 180A 3A 56 21 lda X2156 3678 180D 0E 01 mvi c,1 3679 180F 21 F9 20 X180f: lxi h,X20f9 3680 1812 C3 25 18 jmp X1825 3682 1815 3A 53 21 X1815: lda X2153 3683 1818 01 01 FF lxi b,Xff01 3684 181B C3 22 18 jmp X1822 3686 181E AF X181e: xra a 3687 181F 01 FF 00 lxi b,X00ff 3688 1822 21 F8 20 X1822: lxi h,X20f8 3689 1825 57 X1825: mov d,a 3690 1826 3A B8 21 lda X21b8 3691 1829 B7 ora a 3692 182A C2 15 0A jnz X0a15 3693 182D 3A 30 21 lda X2130 3694 1830 B7 ora a 3695 1831 C2 35 18 jnz X1835 3696 1834 3C inr a 3697 1835 5F X1835: mov e,a 3698 1836 7E mov a,m 3699 1837 BA X1837: cmp d 3700 1838 CA 44 18 jz X1844 3701 183B B8 cmp b 3702 183C CA 44 18 jz X1844 3703 183F 81 add c 3704 1840 1D dcr e 3705 1841 C2 37 18 jnz X1837 3706 1844 77 X1844: mov m,a 3707 1845 C3 36 16 jmp X1636 3709 1848 21 00 00 X1848: lxi h,0 3710 184B 22 30 21 shld X2130 3711 184E 3E FF mvi a,0ffh 3712 1850 32 0E 21 sta X210e 3713 1853 3A 01 21 lda X2101 3714 1856 4F mov c,a 3715 1857 21 30 21 lxi h,X2130 3716 185A 7E mov a,m 3717 185B B7 ora a 3718 185C CA 60 18 jz X1860 3719 185F 3D dcr a 3720 1860 47 X1860: mov b,a 3721 1861 79 mov a,c 3722 1862 B7 ora a 3723 1863 CA 69 18 jz X1869 3724 1866 3A 55 21 lda X2155 3725 1869 80 X1869: add b 3726 186A 47 mov b,a 3727 186B 79 mov a,c 3728 186C B7 ora a 3729 186D 3A 56 21 lda X2156 3730 1870 C2 79 18 jnz X1879 3731 1873 48 mov c,b 3732 1874 CD BF 11 call X11bf 3733 1877 78 mov a,b 3734 1878 41 mov b,c 3735 1879 B8 X1879: cmp b 3736 187A DA 7E 18 jc X187e 3737 187D 78 mov a,b 3738 187E 32 F9 20 X187e: sta X20f9 3739 1881 23 inx h 3740 1882 7E mov a,m 3741 1883 B7 ora a 3742 1884 CA 88 18 jz X1888 3743 1887 3D dcr a 3744 1888 47 X1888: mov b,a 3745 1889 79 mov a,c 3746 188A B7 ora a 3747 188B C2 95 18 jnz X1895 3748 188E 3A 50 20 lda X2050 3749 1891 3D dcr a 3750 1892 C3 98 18 jmp X1898 3752 1895 3A 53 21 X1895: lda X2153 3753 1898 B8 X1898: cmp b 3754 1899 DA 9D 18 jc X189d 3755 189C 78 mov a,b 3756 189D 32 F8 20 X189d: sta X20f8 3757 18A0 C3 36 16 jmp X1636 3759 18A3 0E 40 X18a3: mvi c,40h 3760 18A5 CD 28 19 call X1928 3761 18A8 CD C1 18 call X18c1 3762 18AB C3 BC 18 jmp X18bc 3764 18AE 0E 40 X18ae: mvi c,40h 3765 18B0 CD 28 19 call X1928 3766 18B3 CD A8 19 call X19a8 3767 18B6 CD 77 19 call X1977 3768 18B9 CD D6 19 call X19d6 3769 18BC 3E 30 X18bc: mvi a,30h 3770 18BE D3 62 out 62h 3771 18C0 C9 ret ;; ;; On h pulse, write 0x2d to NVR... this looks like it's doing a read ;; 3775 18C1 DB 42 X18c1: in 42h 3776 18C3 A1 ana c 3777 18C4 CA C1 18 jz X18c1 3778 18C7 DB 42 X18c7: in 42h 3779 18C9 A1 ana c 3780 18CA C2 C7 18 jnz X18c7 3781 18CD 3E 2D mvi a,2dh ;; Write READ command to NVR latch 3782 18CF D3 62 out 62h 3783 18D1 DB 42 X18d1: in 42h 3784 18D3 A1 ana c 3785 18D4 CA D1 18 jz X18d1 3786 18D7 DB 42 X18d7: in 42h 3787 18D9 A1 ana c 3788 18DA C2 D7 18 jnz X18d7 3789 18DD 3E 2F mvi a,2fh ;; Write 0x2fh (standby) to nvr latch 3790 18DF D3 62 out 62h 3791 18E1 21 D3 21 lxi h,X21d3 ;; HL = X21d3 3792 18E4 06 0E mvi b,0eh ;; B = 14 -- we're reading 14 bits 3793 18E6 DB 42 X18e6: in 42h 3794 18E8 A1 ana c 3795 18E9 CA E6 18 jz X18e6 3796 18EC DB 42 X18ec: in 42h 3797 18EE A1 ana c 3798 18EF C2 EC 18 jnz X18ec ;; wait for NVR clock L 3799 18F2 3E 25 mvi a,25h ;; shft bit out of nvr 3800 18F4 D3 62 out 62h 3801 18F6 DB 42 X18f6: in 42h 3802 18F8 A1 ana c 3803 18F9 CA F6 18 jz X18f6 ;; wait for NVR clock H 3804 18FC DB 42 in 42h ;; read bit and store it in memory 3805 18FE 77 mov m,a 3806 18FF 23 inx h 3807 1900 DB 42 X1900: in 42h 3808 1902 A1 ana c 3809 1903 C2 00 19 jnz X1900 ;; wait for NVR clock L 3810 1906 05 dcr b 3811 1907 C2 F6 18 jnz X18f6 ;; read next bit 3812 190A 3E 2F mvi a,2fh ;; send standby 3813 190C D3 62 out 62h 3814 190E 11 D3 21 lxi d,X21d3 ;; DE = 0x21d3 3815 1911 06 0E mvi b,0eh ;; B = 14 3816 1913 21 00 00 lxi h,0 ;; HL = 0 3817 1916 29 X1916: dad h ;; 3818 1917 1A ldax d ;; load next char 3819 1918 E6 20 ani 20h ;; and with NVR data bit 3820 191A 07 rlc ;; rotate NVR bit to high bit 3821 191B 07 rlc 3822 191C 07 rlc 3823 191D B5 ora l 3824 191E 6F mov l,a 3825 191F 13 inx d 3826 1920 05 dcr b 3827 1921 C2 16 19 jnz X1916 3828 1924 22 AF 21 shld X21af ;; Store the finished data in 21af and 21ae 3829 1927 C9 ret ;; ;; Loads address A into NVR address register ;; 3833 1928 3A AE 21 X1928: lda X21ae ;; Load accumulator from 0x21ae -- (0x42) 3834 192B 06 FF X192b: mvi b,0ffh ;; B = 0xff 3835 192D 04 X192d: inr b ;; increment B 3836 192E D6 0A sui 0ah ;; subtract 0x0a from accumulator 3837 1930 F2 2D 19 jp X192d ;; repeat while accumulator is positive 3838 1933 C6 0A adi 0ah ;; add 0x0a to accumulator ;; B = A/10, A = A%10 -- this is almost certainly related to NVR! ;; First, fill the buffer at 21d3 with 20 bytes of 0x23 (accept address 1) 3843 1935 21 D3 21 lxi h,X21d3 ;; HL = 0x21d3 3844 1938 1E 23 mvi e,23h ;; E = 0x23 3845 193A 16 14 mvi d,14h ;; D = 0x14 3846 193C 73 X193c: mov m,e ;; 3847 193D 23 inx h ;; HL++ 3848 193E 15 dcr d ;; D-- 3849 193F C2 3C 19 jnz X193c ;; repeat until D is zero ;; End buffer with 0x2f -- put in standby 3853 1942 36 2F mvi m,2fh ;; Store 0x2f in 21e7 ;; Set 21d3 + a to 0x22 (accept address 0) 3857 1944 21 D3 21 lxi h,X21d3 ;; HL = 0x21d3 3858 1947 5F mov e,a ;; copy A to E 3859 1948 16 00 mvi d,0 ;; clear D 3860 194A 19 dad d ;; add DE to HL -- calculate address of bit A 3861 194B 36 22 mvi m,22h ;; Store 0x22 in M ;; Set 21d3 + 10 + b to 0x22 (accept address 0) 3865 194D 21 D3 21 lxi h,X21d3 ;; HL = 0x21d3 3866 1950 3E 0A mvi a,0ah ;; A = 0x0a 3867 1952 80 add b ;; A = 0x0a + B 3868 1953 5F mov e,a 3869 1954 19 dad d 3870 1955 36 22 mvi m,22h ;; Wait for horiz latch 3874 1957 DB 42 X1957: in 42h 3875 1959 A1 ana c 3876 195A C2 57 19 jnz X1957 ;; Now copy from 21d3 to nvr latch, one per edge, 21 bytes 3880 195D 21 D3 21 lxi h,X21d3 3881 1960 06 15 mvi b,15h ;; 3882 1962 DB 42 X1962: in 42h 3883 1964 A1 ana c ;; Flags Buffer & C 3884 1965 CA 62 19 jz X1962 3885 1968 05 dcr b 3886 1969 F8 rm ;; Return if B is negative 3887 196A DB 42 X196a: in 42h 3888 196C A1 ana c 3889 196D C2 6A 19 jnz X196a 3890 1970 7E mov a,m 3891 1971 D3 62 out 62h 3892 1973 23 inx h 3893 1974 C3 62 19 jmp X1962 3895 1977 2A AF 21 X1977: lhld X21af 3896 197A 29 dad h 3897 197B 29 dad h 3898 197C 11 D3 21 lxi d,X21d3 3899 197F 06 0E mvi b,0eh 3900 1981 3E 20 X1981: mvi a,20h 3901 1983 29 dad h 3902 1984 17 ral 3903 1985 12 stax d 3904 1986 13 inx d 3905 1987 05 dcr b 3906 1988 C2 81 19 jnz X1981 3907 198B 3E 2F mvi a,2fh 3908 198D 12 stax d 3909 198E 21 D3 21 lxi h,X21d3 3910 1991 06 0F mvi b,0fh 3911 1993 DB 42 X1993: in 42h 3912 1995 A1 ana c 3913 1996 CA 93 19 jz X1993 3914 1999 DB 42 X1999: in 42h 3915 199B A1 ana c 3916 199C C2 99 19 jnz X1999 3917 199F 7E mov a,m 3918 19A0 D3 62 out 62h 3919 19A2 23 inx h 3920 19A3 05 dcr b 3921 19A4 C2 93 19 jnz X1993 3922 19A7 C9 ret 3924 19A8 DB 42 X19a8: in 42h 3925 19AA A1 ana c 3926 19AB CA A8 19 jz X19a8 3927 19AE DB 42 X19ae: in 42h 3928 19B0 A1 ana c 3929 19B1 C2 AE 19 jnz X19ae 3930 19B4 3E 2B mvi a,2bh 3931 19B6 D3 62 out 62h 3932 19B8 CD C0 19 call X19c0 3933 19BB 3E 2F mvi a,2fh 3934 19BD D3 62 out 62h 3935 19BF C9 ret 3937 19C0 21 3B 01 X19c0: lxi h,X013b 3938 19C3 DB 42 X19c3: in 42h 3939 19C5 A1 ana c 3940 19C6 CA C3 19 jz X19c3 3941 19C9 DB 42 X19c9: in 42h 3942 19CB A1 ana c 3943 19CC C2 C9 19 jnz X19c9 3944 19CF 2B dcx h 3945 19D0 7C mov a,h 3946 19D1 B5 ora l 3947 19D2 C2 C3 19 jnz X19c3 3948 19D5 C9 ret 3950 19D6 DB 42 X19d6: in 42h 3951 19D8 A1 ana c 3952 19D9 CA D6 19 jz X19d6 3953 19DC DB 42 X19dc: in 42h 3954 19DE A1 ana c 3955 19DF C2 DC 19 jnz X19dc 3956 19E2 3E 29 mvi a,29h 3957 19E4 D3 62 out 62h 3958 19E6 CD C0 19 call X19c0 3959 19E9 3E 2F mvi a,2fh 3960 19EB D3 62 out 62h 3961 19ED C9 ret 3963 19EE FE 20 X19ee: cpi 20h 3964 19F0 0E 43 mvi c,43h 3965 19F2 CA FF 01 jz X01ff 3966 19F5 21 B0 1B lxi h,X1bb0 3967 19F8 E5 push h 3968 19F9 FE 0D cpi 0dh 3969 19FB CA 4B 09 jz X094b 3970 19FE FE 09 cpi 9 3971 1A00 CA F9 0D jz X0df9 3972 1A03 FE 3A cpi 3ah 3973 1A05 D2 60 1B jnc X1b60 3974 1A08 D6 30 sui 30h 3975 1A0A F8 rm 3976 1A0B 87 add a 3977 1A0C 21 A2 1A lxi h,X1aa2 3978 1A0F CD DE 13 call X13de 3979 1A12 CD 90 13 call X1390 3980 1A15 78 mov a,b 3981 1A16 11 AC 21 lxi d,X21ac 3982 1A19 E9 pchl 3984 1A1A 32 77 21 X1a1a: sta X2177 3985 1A1D C3 12 08 jmp X0812 3987 1A20 3A 7B 20 X1a20: lda X207b 3988 1A23 EE FF xri 0ffh 3989 1A25 32 7B 20 sta X207b 3990 1A28 CA 61 1A jz X1a61 3991 1A2B 0E 80 X1a2b: mvi c,80h 3992 1A2D CD 8E 10 call X108e 3993 1A30 2A 40 21 lhld X2140 3994 1A33 22 11 21 shld X2111 3995 1A36 21 EE 19 lxi h,X19ee 3996 1A39 22 40 21 shld X2140 3997 1A3C 21 00 00 lxi h,0 3998 1A3F 22 43 21 shld X2143 3999 1A42 22 72 21 shld X2172 4000 1A45 2A 04 20 X1a45: lhld X2004 4001 1A48 22 C5 21 shld X21c5 4002 1A4B 2A F8 20 lhld X20f8 4003 1A4E 22 0D 21 shld X210d 4004 1A51 CD BA 1B call X1bba 4005 1A54 22 4E 21 shld X214e 4006 1A57 AF xra a 4007 1A58 32 F8 20 sta X20f8 4008 1A5B CD F9 1B call X1bf9 4009 1A5E C3 36 16 jmp X1636 4011 1A61 2A 11 21 X1a61: lhld X2111 4012 1A64 22 40 21 shld X2140 4013 1A67 CD BA 1B call X1bba 4014 1A6A 11 00 10 lxi d,1000h 4015 1A6D 19 dad d 4016 1A6E 3A 50 20 lda X2050 4017 1A71 36 FF X1a71: mvi m,0ffh 4018 1A73 23 inx h 4019 1A74 3D dcr a 4020 1A75 C2 71 1A jnz X1a71 4021 1A78 21 0D 21 lxi h,X210d 4022 1A7B 7E mov a,m 4023 1A7C 32 F8 20 sta X20f8 4024 1A7F 3E FF mvi a,0ffh 4025 1A81 23 inx h 4026 1A82 77 mov m,a 4027 1A83 CD 36 16 call X1636 4028 1A86 2A C5 21 lhld X21c5 4029 1A89 22 04 20 shld X2004 4030 1A8C AF xra a 4031 1A8D 32 C4 21 sta X21c4 4032 1A90 32 C2 21 sta X21c2 4033 1A93 DB 42 in 42h 4034 1A95 E6 08 ani 8 4035 1A97 CA A1 1A jz X1aa1 4036 1A9A 3A 76 21 lda X2176 4037 1A9D B7 ora a 4038 1A9E CC E8 12 cz X12e8 4039 1AA1 C9 X1aa1: ret 4041 1AA2 CF X1aa2: rst 1 4042 1AA3 1A ldax d 4043 1AA4 09 dad b 4044 1AA5 1B dcx d 4045 1AA6 D0 rnc 4046 1AA7 1A ldax d 4047 1AA8 F2 1A FE jp Xfe1a 4048 1AAB 1A ldax d 4049 1AAC 0A ldax b 4050 1AAD 1B dcx d 4051 1AAE 22 1B 40 shld X401b 4052 1AB1 1B dcx d 4053 1AB2 41 mov b,c 4054 1AB3 1B dcx d 4055 1AB4 B6 ora m 4056 1AB5 1A ldax d 4057 1AB6 CD 52 1B call X1b52 4058 1AB9 AF xra a 4059 1ABA 32 0E 21 sta X210e 4060 1ABD 32 0D 21 sta X210d 4061 1AC0 3A A2 21 lda X21a2 4062 1AC3 B7 ora a 4063 1AC4 F5 push psw 4064 1AC5 CC 77 0B cz X0b77 4065 1AC8 F1 pop psw 4066 1AC9 C4 63 0B cnz X0b63 4067 1ACC C3 45 1A jmp X1a45 4069 1ACF C7 rst 0 4070 1AD0 CD 52 1B call X1b52 4071 1AD3 3A F8 20 lda X20f8 4072 1AD6 B7 ora a 4073 1AD7 C8 rz 4074 1AD8 CD 23 0E call X0e23 4075 1ADB AE xra m 4076 1ADC 77 mov m,a 4077 1ADD CD 23 0E call X0e23 4078 1AE0 A6 ana m 4079 1AE1 06 54 mvi b,54h 4080 1AE3 C2 E8 1A jnz X1ae8 4081 1AE6 06 00 X1ae6: mvi b,0 4082 1AE8 78 X1ae8: mov a,b 4083 1AE9 32 F4 20 sta X20f4 4084 1AEC 3A F8 20 lda X20f8 4085 1AEF C3 EA 1E jmp X1eea ;; ;; Below is what appears to be a bunch of dead code-- unreferenced functions (meant for use ;; by an expansion rom or patch, perhaps?). ;; 4090 1AF2 CD 52 1B call X1b52 4091 1AF5 CD EC 0D call X0dec 4092 1AF8 CD CD 1C call X1ccd 4093 1AFB C3 E6 1A jmp X1ae6 4095 1AFE 21 A5 21 lxi h,X21a5 4096 1B01 7E mov a,m 4097 1B02 EE 20 xri 20h 4098 1B04 77 mov m,a 4099 1B05 AF xra a 4100 1B06 32 44 21 sta X2144 4101 1B09 C9 ret 4103 1B0A CD 4B 09 call X094b 4104 1B0D 21 5A 22 lxi h,X225a 4105 1B10 7E mov a,m 4106 1B11 EE 03 xri 3 4107 1B13 77 mov m,a 4108 1B14 32 65 22 sta X2265 4109 1B17 E6 01 ani 1 4110 1B19 32 BE 21 sta X21be 4111 1B1C CA D3 1C jz X1cd3 4112 1B1F C3 35 1C jmp X1c35 4114 1B22 CD 59 1B call X1b59 4115 1B25 21 A6 21 lxi h,X21a6 4116 1B28 3A F8 20 lda X20f8 4117 1B2B D6 02 sui 2 4118 1B2D FE 28 cpi 28h 4119 1B2F D0 rnc 4120 1B30 00 nop 1B 34 org 1b34h 4124 1B34 57 mov d,a 4125 1B35 CD 2B 0E call X0e2b 4126 1B38 AE xra m 4127 1B39 77 mov m,a 4128 1B3A CD DB 1D call X1ddb 4129 1B3D C3 D3 1C jmp X1cd3 4131 1B40 1B dcx d 4132 1B41 EB xchg 4133 1B42 CD 59 1B call X1b59 4134 1B45 32 F8 20 sta X20f8 4135 1B48 7E mov a,m 4136 1B49 C6 10 adi 10h 4137 1B4B 77 mov m,a 4138 1B4C CD DB 1D call X1ddb 4139 1B4F C3 D3 1C jmp X1cd3 4141 1B52 3A BE 21 X1b52: lda X21be 4142 1B55 B7 ora a 4143 1B56 C0 rnz 4144 1B57 E1 pop h 4145 1B58 C9 ret 4147 1B59 3A BE 21 X1b59: lda X21be 4148 1B5C B7 ora a 4149 1B5D C8 rz 4150 1B5E E1 pop h 4151 1B5F C9 ret 4153 1B60 3A 69 20 X1b60: lda X2069 4154 1B63 E6 20 ani 20h 4155 1B65 C8 rz 4156 1B66 78 mov a,b 4157 1B67 FE 53 cpi 53h 4158 1B69 C2 72 1B jnz X1b72 4159 1B6C CD 54 17 call X1754 4160 1B6F C3 81 1B jmp X1b81 4162 1B72 FE 52 X1b72: cpi 52h 4163 1B74 C2 86 1B jnz X1b86 4164 1B77 CD 5B 17 call X175b 4165 1B7A FB ei 4166 1B7B CD A2 03 call X03a2 4167 1B7E CD 2B 1A call X1a2b 4168 1B81 FB X1b81: ei 4169 1B82 CD F9 1B call X1bf9 4170 1B85 C9 ret 4172 1B86 FE 41 X1b86: cpi 41h 4173 1B88 C0 rnz 4174 1B89 CD 59 1B call X1b59 4175 1B8C CD 4B 09 call X094b 4176 1B8F 3E 41 mvi a,41h 4177 1B91 CD E6 05 call X05e6 4178 1B94 3E 3D mvi a,3dh 4179 1B96 CD E6 05 call X05e6 4180 1B99 3E 20 mvi a,20h 4181 1B9B CD E6 05 call X05e6 4182 1B9E 21 9F 1E lxi h,X1e9f 4183 1BA1 22 40 21 shld X2140 4184 1BA4 E1 pop h 4185 1BA5 C9 ret 4187 1BA6 98 sbb b 4188 1BA7 FE 61 cpi 61h 4189 1BA9 F8 rm 4190 1BAA FE 7B cpi 7bh 4191 1BAC F0 rp 4192 1BAD E6 DF ani 0dfh 4193 1BAF C9 ret 4195 1BB0 CD 94 03 X1bb0: call X0394 4196 1BB3 21 EE 19 lxi h,X19ee 4197 1BB6 22 40 21 shld X2140 4198 1BB9 C9 ret 4200 1BBA 2A 4E 20 X1bba: lhld scratch_start ; load [0x204e] 4201 1BBD C3 C3 1B jmp X1bc3 4203 1BC0 21 CC 21 X1bc0: lxi h,X21cc 4204 1BC3 7C X1bc3: mov a,h 4205 1BC4 E6 0F ani 0fh 4206 1BC6 F6 20 ori 20h 4207 1BC8 67 mov h,a 4208 1BC9 C9 ret 4210 1BCA CD BA 1B X1bca: call X1bba 4211 1BCD CD C8 0F call X0fc8 4212 1BD0 E5 push h 4213 1BD1 36 7F mvi m,7fh 4214 1BD3 23 inx h 4215 1BD4 EB xchg 4216 1BD5 CD C0 1B call X1bc0 4217 1BD8 7C mov a,h 4218 1BD9 E6 0F ani 0fh 4219 1BDB F6 70 ori 70h 4220 1BDD 12 stax d 4221 1BDE 13 inx d 4222 1BDF 7D mov a,l 4223 1BE0 12 stax d 4224 1BE1 E1 pop h 4225 1BE2 3A 50 20 lda X2050 4226 1BE5 5F mov e,a 4227 1BE6 06 54 mvi b,54h 4228 1BE8 7B X1be8: mov a,e 4229 1BE9 CD 27 0E call X0e27 4230 1BEC A6 ana m 4231 1BED CA F4 1B jz X1bf4 4232 1BF0 7B mov a,e 4233 1BF1 CD EA 1E call X1eea 4234 1BF4 1D X1bf4: dcr e 4235 1BF5 C2 E8 1B jnz X1be8 4236 1BF8 C9 ret 4238 1BF9 01 AD 1C X1bf9: lxi b,X1cad 4239 1BFC 21 53 22 lxi h,X2253 4240 1BFF 3E FA mvi a,0fah 4241 1C01 CD 71 1C call X1c71 4242 1C04 0E 01 mvi c,1 4243 1C06 06 10 mvi b,10h 4244 1C08 CD 8A 1C call X1c8a 4245 1C0B 01 AD 1C lxi b,X1cad 4246 1C0E 3E FA mvi a,0fah 4247 1C10 CD 71 1C call X1c71 4248 1C13 0E 01 mvi c,1 4249 1C15 06 50 mvi b,50h 4250 1C17 CD 8A 1C call X1c8a 4251 1C1A 01 B6 1C lxi b,X1cb6 4252 1C1D 3E FD mvi a,0fdh 4253 1C1F CD 71 1C call X1c71 4254 1C22 0E 13 mvi c,13h 4255 1C24 CD 88 1C call X1c88 4256 1C27 36 7F mvi m,7fh 4257 1C29 23 inx h 4258 1C2A EB xchg 4259 1C2B CD BA 1B call X1bba 4260 1C2E 7C mov a,h 4261 1C2F F6 70 ori 70h 4262 1C31 12 stax d 4263 1C32 13 inx d 4264 1C33 7D mov a,l 4265 1C34 12 stax d 4266 1C35 CD C0 1B X1c35: call X1bc0 4267 1C38 3A 50 20 lda X2050 4268 1C3B 47 mov b,a 4269 1C3C 3E 31 mvi a,31h 4270 1C3E 77 X1c3e: mov m,a 4271 1C3F 23 inx h 4272 1C40 4F mov c,a 4273 1C41 E6 0F ani 0fh 4274 1C43 79 mov a,c 4275 1C44 C2 49 1C jnz X1c49 4276 1C47 EE 80 xri 80h 4277 1C49 3C X1c49: inr a 4278 1C4A 27 daa 4279 1C4B D2 50 1C jnc X1c50 4280 1C4E F6 80 ori 80h 4281 1C50 E6 8F X1c50: ani 8fh 4282 1C52 F6 30 ori 30h 4283 1C54 05 dcr b 4284 1C55 C2 3E 1C jnz X1c3e 4285 1C58 CD 9F 1C call X1c9f 4286 1C5B CD CA 1B call X1bca 4287 1C5E 3E 01 mvi a,1 4288 1C60 32 BE 21 X1c60: sta X21be 4289 1C63 21 53 22 lxi h,X2253 4290 1C66 7C mov a,h 4291 1C67 65 mov h,l 4292 1C68 E6 0F ani 0fh 4293 1C6A F6 30 ori 30h 4294 1C6C 6F mov l,a 4295 1C6D 22 04 20 shld X2004 4296 1C70 C9 ret 4298 1C71 E5 X1c71: push h 4299 1C72 11 00 10 lxi d,1000h 4300 1C75 19 dad d 4301 1C76 D1 pop d 4302 1C77 F5 X1c77: push psw 4303 1C78 0A ldax b 4304 1C79 B7 ora a 4305 1C7A CA 86 1C jz X1c86 4306 1C7D 12 stax d 4307 1C7E F1 pop psw 4308 1C7F 77 mov m,a 4309 1C80 23 inx h 4310 1C81 13 inx d 4311 1C82 03 inx b 4312 1C83 C3 77 1C jmp X1c77 4314 1C86 F1 X1c86: pop psw 4315 1C87 C9 ret 4317 1C88 06 70 X1c88: mvi b,70h 4318 1C8A EB X1c8a: xchg 4319 1C8B 36 7F X1c8b: mvi m,7fh 4320 1C8D 23 inx h 4321 1C8E 54 mov d,h 4322 1C8F 5D mov e,l 4323 1C90 13 inx d 4324 1C91 13 inx d 4325 1C92 7A mov a,d 4326 1C93 E6 0F ani 0fh 4327 1C95 B0 ora b 4328 1C96 77 mov m,a 4329 1C97 23 inx h 4330 1C98 73 mov m,e 4331 1C99 23 inx h 4332 1C9A 0D dcr c 4333 1C9B C2 8B 1C jnz X1c8b 4334 1C9E C9 ret 4336 1C9F 36 7F X1c9f: mvi m,7fh 4337 1CA1 54 mov d,h 4338 1CA2 5D mov e,l 4339 1CA3 23 inx h 4340 1CA4 7A mov a,d 4341 1CA5 E6 0F ani 0fh 4342 1CA7 F6 70 ori 70h 4343 1CA9 77 mov m,a 4344 1CAA 23 inx h 4345 1CAB 73 mov m,e 4346 1CAC C9 ret X1cad: 4348 1CAD db 'SET-UP A',0 53 45 54 2D 55 50 20 41 00 X1cb6: 4350 1CB6 db 'TO EXIT PRESS ',022h,'SET-UP',022h,0 54 4F 20 45 58 49 54 20 50 52 45 53 53 20 22 53 45 54 2D 55 50 22 00 4351 1CCD CD BA 1B call X1bba 4352 1CD0 C3 C8 0F jmp X0fc8 4354 1CD3 CD CD 1C X1cd3: call X1ccd 4355 1CD6 CD C0 1B call X1bc0 4356 1CD9 E5 push h 4357 1CDA 3E 4E mvi a,4eh 4358 1CDC CD CB 0F call X0fcb 4359 1CDF E1 pop h 4360 1CE0 E5 push h 4361 1CE1 23 inx h 4362 1CE2 23 inx h 4363 1CE3 1E 00 mvi e,0 4364 1CE5 06 04 mvi b,4 4365 1CE7 DB 42 in 42h 4366 1CE9 E6 08 ani 8 4367 1CEB F5 push psw 4368 1CEC CA F0 1C jz X1cf0 4369 1CEF 04 inr b 4370 1CF0 0E 04 X1cf0: mvi c,4 4371 1CF2 CD CC 1D X1cf2: call X1dcc 4372 1CF5 F6 B0 ori 0b0h 4373 1CF7 77 mov m,a 4374 1CF8 1C inr e 4375 1CF9 23 inx h 4376 1CFA 0D dcr c 4377 1CFB C2 F2 1C jnz X1cf2 4378 1CFE 0E 04 mvi c,4 4379 1D00 36 00 X1d00: mvi m,0 4380 1D02 1C inr e 4381 1D03 23 inx h 4382 1D04 0D dcr c 4383 1D05 C2 00 1D jnz X1d00 4384 1D08 05 dcr b 4385 1D09 C2 F0 1C jnz X1cf0 4386 1D0C 0E 04 mvi c,4 4387 1D0E F1 pop psw 4388 1D0F F5 push psw 4389 1D10 C2 17 1D jnz X1d17 4390 1D13 79 mov a,c 4391 1D14 C6 08 adi 8 4392 1D16 4F mov c,a 4393 1D17 36 00 X1d17: mvi m,0 4394 1D19 23 inx h 4395 1D1A 0D dcr c 4396 1D1B C2 17 1D jnz X1d17 4397 1D1E 11 4B 1D lxi d,X1d4b 4398 1D21 3A AB 21 lda X21ab 4399 1D24 CD 61 1D call X1d61 4400 1D27 11 56 1D lxi d,X1d56 4401 1D2A 3A AC 21 lda X21ac 4402 1D2D CD 61 1D call X1d61 4403 1D30 CD 9F 1C call X1c9f 4404 1D33 11 08 00 lxi d,8 4405 1D36 0E 04 mvi c,4 4406 1D38 F1 pop psw 4407 1D39 CA 3D 1D jz X1d3d 4408 1D3C 0C inr c 4409 1D3D 3E 31 X1d3d: mvi a,31h 4410 1D3F E1 pop h 4411 1D40 77 X1d40: mov m,a 4412 1D41 3C inr a 4413 1D42 19 dad d 4414 1D43 0D dcr c 4415 1D44 C2 40 1D jnz X1d40 4416 1D47 AF xra a 4417 1D48 C3 60 1C jmp X1c60 4419 1D4B X1d4b: db 20h 20 4420 1D4C db 20h 20 4421 1D4D db 20h 20 4422 1D4E 54 mov d,h 4423 1D4F db 20h 20 4424 1D50 53 mov d,e 4425 1D51 50 mov d,b 4426 1D52 45 mov b,l 4427 1D53 45 mov b,l 4428 1D54 44 mov b,h 4429 1D55 db 20h 20 4430 1D56 X1d56: db 20h 20 4431 1D57 db 20h 20 4432 1D58 db 20h 20 4433 1D59 52 mov d,d 4434 1D5A db 20h 20 4435 1D5B 53 mov d,e 4436 1D5C 50 mov d,b 4437 1D5D 45 mov b,l 4438 1D5E 45 mov b,l 4439 1D5F 44 mov b,h 4440 1D60 db 20h 20 4441 1D61 4F X1d61: mov c,a 4442 1D62 06 0B mvi b,0bh 4443 1D64 CD 8B 03 call memmove 4444 1D67 79 mov a,c 4445 1D68 0F rrc 4446 1D69 0F rrc 4447 1D6A 4F mov c,a 4448 1D6B 0F rrc 4449 1D6C 0F rrc 4450 1D6D 81 add c 4451 1D6E 4F mov c,a 4452 1D6F 06 00 mvi b,0 4453 1D71 11 7C 1D lxi d,X1d7c 4454 1D74 EB xchg 4455 1D75 09 dad b 4456 1D76 EB xchg 4457 1D77 06 05 mvi b,5 4458 1D79 C3 8B 03 jmp memmove 4460 1D7C X1d7c: db 20h 20 4461 1D7D db 20h 20 4462 1D7E db 20h 20 4463 1D7F 35 dcr m 4464 1D80 db 30h 30 4465 1D81 db 20h 20 4466 1D82 db 20h 20 4467 1D83 db 20h 20 4468 1D84 37 stc 4469 1D85 35 dcr m 4470 1D86 db 20h 20 4471 1D87 db 20h 20 4472 1D88 31 31 30 lxi sp,X3031 4473 1D8B db 20h 20 4474 1D8C db 20h 20 4475 1D8D 31 33 34 lxi sp,X3433 4476 1D90 db 20h 20 4477 1D91 db 20h 20 4478 1D92 31 35 30 lxi sp,X3035 4479 1D95 db 20h 20 4480 1D96 db 20h 20 4481 1D97 32 30 30 sta X3030 4482 1D9A db 20h 20 4483 1D9B db 20h 20 4484 1D9C 33 inx sp 4485 1D9D db 30h 30 4486 1D9E db 30h 30 4487 1D9F db 20h 20 4488 1DA0 db 20h 20 4489 1DA1 36 30 mvi m,30h 4490 1DA3 db 30h 30 4491 1DA4 db 20h 20 4492 1DA5 31 32 30 lxi sp,X3032 4493 1DA8 db 30h 30 4494 1DA9 db 20h 20 4495 1DAA 31 38 30 lxi sp,X3038 4496 1DAD db 30h 30 4497 1DAE db 20h 20 4498 1DAF 32 30 30 sta X3030 4499 1DB2 db 30h 30 4500 1DB3 db 20h 20 4501 1DB4 32 34 30 sta X3034 4502 1DB7 db 30h 30 4503 1DB8 db 20h 20 4504 1DB9 33 inx sp 4505 1DBA 36 30 mvi m,30h 4506 1DBC db 30h 30 4507 1DBD db 20h 20 4508 1DBE 34 inr m 4509 1DBF db 38h 38 4510 1DC0 db 30h 30 4511 1DC1 db 30h 30 4512 1DC2 db 20h 20 4513 1DC3 39 dad sp 4514 1DC4 36 30 mvi m,30h 4515 1DC6 db 30h 30 4516 1DC7 31 39 32 lxi sp,X3239 4517 1DCA db 30h 30 4518 1DCB db 30h 30 4519 1DCC E5 X1dcc: push h 4520 1DCD 21 A6 21 lxi h,X21a6 4521 1DD0 53 mov d,e 4522 1DD1 7B mov a,e 4523 1DD2 CD 2B 0E call X0e2b 4524 1DD5 A6 ana m 4525 1DD6 E1 pop h 4526 1DD7 C8 rz 4527 1DD8 3E 01 mvi a,1 4528 1DDA C9 ret 4530 1DDB 3A AC 21 X1ddb: lda X21ac 4531 1DDE E6 F0 ani 0f0h 4532 1DE0 0F rrc 4533 1DE1 0F rrc 4534 1DE2 0F rrc 4535 1DE3 0F rrc 4536 1DE4 47 mov b,a 4537 1DE5 3A AB 21 lda X21ab 4538 1DE8 E6 F0 ani 0f0h 4539 1DEA B0 ora b 4540 1DEB 32 58 21 sta X2158 4541 1DEE E6 F0 ani 0f0h 4542 1DF0 FE 20 cpi 20h 4543 1DF2 3A A4 21 lda X21a4 4544 1DF5 CA FF 1D jz X1dff 4545 1DF8 E6 3F ani 3fh 4546 1DFA F6 80 ori 80h 4547 1DFC C3 03 1E jmp X1e03 4549 1DFF E6 3F X1dff: ani 3fh 4550 1E01 F6 C0 ori 0c0h 4551 1E03 32 A4 21 X1e03: sta X21a4 4552 1E06 DB 42 in 42h 4553 1E08 E6 08 ani 8 4554 1E0A CA 19 1E jz X1e19 4555 1E0D 21 A7 21 lxi h,X21a7 4556 1E10 7E mov a,m 4557 1E11 F6 10 ori 10h 4558 1E13 77 mov m,a 4559 1E14 3E 6E mvi a,6eh 4560 1E16 C3 31 1E jmp X1e31 4562 1E19 3A A9 21 X1e19: lda X21a9 4563 1E1C E6 C0 ani 0c0h 4564 1E1E 47 mov b,a 4565 1E1F 3A A9 21 lda X21a9 4566 1E22 E6 20 ani 20h 4567 1E24 0F rrc 4568 1E25 F6 20 ori 20h 4569 1E27 B0 ora b 4570 1E28 0F rrc 4571 1E29 0F rrc 4572 1E2A 47 mov b,a 4573 1E2B 3A A4 21 lda X21a4 4574 1E2E E6 C3 ani 0c3h 4575 1E30 B0 ora b 4576 1E31 32 A4 21 X1e31: sta X21a4 4577 1E34 3A A9 21 lda X21a9 4578 1E37 E6 10 ani 10h 4579 1E39 CA 3E 1E jz X1e3e 4580 1E3C 3E 10 mvi a,10h 4581 1E3E C6 20 X1e3e: adi 20h 4582 1E40 32 7C 20 sta X207c 4583 1E43 3A A6 21 lda X21a6 4584 1E46 E6 10 ani 10h 4585 1E48 CA 4D 1E jz X1e4d 4586 1E4B 3E 01 mvi a,1 4587 1E4D CD 6E 1E X1e4d: call X1e6e 4588 1E50 CD 29 03 call X0329 4589 1E53 3A F8 20 lda X20f8 4590 1E56 FE 15 cpi 15h 4591 1E58 CC 42 03 cz X0342 4592 1E5B FE 1D cpi 1dh 4593 1E5D CC 42 03 cz X0342 4594 1E60 FE 0C cpi 0ch 4595 1E62 CC F2 0B cz X0bf2 4596 1E65 FE 12 cpi 12h 4597 1E67 CC F2 0B cz X0bf2 4598 1E6A CD 36 16 call X1636 4599 1E6D C9 ret 4601 1E6E B7 X1e6e: ora a 4602 1E6F CA 79 1E jz X1e79 4603 1E72 32 5B 21 sta X215b 4604 1E75 AF xra a 4605 1E76 C3 94 1E jmp X1e94 4607 1E79 DB 42 X1e79: in 42h 4608 1E7B E6 02 ani 2 4609 1E7D C2 90 1E jnz X1e90 4610 1E80 32 59 21 sta X2159 4611 1E83 3E 01 mvi a,1 4612 1E85 32 5B 21 sta X215b 4613 1E88 3E 02 mvi a,2 4614 1E8A 32 5A 21 sta X215a 4615 1E8D C3 6B 03 jmp X036b 4617 1E90 AF X1e90: xra a 4618 1E91 32 5B 21 sta X215b 4619 1E94 32 5A 21 X1e94: sta X215a 4620 1E97 3E 80 mvi a,80h 4621 1E99 32 59 21 sta X2159 4622 1E9C C3 6B 03 jmp X036b 4624 1E9F CD DD 1E X1e9f: call X1edd 4625 1EA2 21 7B 21 lxi h,X217b 4626 1EA5 77 mov m,a 4627 1EA6 23 inx h 4628 1EA7 22 B4 21 shld X21b4 4629 1EAA 47 mov b,a 4630 1EAB 11 14 00 lxi d,20 ; DE = 20(0x0014) 4631 1EAE CD 83 10 call memset ; call memset(0x1083) 4632 1EB1 21 B8 1E lxi h,X1eb8 4633 1EB4 22 40 21 shld X2140 4634 1EB7 C9 ret 4636 1EB8 CD DD 1E X1eb8: call X1edd 4637 1EBB 2A B4 21 lhld X21b4 4638 1EBE 47 mov b,a 4639 1EBF 3A 7B 21 lda X217b 4640 1EC2 4F mov c,a 4641 1EC3 B8 cmp b 4642 1EC4 CA D3 1E jz X1ed3 4643 1EC7 7D mov a,l 4644 1EC8 FE 90 cpi 90h 4645 1ECA CA D3 1E jz X1ed3 4646 1ECD 70 mov m,b 4647 1ECE 23 inx h 4648 1ECF 22 B4 21 shld X21b4 4649 1ED2 C9 ret 4651 1ED3 71 X1ed3: mov m,c 4652 1ED4 CD CD 1C call X1ccd 4653 1ED7 CD 4B 09 call X094b 4654 1EDA C3 B0 1B jmp X1bb0 4656 1EDD F5 X1edd: push psw 4657 1EDE FE 20 cpi 20h 4658 1EE0 D2 E5 1E jnc X1ee5 4659 1EE3 3E 01 mvi a,1 4660 1EE5 CD E3 05 X1ee5: call X05e3 4661 1EE8 F1 pop psw 4662 1EE9 C9 ret 4664 1EEA E5 X1eea: push h 4665 1EEB 21 4E 20 lxi h,scratch_start ; HL -> 0x204e 4666 1EEE 4F mov c,a 4667 1EEF 3A A2 21 lda X21a2 4668 1EF2 B7 ora a 4669 1EF3 C2 FC 1E jnz X1efc 4670 1EF6 79 mov a,c 4671 1EF7 FE 50 cpi 50h 4672 1EF9 F2 0F 1F jp X1f0f 4673 1EFC 7E X1efc: mov a,m 4674 1EFD 23 inx h 4675 1EFE 66 mov h,m 4676 1EFF 6F mov l,a 4677 1F00 7C mov a,h 4678 1F01 E6 0F ani 0fh 4679 1F03 F6 20 ori 20h 4680 1F05 67 mov h,a 4681 1F06 79 mov a,c 4682 1F07 85 add l 4683 1F08 6F mov l,a 4684 1F09 D2 0D 1F jnc X1f0d 4685 1F0C 24 inr h 4686 1F0D 70 X1f0d: mov m,b 4687 1F0E 78 mov a,b 4688 1F0F E1 X1f0f: pop h 4689 1F10 C9 ret 4691 1F11 D5 X1f11: push d 4692 1F12 AF xra a 4693 1F13 32 A5 21 sta X21a5 4694 1F16 06 00 mvi b,0 4695 1F18 78 X1f18: mov a,b 4696 1F19 32 58 21 sta X2158 4697 1F1C D3 02 out 2 4698 1F1E 0E 01 mvi c,1 4699 1F20 79 X1f20: mov a,c 4700 1F21 D3 00 out 0 4701 1F23 21 00 C0 lxi h,Xc000 4702 1F26 C5 X1f26: push b 4703 1F27 E5 push h 4704 1F28 CD 75 06 call X0675 4705 1F2B E1 pop h 4706 1F2C C1 pop b 4707 1F2D C2 48 1F jnz X1f48 4708 1F30 23 inx h 4709 1F31 7C mov a,h 4710 1F32 B5 ora l 4711 1F33 C2 26 1F jnz X1f26 4712 1F36 3E 05 X1f36: mvi a,5 4713 1F38 D3 01 out 1 4714 1F3A 3A 58 21 lda X2158 4715 1F3D D3 02 out 2 4716 1F3F 3E 25 mvi a,25h 4717 1F41 32 A5 21 sta X21a5 4718 1F44 AF xra a 4719 1F45 37 stc 4720 1F46 D1 pop d 4721 1F47 C9 ret 4723 1F48 E6 7F X1f48: ani 7fh 4724 1F4A B9 cmp c 4725 1F4B C2 36 1F jnz X1f36 4726 1F4E 79 mov a,c 4727 1F4F 07 rlc 4728 1F50 FE 80 cpi 80h 4729 1F52 4F mov c,a 4730 1F53 C2 20 1F jnz X1f20 4731 1F56 78 mov a,b 4732 1F57 C6 11 adi 11h 4733 1F59 47 mov b,a 4734 1F5A FE 10 cpi 10h 4735 1F5C C2 18 1F jnz X1f18 4736 1F5F AF xra a 4737 1F60 D1 pop d 4738 1F61 C9 ret 4740 1F62 D5 X1f62: push d 4741 1F63 16 07 mvi d,7 4742 1F65 7A X1f65: mov a,d 4743 1F66 CD 7B 1F call X1f7b 4744 1F69 CD A1 1F call X1fa1 4745 1F6C BA cmp d 4746 1F6D C2 36 1F jnz X1f36 4747 1F70 15 dcr d 4748 1F71 C2 65 1F jnz X1f65 4749 1F74 3E 05 mvi a,5 4750 1F76 D3 01 out 1 4751 1F78 AF xra a 4752 1F79 D1 pop d 4753 1F7A C9 ret 4755 1F7B 47 X1f7b: mov b,a 4756 1F7C E6 02 ani 2 4757 1F7E 0F rrc 4758 1F7F 0F rrc 4759 1F80 0F rrc 4760 1F81 0F rrc 4761 1F82 F6 10 ori 10h 4762 1F84 32 C9 21 sta X21c9 4763 1F87 D3 62 out 62h 4764 1F89 0E 05 mvi c,5 4765 1F8B 78 mov a,b 4766 1F8C E6 01 ani 1 4767 1F8E CA 93 1F jz X1f93 4768 1F91 0E 25 mvi c,25h 4769 1F93 78 X1f93: mov a,b 4770 1F94 E6 04 ani 4 4771 1F96 CA 9D 1F jz X1f9d 4772 1F99 79 mov a,c 4773 1F9A F6 02 ori 2 4774 1F9C 4F mov c,a 4775 1F9D 79 X1f9d: mov a,c 4776 1F9E D3 01 out 1 4777 1FA0 C9 ret 4779 1FA1 DB 22 X1fa1: in 22h 4780 1FA3 47 mov b,a 4781 1FA4 0E 01 mvi c,1 4782 1FA6 78 mov a,b 4783 1FA7 E6 90 ani 90h 4784 1FA9 CA B3 1F jz X1fb3 4785 1FAC FE 90 cpi 90h 4786 1FAE 3E FF mvi a,0ffh 4787 1FB0 C0 rnz 4788 1FB1 0E 00 mvi c,0 4789 1FB3 78 X1fb3: mov a,b 4790 1FB4 E6 40 ani 40h 4791 1FB6 CA BD 1F jz X1fbd 4792 1FB9 79 mov a,c 4793 1FBA F6 02 ori 2 4794 1FBC 4F mov c,a 4795 1FBD DB 01 X1fbd: in 1 4796 1FBF 0F rrc 4797 1FC0 0F rrc 4798 1FC1 2F cma 4799 1FC2 E6 20 ani 20h 4800 1FC4 A8 xra b 4801 1FC5 E6 20 ani 20h 4802 1FC7 3E FF mvi a,0ffh 4803 1FC9 C0 rnz 4804 1FCA 78 mov a,b 4805 1FCB E6 20 ani 20h 4806 1FCD C2 D4 1F jnz X1fd4 4807 1FD0 79 mov a,c 4808 1FD1 F6 04 ori 4 4809 1FD3 4F mov c,a 4810 1FD4 B7 X1fd4: ora a 4811 1FD5 79 mov a,c 4812 1FD6 C9 ret ; Last but not least, pad out to 8K (8192) bytes 1F FF org 1fffh 4817 1FFF 00 nop ; Miscellaneous equates ; These are addresses referenced in the code but ; which are in the middle of a multibyte instruction ; or are addresses outside the initialized space 00 11 X0011 equ 11h 00 FF X00ff equ 0ffh 01 11 X0111 equ 111h 01 13 X0113 equ 113h 0E A0 X0ea0 equ 0ea0h 1C CD X1ccd equ 1ccdh 20 01 X2001 equ 2001h 20 02 X2002 equ 2002h 20 04 X2004 equ 2004h 20 50 X2050 equ 2050h 20 51 X2051 equ 2051h 20 52 X2052 equ 2052h 20 54 X2054 equ 2054h 20 56 X2056 equ 2056h 20 58 X2058 equ 2058h 20 5A X205a equ 205ah 20 5B X205b equ 205bh 20 5C X205c equ 205ch 20 65 X2065 equ 2065h 20 67 X2067 equ 2067h 20 69 X2069 equ 2069h 20 72 X2072 equ 2072h 20 73 X2073 equ 2073h 20 74 X2074 equ 2074h 20 75 X2075 equ 2075h 20 77 X2077 equ 2077h 20 78 X2078 equ 2078h 20 79 X2079 equ 2079h 20 7A X207a equ 207ah 20 7B X207b equ 207bh 20 7C X207c equ 207ch 20 7D X207d equ 207dh 20 7E X207e equ 207eh 20 7F X207f equ 207fh 20 C0 X20c0 equ 20c0h 20 C1 X20c1 equ 20c1h 20 C2 X20c2 equ 20c2h 20 DE X20de equ 20deh 20 F2 X20f2 equ 20f2h 20 F4 X20f4 equ 20f4h 20 F5 X20f5 equ 20f5h 20 F8 X20f8 equ 20f8h 20 F9 X20f9 equ 20f9h 20 FA X20fa equ 20fah 20 FB X20fb equ 20fbh 20 FC X20fc equ 20fch 20 FD X20fd equ 20fdh 20 FF X20ff equ 20ffh 21 01 X2101 equ 2101h 21 02 X2102 equ 2102h 21 04 X2104 equ 2104h 21 0D X210d equ 210dh 21 0E X210e equ 210eh 21 11 X2111 equ 2111h 21 13 X2113 equ 2113h 21 2B X212b equ 212bh 21 2C X212c equ 212ch 21 2F X212f equ 212fh 21 30 X2130 equ 2130h 21 31 X2131 equ 2131h 21 40 X2140 equ 2140h 21 42 X2142 equ 2142h 21 43 X2143 equ 2143h 21 44 X2144 equ 2144h 21 45 X2145 equ 2145h 21 46 X2146 equ 2146h 21 47 X2147 equ 2147h 21 48 X2148 equ 2148h 21 49 X2149 equ 2149h 21 4B X214b equ 214bh 21 4E X214e equ 214eh 21 50 X2150 equ 2150h 21 51 X2151 equ 2151h 21 52 X2152 equ 2152h 21 53 X2153 equ 2153h 21 54 X2154 equ 2154h 21 55 X2155 equ 2155h 21 56 X2156 equ 2156h 21 57 X2157 equ 2157h 21 58 X2158 equ 2158h 21 59 X2159 equ 2159h 21 5A X215a equ 215ah 21 5B X215b equ 215bh 21 5C X215c equ 215ch 21 71 X2171 equ 2171h 21 72 X2172 equ 2172h 21 73 X2173 equ 2173h 21 74 X2174 equ 2174h 21 76 X2176 equ 2176h 21 77 X2177 equ 2177h 21 78 X2178 equ 2178h 21 79 X2179 equ 2179h 21 7B X217b equ 217bh 21 91 X2191 equ 2191h 21 A2 X21a2 equ 21a2h 21 A3 X21a3 equ 21a3h 21 A4 X21a4 equ 21a4h 21 A5 X21a5 equ 21a5h 21 A6 X21a6 equ 21a6h 21 A7 X21a7 equ 21a7h 21 A8 X21a8 equ 21a8h 21 A9 X21a9 equ 21a9h 21 AA X21aa equ 21aah 21 AB X21ab equ 21abh 21 AC X21ac equ 21ach 21 AD X21ad equ 21adh 21 AE X21ae equ 21aeh 21 AF X21af equ 21afh 21 B4 X21b4 equ 21b4h 21 B8 X21b8 equ 21b8h 21 B9 X21b9 equ 21b9h 21 BB X21bb equ 21bbh 21 BC X21bc equ 21bch 21 BD X21bd equ 21bdh 21 BE X21be equ 21beh 21 BF X21bf equ 21bfh 21 C0 X21c0 equ 21c0h 21 C1 X21c1 equ 21c1h 21 C2 X21c2 equ 21c2h 21 C3 X21c3 equ 21c3h 21 C4 X21c4 equ 21c4h 21 C5 X21c5 equ 21c5h 21 C7 X21c7 equ 21c7h 21 C8 X21c8 equ 21c8h 21 C9 X21c9 equ 21c9h 21 CB X21cb equ 21cbh 21 CC X21cc equ 21cch 21 D3 X21d3 equ 21d3h 22 53 X2253 equ 2253h 22 5A X225a equ 225ah 22 65 X2265 equ 2265h 22 D0 X22d0 equ 22d0h 28 39 X2839 equ 2839h 30 30 X3030 equ 3030h 30 31 X3031 equ 3031h 30 32 X3032 equ 3032h 30 34 X3034 equ 3034h 30 35 X3035 equ 3035h 30 38 X3038 equ 3038h 32 00 X3200 equ 3200h 32 21 X3221 equ 3221h 32 39 X3239 equ 3239h 34 33 X3433 equ 3433h 3A 6A X3a6a equ 3a6ah 3C 08 X3c08 equ 3c08h 3C 2C X3c2c equ 3c2ch 3F 2F X3f2f equ 3f2fh 40 1B X401b equ 401bh 45 53 X4553 equ 4553h 5A 0B X5a0b equ 5a0bh 60 81 X6081 equ 6081h 67 13 X6713 equ 6713h 6C 14 X6c14 equ 6c14h 7F D0 X7fd0 equ 7fd0h B7 09 Xb709 equ 0b709h C0 00 Xc000 equ 0c000h C3 10 Xc310 equ 0c310h C3 20 Xc320 equ 0c320h C9 20 Xc920 equ 0c920h C9 40 Xc940 equ 0c940h C9 80 Xc980 equ 0c980h CC 71 Xcc71 equ 0cc71h CD 00 Xcd00 equ 0cd00h CD 0B Xcd0b equ 0cd0bh D0 F2 Xd0f2 equ 0d0f2h FE 1A Xfe1a equ 0fe1ah FF 01 Xff01 equ 0ff01h end ******************************************************************************* Symbols table ******************************************************************************* Names Types Values ----- ----- ------ stack_top EQU 0204Eh scratch_start EQU 0204Eh key_flags EQU 02068h key_buffer EQU 0206Ah cursor_address EQU 020F6h cursor_countdn EQU 0212Dh cursor_visible EQU 021BAh X0011 EQU 00011h X00ff EQU 000FFh X0111 EQU 00111h X0113 EQU 00113h X0ea0 EQU 00EA0h X1ccd EQU 01CCDh X2001 EQU 02001h X2002 EQU 02002h X2004 EQU 02004h X2050 EQU 02050h X2051 EQU 02051h X2052 EQU 02052h X2054 EQU 02054h X2056 EQU 02056h X2058 EQU 02058h X205a EQU 0205Ah X205b EQU 0205Bh X205c EQU 0205Ch X2065 EQU 02065h X2067 EQU 02067h X2069 EQU 02069h X2072 EQU 02072h X2073 EQU 02073h X2074 EQU 02074h X2075 EQU 02075h X2077 EQU 02077h X2078 EQU 02078h X2079 EQU 02079h X207a EQU 0207Ah X207b EQU 0207Bh X207c EQU 0207Ch X207d EQU 0207Dh X207e EQU 0207Eh X207f EQU 0207Fh X20c0 EQU 020C0h X20c1 EQU 020C1h X20c2 EQU 020C2h X20de EQU 020DEh X20f2 EQU 020F2h X20f4 EQU 020F4h X20f5 EQU 020F5h X20f8 EQU 020F8h X20f9 EQU 020F9h X20fa EQU 020FAh X20fb EQU 020FBh X20fc EQU 020FCh X20fd EQU 020FDh X20ff EQU 020FFh X2101 EQU 02101h X2102 EQU 02102h X2104 EQU 02104h X210d EQU 0210Dh X210e EQU 0210Eh X2111 EQU 02111h X2113 EQU 02113h X212b EQU 0212Bh X212c EQU 0212Ch X212f EQU 0212Fh X2130 EQU 02130h X2131 EQU 02131h X2140 EQU 02140h X2142 EQU 02142h X2143 EQU 02143h X2144 EQU 02144h X2145 EQU 02145h X2146 EQU 02146h X2147 EQU 02147h X2148 EQU 02148h X2149 EQU 02149h X214b EQU 0214Bh X214e EQU 0214Eh X2150 EQU 02150h X2151 EQU 02151h X2152 EQU 02152h X2153 EQU 02153h X2154 EQU 02154h X2155 EQU 02155h X2156 EQU 02156h X2157 EQU 02157h X2158 EQU 02158h X2159 EQU 02159h X215a EQU 0215Ah X215b EQU 0215Bh X215c EQU 0215Ch X2171 EQU 02171h X2172 EQU 02172h X2173 EQU 02173h X2174 EQU 02174h X2176 EQU 02176h X2177 EQU 02177h X2178 EQU 02178h X2179 EQU 02179h X217b EQU 0217Bh X2191 EQU 02191h X21a2 EQU 021A2h X21a3 EQU 021A3h X21a4 EQU 021A4h X21a5 EQU 021A5h X21a6 EQU 021A6h X21a7 EQU 021A7h X21a8 EQU 021A8h X21a9 EQU 021A9h X21aa EQU 021AAh X21ab EQU 021ABh X21ac EQU 021ACh X21ad EQU 021ADh X21ae EQU 021AEh X21af EQU 021AFh X21b4 EQU 021B4h X21b8 EQU 021B8h X21b9 EQU 021B9h X21bb EQU 021BBh X21bc EQU 021BCh X21bd EQU 021BDh X21be EQU 021BEh X21bf EQU 021BFh X21c0 EQU 021C0h X21c1 EQU 021C1h X21c2 EQU 021C2h X21c3 EQU 021C3h X21c4 EQU 021C4h X21c5 EQU 021C5h X21c7 EQU 021C7h X21c8 EQU 021C8h X21c9 EQU 021C9h X21cb EQU 021CBh X21cc EQU 021CCh X21d3 EQU 021D3h X2253 EQU 02253h X225a EQU 0225Ah X2265 EQU 02265h X22d0 EQU 022D0h X2839 EQU 02839h X3030 EQU 03030h X3031 EQU 03031h X3032 EQU 03032h X3034 EQU 03034h X3035 EQU 03035h X3038 EQU 03038h X3200 EQU 03200h X3221 EQU 03221h X3239 EQU 03239h X3433 EQU 03433h X3a6a EQU 03A6Ah X3c08 EQU 03C08h X3c2c EQU 03C2Ch X3f2f EQU 03F2Fh X401b EQU 0401Bh X4553 EQU 04553h X5a0b EQU 05A0Bh X6081 EQU 06081h X6713 EQU 06713h X6c14 EQU 06C14h X7fd0 EQU 07FD0h Xb709 EQU 0B709h Xc000 EQU 0C000h Xc310 EQU 0C310h Xc320 EQU 0C320h Xc920 EQU 0C920h Xc940 EQU 0C940h Xc980 EQU 0C980h Xcc71 EQU 0CC71h Xcd00 EQU 0CD00h Xcd0b EQU 0CD0Bh Xd0f2 EQU 0D0F2h Xfe1a EQU 0FE1Ah Xff01 EQU 0FF01h X0030 Label 00030h reset Label 0003Bh X003d Label 0003Dh X0049 Label 00049h X004f Label 0004Fh X005b Label 0005Bh X0074 Label 00074h X0076 Label 00076h X0080 Label 00080h X0090 Label 00090h X00a1 Label 000A1h X00a5 Label 000A5h X00a8 Label 000A8h X00c4 Label 000C4h X00cb Label 000CBh X00d2 Label 000D2h X00d6 Label 000D6h X00e0 Label 000E0h X00e8 Label 000E8h X00f5 Label 000F5h X00fd Label 000FDh X010d Label 0010Dh X011a Label 0011Ah X012d Label 0012Dh X0131 Label 00131h X013b Label 0013Bh X015b Label 0015Bh X015f Label 0015Fh X016c Label 0016Ch X0175 Label 00175h X0187 Label 00187h X018e Label 0018Eh X0194 Label 00194h X019e Label 0019Eh X01ab Label 001ABh X01b5 Label 001B5h X01c3 Label 001C3h X01e4 Label 001E4h X01f0 Label 001F0h X01ff Label 001FFh X020e Label 0020Eh X0211 Label 00211h X0222 Label 00222h X0226 Label 00226h X022c Label 0022Ch X0245 Label 00245h X0251 Label 00251h X0265 Label 00265h X0269 Label 00269h X0285 Label 00285h X0298 Label 00298h X02a4 Label 002A4h X02c0 Label 002C0h X02d9 Label 002D9h X02eb Label 002EBh X031a Label 0031Ah X0329 Label 00329h X0342 Label 00342h X034b Label 0034Bh X035e Label 0035Eh X036b Label 0036Bh X0370 Label 00370h X0375 Label 00375h X0381 Label 00381h memmove Label 0038Bh X0394 Label 00394h X039f Label 0039Fh X03a2 Label 003A2h X03ae Label 003AEh X03cc Label 003CCh X03ed Label 003EDh X0409 Label 00409h X0427 Label 00427h X042c Label 0042Ch X0431 Label 00431h X0437 Label 00437h X043a Label 0043Ah X043e Label 0043Eh X0444 Label 00444h X0447 Label 00447h X044b Label 0044Bh X0476 Label 00476h KBTab Label 00476h X04cf Label 004CFh X0505 Label 00505h X050b Label 0050Bh X0538 Label 00538h X053e Label 0053Eh X054f Label 0054Fh X0569 Label 00569h X056a Label 0056Ah X0587 Label 00587h X0593 Label 00593h X05a9 Label 005A9h X05ad Label 005ADh X05b8 Label 005B8h X05c5 Label 005C5h X05cc Label 005CCh X05d2 Label 005D2h X05d3 Label 005D3h X05e3 Label 005E3h X05e6 Label 005E6h X05ff Label 005FFh X0616 Label 00616h X0624 Label 00624h X0641 Label 00641h X0668 Label 00668h X066d Label 0066Dh X0670 Label 00670h X0673 Label 00673h X0675 Label 00675h X0685 Label 00685h X0687 Label 00687h X069c Label 0069Ch X06a7 Label 006A7h X06aa Label 006AAh X06c2 Label 006C2h X06ca Label 006CAh X06d6 Label 006D6h X06df Label 006DFh X06e7 Label 006E7h X06e8 Label 006E8h X06fb Label 006FBh X0709 Label 00709h X071b Label 0071Bh X0738 Label 00738h X0743 Label 00743h X0747 Label 00747h X074e Label 0074Eh X0751 Label 00751h X075b Label 0075Bh X0766 Label 00766h X076c Label 0076Ch X0776 Label 00776h X07c2 Label 007C2h X07cb Label 007CBh X07d5 Label 007D5h X07d7 Label 007D7h X07e8 Label 007E8h X07fc Label 007FCh X07ff Label 007FFh X080c Label 0080Ch X080d Label 0080Dh X0812 Label 00812h X0815 Label 00815h X081d Label 0081Dh X082b Label 0082Bh X0838 Label 00838h X0841 Label 00841h X084c Label 0084Ch X0853 Label 00853h X085f Label 0085Fh X086f Label 0086Fh X0875 Label 00875h X08a0 Label 008A0h X08a7 Label 008A7h X08b2 Label 008B2h X08cb Label 008CBh X08d0 Label 008D0h X08d4 Label 008D4h X08e5 Label 008E5h X08fb Label 008FBh X08fc Label 008FCh X0900 Label 00900h X0924 Label 00924h X0930 Label 00930h X0938 Label 00938h X0941 Label 00941h X094b Label 0094Bh X0955 Label 00955h X0970 Label 00970h X0973 Label 00973h X0989 Label 00989h X0997 Label 00997h X0998 Label 00998h X099e Label 0099Eh X09ab Label 009ABh X09bb Label 009BBh X09bd Label 009BDh X09d9 Label 009D9h X09dc Label 009DCh X09f7 Label 009F7h X09ff Label 009FFh X0a00 Label 00A00h X0a0d Label 00A0Dh X0a14 Label 00A14h X0a15 Label 00A15h X0a18 Label 00A18h X0a1c Label 00A1Ch X0a50 Label 00A50h X0a7b Label 00A7Bh X0aa2 Label 00AA2h X0ac2 Label 00AC2h X0ad9 Label 00AD9h X0af5 Label 00AF5h X0b19 Label 00B19h X0b2e Label 00B2Eh X0b42 Label 00B42h X0b4f Label 00B4Fh X0b5d Label 00B5Dh X0b63 Label 00B63h X0b77 Label 00B77h X0b89 Label 00B89h X0bb8 Label 00BB8h X0bce Label 00BCEh X0bd9 Label 00BD9h X0bf2 Label 00BF2h X0bfe Label 00BFEh X0c11 Label 00C11h X0c23 Label 00C23h X0c29 Label 00C29h X0c31 Label 00C31h X0c32 Label 00C32h X0c39 Label 00C39h X0c46 Label 00C46h X0c4a Label 00C4Ah X0c57 Label 00C57h X0c62 Label 00C62h X0c77 Label 00C77h X0c8a Label 00C8Ah X0c97 Label 00C97h X0ca2 Label 00CA2h X0cb5 Label 00CB5h X0cbb Label 00CBBh X0ce3 Label 00CE3h X0cf9 Label 00CF9h X0d29 Label 00D29h X0d2f Label 00D2Fh X0d32 Label 00D32h X0d4a Label 00D4Ah X0d6f Label 00D6Fh X0d7a Label 00D7Ah X0d88 Label 00D88h X0d93 Label 00D93h X0d99 Label 00D99h X0d9c Label 00D9Ch X0db9 Label 00DB9h X0dbb Label 00DBBh X0dbf Label 00DBFh X0dd8 Label 00DD8h X0de5 Label 00DE5h X0dec Label 00DECh X0def Label 00DEFh X0df9 Label 00DF9h X0dfc Label 00DFCh X0e02 Label 00E02h X0e0b Label 00E0Bh X0e15 Label 00E15h X0e1d Label 00E1Dh X0e23 Label 00E23h X0e27 Label 00E27h X0e2b Label 00E2Bh X0e38 Label 00E38h X0e3e Label 00E3Eh X0e47 Label 00E47h X0e59 Label 00E59h X0e6d Label 00E6Dh X0e79 Label 00E79h X0e80 Label 00E80h X0e89 Label 00E89h X0e94 Label 00E94h X0ea9 Label 00EA9h X0ec1 Label 00EC1h X0ecf Label 00ECFh X0ed2 Label 00ED2h X0ee1 Label 00EE1h X0ef3 Label 00EF3h X0f01 Label 00F01h X0f18 Label 00F18h X0f2b Label 00F2Bh X0f32 Label 00F32h X0f4e Label 00F4Eh X0f5b Label 00F5Bh X0f5e Label 00F5Eh X0f61 Label 00F61h X0f75 Label 00F75h X0f7e Label 00F7Eh X0f9e Label 00F9Eh X0faa Label 00FAAh X0fae Label 00FAEh X0fbe Label 00FBEh X0fc8 Label 00FC8h X0fcb Label 00FCBh X0fd8 Label 00FD8h X0fe6 Label 00FE6h X0feb Label 00FEBh X0fed Label 00FEDh X0ffa Label 00FFAh X0fff Label 00FFFh X1003 Label 01003h X1012 Label 01012h X101a Label 0101Ah X102d Label 0102Dh X103e Label 0103Eh X104e Label 0104Eh X106a Label 0106Ah X1074 Label 01074h memset Label 01083h X108e Label 0108Eh X10a7 Label 010A7h X10ad Label 010ADh X10d7 Label 010D7h X10f9 Label 010F9h X10fd Label 010FDh X1136 Label 01136h X114c Label 0114Ch X1159 Label 01159h X117e Label 0117Eh X1189 Label 01189h X1191 Label 01191h X1199 Label 01199h X11a0 Label 011A0h X11b0 Label 011B0h X11bf Label 011BFh X11ce Label 011CEh X11e8 Label 011E8h X120a Label 0120Ah X1211 Label 01211h X1228 Label 01228h X122f Label 0122Fh X1248 Label 01248h X1252 Label 01252h X1271 Label 01271h X127f Label 0127Fh X1284 Label 01284h X1290 Label 01290h X1299 Label 01299h X129d Label 0129Dh X12b0 Label 012B0h X12e8 Label 012E8h X1310 Label 01310h X131c Label 0131Ch X134a Label 0134Ah X136b Label 0136Bh X1380 Label 01380h X1386 Label 01386h X138d Label 0138Dh X1390 Label 01390h X1395 Label 01395h X13bd Label 013BDh X13c3 Label 013C3h X13d2 Label 013D2h X13db Label 013DBh X13de Label 013DEh X13e3 Label 013E3h X13e6 Label 013E6h X13f4 Label 013F4h X1404 Label 01404h X140a Label 0140Ah X1426 Label 01426h X142a Label 0142Ah X1476 Label 01476h X1488 Label 01488h X1493 Label 01493h X14a2 Label 014A2h X14d4 Label 014D4h X14e5 Label 014E5h X150a Label 0150Ah X1515 Label 01515h X1524 Label 01524h X1529 Label 01529h X1530 Label 01530h X1555 Label 01555h X156a Label 0156Ah X1586 Label 01586h X15b6 Label 015B6h X15c0 Label 015C0h X15dd Label 015DDh X15e8 Label 015E8h X15fa Label 015FAh X1605 Label 01605h X1612 Label 01612h X1623 Label 01623h X162b Label 0162Bh X1636 Label 01636h X167b Label 0167Bh X167f Label 0167Fh X168c Label 0168Ch X16a1 Label 016A1h X16c2 Label 016C2h X16d9 Label 016D9h X16f1 Label 016F1h X16f2 Label 016F2h X1713 Label 01713h X1715 Label 01715h X1717 Label 01717h X1732 Label 01732h X1733 Label 01733h X1743 Label 01743h X174c Label 0174Ch X1754 Label 01754h X175b Label 0175Bh X1762 Label 01762h X1771 Label 01771h X179e Label 0179Eh X17ac Label 017ACh X17be Label 017BEh X17d0 Label 017D0h X17d5 Label 017D5h X17ec Label 017ECh X17f3 Label 017F3h X17fe Label 017FEh X180f Label 0180Fh X1815 Label 01815h X181e Label 0181Eh X1822 Label 01822h X1825 Label 01825h X1835 Label 01835h X1837 Label 01837h X1844 Label 01844h X1848 Label 01848h X1860 Label 01860h X1869 Label 01869h X1879 Label 01879h X187e Label 0187Eh X1888 Label 01888h X1895 Label 01895h X1898 Label 01898h X189d Label 0189Dh X18a3 Label 018A3h X18ae Label 018AEh X18bc Label 018BCh X18c1 Label 018C1h X18c7 Label 018C7h X18d1 Label 018D1h X18d7 Label 018D7h X18e6 Label 018E6h X18ec Label 018ECh X18f6 Label 018F6h X1900 Label 01900h X1916 Label 01916h X1928 Label 01928h X192b Label 0192Bh X192d Label 0192Dh X193c Label 0193Ch X1957 Label 01957h X1962 Label 01962h X196a Label 0196Ah X1977 Label 01977h X1981 Label 01981h X1993 Label 01993h X1999 Label 01999h X19a8 Label 019A8h X19ae Label 019AEh X19c0 Label 019C0h X19c3 Label 019C3h X19c9 Label 019C9h X19d6 Label 019D6h X19dc Label 019DCh X19ee Label 019EEh X1a1a Label 01A1Ah X1a20 Label 01A20h X1a2b Label 01A2Bh X1a45 Label 01A45h X1a61 Label 01A61h X1a71 Label 01A71h X1aa1 Label 01AA1h X1aa2 Label 01AA2h X1ae6 Label 01AE6h X1ae8 Label 01AE8h X1b52 Label 01B52h X1b59 Label 01B59h X1b60 Label 01B60h X1b72 Label 01B72h X1b81 Label 01B81h X1b86 Label 01B86h X1bb0 Label 01BB0h X1bba Label 01BBAh X1bc0 Label 01BC0h X1bc3 Label 01BC3h X1bca Label 01BCAh X1be8 Label 01BE8h X1bf4 Label 01BF4h X1bf9 Label 01BF9h X1c35 Label 01C35h X1c3e Label 01C3Eh X1c49 Label 01C49h X1c50 Label 01C50h X1c60 Label 01C60h X1c71 Label 01C71h X1c77 Label 01C77h X1c86 Label 01C86h X1c88 Label 01C88h X1c8a Label 01C8Ah X1c8b Label 01C8Bh X1c9f Label 01C9Fh X1cad Label 01CADh X1cb6 Label 01CB6h X1cd3 Label 01CD3h X1cf0 Label 01CF0h X1cf2 Label 01CF2h X1d00 Label 01D00h X1d17 Label 01D17h X1d3d Label 01D3Dh X1d40 Label 01D40h X1d4b Label 01D4Bh X1d56 Label 01D56h X1d61 Label 01D61h X1d7c Label 01D7Ch X1dcc Label 01DCCh X1ddb Label 01DDBh X1dff Label 01DFFh X1e03 Label 01E03h X1e19 Label 01E19h X1e31 Label 01E31h X1e3e Label 01E3Eh X1e4d Label 01E4Dh X1e6e Label 01E6Eh X1e79 Label 01E79h X1e90 Label 01E90h X1e94 Label 01E94h X1e9f Label 01E9Fh X1eb8 Label 01EB8h X1ed3 Label 01ED3h X1edd Label 01EDDh X1ee5 Label 01EE5h X1eea Label 01EEAh X1efc Label 01EFCh X1f0d Label 01F0Dh X1f0f Label 01F0Fh X1f11 Label 01F11h X1f18 Label 01F18h X1f20 Label 01F20h X1f26 Label 01F26h X1f36 Label 01F36h X1f48 Label 01F48h X1f62 Label 01F62h X1f65 Label 01F65h X1f7b Label 01F7Bh X1f93 Label 01F93h X1f9d Label 01F9Dh X1fa1 Label 01FA1h X1fb3 Label 01FB3h X1fbd Label 01FBDh X1fd4 Label 01FD4h Statistics ---------- "Name" = 0 "EQU" = 174 "SET" = 0 Labels = 535