From a6376d3e8bb199ce012f50010491d2ae7152b08b Mon Sep 17 00:00:00 2001 From: Jeff Parsons Date: Sun, 14 Aug 2016 22:05:59 -0700 Subject: [PATCH] Fixed LOCAL/ONLINE LED --- README.md | 2 +- .../pc8080/machine/vt100/debugger/README.md | 3 +- devices/pc8080/rom/vt100/VT100.asm | 57 +- devices/pc8080/rom/vt100/VT100.lst | 8716 ++++++++--------- modules/pc8080/lib/keyboard.js | 54 +- versions/pc8080/1.23.3/pc8080-dbg.js | 358 +- versions/pc8080/1.23.3/pc8080.js | 232 +- 7 files changed, 4717 insertions(+), 4705 deletions(-) diff --git a/README.md b/README.md index f43bbe395..e743133bb 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ one of several JavaScript Machines in the [PCjs Project](https://github.com/jeff includes: * [PCx86](/docs/pcx86/), an x86-based IBM PC and PC-compatible emulator -* [PC8080](/modules/pc8080/), a 8080-based machine emulator (e.g., [Space Invaders](/devices/pc8080/machine/invaders/), [VT100](pc8080/machine/vt100/)) +* [PC8080](/modules/pc8080/), a 8080-based machine emulator (e.g., [Space Invaders](/devices/pc8080/machine/invaders/), [VT100](/devices/pc8080/machine/vt100/)) * [C1Pjs](/docs/c1pjs/), a 6502-based emulation of the Ohio Scientific [Challenger 1P](/devices/c1p/) All PCjs computer simulations are written entirely in [JavaScript](/modules/). No Flash, Java or other plugins are diff --git a/devices/pc8080/machine/vt100/debugger/README.md b/devices/pc8080/machine/vt100/debugger/README.md index 71ad74bde..f2dea50a6 100644 --- a/devices/pc8080/machine/vt100/debugger/README.md +++ b/devices/pc8080/machine/vt100/debugger/README.md @@ -27,7 +27,8 @@ maps modern keys to VT100 key addresses, and most of the mappings are 1-1. Func - F8: NO SCROLL - F9: SET-UP -The simulation is not fully operational yet, but it is now possible to access the SET-UP screen. +The simulation is not fully operational yet, but it is now possible to access the SET-UP screen, press 4 to switch to LOCAL +mode, and verify that most VT100 keys work properly. {% include machine.html id="vt100" %} diff --git a/devices/pc8080/rom/vt100/VT100.asm b/devices/pc8080/rom/vt100/VT100.asm index f62a935d6..dc7898650 100644 --- a/devices/pc8080/rom/vt100/VT100.asm +++ b/devices/pc8080/rom/vt100/VT100.asm @@ -28,6 +28,7 @@ scratch_start equ 204eh key_flags equ 2068h ; "Keys Flag Buffer" key_buffer equ 206ah ; start of the "three place New Key Address Buffer" +cursor_address equ 20f6h cursor_countdn equ 212dh cursor_visible equ 21bah @@ -454,7 +455,7 @@ X0269: call X03a2 ani 7fh X0285: sta X21bd adi 30h - lhld X20f6 + lhld cursor_address mov m,a cpi 34h jz X0298 @@ -476,7 +477,7 @@ X02a4: lxi h,scratch_start ;; HL = 0x204e (just above stack) lxi h,X2004 ;; HL <- 0x2004 shld X2052 ;; *(0x2052) = 0x2004 lxi h,X22d0 ;; HL <- 0x22d0 - shld X20f6 ;; *(20f6) = 0x22d0 + shld cursor_address ;; *(20f6) = 0x22d0 ret ;; ;; Initialize start of screen RAM and wipe attribute RAM to 0xff @@ -486,8 +487,8 @@ X02c0: call X0a15 ;; 0x2140 = 0xe605 lxi d,X02d9 ;; DE = 0x02d9 mvi b,12h ;; B = 18 call memmove ;; copy 18 bytes from 0x02d9 to 0x2000 - lxi h,X3000 ;; HL = 0x3000 - lxi d,X1000 ;; DE = 0x1000 + lxi h,3000h ;; HL = 0x3000 + lxi d,1000h ;; DE = 0x1000 mvi b,0ffh ;; B = 0xFF jmp memset ;; invoke memset(0x1083) to set all of attribute RAM to 0xFF and return ;; @@ -931,7 +932,7 @@ X0624: lda X20fb push b call X0955 pop b -X0641: lhld X20f6 +X0641: lhld cursor_address mov m,c mov a,h adi 10h @@ -1010,7 +1011,7 @@ X06aa: lda key_flags ; A <- [Keys flag buffer] X06c2: mov d,a mvi c,0 mvi b,4 - lxi h,X206e + lxi h,key_buffer+4 X06ca: mov a,m ora a jz X06e8 @@ -1072,7 +1073,7 @@ X071b: cmp m cpi 1 rnz mvi b,4 - lxi h,X206e + lxi h,key_buffer+4 X0738: mov a,m ora a jnz X0743 @@ -1088,7 +1089,7 @@ X0747: mov a,c cpi 4 rp lxi b,key_buffer -X074e: lxi h,X206e +X074e: lxi h,key_buffer+4 X0751: mov a,m ora a jz X075b @@ -1099,7 +1100,7 @@ X075b: inx h mov a,l cpi 72h jnz X0751 - ldax b + ldax b ; A = key (loaded from BC, typically 0x206a) jmp X076c X0766: inx b @@ -1200,14 +1201,14 @@ X080d: ori 80h X0812: call X0853 X0815: lda X2150 mvi d,4 - lxi h,X206e + lxi h,key_buffer+4 X081d: cmp m jz X0841 inx h dcr d jnz X081d mvi d,4 - lxi h,X206e + lxi h,key_buffer+4 X082b: mov a,m ora a jz X0838 @@ -2477,7 +2478,7 @@ X0ffa: call X13e6 mov a,e sub d X0fff: mov c,a -X1000: lda X212b + lda X212b X1003: mov d,m mov m,a mov a,b @@ -2897,7 +2898,7 @@ X12b0: call X1191 cmp m jnc X1012 lxi h,X20f4 - shld X20f6 + shld cursor_address jmp X1012 lda X2130 @@ -3217,12 +3218,15 @@ X14d4: lda cursor_visible ; A = 0xff (visible) or 0x00 (invisible) jnz X14e5 ; and stick with that if cursor still visible lxi h,109h ; otherwise, use half that value (0x0109) if invisible X14e5: shld cursor_countdn ; store new cursor countdown - lhld X20f6 - mov b,m - lda X2159 - xra b - mov m,a - lxi d,X1000 + lhld cursor_address + mov b,m ; B = current cursor + lda X2159 ; A = cursor inversion mask (typically 0x80) + xra b ; B = new (inverted) cursor + 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 +; + lxi d,1000h dad d lda X215a xra m @@ -3253,7 +3257,7 @@ X1515: lda X20f8 rrc X1524: sub b mov b,a - lhld X20f6 + lhld cursor_address X1529: mov a,h adi 10h mov d,a @@ -3421,7 +3425,7 @@ X1636: lxi h,13 shld cursor_countdn ; reset cursor countdown to 13 (0x000d) xra a sta cursor_visible ; reset cursor visibility - lhld X20f6 + lhld cursor_address lda X20f4 mov b,a mov m,a @@ -3476,7 +3480,7 @@ X16a1: lda X20f8 sta X21bb lhld X214e call X13de - shld X20f6 + shld cursor_address mov a,m sta X20f4 mov b,a @@ -3485,7 +3489,7 @@ X16a1: lda X20f8 mov h,a mov a,m sta X20f5 - lhld X20f6 + lhld cursor_address mov m,b ret @@ -4007,7 +4011,7 @@ X1a45: lhld X2004 X1a61: lhld X2111 shld X2140 call X1bba - lxi d,X1000 + lxi d,1000h dad d lda X2050 X1a71: mvi m,0ffh @@ -4292,7 +4296,7 @@ X1c60: sta X21be ret X1c71: push h - lxi d,X1000 + lxi d,1000h dad d pop d X1c77: push psw @@ -4839,7 +4843,6 @@ X205c equ 205ch X2065 equ 2065h X2067 equ 2067h X2069 equ 2069h -X206e equ 206eh X2072 equ 2072h X2073 equ 2073h X2074 equ 2074h @@ -4860,7 +4863,6 @@ X20de equ 20deh X20f2 equ 20f2h X20f4 equ 20f4h X20f5 equ 20f5h -X20f6 equ 20f6h X20f8 equ 20f8h X20f9 equ 20f9h X20fa equ 20fah @@ -4953,7 +4955,6 @@ X225a equ 225ah X2265 equ 2265h X22d0 equ 22d0h X2839 equ 2839h -X3000 equ 3000h X3030 equ 3030h X3031 equ 3031h X3032 equ 3032h diff --git a/devices/pc8080/rom/vt100/VT100.lst b/devices/pc8080/rom/vt100/VT100.lst index 3ef0239d9..43412f3d5 100644 --- a/devices/pc8080/rom/vt100/VT100.lst +++ b/devices/pc8080/rom/vt100/VT100.lst @@ -28,6 +28,7 @@ 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 @@ -35,110 +36,110 @@ ; Reset vector ; 00 00 org 0 - 38 0000 F3 di - 39 0001 31 4E 20 lxi sp,stack_top ; SP = 0x204e - 40 0004 C3 3B 00 jmp reset + 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 - 45 0008 CD FD 00 call X00fd - 46 000B FB ei - 47 000C C9 ret + 46 0008 CD FD 00 call X00fd + 47 000B FB ei + 48 000C C9 ret ; ; Interrupt vector 0x2 for PUSART ; 00 10 org 10h - 52 0010 CD CC 03 call X03cc - 53 0013 FB ei - 54 0014 C9 ret + 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 - 59 0018 CD CC 03 call X03cc - 60 001B CD FD 00 call X00fd - 61 001E FB ei - 62 001F C9 ret + 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 - 67 0020 CD CF 04 call X04cf - 68 0023 C9 ret + 68 0020 CD CF 04 call X04cf + 69 0023 C9 ret ; ; Interrupt vector 0x5 for Keyboard and Video ; 00 28 org 28h - 73 0028 CD CF 04 call X04cf - 74 002B C9 ret + 74 0028 CD CF 04 call X04cf + 75 002B C9 ret ; ; Interrupt vector 0x6 for PUSART and Video ; 00 30 org 30h - 79 0030 CD CC 03 X0030: call X03cc - 80 0033 CD CF 04 call X04cf - 81 0036 FB ei - 82 0037 C9 ret + 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 - 87 0038 C3 30 00 jmp X0030 + 88 0038 C3 30 00 jmp X0030 ; ; Beginning of power-up (reset) code at 0x003b ; - 92 003B 1E 01 reset: mvi e,1 - 93 003D F3 X003d: di - 94 003E 3E 0F mvi a,0fh - 95 0040 D3 62 out 62h ;; 0x0f to NVR latch - 96 0042 2F cma ;; invert A (0xf0) - 97 0043 D3 42 out 42h ;; 0xf0 to brightness + 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. ;; - 103 0045 AF xra a ;; zero A - 104 0046 57 mov d,a ;; zero D, L, H - 105 0047 6F mov l,a - 106 0048 67 mov h,a - 107 0049 3C X0049: inr a ;; next 2K ROM - 108 004A 47 mov b,a ;; store the current ROM # in B - 109 004B D3 82 out 82h ;; show current ROM on LEDs - 110 004D 0E 08 mvi c,8 ;; Checksum over 8 256B blocks - 111 004F 07 X004f: rlc ;; Rotate A left - 112 0050 AE xra m ;; A <- A ^ memory - 113 0051 2C inr l ;; next memory address - 114 0052 C2 4F 00 jnz X004f ;; ... repeat until end of block - 115 0055 24 inr h ;; next block - 116 0056 0D dcr c ;; decrement block count - 117 0057 C2 4F 00 jnz X004f ;; ... repeat until end of chip - 118 005A B7 ora a ;; Check the value of the accumulator - 119 005B C2 5B 00 X005b: jnz X005b ;; If it's not zero, hang forever - 120 005E 78 mov a,b ;; Put the ROM # back in the accumulator - 121 005F FE 04 cpi 4 ;; If it's not 4... - 122 0061 C2 49 00 jnz X0049 ;; repeat for the next ROM + 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 - 124 0064 3C inr a - 125 0065 D3 82 out 82h ;; write 5 to LEDs (turns on L2 and L4) + 125 0064 3C inr a + 126 0065 D3 82 out 82h ;; write 5 to LEDs (turns on L2 and L4) - 127 0067 0E AA mvi c,0aah ;; Test pattern: 0xaa - 128 0069 06 2C mvi b,2ch ;; 0x2c is the top of RAM on the basic board - 129 006B DB 42 in 42h ;; - 130 006D E6 02 ani 2 ;; flags buffer &= 0x02 : is AVO installed? - 131 006F C2 74 00 jnz X0074 ;; if bit 2 is not set, AVO is installed - 132 0072 06 40 mvi b,40h ;; 0x40 is the top of RAM on the AVO - 133 0074 60 X0074: mov h,b ;; load HL with top of RAM - 134 0075 2B dcx h ;; dec HL - 135 0076 36 00 X0076: mvi m,0 ;; M <- 0 - 136 0078 2B dcx h ;; dec HL - 137 0079 7C mov a,h ;; a <- h - 138 007A FE 1F cpi 1fh ;; compare to 1f (top of ROM) - 139 007C C2 76 00 jnz X0076 ;; continue to zero if not at ROM + 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 - 141 007F 23 inx h + 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, @@ -146,78 +147,78 @@ ;; ;; From start of RAM, test that it's all zero ;; - 149 0080 7E X0080: mov a,m ;; read a byte of memory - 150 0081 B7 ora a - 151 0082 CA 90 00 jz X0090 ;; if it's zero, skip ahead - 152 0085 E6 0F ani 0fh - 153 0087 7C mov a,h - 154 0088 C2 A1 00 jnz X00a1 ;; err - 155 008B FE 30 cpi 30h - 156 008D DA A1 00 jc X00a1 ;; err - 157 0090 71 X0090: mov m,c ;; run test pattern through ram - 158 0091 7E mov a,m - 159 0092 A9 xra c - 160 0093 CA A8 00 jz X00a8 ;; jump to 00a8 if ok - 161 0096 E6 0F ani 0fh - 162 0098 7C mov a,h - 163 0099 C2 A1 00 jnz X00a1 ;; err - 164 009C FE 30 cpi 30h - 165 009E D2 A8 00 jnc X00a8 ;; ok - 166 00A1 16 01 X00a1: mvi d,1 - 167 00A3 FE 2C cpi 2ch - 168 00A5 DA A5 00 X00a5: jc X00a5 ;; Hang if non-AVO memory - 169 00A8 AF X00a8: xra a - 170 00A9 23 inx h - 171 00AA B5 ora l - 172 00AB C2 80 00 jnz X0080 - 173 00AE B4 ora h - 174 00AF B8 cmp b - 175 00B0 C2 80 00 jnz X0080 - 176 00B3 79 mov a,c ;; Repeat mem test with pattern 0x55 - 177 00B4 07 rlc - 178 00B5 4F mov c,a - 179 00B6 DA 74 00 jc X0074 + 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 ;; - 183 00B9 D5 push d - 184 00BA CD A4 02 call X02a4 ;; zero scratch and screen mem - 185 00BD CD EB 02 call X02eb ;; Set a number of scratch values to fixed values - 186 00C0 CD 5B 17 call X175b ;; .... more memory initialization - 187 00C3 D1 pop d - 188 00C4 CA CB 00 X00c4: jz X00cb - 189 00C7 7A mov a,d - 190 00C8 F6 02 ori 2 - 191 00CA 57 mov d,a - 192 00CB 3E 2F X00cb: mvi a,2fh - 193 00CD 32 C9 21 sta X21c9 - 194 00D0 D3 62 out 62h + 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 ; - 198 00D2 01 FF 0F X00d2: lxi b,X0fff - 199 00D5 FB ei - 200 00D6 3E 08 X00d6: mvi a,8 - 201 00D8 A3 ana e - 202 00D9 3E 7F mvi a,7fh - 203 00DB C2 E0 00 jnz X00e0 - 204 00DE 3E FF mvi a,0ffh - 205 00E0 D3 82 X00e0: out 82h - 206 00E2 0B dcx b - 207 00E3 78 mov a,b - 208 00E4 B1 ora c - 209 00E5 C2 D6 00 jnz X00d6 + 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 ; - 213 00E8 D3 82 X00e8: out 82h ; A = 0, so all LEDs off now - 214 00EA 3A 68 20 lda key_flags - 215 00ED B7 ora a - 216 00EE FA F5 00 jm X00f5 - 217 00F1 7A mov a,d - 218 00F2 F6 04 ori 4 - 219 00F4 57 mov d,a - 220 00F5 D5 X00f5: push d + 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: @@ -238,2224 +239,2224 @@ ; ; Note that once we're inside 0FAA, that appears to be where we stay. ; - 241 00F6 CD A2 03 call X03a2 + 242 00F6 CD A2 03 call X03a2 - 243 00F9 D1 pop d - 244 00FA C3 75 08 jmp X0875 + 244 00F9 D1 pop d + 245 00FA C3 75 08 jmp X0875 ; ; Keyboard interrupt handler ; - 248 00FD F5 X00fd: push psw - 249 00FE DB 82 in 82h ;; Read from keyboard port - 250 0100 E5 push h - 251 0101 C5 push b - 252 0102 47 mov b,a ;; copy b <- a - 253 0103 D6 7C sui 7ch ;; subtract 0x7c from a - 254 0105 FA 1A 01 jm X011a ;; jump to 011a if a is a normal key - 255 0108 67 mov h,a ;; otherwise h <- a - 256 0109 24 inr h ;; h++ - 257 010A 3E 10 mvi a,10h ;; a <- 0x10 - 258 010C 0F rrc - 259 010D 07 X010d: rlc - 260 010E 25 dcr h - 261 010F C2 0D 01 jnz X010d - 262 0112 21 68 20 lxi h,key_flags ;; load keys flag addresss - 263 0115 B6 ora m ;; or in control bit - 264 0116 77 mov m,a ;; store again - 265 0117 C3 2D 01 jmp X012d ;; jump to end to interrupt + 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 - 267 011A 21 68 20 X011a: lxi h,key_flags ;; load keys flag address - 268 011D 3E 07 mvi a,7 - 269 011F A6 ana m ;; load key counter - 270 0120 FE 04 cpi 4 ;; if overflow.. (>3 keys) - 271 0122 F2 2D 01 jp X012d ;; discard keypress and end interrupt - 272 0125 34 inr m ;; otherwise increment key counter - 273 0126 21 6A 20 lxi h,key_buffer ;; load key address buffer - 274 0129 CD DE 13 call X13de ;; add key counter to address buffer - 275 012C 70 mov m,b ;; save key to address buffer - 276 012D C1 X012d: pop b - 277 012E E1 pop h - 278 012F F1 pop psw - 279 0130 C9 ret + 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 ;; - 283 0131 E6 7F X0131: ani 7fh - 284 0133 4F mov c,a - 285 0134 3A 7B 20 lda X207b - 286 0137 B7 ora a - 287 0138 C2 FF 01 jnz X01ff - 288 013B 79 X013b: mov a,c - 289 013C FE 01 cpi 1 - 290 013E CA C3 01 jz X01c3 - 291 0141 3A A7 21 lda X21a7 - 292 0144 E6 20 ani 20h - 293 0146 C2 75 01 jnz X0175 - 294 0149 3A 78 21 lda X2178 - 295 014C B7 ora a - 296 014D C2 5F 01 jnz X015f - 297 0150 79 mov a,c - 298 0151 FE 41 cpi 41h - 299 0153 FA 5B 01 jm X015b - 300 0156 3E 1B mvi a,1bh - 301 0158 CD 18 0F call X0f18 - 302 015B 79 X015b: mov a,c - 303 015C C3 0D 08 jmp X080d + 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 - 305 015F 3E 1B X015f: mvi a,1bh - 306 0161 CD 18 0F call X0f18 - 307 0164 79 mov a,c - 308 0165 FE 41 cpi 41h - 309 0167 F2 5B 01 jp X015b - 310 016A 3E 3F mvi a,3fh - 311 016C CD 18 0F X016c: call X0f18 - 312 016F 79 mov a,c - 313 0170 C6 40 adi 40h - 314 0172 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 - 316 0175 3A 78 21 X0175: lda X2178 - 317 0178 B7 ora a - 318 0179 C2 9E 01 jnz X019e - 319 017C 79 mov a,c - 320 017D FE 41 cpi 41h - 321 017F FA 5B 01 jm X015b - 322 0182 FE 50 cpi 50h - 323 0184 FA 9E 01 jm X019e - 324 0187 3E 1B X0187: mvi a,1bh - 325 0189 CD 18 0F call X0f18 - 326 018C 3E 4F mvi a,4fh - 327 018E CD 18 0F X018e: call X0f18 - 328 0191 C3 5B 01 jmp X015b + 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 - 330 0194 3E 1B X0194: mvi a,1bh - 331 0196 CD 18 0F call X0f18 - 332 0199 3E 5B mvi a,5bh - 333 019B C3 8E 01 jmp X018e + 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 - 335 019E 3A BC 21 X019e: lda X21bc - 336 01A1 B7 ora a - 337 01A2 CA B5 01 jz X01b5 - 338 01A5 79 mov a,c - 339 01A6 FE 41 cpi 41h - 340 01A8 F2 87 01 jp X0187 - 341 01AB 3E 1B X01ab: mvi a,1bh - 342 01AD CD 18 0F call X0f18 - 343 01B0 3E 4F mvi a,4fh - 344 01B2 C3 6C 01 jmp X016c + 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 - 346 01B5 79 X01b5: mov a,c - 347 01B6 FE 41 cpi 41h - 348 01B8 FA AB 01 jm X01ab - 349 01BB FE 50 cpi 50h - 350 01BD FA 94 01 jm X0194 - 351 01C0 C3 87 01 jmp X0187 + 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 - 353 01C3 21 15 08 X01c3: lxi h,X0815 - 354 01C6 E5 push h - 355 01C7 3A A5 21 lda X21a5 - 356 01CA B7 ora a - 357 01CB C0 rnz - 358 01CC CD 53 08 call X0853 - 359 01CF 01 0E 02 lxi b,X020e - 360 01D2 21 68 20 lxi h,key_flags - 361 01D5 7E mov a,m - 362 01D6 E6 10 ani 10h - 363 01D8 C2 00 09 jnz X0900 - 364 01DB 7E mov a,m - 365 01DC E6 20 ani 20h - 366 01DE CA E4 01 jz X01e4 - 367 01E1 01 D2 00 lxi b,X00d2 - 368 01E4 3E 25 X01e4: mvi a,25h - 369 01E6 F6 08 ori 8 - 370 01E8 B0 ora b - 371 01E9 D3 01 out 1 - 372 01EB 3A 7F 20 lda X207f - 373 01EE 81 add c - 374 01EF 4F mov c,a - 375 01F0 C5 X01f0: push b - 376 01F1 CD 93 14 call X1493 - 377 01F4 C1 pop b - 378 01F5 3A 7F 20 lda X207f - 379 01F8 B9 cmp c - 380 01F9 C2 F0 01 jnz X01f0 - 381 01FC C3 94 03 jmp X0394 + 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 - 383 01FF 21 12 08 X01ff: lxi h,X0812 - 384 0202 E5 push h - 385 0203 AF xra a - 386 0204 32 30 21 sta X2130 - 387 0207 32 B8 21 sta X21b8 - 388 020A 21 A3 21 lxi h,X21a3 - 389 020D 79 mov a,c - 390 020E D6 41 X020e: sui 41h - 391 0210 47 mov b,a - 392 0211 7E X0211: mov a,m - 393 0212 CA 22 02 jz X0222 - 394 0215 05 dcr b - 395 0216 CA 26 02 jz X0226 - 396 0219 05 dcr b - 397 021A CA 15 18 jz X1815 - 398 021D 05 dcr b - 399 021E CA 1E 18 jz X181e - 400 0221 C9 ret + 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 - 402 0222 3D X0222: dcr a - 403 0223 F8 rm - 404 0224 77 mov m,a - 405 0225 C9 ret + 403 0222 3D X0222: dcr a + 404 0223 F8 rm + 405 0224 77 mov m,a + 406 0225 C9 ret - 407 0226 3C X0226: inr a - 408 0227 FE 20 cpi 20h - 409 0229 C8 rz - 410 022A 77 mov m,a - 411 022B 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 - 413 022C 3A A7 21 X022c: lda X21a7 - 414 022F 2F cma - 415 0230 E6 10 ani 10h - 416 0232 21 A5 21 lxi h,X21a5 - 417 0235 B6 ora m - 418 0236 C2 41 08 jnz X0841 - 419 0239 3A BF 21 lda X21bf - 420 023C 01 11 02 lxi b,X0211 - 421 023F A0 ana b - 422 0240 C2 45 02 jnz X0245 - 423 0243 0E 13 mvi c,13h - 424 0245 79 X0245: mov a,c - 425 0246 D6 11 sui 11h - 426 0248 32 C4 21 sta X21c4 - 427 024B CD 7E 0F call X0f7e - 428 024E C3 12 08 jmp X0812 + 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 - 430 0251 F3 X0251: di - 431 0252 31 4E 20 lxi sp,stack_top ; SP = 0x204e - 432 0255 21 00 20 lxi h,2000h - 433 0258 E5 push h - 434 0259 7E mov a,m - 435 025A 1F rar - 436 025B DA 65 02 jc X0265 - 437 025E DB 42 in 42h - 438 0260 E6 02 ani 2 - 439 0262 CA 69 02 jz X0269 - 440 0265 3C X0265: inr a - 441 0266 32 C8 21 sta X21c8 - 442 0269 CD A2 03 X0269: call X03a2 - 443 026C 3A 50 20 lda X2050 - 444 026F 3D dcr a - 445 0270 32 53 21 sta X2153 - 446 0273 E1 pop h - 447 0274 7E mov a,m - 448 0275 36 7F mvi m,7fh - 449 0277 B7 ora a - 450 0278 CA 98 02 jz X0298 - 451 027B F2 85 02 jp X0285 - 452 027E 21 CB 21 lxi h,X21cb - 453 0281 36 0A mvi m,0ah - 454 0283 E6 7F ani 7fh - 455 0285 32 BD 21 X0285: sta X21bd - 456 0288 C6 30 adi 30h - 457 028A 2A F6 20 lhld X20f6 - 458 028D 77 mov m,a - 459 028E FE 34 cpi 34h - 460 0290 CA 98 02 jz X0298 - 461 0293 3E 20 mvi a,20h - 462 0295 32 A5 21 sta X21a5 - 463 0298 CD F2 0B X0298: call X0bf2 - 464 029B 01 11 00 lxi b,X0011 - 465 029E CD 7E 0F call X0f7e - 466 02A1 C3 AE 03 jmp X03ae + 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 ;; - 470 02A4 21 4E 20 X02a4: lxi h,scratch_start ;; HL = 0x204e (just above stack) - 471 02A7 11 B2 0F lxi d,0fb2h ;; DE = 0x0fb2 (every byte from 0x204e up to 0x3000) - 472 02AA 06 00 mvi b,0 ;; B = 0 - 473 02AC CD 83 10 call memset ;; memset(0x1083): set 0x0fb2 bytes to 0 starting at 0x204e - 474 02AF 2F cma ;; invert A - 475 02B0 32 04 21 sta X2104 ;; store A in 0x2104 - 476 02B3 21 04 20 lxi h,X2004 ;; HL <- 0x2004 - 477 02B6 22 52 20 shld X2052 ;; *(0x2052) = 0x2004 - 478 02B9 21 D0 22 lxi h,X22d0 ;; HL <- 0x22d0 - 479 02BC 22 F6 20 shld X20f6 ;; *(20f6) = 0x22d0 - 480 02BF C9 ret + 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 ;; - 484 02C0 CD 15 0A X02c0: call X0a15 ;; 0x2140 = 0xe605 - 485 02C3 21 00 20 lxi h,2000h ;; HL = 0x2000 - 486 02C6 11 D9 02 lxi d,X02d9 ;; DE = 0x02d9 - 487 02C9 06 12 mvi b,12h ;; B = 18 - 488 02CB CD 8B 03 call memmove ;; copy 18 bytes from 0x02d9 to 0x2000 - 489 02CE 21 00 30 lxi h,X3000 ;; HL = 0x3000 - 490 02D1 11 00 10 lxi d,X1000 ;; DE = 0x1000 - 491 02D4 06 FF mvi b,0ffh ;; B = 0xFF - 492 02D6 C3 83 10 jmp memset ;; invoke memset(0x1083) to set all of attribute RAM to 0xFF and return + 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: - 498 02D9 db 07fh,070h,003h + 499 02D9 db 07fh,070h,003h 7F 70 03 - 499 02DC db 07fh,0f2h,0d0h + 500 02DC db 07fh,0f2h,0d0h 7F F2 D0 - 500 02DF db 07fh,070h,006h + 501 02DF db 07fh,070h,006h 7F 70 06 - 501 02E2 db 07fh,070h,00ch + 502 02E2 db 07fh,070h,00ch 7F 70 0C - 502 02E5 db 07fh,070h,00fh + 503 02E5 db 07fh,070h,00fh 7F 70 0F - 503 02E8 db 07fh,070h,003h + 504 02E8 db 07fh,070h,003h 7F 70 03 ;; ;; Initialize several scratch values. We don't know what all of these are for yet. ;; - 507 02EB 21 12 02 X02eb: lxi h,212h ;; HL = 0x0212 (530.) - 508 02EE 22 2D 21 shld cursor_countdn ;; Store 0x0212 at cursor_countdn [0x212d] - 509 02F1 3E 35 mvi a,35h ;; A = 0x35 - 510 02F3 32 2C 21 sta X212c ;; 0x212c = 0x35 - 511 02F6 3E 01 mvi a,1 ;; A = 1 - 512 02F8 32 5B 20 sta X205b ;; 0x205b = 1 - 513 02FB 32 76 21 sta X2176 ;; 0x2176 = 1 - 514 02FE 21 FF 07 lxi h,X07ff ;; HL = 0x07ff - 515 0301 22 49 21 shld X2149 ;; store 0xff07 at 0x2149 - 516 0304 3E 02 mvi a,2 ;; A = 2 - 517 0306 32 73 20 sta X2073 ;; 0x2073 = 2 - 518 0309 3E F7 mvi a,0f7h ;; A = 0xf7 - 519 030B 32 FA 20 sta X20fa ;; 0x20fa = 0xf7 - 520 030E DB 42 in 42h ;; read flags buffer - 521 0310 E6 04 ani 4 ;; And it with 0x04 (check graphics flag) - 522 0312 3E 01 mvi a,1 ;; A=1 - 523 0314 C2 1A 03 jnz X031a ;; if no graphics skip - 524 0317 32 79 20 sta X2079 ;; else store 1 in 0x2079 - 525 031A 3E FF X031a: mvi a,0ffh ;; A = 0xff - 526 031C 32 0E 21 sta X210e ;; 0x210e = 0xff - 527 031F 32 BA 21 sta cursor_visible ;; set cursor_visible [0x21ba] to 0xff (initially visible) - 528 0322 26 80 mvi h,80h ;; H = 0x80 - 529 0324 6C mov l,h ;; L = 0x80 - 530 0325 22 C0 20 shld X20c0 ;; Store 0x8080 at 0x20c0 - 531 0328 C9 ret + 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 - 533 0329 3E 40 X0329: mvi a,40h - 534 032B D3 01 out 1 - 535 032D 3A 58 21 lda X2158 - 536 0330 D3 02 out 2 - 537 0332 3A A4 21 lda X21a4 - 538 0335 D3 01 out 1 - 539 0337 CD 94 03 call X0394 - 540 033A 3E 10 mvi a,10h - 541 033C 32 C9 21 sta X21c9 - 542 033F D3 62 out 62h - 543 0341 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 - 545 0342 3A A2 21 X0342: lda X21a2 - 546 0345 B7 ora a - 547 0346 CA 4B 03 jz X034b - 548 0349 3E 10 mvi a,10h - 549 034B 47 X034b: mov b,a - 550 034C D3 C2 out 0c2h - 551 034E 3A 7C 20 lda X207c - 552 0351 D3 C2 out 0c2h - 553 0353 FE 20 cpi 20h - 554 0355 21 70 09 lxi h,X0970 - 555 0358 C2 5E 03 jnz X035e - 556 035B 21 70 03 lxi h,X0370 - 557 035E 22 01 20 X035e: shld X2001 - 558 0361 3A A8 21 lda X21a8 - 559 0364 E6 10 ani 10h - 560 0366 C8 rz - 561 0367 78 mov a,b - 562 0368 D3 C2 out 0c2h - 563 036A 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 - 565 036B 3A A6 21 X036b: lda X21a6 - 566 036E E6 20 ani 20h - 567 0370 C2 75 03 X0370: jnz X0375 - 568 0373 3E 01 mvi a,1 - 569 0375 F6 0A X0375: ori 0ah - 570 0377 D3 A2 out 0a2h - 571 0379 3A 5B 21 lda X215b - 572 037C F6 0C ori 0ch - 573 037E D3 A2 out 0a2h - 574 0380 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 - 576 0381 3A A2 21 X0381: lda X21a2 - 577 0384 B7 ora a - 578 0385 CA 63 0B jz X0b63 - 579 0388 C3 77 0B jmp X0b77 + 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: - 584 038B 1A ldax d ;; Load memory at DE into accumulator - 585 038C 77 mov m,a ;; Store it at HL - 586 038D 23 inx h ;; HL++ - 587 038E 13 inx d ;; DE++ - 588 038F 05 dcr b ;; B-- - 589 0390 C2 8B 03 jnz memmove ;; until B is zero - 590 0393 C9 ret + 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 - 592 0394 3A A5 21 X0394: lda X21a5 - 593 0397 B7 ora a - 594 0398 3E 01 mvi a,1 - 595 039A C2 9F 03 jnz X039f - 596 039D 3E 05 mvi a,5 - 597 039F C3 7B 1F X039f: jmp X1f7b + 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 - 599 03A2 CD 81 03 X03a2: call X0381 - 600 03A5 CD DB 1D call X1ddb - 601 03A8 CD 6B 03 call X036b - 602 03AB C3 42 03 jmp X0342 + 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 - 604 03AE CD 88 14 X03ae: call X1488 - 605 03B1 CD 87 05 call X0587 - 606 03B4 21 77 21 lxi h,X2177 - 607 03B7 7E mov a,m - 608 03B8 B7 ora a - 609 03B9 36 00 mvi m,0 - 610 03BB C4 20 1A cnz X1a20 - 611 03BE 3A A5 21 lda X21a5 - 612 03C1 B7 ora a - 613 03C2 CA AE 03 jz X03ae - 614 03C5 AF xra a - 615 03C6 32 44 21 sta X2144 - 616 03C9 C3 AE 03 jmp X03ae + 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 ;; - 620 03CC F5 X03cc: push psw - 621 03CD C5 push b - 622 03CE E5 push h - 623 03CF DB 00 in 0 ;; Read from PUSART data - 624 03D1 E6 7F ani 7fh - 625 03D3 CA 3A 04 jz X043a - 626 03D6 4F mov c,a - 627 03D7 3A A5 21 lda X21a5 - 628 03DA B7 ora a - 629 03DB C2 3A 04 jnz X043a - 630 03DE DB 01 in 1 ;; Read from PUSART ctrl - 631 03E0 E6 38 ani 38h - 632 03E2 CA ED 03 jz X03ed - 633 03E5 0E 1A mvi c,1ah - 634 03E7 3E 27 mvi a,27h - 635 03E9 F6 10 ori 10h - 636 03EB D3 01 out 1 - 637 03ED 79 X03ed: mov a,c - 638 03EE FE 7F cpi 7fh - 639 03F0 CA 37 04 jz X0437 - 640 03F3 3A A7 21 lda X21a7 - 641 03F6 E6 10 ani 10h - 642 03F8 79 mov a,c - 643 03F9 CA 09 04 jz X0409 - 644 03FC 21 C2 21 lxi h,X21c2 - 645 03FF FE 11 cpi 11h - 646 0401 CA 3E 04 jz X043e - 647 0404 FE 13 cpi 13h - 648 0406 CA 44 04 jz X0444 - 649 0409 21 C0 20 X0409: lxi h,X20c0 - 650 040C 4E mov c,m - 651 040D 44 mov b,h - 652 040E 02 stax b - 653 040F 79 mov a,c - 654 0410 3C inr a - 655 0411 E6 BF ani 0bfh - 656 0413 77 mov m,a - 657 0414 47 mov b,a - 658 0415 3A C1 20 lda X20c1 - 659 0418 90 sub b - 660 0419 C2 27 04 jnz X0427 - 661 041C 71 mov m,c - 662 041D 78 mov a,b - 663 041E 3C inr a - 664 041F E6 BF ani 0bfh - 665 0421 6F mov l,a - 666 0422 36 1A mvi m,1ah - 667 0424 C3 31 04 jmp X0431 + 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 - 669 0427 F2 2C 04 X0427: jp X042c - 670 042A C6 40 adi 40h - 671 042C FE 20 X042c: cpi 20h - 672 042E C2 37 04 jnz X0437 - 673 0431 01 13 01 X0431: lxi b,X0113 - 674 0434 CD 7E 0F call X0f7e - 675 0437 CD 47 0E X0437: call X0e47 - 676 043A E1 X043a: pop h - 677 043B C1 pop b - 678 043C F1 pop psw - 679 043D C9 ret + 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 ;; - 683 043E 3E FE X043e: mvi a,0feh - 684 0440 A6 ana m - 685 0441 C3 47 04 jmp X0447 + 684 043E 3E FE X043e: mvi a,0feh + 685 0440 A6 ana m + 686 0441 C3 47 04 jmp X0447 - 687 0444 3E 01 X0444: mvi a,1 - 688 0446 B6 ora m - 689 0447 77 X0447: mov m,a - 690 0448 C3 37 04 jmp X0437 + 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 - 692 044B X044b: db 30h + 693 044B X044b: db 30h 30 - 693 044C 29 dad h - 694 044D 31 21 32 lxi sp,X3221 - 695 0450 40 mov b,b - 696 0451 33 inx sp - 697 0452 23 inx h - 698 0453 34 inr m - 699 0454 24 inr h - 700 0455 35 dcr m - 701 0456 25 dcr h - 702 0457 36 5E mvi m,5eh - 703 0459 37 stc - 704 045A 26 38 mvi h,38h - 705 045C 2A 39 28 lhld X2839 - 706 045F 2D dcr l - 707 0460 5F mov e,a - 708 0461 3D dcr a - 709 0462 2B dcx h - 710 0463 60 mov h,b - 711 0464 7E mov a,m - 712 0465 5B mov e,e - 713 0466 7B mov a,e - 714 0467 5D mov e,l - 715 0468 7D mov a,l - 716 0469 3B dcx sp - 717 046A 3A 2F 3F lda X3f2f - 718 046D 27 daa - 719 046E 22 2C 3C shld X3c2c - 720 0471 2E 3E mvi l,3eh - 721 0473 5C mov e,h - 722 0474 7C mov a,h - 723 0475 db 20h + 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: - 725 0476 KBTab: db 20h, 7fh, 7fh, 7fh, 00h, 'p', 'o', 'y', 't', 'w', 'q' + 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 - 726 0481 db 0c3h, 00h, 00h, 00h, ']', '[', 'i', 'u', 'r', 'e', '1' + 727 0481 db 0c3h, 00h, 00h, 00h, ']', '[', 'i', 'u', 'r', 'e', '1' C3 00 00 00 5D 5B 69 75 72 65 31 - 727 048C db 0c4h, 00h, 0c2h, 081h, '`', '-', '9', '7', '4', '3', 1bh + 728 048C db 0c4h, 00h, 0c2h, 081h, '`', '-', '9', '7', '4', '3', 1bh C4 00 C2 81 60 2D 39 37 34 33 1B - 728 0497 db 0c1h, 0d2h, 0d0h, 08h, '=', '0', '8', '6', '5', '2', 09h + 729 0497 db 0c1h, 0d2h, 0d0h, 08h, '=', '0', '8', '6', '5', '2', 09h C1 D2 D0 08 3D 30 38 36 35 32 09 - 729 04A2 db 0b7h, 0d3h, 0d1h, 0b0h, 0ah, '\', 'l', 'k', 'g', 'f', 'a' + 730 04A2 db 0b7h, 0d3h, 0d1h, 0b0h, 0ah, '\', 'l', 'k', 'g', 'f', 'a' B7 D3 D1 B0 0A 5C 6C 6B 67 66 61 - 730 04AD db 0b8h, 8dh, 0b2h, 0b1h, 00h, 27h, 3bh, 'j', 'h', 'd', 's' + 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 - 731 04B8 db 0aeh, 0ach, 0b5h, 0b4h, 0dh, '.', ',', 'n', 'b', 'x', 82h + 732 04B8 db 0aeh, 0ach, 0b5h, 0b4h, 0dh, '.', ',', 'n', 'b', 'x', 82h AE AC B5 B4 0D 2E 2C 6E 62 78 82 - 732 04C3 db 0b9h, 0b3h, 0b6h, 0adh, 00h, '/', 'm', ' ', 'v', 'c', 'z' + 733 04C3 db 0b9h, 0b3h, 0b6h, 0adh, 00h, '/', 'm', ' ', 'v', 'c', 'z' B9 B3 B6 AD 00 2F 6D 20 76 63 7A - 733 04CE FF rst 7 + 734 04CE FF rst 7 ;; ;; Vertical interrupt handler ;; - 737 04CF F5 X04cf: push psw - 738 04D0 E5 push h - 739 04D1 D5 push d - 740 04D2 CD 4E 10 call X104e - 741 04D5 C5 push b - 742 04D6 3E 09 mvi a,9 - 743 04D8 D3 A2 out 0a2h - 744 04DA FB ei - 745 04DB 3A 65 20 lda X2065 - 746 04DE B7 ora a - 747 04DF C2 0B 05 jnz X050b - 748 04E2 21 51 20 lxi h,X2051 - 749 04E5 B6 ora m - 750 04E6 CA 3E 05 jz X053e - 751 04E9 3E 01 mvi a,1 - 752 04EB 32 65 20 sta X2065 - 753 04EE B6 ora m - 754 04EF 36 00 mvi m,0 - 755 04F1 3E 01 mvi a,1 - 756 04F3 32 5B 20 sta X205b - 757 04F6 3A 56 21 lda X2156 - 758 04F9 F2 05 05 jp X0505 - 759 04FC 3E 99 mvi a,99h - 760 04FE 32 5B 20 sta X205b - 761 0501 3A 55 21 lda X2155 - 762 0504 3D dcr a - 763 0505 CD 2F 12 X0505: call X122f - 764 0508 32 7A 20 sta X207a - 765 050B 01 5B 20 X050b: lxi b,X205b - 766 050E 0A ldax b - 767 050F 21 5A 20 lxi h,X205a - 768 0512 86 add m - 769 0513 27 daa - 770 0514 E6 0F ani 0fh - 771 0516 77 mov m,a - 772 0517 57 mov d,a - 773 0518 E6 03 ani 3 - 774 051A D3 A2 out 0a2h - 775 051C 7A mov a,d - 776 051D 1F rar - 777 051E A7 ana a - 778 051F 1F rar - 779 0520 F6 04 ori 4 - 780 0522 D3 A2 out 0a2h - 781 0524 7A mov a,d - 782 0525 B7 ora a - 783 0526 C2 3E 05 jnz X053e - 784 0529 32 65 20 sta X2065 - 785 052C 0A ldax b - 786 052D B7 ora a - 787 052E 3A 56 21 lda X2156 - 788 0531 FA 38 05 jm X0538 - 789 0534 3A 55 21 lda X2155 - 790 0537 3D dcr a - 791 0538 CD CE 11 X0538: call X11ce - 792 053B 32 7A 20 sta X207a - 793 053E 21 78 20 X053e: lxi h,X2078 - 794 0541 7E mov a,m - 795 0542 B7 ora a - 796 0543 CA 4F 05 jz X054f - 797 0546 35 dcr m - 798 0547 E6 04 ani 4 - 799 0549 0F rrc - 800 054A 0F rrc - 801 054B 0F rrc - 802 054C 32 46 21 sta X2146 - 803 054F 21 2C 21 X054f: lxi h,X212c - 804 0552 7E mov a,m - 805 0553 3D dcr a - 806 0554 C2 69 05 jnz X0569 - 807 0557 36 35 mvi m,35h - 808 0559 3E 08 mvi a,8 - 809 055B D3 A2 out 0a2h - 810 055D 21 CB 21 lxi h,X21cb - 811 0560 7E mov a,m - 812 0561 B7 ora a - 813 0562 CA 6A 05 jz X056a - 814 0565 D3 A2 out 0a2h - 815 0567 EE 01 xri 1 - 816 0569 77 X0569: mov m,a - 817 056A 3E 40 X056a: mvi a,40h - 818 056C 32 48 21 sta X2148 - 819 056F 21 7F 20 lxi h,X207f - 820 0572 34 inr m - 821 0573 3A A3 21 lda X21a3 - 822 0576 D3 42 out 42h - 823 0578 3A 58 21 lda X2158 - 824 057B D3 02 out 2 - 825 057D 3A C9 21 lda X21c9 - 826 0580 D3 62 out 62h - 827 0582 C1 pop b - 828 0583 D1 pop d - 829 0584 E1 pop h - 830 0585 F1 pop psw - 831 0586 C9 ret + 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 - 833 0587 3A A5 21 X0587: lda X21a5 - 834 058A 21 7B 20 lxi h,X207b - 835 058D B6 ora m - 836 058E C0 rnz - 837 058F CD 75 06 call X0675 - 838 0592 C8 rz - 839 0593 47 X0593: mov b,a - 840 0594 3A 7B 20 lda X207b - 841 0597 B7 ora a - 842 0598 78 mov a,b - 843 0599 C2 A9 05 jnz X05a9 - 844 059C 3A 79 20 lda X2079 - 845 059F 07 rlc - 846 05A0 78 mov a,b - 847 05A1 DA A9 05 jc X05a9 - 848 05A4 FE 20 cpi 20h - 849 05A6 DA B2 08 jc X08b2 - 850 05A9 2A 40 21 X05a9: lhld X2140 - 851 05AC E9 pchl + 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 - 853 05AD FE 1B X05ad: cpi 1bh - 854 05AF C2 CC 05 jnz X05cc - 855 05B2 21 B8 05 lxi h,X05b8 - 856 05B5 C3 18 0A jmp X0a18 + 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 - 858 05B8 FE 32 X05b8: cpi 32h - 859 05BA C2 C5 05 jnz X05c5 - 860 05BD 3E 01 mvi a,1 - 861 05BF 32 79 20 sta X2079 - 862 05C2 C3 15 0A jmp X0a15 + 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 - 864 05C5 47 X05c5: mov b,a - 865 05C6 3E 1B mvi a,1bh - 866 05C8 CD D2 05 call X05d2 - 867 05CB 78 mov a,b - 868 05CC CD D2 05 X05cc: call X05d2 - 869 05CF C3 62 0C jmp X0c62 + 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 - 871 05D2 4F X05d2: mov c,a - 872 05D3 C5 X05d3: push b - 873 05D4 CD 88 14 call X1488 - 874 05D7 C1 pop b - 875 05D8 DB 42 in 42h - 876 05DA E6 04 ani 4 - 877 05DC C2 D3 05 jnz X05d3 - 878 05DF 79 mov a,c - 879 05E0 D3 E2 out 0e2h - 880 05E2 C9 ret + 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 - 882 05E3 CD 46 0C X05e3: call X0c46 - 883 05E6 F5 X05e6: push psw - 884 05E7 FE 7F cpi 7fh - 885 05E9 CA 73 06 jz X0673 - 886 05EC E5 push h - 887 05ED D5 push d - 888 05EE C5 push b - 889 05EF 4F mov c,a - 890 05F0 21 FC 20 lxi h,X20fc - 891 05F3 56 mov d,m - 892 05F4 23 inx h - 893 05F5 7A mov a,d - 894 05F6 85 add l - 895 05F7 6F mov l,a - 896 05F8 7A mov a,d - 897 05F9 D6 02 sui 2 - 898 05FB F2 FF 05 jp X05ff - 899 05FE 7A mov a,d - 900 05FF 32 FC 20 X05ff: sta X20fc - 901 0602 56 mov d,m - 902 0603 3A FA 20 lda X20fa - 903 0606 B2 ora d - 904 0607 47 mov b,a - 905 0608 7A mov a,d - 906 0609 07 rlc - 907 060A 79 mov a,c - 908 060B D2 16 06 jnc X0616 - 909 060E D6 5F sui 5fh - 910 0610 FE 20 cpi 20h - 911 0612 D2 16 06 jnc X0616 - 912 0615 4F mov c,a - 913 0616 7A X0616: mov a,d - 914 0617 E6 40 ani 40h - 915 0619 79 mov a,c - 916 061A CA 24 06 jz X0624 - 917 061D FE 23 cpi 23h - 918 061F C2 24 06 jnz X0624 - 919 0622 0E 1E mvi c,1eh - 920 0624 3A FB 20 X0624: lda X20fb - 921 0627 B1 ora c - 922 0628 4F mov c,a - 923 0629 3A 42 21 lda X2142 - 924 062C B7 ora a - 925 062D CA 41 06 jz X0641 - 926 0630 21 F8 20 lxi h,X20f8 - 927 0633 3A 53 21 lda X2153 - 928 0636 BE cmp m - 929 0637 C2 41 06 jnz X0641 - 930 063A 36 00 mvi m,0 - 931 063C C5 push b - 932 063D CD 55 09 call X0955 - 933 0640 C1 pop b - 934 0641 2A F6 20 X0641: lhld X20f6 - 935 0644 71 mov m,c - 936 0645 7C mov a,h - 937 0646 C6 10 adi 10h - 938 0648 67 mov h,a - 939 0649 70 mov m,b - 940 064A 78 mov a,b - 941 064B 32 F5 20 sta X20f5 - 942 064E 21 F4 20 lxi h,X20f4 - 943 0651 71 mov m,c - 944 0652 21 F8 20 lxi h,X20f8 - 945 0655 3A 53 21 lda X2153 - 946 0658 BE cmp m - 947 0659 C2 68 06 jnz X0668 - 948 065C 79 mov a,c - 949 065D 32 F4 20 sta X20f4 - 950 0660 3A A8 21 lda X21a8 - 951 0663 E6 40 ani 40h - 952 0665 C3 6D 06 jmp X066d + 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 - 954 0668 34 X0668: inr m - 955 0669 CD 36 16 call X1636 - 956 066C AF xra a - 957 066D 32 42 21 X066d: sta X2142 - 958 0670 C1 X0670: pop b - 959 0671 D1 pop d - 960 0672 E1 pop h - 961 0673 F1 X0673: pop psw - 962 0674 C9 ret + 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 - 964 0675 3A C4 21 X0675: lda X21c4 - 965 0678 B7 ora a - 966 0679 C2 85 06 jnz X0685 - 967 067C 21 C0 20 lxi h,X20c0 - 968 067F 7E mov a,m - 969 0680 23 inx h - 970 0681 96 sub m - 971 0682 C2 87 06 jnz X0687 - 972 0685 AF X0685: xra a - 973 0686 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 - 975 0687 6E X0687: mov l,m - 976 0688 26 20 mvi h,20h - 977 068A 56 mov d,m - 978 068B 21 C1 20 lxi h,X20c1 - 979 068E 7E mov a,m - 980 068F 3C inr a - 981 0690 E6 BF ani 0bfh - 982 0692 F6 80 ori 80h - 983 0694 77 mov m,a - 984 0695 2B dcx h - 985 0696 96 sub m - 986 0697 F2 9C 06 jp X069c - 987 069A C6 40 adi 40h - 988 069C FE 30 X069c: cpi 30h - 989 069E C2 A7 06 jnz X06a7 - 990 06A1 01 11 01 lxi b,X0111 - 991 06A4 CD 7E 0F call X0f7e - 992 06A7 7A X06a7: mov a,d - 993 06A8 B7 ora a - 994 06A9 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 - 996 06AA 3A 68 20 X06aa: lda key_flags ; A <- [Keys flag buffer] - 997 06AD 5F mov e,a - 998 06AE E6 80 ani 80h ; bit 7 set? - 999 06B0 C8 rz ; return if not - 1000 06B1 21 41 08 lxi h,X0841 - 1001 06B4 E5 push h - 1002 06B5 7B mov a,e - 1003 06B6 E6 07 ani 7 - 1004 06B8 FE 04 cpi 4 - 1005 06BA FA C2 06 jm X06c2 - 1006 06BD AF xra a - 1007 06BE 32 67 20 sta X2067 - 1008 06C1 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 - 1010 06C2 57 X06c2: mov d,a - 1011 06C3 0E 00 mvi c,0 - 1012 06C5 06 04 mvi b,4 - 1013 06C7 21 6E 20 lxi h,X206e - 1014 06CA 7E X06ca: mov a,m - 1015 06CB B7 ora a - 1016 06CC CA E8 06 jz X06e8 - 1017 06CF E5 push h - 1018 06D0 C5 push b - 1019 06D1 06 03 mvi b,3 - 1020 06D3 21 6A 20 lxi h,key_buffer - 1021 06D6 BE X06d6: cmp m - 1022 06D7 CA DF 06 jz X06df - 1023 06DA 23 inx h - 1024 06DB 05 dcr b - 1025 06DC F2 D6 06 jp X06d6 - 1026 06DF C1 X06df: pop b - 1027 06E0 E1 pop h - 1028 06E1 CA E7 06 jz X06e7 - 1029 06E4 36 00 mvi m,0 - 1030 06E6 0D dcr c - 1031 06E7 0C X06e7: inr c - 1032 06E8 23 X06e8: inx h - 1033 06E9 05 dcr b - 1034 06EA C2 CA 06 jnz X06ca - 1035 06ED 7B mov a,e - 1036 06EE E6 08 ani 8 - 1037 06F0 C0 rnz - 1038 06F1 B2 ora d - 1039 06F2 C2 FB 06 jnz X06fb - 1040 06F5 3E E1 mvi a,0e1h - 1041 06F7 32 72 20 sta X2072 - 1042 06FA 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 - 1044 06FB 21 47 07 X06fb: lxi h,X0747 - 1045 06FE E5 push h - 1046 06FF 3A 72 20 lda X2072 - 1047 0702 3C inr a - 1048 0703 CA 09 07 jz X0709 - 1049 0706 32 72 20 sta X2072 - 1050 0709 3A A6 21 X0709: lda X21a6 - 1051 070C E6 40 ani 40h - 1052 070E C8 rz - 1053 070F 7B mov a,e - 1054 0710 E6 10 ani 10h - 1055 0712 C0 rnz - 1056 0713 3A 50 21 lda X2150 - 1057 0716 21 5F 08 lxi h,X085f - 1058 0719 06 05 mvi b,5 - 1059 071B BE X071b: cmp m - 1060 071C C8 rz - 1061 071D 23 inx h - 1062 071E 05 dcr b - 1063 071F C2 1B 07 jnz X071b - 1064 0722 21 73 20 lxi h,X2073 - 1065 0725 35 dcr m - 1066 0726 C0 rnz - 1067 0727 36 02 mvi m,2 - 1068 0729 3A 72 20 lda X2072 - 1069 072C FE FF cpi 0ffh - 1070 072E C0 rnz - 1071 072F 79 mov a,c - 1072 0730 FE 01 cpi 1 - 1073 0732 C0 rnz - 1074 0733 06 04 mvi b,4 - 1075 0735 21 6E 20 lxi h,X206e - 1076 0738 7E X0738: mov a,m - 1077 0739 B7 ora a - 1078 073A C2 43 07 jnz X0743 - 1079 073D 23 inx h - 1080 073E 05 dcr b - 1081 073F C2 38 07 jnz X0738 - 1082 0742 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 - 1084 0743 E1 X0743: pop h - 1085 0744 C3 76 07 jmp X0776 + 1085 0743 E1 X0743: pop h + 1086 0744 C3 76 07 jmp X0776 - 1087 0747 79 X0747: mov a,c - 1088 0748 FE 04 cpi 4 - 1089 074A F0 rp - 1090 074B 01 6A 20 lxi b,key_buffer - 1091 074E 21 6E 20 X074e: lxi h,X206e - 1092 0751 7E X0751: mov a,m - 1093 0752 B7 ora a - 1094 0753 CA 5B 07 jz X075b - 1095 0756 0A ldax b - 1096 0757 BE cmp m - 1097 0758 CA 66 07 jz X0766 - 1098 075B 23 X075b: inx h - 1099 075C 7D mov a,l - 1100 075D FE 72 cpi 72h - 1101 075F C2 51 07 jnz X0751 - 1102 0762 0A ldax b - 1103 0763 C3 6C 07 jmp X076c + 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 - 1105 0766 03 X0766: inx b - 1106 0767 15 dcr d - 1107 0768 C2 4E 07 jnz X074e - 1108 076B C9 ret + 1106 0766 03 X0766: inx b + 1107 0767 15 dcr d + 1108 0768 C2 4E 07 jnz X074e + 1109 076B C9 ret - 1110 076C 47 X076c: mov b,a - 1111 076D 3A 67 20 lda X2067 - 1112 0770 B8 cmp b - 1113 0771 78 mov a,b - 1114 0772 32 67 20 sta X2067 - 1115 0775 C0 rnz - 1116 0776 E1 X0776: pop h - 1117 0777 32 50 21 sta X2150 - 1118 077A FE 7B cpi 7bh - 1119 077C CA 1A 1A jz X1a1a - 1120 077F FE 6A cpi 6ah - 1121 0781 CA 2C 02 jz X022c - 1122 0784 43 mov b,e - 1123 0785 5F mov e,a - 1124 0786 3A 44 21 lda X2144 - 1125 0789 B7 ora a - 1126 078A C2 41 08 jnz X0841 - 1127 078D 7B mov a,e - 1128 078E E6 F0 ani 0f0h - 1129 0790 0F rrc - 1130 0791 0F rrc - 1131 0792 57 mov d,a - 1132 0793 0F rrc - 1133 0794 0F rrc - 1134 0795 82 add d - 1135 0796 57 mov d,a - 1136 0797 7B mov a,e - 1137 0798 92 sub d - 1138 0799 21 76 04 lxi h,X0476 - 1139 079C 5F mov e,a - 1140 079D 16 00 mvi d,0 - 1141 079F 19 dad d - 1142 07A0 4E mov c,m - 1143 07A1 79 mov a,c - 1144 07A2 B7 ora a - 1145 07A3 FA 31 01 jm X0131 - 1146 07A6 FE 20 cpi 20h - 1147 07A8 DA FF 07 jc X07ff - 1148 07AB 78 mov a,b - 1149 07AC E6 70 ani 70h - 1150 07AE CA FF 07 jz X07ff - 1151 07B1 79 mov a,c - 1152 07B2 FE 7B cpi 7bh - 1153 07B4 D2 C2 07 jnc X07c2 - 1154 07B7 FE 61 cpi 61h - 1155 07B9 DA C2 07 jc X07c2 - 1156 07BC E6 DF ani 0dfh - 1157 07BE 4F mov c,a - 1158 07BF C3 D7 07 jmp X07d7 + 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 - 1160 07C2 78 X07c2: mov a,b - 1161 07C3 E6 30 ani 30h - 1162 07C5 CA D7 07 jz X07d7 - 1163 07C8 21 4B 04 lxi h,X044b - 1164 07CB 7E X07cb: mov a,m - 1165 07CC B9 cmp c - 1166 07CD CA D5 07 jz X07d5 - 1167 07D0 23 inx h - 1168 07D1 23 inx h - 1169 07D2 C3 CB 07 jmp X07cb + 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 - 1171 07D5 23 X07d5: inx h - 1172 07D6 4E mov c,m - 1173 07D7 78 X07d7: mov a,b - 1174 07D8 E6 10 ani 10h - 1175 07DA CA FF 07 jz X07ff - 1176 07DD 79 mov a,c - 1177 07DE FE 41 cpi 41h - 1178 07E0 DA E8 07 jc X07e8 - 1179 07E3 FE 5B cpi 5bh - 1180 07E5 DA FC 07 jc X07fc - 1181 07E8 FE 3F X07e8: cpi 3fh - 1182 07EA CA FC 07 jz X07fc - 1183 07ED FE 20 cpi 20h - 1184 07EF CA FC 07 jz X07fc - 1185 07F2 FE 7B cpi 7bh - 1186 07F4 DA 41 08 jc X0841 - 1187 07F7 FE 7F cpi 7fh - 1188 07F9 D2 41 08 jnc X0841 - 1189 07FC E6 9F X07fc: ani 9fh - 1190 07FE 4F mov c,a - 1191 07FF B1 X07ff: ora c - 1192 0800 F5 push psw - 1193 0801 3A A7 21 lda X21a7 - 1194 0804 E6 80 ani 80h - 1195 0806 CA 0C 08 jz X080c - 1196 0809 32 54 21 sta X2154 - 1197 080C F1 X080c: pop psw - 1198 080D F6 80 X080d: ori 80h - 1199 080F CD 18 0F call X0f18 - 1200 0812 CD 53 08 X0812: call X0853 - 1201 0815 3A 50 21 X0815: lda X2150 - 1202 0818 16 04 mvi d,4 - 1203 081A 21 6E 20 lxi h,X206e - 1204 081D BE X081d: cmp m - 1205 081E CA 41 08 jz X0841 - 1206 0821 23 inx h - 1207 0822 15 dcr d - 1208 0823 C2 1D 08 jnz X081d - 1209 0826 16 04 mvi d,4 - 1210 0828 21 6E 20 lxi h,X206e - 1211 082B 7E X082b: mov a,m - 1212 082C B7 ora a - 1213 082D CA 38 08 jz X0838 - 1214 0830 23 inx h - 1215 0831 15 dcr d - 1216 0832 C2 2B 08 jnz X082b - 1217 0835 C3 41 08 jmp X0841 + 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 - 1219 0838 3A 50 21 X0838: lda X2150 - 1220 083B 77 mov m,a - 1221 083C 3E E1 mvi a,0e1h - 1222 083E 32 72 20 sta X2072 - 1223 0841 AF X0841: xra a - 1224 0842 21 68 20 lxi h,key_flags - 1225 0845 56 mov d,m - 1226 0846 77 mov m,a - 1227 0847 23 inx h - 1228 0848 72 mov m,d - 1229 0849 23 inx h - 1230 084A 16 04 mvi d,4 - 1231 084C 77 X084c: mov m,a - 1232 084D 23 inx h - 1233 084E 15 dcr d - 1234 084F C2 4C 08 jnz X084c - 1235 0852 C9 ret + 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 - 1237 0853 3A A7 21 X0853: lda X21a7 - 1238 0856 E6 40 ani 40h - 1239 0858 C8 rz - 1240 0859 3E 80 mvi a,80h - 1241 085B 32 47 21 sta X2147 - 1242 085E 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 - 1244 085F 7B X085f: mov a,e - 1245 0860 2A 6A 3A lhld X3a6a - 1246 0863 64 mov h,h - 1247 0864 3A 30 21 lda X2130 - 1248 0867 D6 02 sui 2 - 1249 0869 C0 rnz - 1250 086A 57 mov d,a - 1251 086B 3A 31 21 lda X2131 - 1252 086E 5F mov e,a - 1253 086F 3E 01 X086f: mvi a,1 - 1254 0871 A3 ana e - 1255 0872 C2 3D 00 jnz X003d - 1256 0875 7A X0875: mov a,d - 1257 0876 B7 ora a - 1258 0877 C4 A7 08 cnz X08a7 - 1259 087A D5 push d - 1260 087B CD BE 17 call X17be - 1261 087E D1 pop d - 1262 087F 3E 02 mvi a,2 - 1263 0881 A3 ana e - 1264 0882 C4 11 1F cnz X1f11 - 1265 0885 3E 08 mvi a,8 - 1266 0887 DC A7 08 cc X08a7 - 1267 088A 3E 04 mvi a,4 - 1268 088C A3 ana e - 1269 088D C4 62 1F cnz X1f62 - 1270 0890 3E 10 mvi a,10h - 1271 0892 DC A7 08 cc X08a7 - 1272 0895 7A mov a,d - 1273 0896 B7 ora a - 1274 0897 C2 A0 08 jnz X08a0 - 1275 089A 3E 08 mvi a,8 - 1276 089C A3 ana e - 1277 089D C2 6F 08 jnz X086f - 1278 08A0 7A X08a0: mov a,d - 1279 08A1 32 00 20 sta 2000h - 1280 08A4 C3 51 02 jmp X0251 + 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 - 1282 08A7 B2 X08a7: ora d - 1283 08A8 57 mov d,a - 1284 08A9 3E 08 mvi a,8 - 1285 08AB A3 ana e - 1286 08AC C8 rz - 1287 08AD 3E 80 mvi a,80h - 1288 08AF B2 ora d - 1289 08B0 57 mov d,a - 1290 08B1 C9 ret + 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 - 1292 08B2 FE 1B X08b2: cpi 1bh - 1293 08B4 CA 9E 09 jz X099e - 1294 08B7 FE 10 cpi 10h - 1295 08B9 DA D4 08 jc X08d4 - 1296 08BC 5F mov e,a - 1297 08BD D6 18 sui 18h - 1298 08BF E6 FD ani 0fdh - 1299 08C1 C0 rnz - 1300 08C2 7B mov a,e - 1301 08C3 FE 1A cpi 1ah - 1302 08C5 CA CB 08 jz X08cb - 1303 08C8 FE 18 cpi 18h - 1304 08CA C0 rnz - 1305 08CB CD 15 0A X08cb: call X0a15 - 1306 08CE 3E 02 mvi a,2 - 1307 08D0 C3 E6 05 X08d0: jmp X05e6 + 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 - 1309 08D3 C9 ret + 1310 08D3 C9 ret - 1311 08D4 D6 05 X08d4: sui 5 ;; subtract 5 from A and return if negative - 1312 08D6 F8 rm - 1313 08D7 21 E5 08 lxi h,X08e5 ;; load jump table at 8e5 - 1314 08DA 87 add a ;; double a - 1315 08DB 5F mov e,a - 1316 08DC 16 00 mvi d,0 - 1317 08DE 19 dad d ;; hl = X08e5 + 2A - 1318 08DF 5E mov e,m ;; load DE from (HL) little-endian - 1319 08E0 23 inx h - 1320 08E1 56 mov d,m - 1321 08E2 EB xchg - 1322 08E3 AF xra a ;; zero A - 1323 08E4 E9 pchl ;; jump to address + 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 - 1325 08E5 X08e5: dw X0900 + 1326 08E5 X08e5: dw X0900 0009 - 1326 08E7 dw X0997 ;; immediate return + 1327 08E7 dw X0997 ;; immediate return 9709 - 1327 08E9 dw X0938 + 1328 08E9 dw X0938 3809 - 1328 08EB dw X0941 + 1329 08EB dw X0941 4109 - 1329 08ED dw 0df9h ;; MYSTERY ADDRESS: this isn't even in AVO!!! + 1330 08ED dw 0df9h ;; MYSTERY ADDRESS: this isn't even in AVO!!! F90D - 1330 08EF dw X0955 + 1331 08EF dw X0955 5509 - 1331 08F1 dw X0955 + 1332 08F1 dw X0955 5509 - 1332 08F3 dw X0955 + 1333 08F3 dw X0955 5509 - 1333 08F5 dw 094bh + 1334 08F5 dw 094bh 4B09 - 1334 08F7 dw X08fb + 1335 08F7 dw X08fb FB08 - 1335 08F9 dw X08fc + 1336 08F9 dw X08fc FC08 - 1337 08FB 3C X08fb: inr a - 1338 08FC 32 FC 20 X08fc: sta X20fc - 1339 08FF C9 ret + 1338 08FB 3C X08fb: inr a + 1339 08FC 32 FC 20 X08fc: sta X20fc + 1340 08FF C9 ret - 1341 0900 3A A5 21 X0900: lda X21a5 - 1342 0903 B7 ora a - 1343 0904 C0 rnz - 1344 0905 2A 7B 21 lhld X217b - 1345 0908 7C mov a,h - 1346 0909 BD cmp l - 1347 090A C8 rz - 1348 090B 21 72 21 lxi h,X2172 - 1349 090E 3E 10 mvi a,10h - 1350 0910 B6 ora m - 1351 0911 77 mov m,a - 1352 0912 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 - 1354 0913 21 72 21 lxi h,X2172 - 1355 0916 7E mov a,m - 1356 0917 E6 EF ani 0efh - 1357 0919 77 mov m,a - 1358 091A 21 7B 21 lxi h,X217b - 1359 091D 46 mov b,m - 1360 091E 23 inx h - 1361 091F 0E 14 mvi c,14h - 1362 0921 11 5C 21 lxi d,X215c - 1363 0924 7E X0924: mov a,m - 1364 0925 B8 cmp b - 1365 0926 CA 30 09 jz X0930 - 1366 0929 12 stax d - 1367 092A 13 inx d - 1368 092B 23 inx h - 1369 092C 0D dcr c - 1370 092D C2 24 09 jnz X0924 - 1371 0930 1B X0930: dcx d - 1372 0931 1A ldax d - 1373 0932 F6 80 ori 80h - 1374 0934 12 stax d - 1375 0935 C3 F3 0E jmp X0ef3 + 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 - 1377 0938 21 78 20 X0938: lxi h,X2078 - 1378 093B 7E mov a,m - 1379 093C C6 08 adi 8 - 1380 093E D8 rc - 1381 093F 77 mov m,a - 1382 0940 C9 ret + 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 - 1384 0941 21 F8 20 X0941: lxi h,X20f8 - 1385 0944 7E mov a,m - 1386 0945 B7 ora a - 1387 0946 C8 rz - 1388 0947 35 dcr m - 1389 0948 C3 36 16 jmp X1636 + 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 - 1391 094B AF X094b: xra a - 1392 094C 32 F8 20 sta X20f8 - 1393 094F 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 - 1395 0952 CD 4B 09 call X094b - 1396 0955 3A A8 21 X0955: lda X21a8 - 1397 0958 E6 20 ani 20h - 1398 095A C4 4B 09 cnz X094b - 1399 095D 21 F9 20 lxi h,X20f9 - 1400 0960 56 mov d,m - 1401 0961 3A 56 21 lda X2156 - 1402 0964 BA cmp d - 1403 0965 CA 73 09 jz X0973 - 1404 0968 CD BF 11 call X11bf - 1405 096B 78 mov a,b - 1406 096C BA cmp d - 1407 096D C8 rz - 1408 096E 14 inr d - 1409 096F 72 mov m,d - 1410 0970 C3 36 16 X0970: 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 - 1412 0973 3A A6 21 X0973: lda X21a6 - 1413 0976 E6 80 ani 80h - 1414 0978 CA 98 09 jz X0998 - 1415 097B 0E 01 mvi c,1 - 1416 097D CD 8E 10 call X108e - 1417 0980 3E FF mvi a,0ffh - 1418 0982 32 C3 21 sta X21c3 - 1419 0985 34 inr m - 1420 0986 CD E6 0F call X0fe6 - 1421 0989 3A C3 21 X0989: lda X21c3 - 1422 098C B7 ora a - 1423 098D C2 89 09 jnz X0989 - 1424 0990 32 F4 20 sta X20f4 - 1425 0993 3D dcr a - 1426 0994 32 F5 20 sta X20f5 - 1427 0997 C9 X0997: ret + 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 - 1429 0998 CD 1A 10 X0998: call X101a - 1430 099B C3 12 10 jmp X1012 + 1430 0998 CD 1A 10 X0998: call X101a + 1431 099B C3 12 10 jmp X1012 - 1432 099E AF X099e: xra a - 1433 099F 32 7D 20 sta X207d - 1434 09A2 32 B8 21 sta X21b8 - 1435 09A5 21 AB 09 lxi h,X09ab - 1436 09A8 C3 18 0A jmp X0a18 + 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 - 1438 09AB FE 30 X09ab: cpi 30h - 1439 09AD D2 BD 09 jnc X09bd - 1440 09B0 21 7D 20 lxi h,X207d - 1441 09B3 4F mov c,a - 1442 09B4 7E mov a,m - 1443 09B5 B7 ora a - 1444 09B6 CA BB 09 jz X09bb - 1445 09B9 0E FF mvi c,0ffh - 1446 09BB 71 X09bb: mov m,c - 1447 09BC C9 ret + 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 - 1449 09BD 32 7E 20 X09bd: sta X207e - 1450 09C0 21 15 0A lxi h,X0a15 - 1451 09C3 E5 push h - 1452 09C4 3A 7D 20 lda X207d - 1453 09C7 B7 ora a - 1454 09C8 C2 DC 09 jnz X09dc - 1455 09CB 3A A7 21 lda X21a7 - 1456 09CE E6 20 ani 20h - 1457 09D0 21 50 0A lxi h,X0a50 - 1458 09D3 C2 D9 09 jnz X09d9 - 1459 09D6 21 1C 0A lxi h,X0a1c - 1460 09D9 C3 F7 09 X09d9: jmp X09f7 + 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 - 1462 09DC 47 X09dc: mov b,a - 1463 09DD 3A A7 21 lda X21a7 - 1464 09E0 E6 20 ani 20h - 1465 09E2 78 mov a,b - 1466 09E3 C8 rz - 1467 09E4 FE 28 cpi 28h - 1468 09E6 11 FD 20 lxi d,X20fd - 1469 09E9 CA 32 0C jz X0c32 - 1470 09EC FE 29 cpi 29h - 1471 09EE CA 31 0C jz X0c31 - 1472 09F1 FE 23 cpi 23h - 1473 09F3 21 7B 0A lxi h,X0a7b - 1474 09F6 C0 rnz - 1475 09F7 11 B9 21 X09f7: lxi d,X21b9 - 1476 09FA AF xra a - 1477 09FB 12 stax d - 1478 09FC 3A 7E 20 lda X207e - 1479 09FF 4F X09ff: mov c,a - 1480 0A00 AF X0a00: xra a - 1481 0A01 86 add m - 1482 0A02 C8 rz - 1483 0A03 23 inx h - 1484 0A04 B9 cmp c - 1485 0A05 CA 0D 0A jz X0a0d - 1486 0A08 23 inx h - 1487 0A09 23 inx h - 1488 0A0A C3 00 0A jmp X0a00 + 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 - 1490 0A0D 12 X0a0d: stax d - 1491 0A0E 7E mov a,m - 1492 0A0F 23 inx h - 1493 0A10 66 mov h,m - 1494 0A11 6F mov l,a - 1495 0A12 AF xra a - 1496 0A13 E9 pchl + 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 - 1498 0A14 E1 X0a14: pop h - 1499 0A15 21 E6 05 X0a15: lxi h,X05e6 ;; HL = 0x05e6 - 1500 0A18 22 40 21 X0a18: shld X2140 ;; 0x2140 = 0xe605 - 1501 0A1B C9 ret + 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. ;; - 1505 0A1C 41 X0a1c: mov b,c - 1506 0A1D 9B sbb e - 1507 0A1E 0A ldax b - 1508 0A1F 42 mov b,d - 1509 0A20 9B sbb e - 1510 0A21 0A ldax b - 1511 0A22 43 mov b,e - 1512 0A23 9B sbb e - 1513 0A24 0A ldax b - 1514 0A25 44 mov b,h - 1515 0A26 9B sbb e - 1516 0A27 0A ldax b - 1517 0A28 46 mov b,m - 1518 0A29 0A ldax b - 1519 0A2A 0C inr c - 1520 0A2B 47 mov b,a - 1521 0A2C 0F rrc - 1522 0A2D 0C inr c - 1523 0A2E 48 mov c,b - 1524 0A2F 96 sub m - 1525 0A30 0A ldax b - 1526 0A31 49 mov c,c - 1527 0A32 A3 ana e - 1528 0A33 0B dcx b - 1529 0A34 4A mov c,d - 1530 0A35 9B sbb e - 1531 0A36 0A ldax b - 1532 0A37 4B mov c,e - 1533 0A38 9B sbb e - 1534 0A39 0A ldax b - 1535 0A3A 59 mov e,c - 1536 0A3B 11 0B 5A lxi d,X5a0b - 1537 0A3E C6 0C adi 0ch - 1538 0A40 3D dcr a - 1539 0A41 DF rst 3 - 1540 0A42 0B dcx b - 1541 0A43 3E E5 mvi a,0e5h - 1542 0A45 0B dcx b - 1543 0A46 31 57 0C lxi sp,X0c57 - 1544 0A49 3C inr a - 1545 0A4A EB xchg - 1546 0A4B 0B dcx b - 1547 0A4C 5D mov e,l - 1548 0A4D 60 mov h,b - 1549 0A4E 0D dcr c - 1550 0A4F 00 nop - 1551 0A50 63 X0a50: mov h,e - 1552 0A51 00 nop - 1553 0A52 00 nop - 1554 0A53 45 mov b,l - 1555 0A54 52 mov d,d - 1556 0A55 09 dad b - 1557 0A56 4D mov c,l - 1558 0A57 A3 ana e - 1559 0A58 0B dcx b - 1560 0A59 31 57 0C lxi sp,X0c57 - 1561 0A5C 5B mov e,e - 1562 0A5D 8E adc m - 1563 0A5E 0A ldax b - 1564 0A5F 48 mov c,b - 1565 0A60 DF rst 3 - 1566 0A61 0D dcr c - 1567 0A62 44 mov b,h - 1568 0A63 55 mov d,l - 1569 0A64 09 dad b - 1570 0A65 37 stc - 1571 0A66 68 mov l,b - 1572 0A67 0C inr c - 1573 0A68 db 38h + 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 - 1574 0A69 71 mov m,c - 1575 0A6A 0C inr c - 1576 0A6B 3D dcr a - 1577 0A6C DF rst 3 - 1578 0A6D 0B dcx b - 1579 0A6E 3E E5 mvi a,0e5h - 1580 0A70 0B dcx b - 1581 0A71 5A mov e,d - 1582 0A72 C6 0C adi 0ch - 1583 0A74 4E mov c,m - 1584 0A75 46 mov b,m - 1585 0A76 0C inr c - 1586 0A77 4F mov c,a - 1587 0A78 46 mov b,m - 1588 0A79 0C inr c - 1589 0A7A 00 nop - 1590 0A7B 33 X0a7b: inx sp - 1591 0A7C A8 xra b - 1592 0A7D 12 stax d - 1593 0A7E 34 inr m - 1594 0A7F AC xra h - 1595 0A80 12 stax d - 1596 0A81 35 dcr m - 1597 0A82 4A mov c,d - 1598 0A83 13 inx d - 1599 0A84 36 A4 mvi m,0a4h - 1600 0A86 12 stax d - 1601 0A87 37 stc - 1602 0A88 60 mov h,b - 1603 0A89 0D dcr c - 1604 0A8A db 38h + 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 - 1605 0A8B A7 ana a - 1606 0A8C 0D dcr c - 1607 0A8D 00 nop - 1608 0A8E 21 C2 16 lxi h,X16c2 - 1609 0A91 22 40 21 shld X2140 - 1610 0A94 E1 pop h - 1611 0A95 C9 ret + 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 - 1613 0A96 3E 48 mvi a,48h - 1614 0A98 32 7E 20 sta X207e - 1615 0A9B 21 00 00 lxi h,0 - 1616 0A9E 22 30 21 shld X2130 - 1617 0AA1 E1 pop h - 1618 0AA2 21 15 0A X0aa2: lxi h,X0a15 - 1619 0AA5 E5 push h - 1620 0AA6 3A 7D 20 lda X207d - 1621 0AA9 B7 ora a - 1622 0AAA C0 rnz - 1623 0AAB 21 D9 0A lxi h,X0ad9 - 1624 0AAE CD F7 09 call X09f7 - 1625 0AB1 3A B9 21 lda X21b9 - 1626 0AB4 B7 ora a - 1627 0AB5 C0 rnz - 1628 0AB6 21 30 21 lxi h,X2130 - 1629 0AB9 3A 4B 21 lda X214b - 1630 0ABC B7 ora a - 1631 0ABD 5F mov e,a - 1632 0ABE C2 C2 0A jnz X0ac2 - 1633 0AC1 1C inr e - 1634 0AC2 7E X0ac2: mov a,m - 1635 0AC3 E5 push h - 1636 0AC4 D5 push d - 1637 0AC5 21 F5 0A lxi h,X0af5 - 1638 0AC8 47 mov b,a - 1639 0AC9 CD F7 09 call X09f7 - 1640 0ACC D1 pop d - 1641 0ACD E1 pop h - 1642 0ACE 3A B9 21 lda X21b9 - 1643 0AD1 B7 ora a - 1644 0AD2 C8 rz - 1645 0AD3 23 inx h - 1646 0AD4 1D dcr e - 1647 0AD5 C2 C2 0A jnz X0ac2 - 1648 0AD8 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 - 1650 0AD9 44 X0ad9: mov b,h - 1651 0ADA 1E 18 mvi e,18h - 1652 0ADC 42 mov b,d - 1653 0ADD 07 rlc - 1654 0ADE db 18h + 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 - 1655 0ADF 43 mov b,e - 1656 0AE0 15 dcr d - 1657 0AE1 db 18h + 1656 0ADF 43 mov b,e + 1657 0AE0 15 dcr d + 1658 0AE1 db 18h 18 - 1658 0AE2 48 mov c,b - 1659 0AE3 53 mov d,e - 1660 0AE4 db 18h + 1659 0AE2 48 mov c,b + 1660 0AE3 53 mov d,e + 1661 0AE4 db 18h 18 - 1661 0AE5 41 mov b,c - 1662 0AE6 FE 17 cpi 17h - 1663 0AE8 72 mov m,d - 1664 0AE9 A6 ana m - 1665 0AEA 15 dcr d - 1666 0AEB 66 mov h,m - 1667 0AEC 53 mov d,e - 1668 0AED db 18h + 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 - 1669 0AEE 78 mov a,b - 1670 0AEF DF rst 3 - 1671 0AF0 12 stax d - 1672 0AF1 79 mov a,c - 1673 0AF2 64 mov h,h - 1674 0AF3 db 8 + 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 - 1675 0AF4 00 nop - 1676 0AF5 63 X0af5: mov h,e - 1677 0AF6 C1 pop b - 1678 0AF7 0C inr c - 1679 0AF8 71 mov m,c - 1680 0AF9 16 0C mvi d,0ch - 1681 0AFB 6E mov l,m - 1682 0AFC 03 inx b - 1683 0AFD 0D dcr c - 1684 0AFE 4A mov c,d - 1685 0AFF 41 mov b,c - 1686 0B00 15 dcr d - 1687 0B01 4B mov c,e - 1688 0B02 FC 14 6C cm X6c14 - 1689 0B05 db 0edh + 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 - 1690 0B06 13 inx d - 1691 0B07 6D mov l,l - 1692 0B08 7F mov a,a - 1693 0B09 0C inr c - 1694 0B0A 68 mov l,b - 1695 0B0B F2 13 67 jp X6713 - 1696 0B0E CF rst 1 - 1697 0B0F 0D dcr c - 1698 0B10 00 nop - 1699 0B11 21 19 0B lxi h,X0b19 - 1700 0B14 22 40 21 shld X2140 - 1701 0B17 E1 pop h - 1702 0B18 C9 ret + 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 - 1704 0B19 47 X0b19: mov b,a - 1705 0B1A FE 20 cpi 20h - 1706 0B1C DA B2 08 jc X08b2 - 1707 0B1F FE 1B cpi 1bh - 1708 0B21 21 51 21 lxi h,X2151 - 1709 0B24 C2 2E 0B jnz X0b2e - 1710 0B27 21 AB 09 lxi h,X09ab - 1711 0B2A 22 40 21 shld X2140 - 1712 0B2D 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 - 1714 0B2E 7E X0b2e: mov a,m - 1715 0B2F B7 ora a - 1716 0B30 C2 42 0B jnz X0b42 - 1717 0B33 36 01 mvi m,1 - 1718 0B35 78 mov a,b - 1719 0B36 D6 20 sui 20h - 1720 0B38 32 52 21 sta X2152 - 1721 0B3B 21 19 0B lxi h,X0b19 - 1722 0B3E 22 40 21 shld X2140 - 1723 0B41 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 - 1725 0B42 36 00 X0b42: mvi m,0 - 1726 0B44 78 mov a,b - 1727 0B45 D6 20 sui 20h - 1728 0B47 FE 50 cpi 50h - 1729 0B49 D2 4F 0B jnc X0b4f - 1730 0B4C 32 F8 20 sta X20f8 - 1731 0B4F CD BF 11 X0b4f: call X11bf - 1732 0B52 3A 52 21 lda X2152 - 1733 0B55 04 inr b - 1734 0B56 B8 cmp b - 1735 0B57 D2 5D 0B jnc X0b5d - 1736 0B5A 32 F9 20 sta X20f9 - 1737 0B5D CD 15 0A X0b5d: call X0a15 - 1738 0B60 C3 36 16 jmp X1636 + 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 - 1740 0B63 AF X0b63: xra a - 1741 0B64 32 A2 21 sta X21a2 - 1742 0B67 CD AD 10 call X10ad - 1743 0B6A 0E 50 mvi c,50h - 1744 0B6C CD F9 10 call X10f9 - 1745 0B6F CD 4C 11 call X114c - 1746 0B72 0E 50 mvi c,50h - 1747 0B74 C3 89 0B jmp X0b89 + 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 - 1749 0B77 3E 01 X0b77: mvi a,1 - 1750 0B79 32 A2 21 sta X21a2 - 1751 0B7C CD AD 10 call X10ad - 1752 0B7F 0E 84 mvi c,84h - 1753 0B81 CD F9 10 call X10f9 - 1754 0B84 CD 4C 11 call X114c - 1755 0B87 0E 84 mvi c,84h - 1756 0B89 AF X0b89: xra a - 1757 0B8A 32 55 21 sta X2155 - 1758 0B8D CD BF 11 call X11bf - 1759 0B90 78 mov a,b - 1760 0B91 32 56 21 sta X2156 - 1761 0B94 79 mov a,c - 1762 0B95 32 50 20 sta X2050 - 1763 0B98 CD 42 03 call X0342 - 1764 0B9B CD 48 18 call X1848 - 1765 0B9E 3E 01 mvi a,1 - 1766 0BA0 C3 AA 0F jmp X0faa + 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 - 1768 0BA3 21 F9 20 lxi h,X20f9 - 1769 0BA6 3A 55 21 lda X2155 - 1770 0BA9 47 mov b,a - 1771 0BAA 7E mov a,m - 1772 0BAB B8 cmp b - 1773 0BAC CA B8 0B jz X0bb8 - 1774 0BAF B7 ora a - 1775 0BB0 C8 rz - 1776 0BB1 21 F9 20 lxi h,X20f9 - 1777 0BB4 35 dcr m - 1778 0BB5 C3 36 16 jmp X1636 + 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 - 1780 0BB8 3A A6 21 X0bb8: lda X21a6 - 1781 0BBB E6 80 ani 80h - 1782 0BBD CA D9 0B jz X0bd9 - 1783 0BC0 0E 01 mvi c,1 - 1784 0BC2 CD 8E 10 call X108e - 1785 0BC5 3E FF mvi a,0ffh - 1786 0BC7 32 C3 21 sta X21c3 - 1787 0BCA 35 dcr m - 1788 0BCB CD EB 0F call X0feb - 1789 0BCE 3A C3 21 X0bce: lda X21c3 - 1790 0BD1 B7 ora a - 1791 0BD2 C2 CE 0B jnz X0bce - 1792 0BD5 32 F4 20 sta X20f4 - 1793 0BD8 C9 ret + 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 - 1795 0BD9 CD 2D 10 X0bd9: call X102d - 1796 0BDC C3 12 10 jmp X1012 + 1796 0BD9 CD 2D 10 X0bd9: call X102d + 1797 0BDC C3 12 10 jmp X1012 - 1798 0BDF 21 78 21 lxi h,X2178 - 1799 0BE2 36 01 mvi m,1 - 1800 0BE4 C9 ret + 1799 0BDF 21 78 21 lxi h,X2178 + 1800 0BE2 36 01 mvi m,1 + 1801 0BE4 C9 ret - 1802 0BE5 21 78 21 lxi h,X2178 - 1803 0BE8 36 00 mvi m,0 - 1804 0BEA C9 ret + 1803 0BE5 21 78 21 lxi h,X2178 + 1804 0BE8 36 00 mvi m,0 + 1805 0BEA C9 ret - 1806 0BEB 21 A7 21 lxi h,X21a7 - 1807 0BEE 7E mov a,m - 1808 0BEF F6 20 ori 20h - 1809 0BF1 77 mov m,a - 1810 0BF2 3A A8 21 X0bf2: lda X21a8 - 1811 0BF5 E6 80 ani 80h - 1812 0BF7 26 08 mvi h,8 - 1813 0BF9 CA FE 0B jz X0bfe - 1814 0BFC 26 48 mvi h,48h - 1815 0BFE 6C X0bfe: mov l,h - 1816 0BFF 22 FD 20 shld X20fd - 1817 0C02 22 FF 20 shld X20ff - 1818 0C05 AF xra a - 1819 0C06 32 FC 20 sta X20fc - 1820 0C09 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 - 1822 0C0A 26 88 mvi h,88h - 1823 0C0C C3 11 0C jmp X0c11 + 1823 0C0A 26 88 mvi h,88h + 1824 0C0C C3 11 0C jmp X0c11 - 1825 0C0F 26 08 mvi h,8 - 1826 0C11 6C X0c11: mov l,h - 1827 0C12 22 FD 20 shld X20fd - 1828 0C15 C9 ret + 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 - 1830 0C16 21 45 21 lxi h,X2145 - 1831 0C19 78 mov a,b - 1832 0C1A B7 ora a - 1833 0C1B C2 23 0C jnz X0c23 - 1834 0C1E 7E mov a,m - 1835 0C1F E6 F0 ani 0f0h - 1836 0C21 77 mov m,a - 1837 0C22 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 - 1839 0C23 D6 05 X0c23: sui 5 - 1840 0C25 F0 rp - 1841 0C26 47 mov b,a - 1842 0C27 AF xra a - 1843 0C28 37 stc - 1844 0C29 17 X0c29: ral - 1845 0C2A 04 inr b - 1846 0C2B C2 29 0C jnz X0c29 - 1847 0C2E B6 ora m - 1848 0C2F 77 mov m,a - 1849 0C30 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 - 1851 0C31 13 X0c31: inx d - 1852 0C32 3A 7E 20 X0c32: lda X207e - 1853 0C35 47 mov b,a - 1854 0C36 21 4A 0C lxi h,X0c4a - 1855 0C39 23 X0c39: inx h - 1856 0C3A 23 inx h - 1857 0C3B 7E mov a,m - 1858 0C3C B7 ora a - 1859 0C3D C8 rz - 1860 0C3E B8 cmp b - 1861 0C3F C2 39 0C jnz X0c39 - 1862 0C42 23 inx h - 1863 0C43 7E mov a,m - 1864 0C44 12 stax d - 1865 0C45 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 - 1867 0C46 21 FC 20 X0c46: lxi h,X20fc - 1868 0C49 34 inr m - 1869 0C4A 34 X0c4a: inr m - 1870 0C4B 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 - 1872 0C4C 41 mov b,c - 1873 0C4D 48 mov c,b - 1874 0C4E 42 mov b,d - 1875 0C4F db 8 + 1873 0C4C 41 mov b,c + 1874 0C4D 48 mov c,b + 1875 0C4E 42 mov b,d + 1876 0C4F db 8 08 - 1876 0C50 db 30h + 1877 0C50 db 30h 30 - 1877 0C51 88 adc b - 1878 0C52 31 00 32 lxi sp,X3200 - 1879 0C55 80 add b - 1880 0C56 00 nop - 1881 0C57 21 79 20 X0c57: lxi h,X2079 - 1882 0C5A 7E mov a,m - 1883 0C5B B7 ora a - 1884 0C5C CA 14 0A jz X0a14 - 1885 0C5F 36 81 mvi m,81h - 1886 0C61 E1 pop h - 1887 0C62 21 AD 05 X0c62: lxi h,X05ad - 1888 0C65 C3 18 0A jmp X0a18 + 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 - 1890 0C68 21 02 21 lxi h,X2102 - 1891 0C6B 11 F8 20 lxi d,X20f8 - 1892 0C6E C3 77 0C jmp X0c77 + 1891 0C68 21 02 21 lxi h,X2102 + 1892 0C6B 11 F8 20 lxi d,X20f8 + 1893 0C6E C3 77 0C jmp X0c77 - 1894 0C71 21 F8 20 lxi h,X20f8 - 1895 0C74 11 02 21 lxi d,X2102 - 1896 0C77 06 0B X0c77: mvi b,0bh - 1897 0C79 CD 8B 03 call memmove - 1898 0C7C C3 36 16 jmp X1636 + 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 - 1900 0C7F 21 8A 0C lxi h,X0c8a - 1901 0C82 78 mov a,b - 1902 0C83 B7 ora a - 1903 0C84 CA 97 0C jz X0c97 - 1904 0C87 C3 FF 09 jmp X09ff + 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 - 1906 0C8A 01 A2 0C X0c8a: lxi b,X0ca2 - 1907 0C8D 04 inr b - 1908 0C8E A7 ana a - 1909 0C8F 0C inr c - 1910 0C90 05 dcr b - 1911 0C91 B3 ora e - 1912 0C92 0C inr c - 1913 0C93 07 rlc - 1914 0C94 BB cmp e - 1915 0C95 0C inr c - 1916 0C96 00 nop - 1917 0C97 32 FB 20 X0c97: sta X20fb - 1918 0C9A 21 FA 20 lxi h,X20fa - 1919 0C9D 7E mov a,m - 1920 0C9E F6 F7 ori 0f7h - 1921 0CA0 77 mov m,a - 1922 0CA1 C9 ret + 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 - 1924 0CA2 3E FB X0ca2: mvi a,0fbh - 1925 0CA4 C3 B5 0C jmp X0cb5 + 1925 0CA2 3E FB X0ca2: mvi a,0fbh + 1926 0CA4 C3 B5 0C jmp X0cb5 - 1927 0CA7 3A C8 21 lda X21c8 - 1928 0CAA B7 ora a - 1929 0CAB C2 BB 0C jnz X0cbb - 1930 0CAE 3E FD mvi a,0fdh - 1931 0CB0 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 - 1933 0CB3 3E FE mvi a,0feh - 1934 0CB5 21 FA 20 X0cb5: lxi h,X20fa - 1935 0CB8 A6 ana m - 1936 0CB9 77 mov m,a - 1937 0CBA C9 ret + 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 - 1939 0CBB 3E 80 X0cbb: mvi a,80h - 1940 0CBD 32 FB 20 sta X20fb - 1941 0CC0 C9 ret + 1940 0CBB 3E 80 X0cbb: mvi a,80h + 1941 0CBD 32 FB 20 sta X20fb + 1942 0CC0 C9 ret - 1943 0CC1 3A 30 21 lda X2130 - 1944 0CC4 B7 ora a - 1945 0CC5 C0 rnz - 1946 0CC6 21 72 21 lxi h,X2172 - 1947 0CC9 7E mov a,m - 1948 0CCA F6 04 ori 4 - 1949 0CCC 77 mov m,a - 1950 0CCD 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 - 1952 0CCE 3E FB mvi a,0fbh - 1953 0CD0 CD BF 0D call X0dbf - 1954 0CD3 3A A7 21 lda X21a7 - 1955 0CD6 E6 20 ani 20h - 1956 0CD8 C2 E3 0C jnz X0ce3 - 1957 0CDB 36 DA mvi m,0dah - 1958 0CDD 2B dcx h - 1959 0CDE 36 2F mvi m,2fh - 1960 0CE0 C3 F3 0E jmp X0ef3 + 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 - 1962 0CE3 36 3F X0ce3: mvi m,3fh - 1963 0CE5 23 inx h - 1964 0CE6 3E 31 mvi a,31h - 1965 0CE8 CD B9 0D call X0db9 - 1966 0CEB DB 42 in 42h - 1967 0CED 47 mov b,a - 1968 0CEE 2F cma - 1969 0CEF E6 06 ani 6 - 1970 0CF1 4F mov c,a - 1971 0CF2 78 mov a,b - 1972 0CF3 E6 08 ani 8 - 1973 0CF5 CA F9 0C jz X0cf9 - 1974 0CF8 0C inr c - 1975 0CF9 79 X0cf9: mov a,c - 1976 0CFA F6 30 ori 30h - 1977 0CFC 77 mov m,a - 1978 0CFD 23 inx h - 1979 0CFE 36 E3 mvi m,0e3h - 1980 0D00 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 - 1982 0D03 3A B8 21 lda X21b8 - 1983 0D06 B7 ora a - 1984 0D07 C0 rnz - 1985 0D08 78 mov a,b - 1986 0D09 21 72 21 lxi h,X2172 - 1987 0D0C FE 06 cpi 6 - 1988 0D0E CA 32 0D jz X0d32 - 1989 0D11 FE 05 cpi 5 - 1990 0D13 C0 rnz - 1991 0D14 7E mov a,m - 1992 0D15 F6 08 ori 8 - 1993 0D17 77 mov m,a - 1994 0D18 C9 ret + 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 - 1996 0D19 3E F7 mvi a,0f7h - 1997 0D1B CD BF 0D call X0dbf - 1998 0D1E 06 03 mvi b,3 - 1999 0D20 3A BD 21 lda X21bd - 2000 0D23 B7 ora a - 2001 0D24 78 mov a,b - 2002 0D25 C2 29 0D jnz X0d29 - 2003 0D28 AF xra a - 2004 0D29 F6 30 X0d29: ori 30h - 2005 0D2B 77 mov m,a - 2006 0D2C 23 inx h - 2007 0D2D 36 EE mvi m,0eeh - 2008 0D2F C3 F3 0E X0d2f: jmp X0ef3 + 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 - 2010 0D32 7E X0d32: mov a,m - 2011 0D33 F6 01 ori 1 - 2012 0D35 77 mov m,a - 2013 0D36 C9 ret + 2011 0D32 7E X0d32: mov a,m + 2012 0D33 F6 01 ori 1 + 2013 0D35 77 mov m,a + 2014 0D36 C9 ret - 2015 0D37 3E FE mvi a,0feh - 2016 0D39 CD BF 0D call X0dbf - 2017 0D3C 3A F9 20 lda X20f9 - 2018 0D3F 47 mov b,a - 2019 0D40 3A 01 21 lda X2101 - 2020 0D43 B7 ora a - 2021 0D44 CA 4A 0D jz X0d4a - 2022 0D47 3A 55 21 lda X2155 - 2023 0D4A 4F X0d4a: mov c,a - 2024 0D4B 78 mov a,b - 2025 0D4C 91 sub c - 2026 0D4D 3C inr a - 2027 0D4E CD 7A 0D call X0d7a - 2028 0D51 CD BB 0D call X0dbb - 2029 0D54 3A F8 20 lda X20f8 - 2030 0D57 3C inr a - 2031 0D58 CD 7A 0D call X0d7a - 2032 0D5B 36 D2 mvi m,0d2h - 2033 0D5D C3 F3 0E jmp X0ef3 + 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 - 2035 0D60 DB 42 in 42h - 2036 0D62 E6 04 ani 4 - 2037 0D64 C0 rnz - 2038 0D65 0E 81 mvi c,81h - 2039 0D67 CD 8E 10 call X108e - 2040 0D6A 3E FF mvi a,0ffh - 2041 0D6C D3 E2 out 0e2h - 2042 0D6E 00 nop - 2043 0D6F CD 88 14 X0d6f: call X1488 - 2044 0D72 DB 42 in 42h - 2045 0D74 E6 04 ani 4 - 2046 0D76 C2 6F 0D jnz X0d6f - 2047 0D79 C9 ret + 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 - 2049 0D7A 5F X0d7a: mov e,a - 2050 0D7B 16 30 mvi d,30h - 2051 0D7D 0E 64 mvi c,64h - 2052 0D7F CD 99 0D call X0d99 - 2053 0D82 CA 88 0D jz X0d88 - 2054 0D85 77 mov m,a - 2055 0D86 23 inx h - 2056 0D87 15 dcr d - 2057 0D88 0E 0A X0d88: mvi c,0ah - 2058 0D8A CD 99 0D call X0d99 - 2059 0D8D CA 93 0D jz X0d93 - 2060 0D90 15 dcr d - 2061 0D91 77 mov m,a - 2062 0D92 23 inx h - 2063 0D93 7B X0d93: mov a,e - 2064 0D94 F6 30 ori 30h - 2065 0D96 77 mov m,a - 2066 0D97 23 inx h - 2067 0D98 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 - 2069 0D99 7B X0d99: mov a,e - 2070 0D9A 06 30 mvi b,30h - 2071 0D9C 04 X0d9c: inr b - 2072 0D9D 91 sub c - 2073 0D9E F2 9C 0D jp X0d9c - 2074 0DA1 81 add c - 2075 0DA2 05 dcr b - 2076 0DA3 5F mov e,a - 2077 0DA4 78 mov a,b - 2078 0DA5 BA cmp d - 2079 0DA6 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 - 2081 0DA7 3E 45 mvi a,45h - 2082 0DA9 32 C7 21 sta X21c7 - 2083 0DAC CD 81 03 call X0381 - 2084 0DAF 3E 45 mvi a,45h - 2085 0DB1 32 F4 20 sta X20f4 - 2086 0DB4 AF xra a - 2087 0DB5 32 C7 21 sta X21c7 - 2088 0DB8 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 - 2090 0DB9 77 X0db9: mov m,a - 2091 0DBA 23 inx h - 2092 0DBB 36 3B X0dbb: mvi m,3bh - 2093 0DBD 23 inx h - 2094 0DBE 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 - 2096 0DBF 21 72 21 X0dbf: lxi h,X2172 - 2097 0DC2 A6 ana m - 2098 0DC3 77 mov m,a - 2099 0DC4 21 5C 21 lxi h,X215c - 2100 0DC7 36 1B mvi m,1bh - 2101 0DC9 23 inx h - 2102 0DCA 36 5B mvi m,5bh - 2103 0DCC 23 inx h - 2104 0DCD 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 - 2106 0DCE 42 mov b,d - 2107 0DCF 78 mov a,b - 2108 0DD0 B7 ora a - 2109 0DD1 C2 D8 0D jnz X0dd8 - 2110 0DD4 CD E5 0D call X0de5 - 2111 0DD7 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 - 2113 0DD8 FE 03 X0dd8: cpi 3 - 2114 0DDA C0 rnz - 2115 0DDB CD EC 0D call X0dec - 2116 0DDE C9 ret + 2114 0DD8 FE 03 X0dd8: cpi 3 + 2115 0DDA C0 rnz + 2116 0DDB CD EC 0D call X0dec + 2117 0DDE C9 ret - 2118 0DDF CD 23 0E call X0e23 - 2119 0DE2 B6 ora m - 2120 0DE3 77 mov m,a - 2121 0DE4 C9 ret + 2119 0DDF CD 23 0E call X0e23 + 2120 0DE2 B6 ora m + 2121 0DE3 77 mov m,a + 2122 0DE4 C9 ret - 2123 0DE5 CD 23 0E X0de5: call X0e23 - 2124 0DE8 2F cma - 2125 0DE9 A6 ana m - 2126 0DEA 77 mov m,a - 2127 0DEB 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 - 2129 0DEC 21 91 21 X0dec: lxi h,X2191 - 2130 0DEF AF X0def: xra a - 2131 0DF0 77 mov m,a - 2132 0DF1 23 inx h - 2133 0DF2 7D mov a,l - 2134 0DF3 FE A2 cpi 0a2h - 2135 0DF5 C2 EF 0D jnz X0def - 2136 0DF8 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 - 2138 0DF9 CD 23 0E X0df9: call X0e23 - 2139 0DFC 0C X0dfc: inr c - 2140 0DFD B7 ora a - 2141 0DFE 1F rar - 2142 0DFF DA 0B 0E jc X0e0b - 2143 0E02 57 X0e02: mov d,a - 2144 0E03 A6 ana m - 2145 0E04 7A mov a,d - 2146 0E05 CA FC 0D jz X0dfc - 2147 0E08 C3 15 0E jmp X0e15 + 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 - 2149 0E0B 23 X0e0b: inx h - 2150 0E0C 7D mov a,l - 2151 0E0D FE A2 cpi 0a2h - 2152 0E0F 3E 80 mvi a,80h - 2153 0E11 C2 02 0E jnz X0e02 - 2154 0E14 0D dcr c - 2155 0E15 3A 53 21 X0e15: lda X2153 - 2156 0E18 B9 cmp c - 2157 0E19 DA 1D 0E jc X0e1d - 2158 0E1C 79 mov a,c - 2159 0E1D 32 F8 20 X0e1d: sta X20f8 - 2160 0E20 C3 36 16 jmp X1636 + 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 - 2162 0E23 3A F8 20 X0e23: lda X20f8 - 2163 0E26 4F mov c,a - 2164 0E27 57 X0e27: mov d,a - 2165 0E28 21 91 21 lxi h,X2191 - 2166 0E2B 0F X0e2b: rrc - 2167 0E2C 0F rrc - 2168 0E2D 0F rrc - 2169 0E2E E6 1F ani 1fh - 2170 0E30 85 add l - 2171 0E31 6F mov l,a - 2172 0E32 7A mov a,d - 2173 0E33 E6 07 ani 7 - 2174 0E35 57 mov d,a - 2175 0E36 3E 80 mvi a,80h - 2176 0E38 15 X0e38: dcr d - 2177 0E39 F8 rm - 2178 0E3A 0F rrc - 2179 0E3B C3 38 0E jmp X0e38 + 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 - 2181 0E3E 3A A5 21 X0e3e: lda X21a5 - 2182 0E41 21 7B 20 lxi h,X207b - 2183 0E44 B6 ora m - 2184 0E45 47 mov b,a - 2185 0E46 C0 rnz - 2186 0E47 DB 42 X0e47: in 42h - 2187 0E49 E6 01 ani 1 - 2188 0E4B C8 rz - 2189 0E4C 21 C1 21 lxi h,X21c1 - 2190 0E4F 7E mov a,m - 2191 0E50 B7 ora a - 2192 0E51 36 00 mvi m,0 - 2193 0E53 2B dcx h - 2194 0E54 C8 rz - 2195 0E55 7E mov a,m - 2196 0E56 D3 00 out 0 - 2197 0E58 C9 ret + 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 - 2199 0E59 F3 X0e59: di - 2200 0E5A CD 3E 0E call X0e3e - 2201 0E5D FB ei - 2202 0E5E 78 mov a,b - 2203 0E5F B7 ora a - 2204 0E60 C2 6D 0E jnz X0e6d - 2205 0E63 DB 42 in 42h - 2206 0E65 E6 01 ani 1 - 2207 0E67 C8 rz - 2208 0E68 3A C2 21 lda X21c2 - 2209 0E6B B7 ora a - 2210 0E6C C0 rnz - 2211 0E6D 21 73 21 X0e6d: lxi h,X2173 - 2212 0E70 7E mov a,m - 2213 0E71 B7 ora a - 2214 0E72 CA 79 0E jz X0e79 - 2215 0E75 2A 74 21 lhld X2174 - 2216 0E78 E9 pchl + 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 - 2218 0E79 3A 72 21 X0e79: lda X2172 - 2219 0E7C B7 ora a - 2220 0E7D C8 rz - 2221 0E7E 1E 00 mvi e,0 - 2222 0E80 1F X0e80: rar - 2223 0E81 DA 89 0E jc X0e89 - 2224 0E84 1C inr e - 2225 0E85 1C inr e - 2226 0E86 C3 80 0E jmp X0e80 + 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 - 2228 0E89 16 00 X0e89: mvi d,0 - 2229 0E8B 21 94 0E lxi h,X0e94 - 2230 0E8E 19 dad d - 2231 0E8F 7E mov a,m - 2232 0E90 23 inx h - 2233 0E91 66 mov h,m - 2234 0E92 6F mov l,a - 2235 0E93 E9 pchl + 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 - 2237 0E94 37 X0e94: stc - 2238 0E95 0D dcr c - 2239 0E96 F0 rp - 2240 0E97 12 stax d - 2241 0E98 CE 0C aci 0ch - 2242 0E9A 19 dad d - 2243 0E9B 0D dcr c - 2244 0E9C 13 inx d - 2245 0E9D 09 dad b - 2246 0E9E A0 ana b - 2247 0E9F 0E 21 mvi c,21h - 2248 0EA1 5C mov e,h - 2249 0EA2 db 20h + 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 - 2250 0EA3 46 mov b,m - 2251 0EA4 54 mov d,h - 2252 0EA5 5D mov e,l - 2253 0EA6 13 inx d - 2254 0EA7 0E 08 mvi c,8 - 2255 0EA9 1A X0ea9: ldax d - 2256 0EAA 77 mov m,a - 2257 0EAB 23 inx h - 2258 0EAC 13 inx d - 2259 0EAD 0D dcr c - 2260 0EAE C2 A9 0E jnz X0ea9 - 2261 0EB1 21 43 21 lxi h,X2143 - 2262 0EB4 35 dcr m - 2263 0EB5 7E mov a,m - 2264 0EB6 4F mov c,a - 2265 0EB7 C2 C1 0E jnz X0ec1 - 2266 0EBA 21 72 21 lxi h,X2172 - 2267 0EBD 7E mov a,m - 2268 0EBE E6 DF ani 0dfh - 2269 0EC0 77 mov m,a - 2270 0EC1 3A A5 21 X0ec1: lda X21a5 - 2271 0EC4 B7 ora a - 2272 0EC5 C2 CF 0E jnz X0ecf - 2273 0EC8 79 mov a,c - 2274 0EC9 FE 05 cpi 5 - 2275 0ECB D2 D2 0E jnc X0ed2 - 2276 0ECE AF xra a - 2277 0ECF 32 44 21 X0ecf: sta X2144 - 2278 0ED2 78 X0ed2: mov a,b - 2279 0ED3 E6 80 ani 80h - 2280 0ED5 17 ral - 2281 0ED6 3F cmc - 2282 0ED7 1F rar - 2283 0ED8 32 73 21 sta X2173 - 2284 0EDB 21 A0 0E lxi h,X0ea0 - 2285 0EDE 22 74 21 shld X2174 - 2286 0EE1 78 X0ee1: mov a,b - 2287 0EE2 E6 7F ani 7fh - 2288 0EE4 47 mov b,a - 2289 0EE5 3A A5 21 lda X21a5 - 2290 0EE8 21 7B 20 lxi h,X207b - 2291 0EEB B6 ora m - 2292 0EEC 78 mov a,b - 2293 0EED C2 93 05 jnz X0593 - 2294 0EF0 D3 00 out 0 - 2295 0EF2 C9 ret + 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 - 2297 0EF3 21 01 0F X0ef3: lxi h,X0f01 - 2298 0EF6 22 74 21 shld X2174 - 2299 0EF9 AF xra a - 2300 0EFA 32 71 21 sta X2171 - 2301 0EFD 3C inr a - 2302 0EFE 32 73 21 sta X2173 - 2303 0F01 21 71 21 X0f01: lxi h,X2171 - 2304 0F04 7E mov a,m - 2305 0F05 34 inr m - 2306 0F06 21 5C 21 lxi h,X215c - 2307 0F09 85 add l - 2308 0F0A 6F mov l,a - 2309 0F0B 46 mov b,m - 2310 0F0C 78 mov a,b - 2311 0F0D B7 ora a - 2312 0F0E F2 E1 0E jp X0ee1 - 2313 0F11 AF xra a - 2314 0F12 32 73 21 sta X2173 - 2315 0F15 C3 E1 0E jmp X0ee1 + 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 - 2317 0F18 E5 X0f18: push h - 2318 0F19 D5 push d - 2319 0F1A 57 mov d,a - 2320 0F1B 3A A7 21 lda X21a7 - 2321 0F1E E6 10 ani 10h - 2322 0F20 CA 2B 0F jz X0f2b - 2323 0F23 7A mov a,d - 2324 0F24 D6 91 sui 91h - 2325 0F26 E6 FD ani 0fdh - 2326 0F28 CA 61 0F jz X0f61 - 2327 0F2B 21 72 21 X0f2b: lxi h,X2172 - 2328 0F2E 7E mov a,m - 2329 0F2F F6 20 ori 20h - 2330 0F31 77 mov m,a - 2331 0F32 21 43 21 X0f32: lxi h,X2143 - 2332 0F35 7E mov a,m - 2333 0F36 34 inr m - 2334 0F37 21 5C 20 lxi h,X205c - 2335 0F3A 5F mov e,a - 2336 0F3B 85 add l - 2337 0F3C 6F mov l,a - 2338 0F3D 72 mov m,d - 2339 0F3E 3E 8D mvi a,8dh - 2340 0F40 BA cmp d - 2341 0F41 C2 4E 0F jnz X0f4e - 2342 0F44 3A A8 21 lda X21a8 - 2343 0F47 E6 20 ani 20h - 2344 0F49 16 8A mvi d,8ah - 2345 0F4B C2 32 0F jnz X0f32 - 2346 0F4E 3A A5 21 X0f4e: lda X21a5 - 2347 0F51 B7 ora a - 2348 0F52 C2 5B 0F jnz X0f5b - 2349 0F55 3E 05 mvi a,5 - 2350 0F57 BB cmp e - 2351 0F58 3E 00 mvi a,0 - 2352 0F5A 1F rar - 2353 0F5B 32 44 21 X0f5b: sta X2144 - 2354 0F5E D1 X0f5e: pop d - 2355 0F5F E1 pop h - 2356 0F60 C9 ret + 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 - 2358 0F61 7A X0f61: mov a,d - 2359 0F62 E6 7F ani 7fh - 2360 0F64 57 mov d,a - 2361 0F65 21 C1 21 lxi h,X21c1 - 2362 0F68 7E mov a,m - 2363 0F69 B7 ora a - 2364 0F6A C2 75 0F jnz X0f75 - 2365 0F6D 2B dcx h - 2366 0F6E 7E mov a,m - 2367 0F6F BA cmp d - 2368 0F70 C2 75 0F jnz X0f75 - 2369 0F73 23 inx h - 2370 0F74 72 mov m,d - 2371 0F75 4A X0f75: mov c,d - 2372 0F76 06 02 mvi b,2 - 2373 0F78 CD 7E 0F call X0f7e - 2374 0F7B C3 5E 0F jmp X0f5e + 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 - 2376 0F7E 3A A7 21 X0f7e: lda X21a7 - 2377 0F81 E6 10 ani 10h - 2378 0F83 C8 rz - 2379 0F84 3A A5 21 lda X21a5 - 2380 0F87 B7 ora a - 2381 0F88 C0 rnz - 2382 0F89 79 mov a,c - 2383 0F8A 21 BF 21 lxi h,X21bf - 2384 0F8D FE 13 cpi 13h - 2385 0F8F 78 mov a,b - 2386 0F90 CA 9E 0F jz X0f9e - 2387 0F93 2F cma - 2388 0F94 A6 ana m - 2389 0F95 77 mov m,a - 2390 0F96 F5 push psw - 2391 0F97 E6 02 ani 2 - 2392 0F99 32 C4 21 sta X21c4 - 2393 0F9C F1 pop psw - 2394 0F9D C0 rnz - 2395 0F9E B6 X0f9e: ora m - 2396 0F9F 77 mov m,a - 2397 0FA0 79 mov a,c - 2398 0FA1 21 C0 21 lxi h,X21c0 - 2399 0FA4 BE cmp m - 2400 0FA5 C8 rz - 2401 0FA6 77 mov m,a - 2402 0FA7 23 inx h - 2403 0FA8 77 mov m,a - 2404 0FA9 C9 ret + 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? @@ -2473,2469 +2474,2472 @@ ; ; return byte at [2172] in A ; jmp 0FAE ; - 2422 0FAA 21 7F 20 X0faa: lxi h,X207f - 2423 0FAD 86 add m - 2424 0FAE BE X0fae: cmp m - 2425 0FAF C8 rz - 2426 0FB0 E5 push h - 2427 0FB1 F5 push psw - 2428 0FB2 3A 7B 20 lda X207b - 2429 0FB5 B7 ora a - 2430 0FB6 CC 88 14 cz X1488 - 2431 0FB9 F1 pop psw - 2432 0FBA E1 pop h - 2433 0FBB C3 AE 0F jmp X0fae + 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? ; - 2438 0FBE 2A 4E 20 X0fbe: lhld scratch_start ; HL = [0x204e] - 2439 0FC1 7C mov a,h - 2440 0FC2 F6 F0 ori 0f0h - 2441 0FC4 67 mov h,a - 2442 0FC5 22 4E 20 shld scratch_start ; update [0x204e] - 2443 0FC8 3A 50 20 X0fc8: lda X2050 - 2444 0FCB 47 X0fcb: mov b,a - 2445 0FCC 7C mov a,h - 2446 0FCD E6 0F ani 0fh - 2447 0FCF F6 20 ori 20h - 2448 0FD1 67 mov h,a - 2449 0FD2 C6 10 adi 10h - 2450 0FD4 57 mov d,a - 2451 0FD5 5D mov e,l - 2452 0FD6 3E FF mvi a,0ffh - 2453 0FD8 36 00 X0fd8: mvi m,0 - 2454 0FDA 12 stax d - 2455 0FDB 13 inx d - 2456 0FDC 23 inx h - 2457 0FDD 05 dcr b - 2458 0FDE C2 D8 0F jnz X0fd8 - 2459 0FE1 3C inr a - 2460 0FE2 32 C3 21 sta X21c3 - 2461 0FE5 C9 ret + 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 - 2463 0FE6 06 FF X0fe6: mvi b,0ffh - 2464 0FE8 C3 ED 0F jmp X0fed + 2464 0FE6 06 FF X0fe6: mvi b,0ffh + 2465 0FE8 C3 ED 0F jmp X0fed - 2466 0FEB 06 01 X0feb: mvi b,1 - 2467 0FED 21 55 21 X0fed: lxi h,X2155 - 2468 0FF0 56 mov d,m - 2469 0FF1 23 inx h - 2470 0FF2 5E mov e,m - 2471 0FF3 78 mov a,b - 2472 0FF4 B7 ora a - 2473 0FF5 7A mov a,d - 2474 0FF6 F2 FA 0F jp X0ffa - 2475 0FF9 7B mov a,e - 2476 0FFA CD E6 13 X0ffa: call X13e6 - 2477 0FFD 7B mov a,e - 2478 0FFE 92 sub d - 2479 0FFF 4F X0fff: mov c,a - 2480 1000 3A 2B 21 X1000: lda X212b - 2481 1003 56 X1003: mov d,m - 2482 1004 77 mov m,a - 2483 1005 78 mov a,b - 2484 1006 85 add l - 2485 1007 6F mov l,a - 2486 1008 0D dcr c - 2487 1009 7A mov a,d - 2488 100A F2 03 10 jp X1003 - 2489 100D E6 7F ani 7fh - 2490 100F 32 2B 21 sta X212b - 2491 1012 3E FF X1012: mvi a,0ffh - 2492 1014 32 0E 21 sta X210e - 2493 1017 C3 36 16 jmp X1636 + 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 - 2495 101A CD 91 11 X101a: call X1191 - 2496 101D 3A 56 21 lda X2156 - 2497 1020 CD 2F 12 call X122f - 2498 1023 CD E6 0F call X0fe6 - 2499 1026 3A 55 21 lda X2155 - 2500 1029 3D dcr a - 2501 102A C3 3E 10 jmp X103e + 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 - 2503 102D CD 91 11 X102d: call X1191 - 2504 1030 3A 55 21 lda X2155 - 2505 1033 3D dcr a - 2506 1034 CD 2F 12 call X122f - 2507 1037 CD EB 0F call X0feb - 2508 103A 3A 56 21 lda X2156 - 2509 103D 3D dcr a - 2510 103E CD CE 11 X103e: call X11ce - 2511 1041 FB ei - 2512 1042 32 7A 20 sta X207a - 2513 1045 21 56 21 lxi h,X2156 - 2514 1048 7E mov a,m - 2515 1049 2B dcx h - 2516 104A 96 sub m - 2517 104B FE 17 cpi 17h - 2518 104D C0 rnz - 2519 104E 21 7A 20 X104e: lxi h,X207a - 2520 1051 7E mov a,m - 2521 1052 36 00 mvi m,0 - 2522 1054 B7 ora a - 2523 1055 C8 rz - 2524 1056 2A 56 20 lhld X2056 - 2525 1059 EB xchg - 2526 105A 2A 58 20 lhld X2058 - 2527 105D 72 mov m,d - 2528 105E 23 inx h - 2529 105F 73 mov m,e - 2530 1060 2A 79 21 lhld X2179 - 2531 1063 EB xchg - 2532 1064 2A 75 20 lhld X2075 - 2533 1067 72 mov m,d - 2534 1068 23 inx h - 2535 1069 73 mov m,e - 2536 106A 21 56 20 X106a: lxi h,X2056 - 2537 106D 22 58 20 shld X2058 - 2538 1070 22 75 20 shld X2075 - 2539 1073 C9 ret + 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 - 2541 1074 CD E3 13 X1074: call X13e3 - 2542 1077 E6 80 ani 80h - 2543 1079 32 57 21 sta X2157 - 2544 107C CD 8D 13 call X138d - 2545 107F 22 4E 21 shld X214e - 2546 1082 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 ;; - 2550 1083 70 memset: mov m,b ;; M <- B - 2551 1084 23 inx h ;; HL++ - 2552 1085 1B dcx d ;; DE-- - 2553 1086 7A mov a,d ;; - 2554 1087 B3 ora e ;; A = D | E - 2555 1088 C2 83 10 jnz memset ;; repeat if A != 0 - 2556 108B C9 ret + 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 - 2558 108C 0E 00 mvi c,0 - 2559 108E 21 51 20 X108e: lxi h,X2051 - 2560 1091 F3 di - 2561 1092 3A 65 20 lda X2065 - 2562 1095 B6 ora m - 2563 1096 FB ei - 2564 1097 CA A7 10 jz X10a7 - 2565 109A 79 mov a,c - 2566 109B 1F rar - 2567 109C C5 push b - 2568 109D DC 88 14 cc X1488 - 2569 10A0 CD 93 14 call X1493 - 2570 10A3 C1 pop b - 2571 10A4 C3 8E 10 jmp X108e + 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 - 2573 10A7 79 X10a7: mov a,c - 2574 10A8 17 ral - 2575 10A9 D0 rnc - 2576 10AA C3 91 11 jmp X1191 + 2574 10A7 79 X10a7: mov a,c + 2575 10A8 17 ral + 2576 10A9 D0 rnc + 2577 10AA C3 91 11 jmp X1191 - 2578 10AD 21 70 06 X10ad: lxi h,X0670 - 2579 10B0 22 04 20 shld X2004 - 2580 10B3 AF xra a - 2581 10B4 32 51 20 sta X2051 - 2582 10B7 32 65 20 sta X2065 - 2583 10BA 32 5A 20 sta X205a - 2584 10BD D3 A2 out 0a2h - 2585 10BF 3E 04 mvi a,4 - 2586 10C1 D3 A2 out 0a2h - 2587 10C3 CD 6A 10 call X106a - 2588 10C6 FB ei - 2589 10C7 3E 01 mvi a,1 - 2590 10C9 CD AA 0F call X0faa - 2591 10CC 21 D0 22 lxi h,X22d0 - 2592 10CF 7C mov a,h - 2593 10D0 C6 10 adi 10h - 2594 10D2 57 mov d,a - 2595 10D3 5D mov e,l - 2596 10D4 01 2F 0D lxi b,X0d2f - 2597 10D7 3A C7 21 X10d7: lda X21c7 - 2598 10DA 77 mov m,a - 2599 10DB 23 inx h - 2600 10DC 3E FF mvi a,0ffh - 2601 10DE 12 stax d - 2602 10DF 13 inx d - 2603 10E0 0B dcx b - 2604 10E1 78 mov a,b - 2605 10E2 B1 ora c - 2606 10E3 C2 D7 10 jnz X10d7 - 2607 10E6 3A C7 21 lda X21c7 - 2608 10E9 32 F4 20 sta X20f4 - 2609 10EC AF xra a - 2610 10ED 32 F9 20 sta X20f9 - 2611 10F0 32 F8 20 sta X20f8 - 2612 10F3 3E FF mvi a,0ffh - 2613 10F5 32 F5 20 sta X20f5 - 2614 10F8 C9 ret + 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 - 2616 10F9 AF X10f9: xra a - 2617 10FA 32 51 20 sta X2051 - 2618 10FD 3A 65 20 X10fd: lda X2065 - 2619 1100 B7 ora a - 2620 1101 C2 FD 10 jnz X10fd - 2621 1104 21 D0 22 lxi h,X22d0 - 2622 1107 06 00 mvi b,0 - 2623 1109 09 dad b - 2624 110A CD BF 11 call X11bf - 2625 110D 0C inr c - 2626 110E CD 36 11 call X1136 - 2627 1111 E5 push h - 2628 1112 06 01 mvi b,1 - 2629 1114 CD 36 11 call X1136 - 2630 1117 E1 pop h - 2631 1118 36 7F mvi m,7fh - 2632 111A 23 inx h - 2633 111B 22 54 20 shld X2054 - 2634 111E 36 70 mvi m,70h - 2635 1120 23 inx h - 2636 1121 36 06 mvi m,6 - 2637 1123 79 mov a,c - 2638 1124 CD DE 13 call X13de - 2639 1127 36 7F mvi m,7fh - 2640 1129 0D dcr c - 2641 112A 3E 03 mvi a,3 - 2642 112C 32 02 20 sta X2002 - 2643 112F 21 F2 D0 lxi h,Xd0f2 - 2644 1132 22 04 20 shld X2004 - 2645 1135 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 - 2647 1136 36 7F X1136: mvi m,7fh - 2648 1138 23 inx h - 2649 1139 54 mov d,h - 2650 113A 5D mov e,l - 2651 113B 13 inx d - 2652 113C 13 inx d - 2653 113D 7A mov a,d - 2654 113E F6 F0 ori 0f0h - 2655 1140 77 mov m,a - 2656 1141 23 inx h - 2657 1142 73 mov m,e - 2658 1143 79 mov a,c - 2659 1144 CD DE 13 call X13de - 2660 1147 05 dcr b - 2661 1148 C2 36 11 jnz X1136 - 2662 114B 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 - 2664 114C 21 C2 20 X114c: lxi h,X20c2 - 2665 114F 0C inr c - 2666 1150 0C inr c - 2667 1151 0C inr c - 2668 1152 11 D0 22 lxi d,X22d0 - 2669 1155 06 00 mvi b,0 - 2670 1157 3E 19 mvi a,19h - 2671 1159 73 X1159: mov m,e - 2672 115A 23 inx h - 2673 115B 72 mov m,d - 2674 115C 23 inx h - 2675 115D EB xchg - 2676 115E 09 dad b - 2677 115F EB xchg - 2678 1160 3D dcr a - 2679 1161 C2 59 11 jnz X1159 - 2680 1164 32 55 21 sta X2155 - 2681 1167 CD BF 11 call X11bf - 2682 116A 78 mov a,b - 2683 116B 32 56 21 sta X2156 - 2684 116E 3C inr a - 2685 116F 32 2B 21 sta X212b - 2686 1172 2A F2 20 lhld X20f2 - 2687 1175 3E 17 mvi a,17h - 2688 1177 B8 cmp b - 2689 1178 CA 7E 11 jz X117e - 2690 117B 2A DE 20 lhld X20de - 2691 117E 7C X117e: mov a,h - 2692 117F F6 F0 ori 0f0h - 2693 1181 67 mov h,a - 2694 1182 22 4E 20 shld scratch_start ; update [0x204e] - 2695 1185 21 13 21 lxi h,X2113 - 2696 1188 AF xra a - 2697 1189 77 X1189: mov m,a - 2698 118A 2C inr l - 2699 118B 3C inr a - 2700 118C 05 dcr b - 2701 118D F2 89 11 jp X1189 - 2702 1190 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 - 2704 1191 F3 X1191: di - 2705 1192 3A 7A 20 lda X207a - 2706 1195 B7 ora a - 2707 1196 CA A0 11 jz X11a0 - 2708 1199 FB X1199: ei - 2709 119A CD 88 14 call X1488 - 2710 119D C3 91 11 jmp X1191 + 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 - 2712 11A0 3A 65 20 X11a0: lda X2065 - 2713 11A3 B7 ora a - 2714 11A4 C2 B0 11 jnz X11b0 - 2715 11A7 3A 51 20 lda X2051 - 2716 11AA B7 ora a - 2717 11AB FB ei - 2718 11AC C8 rz - 2719 11AD C3 99 11 jmp X1199 + 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 - 2721 11B0 3A 5B 20 X11b0: lda X205b - 2722 11B3 21 5A 20 lxi h,X205a - 2723 11B6 86 add m - 2724 11B7 27 daa - 2725 11B8 E6 0F ani 0fh - 2726 11BA CA 99 11 jz X1199 - 2727 11BD FB ei - 2728 11BE C9 ret + 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 - 2730 11BF E5 X11bf: push h - 2731 11C0 06 17 mvi b,17h - 2732 11C2 3A A2 21 lda X21a2 - 2733 11C5 21 C8 21 lxi h,X21c8 - 2734 11C8 A6 ana m - 2735 11C9 E1 pop h - 2736 11CA C8 rz - 2737 11CB 06 0D mvi b,0dh - 2738 11CD 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 - 2740 11CE B7 X11ce: ora a - 2741 11CF F2 E8 11 jp X11e8 - 2742 11D2 21 04 20 lxi h,X2004 - 2743 11D5 E5 push h - 2744 11D6 7E mov a,m - 2745 11D7 23 inx h - 2746 11D8 6E mov l,m - 2747 11D9 F6 F0 ori 0f0h - 2748 11DB 67 mov h,a - 2749 11DC 22 4E 20 shld scratch_start ; update [0x204e] - 2750 11DF CD 90 12 call X1290 - 2751 11E2 E1 pop h - 2752 11E3 42 mov b,d - 2753 11E4 4B mov c,e - 2754 11E5 C3 0A 12 jmp X120a + 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 - 2756 11E8 CD 7F 12 X11e8: call X127f - 2757 11EB CD 90 12 call X1290 - 2758 11EE E5 push h - 2759 11EF D5 push d - 2760 11F0 EB xchg - 2761 11F1 CD 90 12 call X1290 - 2762 11F4 42 mov b,d - 2763 11F5 4B mov c,e - 2764 11F6 D1 pop d - 2765 11F7 7A mov a,d - 2766 11F8 F6 F0 ori 0f0h - 2767 11FA 67 mov h,a - 2768 11FB 6B mov l,e - 2769 11FC 22 4E 20 shld scratch_start ; update [0x204e] - 2770 11FF E1 pop h - 2771 1200 7C mov a,h - 2772 1201 F6 9F ori 9fh - 2773 1203 3C inr a - 2774 1204 C2 11 12 jnz X1211 - 2775 1207 CD 99 12 call X1299 - 2776 120A F3 X120a: di - 2777 120B 22 75 20 shld X2075 - 2778 120E C3 28 12 jmp X1228 + 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 - 2780 1211 CD 9D 12 X1211: call X129d - 2781 1214 3A 50 20 lda X2050 - 2782 1217 0F rrc - 2783 1218 57 mov d,a - 2784 1219 CD DE 13 call X13de - 2785 121C 23 inx h - 2786 121D F3 di - 2787 121E 22 75 20 shld X2075 - 2788 1221 7A mov a,d - 2789 1222 CD DE 13 call X13de - 2790 1225 70 mov m,b - 2791 1226 23 inx h - 2792 1227 71 mov m,c - 2793 1228 60 X1228: mov h,b - 2794 1229 69 mov l,c - 2795 122A 22 79 21 shld X2179 - 2796 122D FB ei - 2797 122E C9 ret + 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 - 2799 122F F5 X122f: push psw - 2800 1230 CD BE 0F call X0fbe - 2801 1233 F1 pop psw - 2802 1234 B7 ora a - 2803 1235 21 04 20 lxi h,X2004 - 2804 1238 FA 48 12 jm X1248 - 2805 123B CD 7F 12 call X127f - 2806 123E 7C mov a,h - 2807 123F F6 9F ori 9fh - 2808 1241 3C inr a - 2809 1242 C2 52 12 jnz X1252 - 2810 1245 CD 99 12 call X1299 - 2811 1248 F3 X1248: di - 2812 1249 22 58 20 shld X2058 - 2813 124C 46 mov b,m - 2814 124D 23 inx h - 2815 124E 4E mov c,m - 2816 124F C3 71 12 jmp X1271 + 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 - 2818 1252 CD 9D 12 X1252: call X129d - 2819 1255 3A 50 20 lda X2050 - 2820 1258 0F rrc - 2821 1259 47 mov b,a - 2822 125A CD DE 13 call X13de - 2823 125D 23 inx h - 2824 125E F3 di - 2825 125F 22 58 20 shld X2058 - 2826 1262 78 mov a,b - 2827 1263 46 mov b,m - 2828 1264 23 inx h - 2829 1265 4E mov c,m - 2830 1266 CD DE 13 call X13de - 2831 1269 EB xchg - 2832 126A 2A 4E 20 lhld scratch_start ; load [0x204e] - 2833 126D EB xchg - 2834 126E 73 mov m,e - 2835 126F 2B dcx h - 2836 1270 72 mov m,d - 2837 1271 2A 4E 20 X1271: lhld scratch_start ; load [0x204e] - 2838 1274 22 56 20 shld X2056 - 2839 1277 CD 99 12 call X1299 - 2840 127A 70 mov m,b - 2841 127B 23 inx h - 2842 127C 71 mov m,c - 2843 127D FB ei - 2844 127E C9 ret + 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 - 2846 127F 3C X127f: inr a - 2847 1280 47 mov b,a - 2848 1281 21 04 20 lxi h,X2004 - 2849 1284 7E X1284: mov a,m - 2850 1285 23 inx h - 2851 1286 6E mov l,m - 2852 1287 67 mov h,a - 2853 1288 05 dcr b - 2854 1289 C8 rz - 2855 128A CD 99 12 call X1299 - 2856 128D C3 84 12 jmp X1284 + 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 - 2858 1290 E5 X1290: push h - 2859 1291 CD 99 12 call X1299 - 2860 1294 56 mov d,m - 2861 1295 23 inx h - 2862 1296 5E mov e,m - 2863 1297 E1 pop h - 2864 1298 C9 ret + 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 - 2866 1299 CD DB 13 X1299: call X13db - 2867 129C 23 inx h - 2868 129D 7C X129d: mov a,h - 2869 129E E6 0F ani 0fh - 2870 12A0 F6 20 ori 20h - 2871 12A2 67 mov h,a - 2872 12A3 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 - 2874 12A4 CD B0 12 call X12b0 - 2875 12A7 50 mov d,b - 2876 12A8 CD B0 12 call X12b0 - 2877 12AB db 30h + 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 - 2878 12AC CD B0 12 call X12b0 - 2879 12AF db 10h + 2879 12AC CD B0 12 call X12b0 + 2880 12AF db 10h 10 - 2880 12B0 CD 91 11 X12b0: call X1191 - 2881 12B3 21 13 21 lxi h,X2113 - 2882 12B6 3A F9 20 lda X20f9 - 2883 12B9 85 add l - 2884 12BA 6F mov l,a - 2885 12BB 7E mov a,m - 2886 12BC F6 80 ori 80h - 2887 12BE 77 mov m,a - 2888 12BF CD 8D 13 call X138d - 2889 12C2 CD C3 13 call X13c3 - 2890 12C5 E1 pop h - 2891 12C6 7E mov a,m - 2892 12C7 CD 95 13 call X1395 - 2893 12CA 3A 53 21 lda X2153 - 2894 12CD 21 F8 20 lxi h,X20f8 - 2895 12D0 B7 ora a - 2896 12D1 1F rar - 2897 12D2 BE cmp m - 2898 12D3 D2 12 10 jnc X1012 - 2899 12D6 21 F4 20 lxi h,X20f4 - 2900 12D9 22 F6 20 shld X20f6 - 2901 12DC C3 12 10 jmp X1012 + 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 - 2903 12DF 3A 30 21 lda X2130 - 2904 12E2 FE 02 cpi 2 - 2905 12E4 D0 rnc - 2906 12E5 32 76 21 sta X2176 - 2907 12E8 21 72 21 X12e8: lxi h,X2172 - 2908 12EB 7E mov a,m - 2909 12EC F6 02 ori 2 - 2910 12EE 77 mov m,a - 2911 12EF C9 ret + 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 - 2913 12F0 3E FD mvi a,0fdh - 2914 12F2 CD BF 0D call X0dbf - 2915 12F5 3A 76 21 lda X2176 - 2916 12F8 F6 32 ori 32h - 2917 12FA CD B9 0D call X0db9 - 2918 12FD 3A A9 21 lda X21a9 - 2919 1300 F5 push psw - 2920 1301 E6 C0 ani 0c0h - 2921 1303 F6 18 ori 18h - 2922 1305 87 add a - 2923 1306 3C inr a - 2924 1307 F2 10 13 jp X1310 - 2925 130A 1F rar - 2926 130B 07 rlc - 2927 130C F6 04 ori 4 - 2928 130E E6 7F ani 7fh - 2929 1310 CD B9 0D X1310: call X0db9 - 2930 1313 06 31 mvi b,31h - 2931 1315 F1 pop psw - 2932 1316 E6 20 ani 20h - 2933 1318 C2 1C 13 jnz X131c - 2934 131B 04 inr b - 2935 131C 78 X131c: mov a,b - 2936 131D CD B9 0D call X0db9 - 2937 1320 3A AB 21 lda X21ab - 2938 1323 0F rrc - 2939 1324 CD 7A 0D call X0d7a - 2940 1327 CD BB 0D call X0dbb - 2941 132A 3A AC 21 lda X21ac - 2942 132D 0F rrc - 2943 132E CD 7A 0D call X0d7a - 2944 1331 CD BB 0D call X0dbb - 2945 1334 3E 31 mvi a,31h - 2946 1336 CD B9 0D call X0db9 - 2947 1339 3A AA 21 lda X21aa - 2948 133C E6 F0 ani 0f0h - 2949 133E 0F rrc - 2950 133F 0F rrc - 2951 1340 0F rrc - 2952 1341 0F rrc - 2953 1342 CD 7A 0D call X0d7a - 2954 1345 36 F8 mvi m,0f8h - 2955 1347 C3 F3 0E jmp X0ef3 + 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 - 2957 134A 21 57 21 X134a: lxi h,X2157 - 2958 134D 7E mov a,m - 2959 134E B7 ora a - 2960 134F C8 rz - 2961 1350 CD 91 11 call X1191 - 2962 1353 21 13 21 lxi h,X2113 - 2963 1356 3A F9 20 lda X20f9 - 2964 1359 85 add l - 2965 135A 6F mov l,a - 2966 135B 7E mov a,m - 2967 135C E6 7F ani 7fh - 2968 135E 77 mov m,a - 2969 135F CD 8D 13 call X138d - 2970 1362 3A 50 20 lda X2050 - 2971 1365 0F rrc - 2972 1366 47 mov b,a - 2973 1367 CD DE 13 call X13de - 2974 136A AF xra a - 2975 136B 77 X136b: mov m,a - 2976 136C 23 inx h - 2977 136D 05 dcr b - 2978 136E C2 6B 13 jnz X136b - 2979 1371 3E F0 mvi a,0f0h - 2980 1373 32 0E 21 sta X210e - 2981 1376 CD 95 13 call X1395 - 2982 1379 AF xra a - 2983 137A 32 57 21 sta X2157 - 2984 137D C3 36 16 jmp X1636 + 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 - 2986 1380 3A F9 20 X1380: lda X20f9 - 2987 1383 CD E6 13 call X13e6 - 2988 1386 21 C2 20 X1386: lxi h,X20c2 - 2989 1389 87 add a - 2990 138A 85 add l - 2991 138B 6F mov l,a - 2992 138C C9 ret + 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 - 2994 138D CD 80 13 X138d: call X1380 - 2995 1390 7E X1390: mov a,m - 2996 1391 23 inx h - 2997 1392 66 mov h,m - 2998 1393 6F mov l,a - 2999 1394 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 - 3001 1395 E6 70 X1395: ani 70h - 3002 1397 47 mov b,a - 3003 1398 3A F9 20 lda X20f9 - 3004 139B 3D dcr a - 3005 139C 21 04 20 lxi h,X2004 - 3006 139F FA BD 13 jm X13bd - 3007 13A2 CD E6 13 call X13e6 - 3008 13A5 57 mov d,a - 3009 13A6 E6 7F ani 7fh - 3010 13A8 CD 86 13 call X1386 - 3011 13AB CD 90 13 call X1390 - 3012 13AE 3A 50 20 lda X2050 - 3013 13B1 0F rrc - 3014 13B2 5F mov e,a - 3015 13B3 23 inx h - 3016 13B4 14 inr d - 3017 13B5 15 dcr d - 3018 13B6 16 00 mvi d,0 - 3019 13B8 19 dad d - 3020 13B9 FC BD 13 cm X13bd - 3021 13BC 19 dad d - 3022 13BD 7E X13bd: mov a,m - 3023 13BE E6 8F ani 8fh - 3024 13C0 B0 ora b - 3025 13C1 77 mov m,a - 3026 13C2 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 - 3028 13C3 3A 50 20 X13c3: lda X2050 - 3029 13C6 0F rrc - 3030 13C7 54 mov d,h - 3031 13C8 5D mov e,l - 3032 13C9 CD DE 13 call X13de - 3033 13CC EB xchg - 3034 13CD CD DB 13 call X13db - 3035 13D0 06 03 mvi b,3 - 3036 13D2 7E X13d2: mov a,m - 3037 13D3 12 stax d - 3038 13D4 13 inx d - 3039 13D5 23 inx h - 3040 13D6 05 dcr b - 3041 13D7 C2 D2 13 jnz X13d2 - 3042 13DA 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 - 3044 13DB 3A 50 20 X13db: lda X2050 - 3045 13DE 85 X13de: add l - 3046 13DF 6F mov l,a - 3047 13E0 D0 rnc - 3048 13E1 24 inr h - 3049 13E2 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 - 3051 13E3 3A F9 20 X13e3: lda X20f9 - 3052 13E6 21 13 21 X13e6: lxi h,X2113 - 3053 13E9 85 add l - 3054 13EA 6F mov l,a - 3055 13EB 7E mov a,m - 3056 13EC 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 - 3058 13ED 0E 00 mvi c,0 - 3059 13EF C3 F4 13 jmp X13f4 + 3059 13ED 0E 00 mvi c,0 + 3060 13EF C3 F4 13 jmp X13f4 - 3061 13F2 0E FF mvi c,0ffh - 3062 13F4 3A B8 21 X13f4: lda X21b8 - 3063 13F7 B7 ora a - 3064 13F8 21 26 14 lxi h,X1426 - 3065 13FB CA 04 14 jz X1404 - 3066 13FE FE 3F cpi 3fh - 3067 1400 C0 rnz - 3068 1401 21 0A 14 lxi h,X140a - 3069 1404 78 X1404: mov a,b - 3070 1405 41 mov b,c - 3071 1406 CD FF 09 call X09ff - 3072 1409 C9 ret + 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 - 3074 140A 01 2A 14 X140a: lxi b,X142a - 3075 140D 02 stax b - 3076 140E 2F cma - 3077 140F 14 inr d - 3078 1410 03 inx b - 3079 1411 57 mov d,a - 3080 1412 14 inr d - 3081 1413 04 inr b - 3082 1414 47 mov b,a - 3083 1415 14 inr d - 3084 1416 05 dcr b - 3085 1417 4E mov c,m - 3086 1418 14 inr d - 3087 1419 06 3F mvi b,3fh - 3088 141B 14 inr d - 3089 141C 07 rlc - 3090 141D 66 mov h,m - 3091 141E 14 inr d - 3092 141F db 8 + 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 - 3093 1420 5F mov e,a - 3094 1421 14 inr d - 3095 1422 09 dad b - 3096 1423 6D mov l,l - 3097 1424 14 inr d - 3098 1425 00 nop - 3099 1426 14 X1426: inr d - 3100 1427 db 38h + 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 - 3101 1428 14 inr d - 3102 1429 00 nop - 3103 142A 21 BC 21 X142a: lxi h,X21bc - 3104 142D 70 mov m,b - 3105 142E C9 ret + 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 - 3107 142F CD 76 14 call X1476 - 3108 1432 A7 ana a - 3109 1433 21 20 C3 lxi h,Xc320 - 3110 1436 F2 0B CD jp Xcd0b - 3111 1439 76 hlt + 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 - 3113 143A 14 inr d - 3114 143B A8 xra b - 3115 143C 21 20 C9 lxi h,Xc920 - 3116 143F 21 01 21 lxi h,X2101 - 3117 1442 70 mov m,b - 3118 1443 CD 48 18 call X1848 - 3119 1446 C9 ret + 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 - 3121 1447 CD 76 14 call X1476 - 3122 144A A6 ana m - 3123 144B 21 80 C9 lxi h,Xc980 - 3124 144E CD 76 14 call X1476 - 3125 1451 A6 ana m - 3126 1452 21 20 C3 lxi h,Xc320 - 3127 1455 6B mov l,e - 3128 1456 03 inx b - 3129 1457 21 A2 21 lxi h,X21a2 - 3130 145A 70 mov m,b - 3131 145B CD 81 03 call X0381 - 3132 145E 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 - 3134 145F CD 76 14 call X1476 - 3135 1462 A6 ana m - 3136 1463 21 40 C9 lxi h,Xc940 - 3137 1466 CD 76 14 call X1476 - 3138 1469 A8 xra b - 3139 146A 21 40 C9 lxi h,Xc940 - 3140 146D CD 76 14 call X1476 - 3141 1470 A8 xra b - 3142 1471 21 10 C3 lxi h,Xc310 - 3143 1474 42 mov b,d - 3144 1475 03 inx b - 3145 1476 E1 X1476: pop h - 3146 1477 5E mov e,m - 3147 1478 23 inx h - 3148 1479 56 mov d,m - 3149 147A 23 inx h - 3150 147B 7E mov a,m - 3151 147C 23 inx h - 3152 147D EB xchg - 3153 147E 4F mov c,a - 3154 147F 2F cma - 3155 1480 A6 ana m - 3156 1481 77 mov m,a - 3157 1482 78 mov a,b - 3158 1483 A1 ana c - 3159 1484 B6 ora m - 3160 1485 77 mov m,a - 3161 1486 EB xchg - 3162 1487 E9 pchl + 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 - 3164 1488 CD 93 14 X1488: call X1493 - 3165 148B E6 10 ani 10h - 3166 148D CC AA 06 cz X06aa - 3167 1490 C3 59 0E jmp X0e59 + 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 ;; - 3171 1493 DB 42 X1493: in 42h ;; Read flags buffer - 3172 1495 E6 80 ani 80h ;; check if transmit buffer is empty - 3173 1497 C8 rz ;; if zero, return - 3174 1498 21 44 21 lxi h,X2144 ;; HL = 0x2144 - 3175 149B 7E mov a,m ;; Load from 2144 - 3176 149C B7 ora a ;; Check if zero - 3177 149D CA A2 14 jz X14a2 ;; - 3178 14A0 3E 10 mvi a,10h ;; If not, A = 10 (else A is zero) - 3179 14A2 21 A5 21 X14a2: lxi h,X21a5 ;; - 3180 14A5 B6 ora m ;; or bits from 0x21a5 - 3181 14A6 21 45 21 lxi h,X2145 ;; - 3182 14A9 B6 ora m ;; or bits from 0x2145 - 3183 14AA 23 inx h ;; - 3184 14AB B6 ora m ;; ... and 0x2146 - 3185 14AC 23 inx h ;; - 3186 14AD B6 ora m ;; ... and 0x2147 - 3187 14AE 36 00 mvi m,0 ;; zero 0x2147 - 3188 14B0 23 inx h ;; - 3189 14B1 B6 ora m ;; ... and 0x2148 - 3190 14B2 36 00 mvi m,0 ;; zero 0x2148 - 3191 14B4 D3 82 out 82h ;; Write to keyboard buffer - 3192 14B6 21 74 20 lxi h,X2074 ;; - 3193 14B9 34 inr m ;; Increment what's at 0x2074 - 3194 14BA 3A 77 20 lda X2077 ;; load what's at 0x2077 - 3195 14BD B7 ora a ;; return if it's not zero - 3196 14BE C0 rnz ;; - 3197 14BF 3A 65 20 lda X2065 ;; A = [0x2065] - 3198 14C2 21 51 20 lxi h,X2051 ;; - 3199 14C5 B6 ora m ;; return if [0x2065] | [0x2051] != 0 - 3200 14C6 C0 rnz + 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 - 3202 14C7 2A 2D 21 lhld cursor_countdn ; HL = cursor countdown from [0x212d] - 3203 14CA 2B dcx h - 3204 14CB 7C mov a,h - 3205 14CC B5 ora l - 3206 14CD CA D4 14 jz X14d4 - 3207 14D0 22 2D 21 shld cursor_countdn ; update cursor countdown with decremented value - 3208 14D3 C9 ret + 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 ; - 3213 14D4 3A BA 21 X14d4: lda cursor_visible ; A = 0xff (visible) or 0x00 (invisible) - 3214 14D7 EE FF xri 0ffh ; invert - 3215 14D9 32 BA 21 sta cursor_visible ; - 3216 14DC 21 12 02 lxi h,212h ; new initial count; start with 0x0212 - 3217 14DF C2 E5 14 jnz X14e5 ; and stick with that if cursor still visible - 3218 14E2 21 09 01 lxi h,109h ; otherwise, use half that value (0x0109) if invisible - 3219 14E5 22 2D 21 X14e5: shld cursor_countdn ; store new cursor countdown - 3220 14E8 2A F6 20 lhld X20f6 - 3221 14EB 46 mov b,m - 3222 14EC 3A 59 21 lda X2159 - 3223 14EF A8 xra b - 3224 14F0 77 mov m,a - 3225 14F1 11 00 10 lxi d,X1000 - 3226 14F4 19 dad d - 3227 14F5 3A 5A 21 lda X215a - 3228 14F8 AE xra m - 3229 14F9 77 mov m,a - 3230 14FA C9 ret + 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 - 3232 14FB 74 mov m,h - 3233 14FC 78 mov a,b - 3234 14FD B7 ora a - 3235 14FE CA 15 15 jz X1515 - 3236 1501 3D dcr a - 3237 1502 CA 0A 15 jz X150a - 3238 1505 3D dcr a - 3239 1506 C0 rnz - 3240 1507 CD 15 15 call X1515 - 3241 150A 3A F8 20 X150a: lda X20f8 - 3242 150D 47 mov b,a - 3243 150E 04 inr b - 3244 150F 2A 4E 21 lhld X214e - 3245 1512 C3 29 15 jmp X1529 + 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 - 3247 1515 3A F8 20 X1515: lda X20f8 - 3248 1518 47 mov b,a - 3249 1519 3A 57 21 lda X2157 - 3250 151C B7 ora a - 3251 151D 3A 50 20 lda X2050 - 3252 1520 CA 24 15 jz X1524 - 3253 1523 0F rrc - 3254 1524 90 X1524: sub b - 3255 1525 47 mov b,a - 3256 1526 2A F6 20 lhld X20f6 - 3257 1529 7C X1529: mov a,h - 3258 152A C6 10 adi 10h - 3259 152C 57 mov d,a - 3260 152D 5D mov e,l - 3261 152E 3E FF mvi a,0ffh - 3262 1530 12 X1530: stax d - 3263 1531 36 00 mvi m,0 - 3264 1533 23 inx h - 3265 1534 13 inx d - 3266 1535 05 dcr b - 3267 1536 C2 30 15 jnz X1530 - 3268 1539 32 F5 20 sta X20f5 - 3269 153C AF xra a - 3270 153D 32 F4 20 sta X20f4 - 3271 1540 C9 ret + 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 - 3273 1541 78 mov a,b - 3274 1542 B7 ora a - 3275 1543 CA 6A 15 jz X156a - 3276 1546 3D dcr a - 3277 1547 CA 55 15 jz X1555 - 3278 154A 3D dcr a - 3279 154B C0 rnz - 3280 154C CD 55 15 call X1555 - 3281 154F CD 6A 15 call X156a - 3282 1552 C3 4A 13 jmp X134a + 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 - 3284 1555 21 F9 20 X1555: lxi h,X20f9 - 3285 1558 7E mov a,m - 3286 1559 F5 push psw - 3287 155A 47 mov b,a - 3288 155B AF xra a - 3289 155C 77 mov m,a - 3290 155D 0E FF mvi c,0ffh - 3291 155F CD 86 15 call X1586 - 3292 1562 F1 pop psw - 3293 1563 77 mov m,a - 3294 1564 CD 74 10 call X1074 - 3295 1567 C3 0A 15 jmp X150a + 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 - 3297 156A 3A F8 20 X156a: lda X20f8 - 3298 156D B7 ora a - 3299 156E CC 4A 13 cz X134a - 3300 1571 CD 15 15 call X1515 - 3301 1574 21 F9 20 lxi h,X20f9 - 3302 1577 7E mov a,m - 3303 1578 F5 push psw - 3304 1579 4F mov c,a - 3305 157A 3E 17 mvi a,17h - 3306 157C 91 sub c - 3307 157D 47 mov b,a - 3308 157E CD 86 15 call X1586 - 3309 1581 F1 pop psw - 3310 1582 77 mov m,a - 3311 1583 C3 74 10 jmp X1074 + 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 - 3313 1586 05 X1586: dcr b - 3314 1587 F8 rm - 3315 1588 0C inr c - 3316 1589 71 mov m,c - 3317 158A C5 push b - 3318 158B E5 push h - 3319 158C CD E3 13 call X13e3 - 3320 158F E6 7F ani 7fh - 3321 1591 77 mov m,a - 3322 1592 3E 70 mvi a,70h - 3323 1594 CD 95 13 call X1395 - 3324 1597 CD 74 10 call X1074 - 3325 159A 3A 50 20 lda X2050 - 3326 159D 47 mov b,a - 3327 159E CD 29 15 call X1529 - 3328 15A1 E1 pop h - 3329 15A2 C1 pop b - 3330 15A3 C3 86 15 jmp X1586 + 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 - 3332 15A6 0E 81 mvi c,81h - 3333 15A8 CD 8E 10 call X108e - 3334 15AB CD BF 11 call X11bf - 3335 15AE 3A 30 21 lda X2130 - 3336 15B1 B7 ora a - 3337 15B2 CA B6 15 jz X15b6 - 3338 15B5 3D dcr a - 3339 15B6 57 X15b6: mov d,a - 3340 15B7 3A 31 21 lda X2131 - 3341 15BA B7 ora a - 3342 15BB C2 C0 15 jnz X15c0 - 3343 15BE 78 mov a,b - 3344 15BF 3C inr a - 3345 15C0 3D X15c0: dcr a - 3346 15C1 5F mov e,a - 3347 15C2 78 mov a,b - 3348 15C3 BB cmp e - 3349 15C4 D8 rc - 3350 15C5 7A mov a,d - 3351 15C6 BB cmp e - 3352 15C7 D0 rnc - 3353 15C8 21 55 21 lxi h,X2155 - 3354 15CB 72 mov m,d - 3355 15CC 23 inx h - 3356 15CD 73 mov m,e - 3357 15CE 4B mov c,e - 3358 15CF 42 mov b,d - 3359 15D0 79 mov a,c - 3360 15D1 90 sub b - 3361 15D2 3C inr a - 3362 15D3 5F mov e,a - 3363 15D4 21 04 20 lxi h,X2004 - 3364 15D7 78 mov a,b - 3365 15D8 B7 ora a - 3366 15D9 CA E8 15 jz X15e8 - 3367 15DC 50 mov d,b - 3368 15DD 7E X15dd: mov a,m - 3369 15DE E6 7F ani 7fh - 3370 15E0 77 mov m,a - 3371 15E1 CD 2B 16 call X162b - 3372 15E4 15 dcr d - 3373 15E5 C2 DD 15 jnz X15dd - 3374 15E8 7E X15e8: mov a,m - 3375 15E9 F6 80 ori 80h - 3376 15EB 77 mov m,a - 3377 15EC CD 2B 16 call X162b - 3378 15EF 1D dcr e - 3379 15F0 C2 E8 15 jnz X15e8 - 3380 15F3 3E 17 mvi a,17h - 3381 15F5 91 sub c - 3382 15F6 CA 05 16 jz X1605 - 3383 15F9 57 mov d,a - 3384 15FA 7E X15fa: mov a,m - 3385 15FB E6 7F ani 7fh - 3386 15FD 77 mov m,a - 3387 15FE CD 2B 16 call X162b - 3388 1601 15 dcr d - 3389 1602 C2 FA 15 jnz X15fa - 3390 1605 78 X1605: mov a,b - 3391 1606 32 55 21 sta X2155 - 3392 1609 79 mov a,c - 3393 160A 32 56 21 sta X2156 - 3394 160D 21 13 21 lxi h,X2113 - 3395 1610 0E 18 mvi c,18h - 3396 1612 7E X1612: mov a,m - 3397 1613 B7 ora a - 3398 1614 F2 23 16 jp X1623 - 3399 1617 E5 push h - 3400 1618 CD 86 13 call X1386 - 3401 161B 7E mov a,m - 3402 161C 23 inx h - 3403 161D 66 mov h,m - 3404 161E 6F mov l,a - 3405 161F CD C3 13 call X13c3 - 3406 1622 E1 pop h - 3407 1623 23 X1623: inx h - 3408 1624 0D dcr c - 3409 1625 C2 12 16 jnz X1612 - 3410 1628 C3 48 18 jmp X1848 + 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 - 3412 162B 23 X162b: inx h - 3413 162C 6E mov l,m - 3414 162D E6 0F ani 0fh - 3415 162F F6 20 ori 20h - 3416 1631 67 mov h,a - 3417 1632 23 inx h - 3418 1633 C3 DB 13 jmp X13db + 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 - 3420 1636 21 0D 00 X1636: lxi h,13 - 3421 1639 22 2D 21 shld cursor_countdn ; reset cursor countdown to 13 (0x000d) - 3422 163C AF xra a - 3423 163D 32 BA 21 sta cursor_visible ; reset cursor visibility - 3424 1640 2A F6 20 lhld X20f6 - 3425 1643 3A F4 20 lda X20f4 - 3426 1646 47 mov b,a - 3427 1647 77 mov m,a - 3428 1648 7C mov a,h - 3429 1649 C6 10 adi 10h - 3430 164B 67 mov h,a - 3431 164C 3A F5 20 lda X20f5 - 3432 164F 77 mov m,a - 3433 1650 3A 50 20 lda X2050 - 3434 1653 3D dcr a - 3435 1654 5F mov e,a - 3436 1655 3A 7B 20 lda X207b - 3437 1658 B7 ora a - 3438 1659 C2 7B 16 jnz X167b - 3439 165C 3A F9 20 lda X20f9 - 3440 165F 21 0E 21 lxi h,X210e - 3441 1662 BE cmp m - 3442 1663 CA 7F 16 jz X167f - 3443 1666 77 mov m,a - 3444 1667 CD 74 10 call X1074 - 3445 166A AF xra a - 3446 166B 32 54 21 sta X2154 - 3447 166E 21 57 21 lxi h,X2157 - 3448 1671 7E mov a,m - 3449 1672 B7 ora a - 3450 1673 CA 7B 16 jz X167b - 3451 1676 7B mov a,e - 3452 1677 3D dcr a - 3453 1678 B7 ora a - 3454 1679 1F rar - 3455 167A 5F mov e,a - 3456 167B 7B X167b: mov a,e - 3457 167C 32 53 21 sta X2153 - 3458 167F 21 53 21 X167f: lxi h,X2153 - 3459 1682 11 F8 20 lxi d,X20f8 - 3460 1685 1A ldax d - 3461 1686 BE cmp m - 3462 1687 DA 8C 16 jc X168c - 3463 168A 7E mov a,m - 3464 168B 12 stax d - 3465 168C 3A BB 21 X168c: lda X21bb - 3466 168F C6 08 adi 8 - 3467 1691 96 sub m - 3468 1692 C2 A1 16 jnz X16a1 - 3469 1695 23 inx h - 3470 1696 B6 ora m - 3471 1697 CA A1 16 jz X16a1 - 3472 169A CD 38 09 call X0938 - 3473 169D AF xra a - 3474 169E 32 54 21 sta X2154 - 3475 16A1 3A F8 20 X16a1: lda X20f8 - 3476 16A4 32 BB 21 sta X21bb - 3477 16A7 2A 4E 21 lhld X214e - 3478 16AA CD DE 13 call X13de - 3479 16AD 22 F6 20 shld X20f6 - 3480 16B0 7E mov a,m - 3481 16B1 32 F4 20 sta X20f4 - 3482 16B4 47 mov b,a - 3483 16B5 7C mov a,h - 3484 16B6 C6 10 adi 10h - 3485 16B8 67 mov h,a - 3486 16B9 7E mov a,m - 3487 16BA 32 F5 20 sta X20f5 - 3488 16BD 2A F6 20 lhld X20f6 - 3489 16C0 70 mov m,b - 3490 16C1 C9 ret + 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 - 3492 16C2 47 X16c2: mov b,a - 3493 16C3 21 F1 16 lxi h,X16f1 - 3494 16C6 22 40 21 shld X2140 - 3495 16C9 AF xra a - 3496 16CA 32 2F 21 sta X212f - 3497 16CD 32 4B 21 sta X214b - 3498 16D0 32 7D 20 sta X207d - 3499 16D3 21 30 21 lxi h,X2130 - 3500 16D6 0E 0F mvi c,0fh - 3501 16D8 AF xra a - 3502 16D9 77 X16d9: mov m,a - 3503 16DA 23 inx h - 3504 16DB 0D dcr c - 3505 16DC C2 D9 16 jnz X16d9 - 3506 16DF 21 B8 21 lxi h,X21b8 - 3507 16E2 36 00 mvi m,0 - 3508 16E4 78 mov a,b - 3509 16E5 FE 40 cpi 40h - 3510 16E7 D2 F2 16 jnc X16f2 - 3511 16EA FE 3C cpi 3ch - 3512 16EC DA F2 16 jc X16f2 - 3513 16EF 77 mov m,a - 3514 16F0 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 - 3516 16F1 47 X16f1: mov b,a - 3517 16F2 78 X16f2: mov a,b - 3518 16F3 FE 3A cpi 3ah - 3519 16F5 D2 17 17 jnc X1717 - 3520 16F8 D6 30 sui 30h - 3521 16FA FA 17 17 jm X1717 - 3522 16FD 4F mov c,a - 3523 16FE 21 2F 21 lxi h,X212f - 3524 1701 7E mov a,m - 3525 1702 FE 1A cpi 1ah - 3526 1704 D2 13 17 jnc X1713 - 3527 1707 07 rlc - 3528 1708 47 mov b,a - 3529 1709 07 rlc - 3530 170A 07 rlc - 3531 170B 80 add b - 3532 170C DA 13 17 jc X1713 - 3533 170F 81 add c - 3534 1710 D2 15 17 jnc X1715 - 3535 1713 3E FF X1713: mvi a,0ffh - 3536 1715 77 X1715: mov m,a - 3537 1716 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 - 3539 1717 11 30 21 X1717: lxi d,X2130 - 3540 171A F5 push psw - 3541 171B 21 4B 21 lxi h,X214b - 3542 171E 4E mov c,m - 3543 171F 06 00 mvi b,0 - 3544 1721 EB xchg - 3545 1722 09 dad b - 3546 1723 01 2F 21 lxi b,X212f - 3547 1726 0A ldax b - 3548 1727 77 mov m,a - 3549 1728 AF xra a - 3550 1729 02 stax b - 3551 172A 1A ldax d - 3552 172B FE 0F cpi 0fh - 3553 172D CA 32 17 jz X1732 - 3554 1730 3C inr a - 3555 1731 12 stax d - 3556 1732 F1 X1732: pop psw - 3557 1733 47 X1733: mov b,a - 3558 1734 FE 3B cpi 3bh - 3559 1736 C8 rz - 3560 1737 E6 C0 ani 0c0h - 3561 1739 78 mov a,b - 3562 173A CA 43 17 jz X1743 - 3563 173D 32 7E 20 sta X207e - 3564 1740 C3 A2 0A jmp X0aa2 + 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 - 3566 1743 21 7D 20 X1743: lxi h,X207d - 3567 1746 86 add m - 3568 1747 D2 4C 17 jnc X174c - 3569 174A 3E FF mvi a,0ffh - 3570 174C 77 X174c: mov m,a - 3571 174D 21 33 17 lxi h,X1733 - 3572 1750 22 40 21 shld X2140 - 3573 1753 C9 ret + 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 - 3575 1754 16 00 X1754: mvi d,0 - 3576 1756 06 01 mvi b,1 - 3577 1758 C3 62 17 jmp X1762 + 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? ;; - 3581 175B CD C0 02 X175b: call X02c0 ;; Initialize start of screen RAM and wipe attribute RAM to 0xff - 3582 175E 06 0A mvi b,0ah ;; B = 0x0a - 3583 1760 16 01 mvi d,1 ;; D = 1 - 3584 1762 C5 X1762: push b ;; push B, D - 3585 1763 D5 push d ;; - 3586 1764 CD BE 17 call X17be ;; Display wait message - 3587 1767 D1 pop d ;; pop D - 3588 1768 F3 di ;; disable interrupts(???) - 3589 1769 21 7B 21 lxi h,X217b ;; HL = 0x217b - 3590 176C 1E 33 mvi e,33h ;; E = 0x33 - 3591 176E 0E 01 mvi c,1 ;; C = 1 - 3592 1770 AF xra a ;; A = 0 - 3593 1771 32 AE 21 X1771: sta X21ae ;; 0x21ae = A - 3594 1774 79 mov a,c ;; A = C - 3595 1775 32 AD 21 sta X21ad ;; 0x21ad = A - 3596 1778 D5 push d ;; push D,H - 3597 1779 E5 push h ;; - 3598 177A 7A mov a,d ;; A=D - 3599 177B B7 ora a ;; or A - 3600 177C 7E mov a,m ;; load A from HL - 3601 177D 32 AF 21 sta X21af ;; store it in 0x21af - 3602 1780 CC AE 18 cz X18ae ;; if A is 0 call X18ae - 3603 1783 CD A3 18 call X18a3 ;; call X18a3 - 3604 1786 E1 pop h ;; pop H,D - 3605 1787 D1 pop d - 3606 1788 3A AF 21 lda X21af - 3607 178B 1D dcr e - 3608 178C CA 9E 17 jz X179e - 3609 178F 77 mov m,a - 3610 1790 3A AD 21 lda X21ad - 3611 1793 07 rlc - 3612 1794 AE xra m - 3613 1795 4F mov c,a - 3614 1796 23 inx h - 3615 1797 3A AE 21 lda X21ae - 3616 179A 3C inr a - 3617 179B C3 71 17 jmp X1771 + 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 - 3619 179E BE X179e: cmp m - 3620 179F C1 pop b - 3621 17A0 0E 00 mvi c,0 - 3622 17A2 CA AC 17 jz X17ac - 3623 17A5 05 dcr b - 3624 17A6 C2 62 17 jnz X1762 - 3625 17A9 CD D0 17 call X17d0 - 3626 17AC 79 X17ac: mov a,c - 3627 17AD B7 ora a - 3628 17AE F5 push psw - 3629 17AF 0E 40 mvi c,40h - 3630 17B1 3E 63 mvi a,63h - 3631 17B3 CD 2B 19 call X192b - 3632 17B6 21 F2 D0 lxi h,Xd0f2 - 3633 17B9 22 04 20 shld X2004 - 3634 17BC F1 pop psw - 3635 17BD C9 ret + 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 ;; - 3639 17BE 11 EC 17 X17be: lxi d,X17ec ;; DE = 0x17ec - 3640 17C1 06 07 mvi b,7 ;; B = 7 - 3641 17C3 21 CC 21 lxi h,X21cc ;; HL = 0x21cc - 3642 17C6 CD 8B 03 call memmove ;; Initialize 0x21cc to Wait message - 3643 17C9 21 71 CC lxi h,Xcc71 ;; HL = 0xcc71 - 3644 17CC 22 04 20 shld X2004 ;; retarget screen ram to display wait message - 3645 17CF C9 ret + 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 - 3647 17D0 21 7B 21 X17d0: lxi h,X217b - 3648 17D3 06 27 mvi b,27h - 3649 17D5 36 80 X17d5: mvi m,80h - 3650 17D7 23 inx h - 3651 17D8 05 dcr b - 3652 17D9 C2 D5 17 jnz X17d5 - 3653 17DC 11 F3 17 lxi d,X17f3 ;; DE = 0x17f3 - 3654 17DF 06 0B mvi b,0bh ;; B = 11 - 3655 17E1 CD 8B 03 call memmove ;; store - 3656 17E4 0E 01 mvi c,1 - 3657 17E6 3E 30 mvi a,30h - 3658 17E8 32 78 20 sta X2078 - 3659 17EB 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: - 3661 17EC db 'Wait' + 3665 17EC db 'Wait' 57 61 69 74 - 3662 17F0 db 07fh,070h,06h + 3666 17F0 db 07fh,070h,06h 7F 70 06 X17f3: - 3664 17F3 db 0,8,06eh,020h + 3668 17F3 db 0,8,06eh,020h 00 08 6E 20 - 3665 17F7 db 0d0h,050h,0,020h + 3669 17F7 db 0d0h,050h,0,020h D0 50 00 20 - 3666 17FB db 0,0e0h,0e0h + 3670 17FB db 0,0e0h,0e0h 00 E0 E0 X17fe: - 3668 17FE 3A 55 21 lda X2155 - 3669 1801 01 FF 00 lxi b,X00ff - 3670 1804 C3 0F 18 jmp X180f + 3672 17FE 3A 55 21 lda X2155 + 3673 1801 01 FF 00 lxi b,X00ff + 3674 1804 C3 0F 18 jmp X180f - 3672 1807 CD BF 11 call X11bf - 3673 180A 3A 56 21 lda X2156 - 3674 180D 0E 01 mvi c,1 - 3675 180F 21 F9 20 X180f: lxi h,X20f9 - 3676 1812 C3 25 18 jmp X1825 + 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 - 3678 1815 3A 53 21 X1815: lda X2153 - 3679 1818 01 01 FF lxi b,Xff01 - 3680 181B C3 22 18 jmp X1822 + 3682 1815 3A 53 21 X1815: lda X2153 + 3683 1818 01 01 FF lxi b,Xff01 + 3684 181B C3 22 18 jmp X1822 - 3682 181E AF X181e: xra a - 3683 181F 01 FF 00 lxi b,X00ff - 3684 1822 21 F8 20 X1822: lxi h,X20f8 - 3685 1825 57 X1825: mov d,a - 3686 1826 3A B8 21 lda X21b8 - 3687 1829 B7 ora a - 3688 182A C2 15 0A jnz X0a15 - 3689 182D 3A 30 21 lda X2130 - 3690 1830 B7 ora a - 3691 1831 C2 35 18 jnz X1835 - 3692 1834 3C inr a - 3693 1835 5F X1835: mov e,a - 3694 1836 7E mov a,m - 3695 1837 BA X1837: cmp d - 3696 1838 CA 44 18 jz X1844 - 3697 183B B8 cmp b - 3698 183C CA 44 18 jz X1844 - 3699 183F 81 add c - 3700 1840 1D dcr e - 3701 1841 C2 37 18 jnz X1837 - 3702 1844 77 X1844: mov m,a - 3703 1845 C3 36 16 jmp X1636 + 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 - 3705 1848 21 00 00 X1848: lxi h,0 - 3706 184B 22 30 21 shld X2130 - 3707 184E 3E FF mvi a,0ffh - 3708 1850 32 0E 21 sta X210e - 3709 1853 3A 01 21 lda X2101 - 3710 1856 4F mov c,a - 3711 1857 21 30 21 lxi h,X2130 - 3712 185A 7E mov a,m - 3713 185B B7 ora a - 3714 185C CA 60 18 jz X1860 - 3715 185F 3D dcr a - 3716 1860 47 X1860: mov b,a - 3717 1861 79 mov a,c - 3718 1862 B7 ora a - 3719 1863 CA 69 18 jz X1869 - 3720 1866 3A 55 21 lda X2155 - 3721 1869 80 X1869: add b - 3722 186A 47 mov b,a - 3723 186B 79 mov a,c - 3724 186C B7 ora a - 3725 186D 3A 56 21 lda X2156 - 3726 1870 C2 79 18 jnz X1879 - 3727 1873 48 mov c,b - 3728 1874 CD BF 11 call X11bf - 3729 1877 78 mov a,b - 3730 1878 41 mov b,c - 3731 1879 B8 X1879: cmp b - 3732 187A DA 7E 18 jc X187e - 3733 187D 78 mov a,b - 3734 187E 32 F9 20 X187e: sta X20f9 - 3735 1881 23 inx h - 3736 1882 7E mov a,m - 3737 1883 B7 ora a - 3738 1884 CA 88 18 jz X1888 - 3739 1887 3D dcr a - 3740 1888 47 X1888: mov b,a - 3741 1889 79 mov a,c - 3742 188A B7 ora a - 3743 188B C2 95 18 jnz X1895 - 3744 188E 3A 50 20 lda X2050 - 3745 1891 3D dcr a - 3746 1892 C3 98 18 jmp X1898 + 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 - 3748 1895 3A 53 21 X1895: lda X2153 - 3749 1898 B8 X1898: cmp b - 3750 1899 DA 9D 18 jc X189d - 3751 189C 78 mov a,b - 3752 189D 32 F8 20 X189d: sta X20f8 - 3753 18A0 C3 36 16 jmp X1636 + 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 - 3755 18A3 0E 40 X18a3: mvi c,40h - 3756 18A5 CD 28 19 call X1928 - 3757 18A8 CD C1 18 call X18c1 - 3758 18AB C3 BC 18 jmp X18bc + 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 - 3760 18AE 0E 40 X18ae: mvi c,40h - 3761 18B0 CD 28 19 call X1928 - 3762 18B3 CD A8 19 call X19a8 - 3763 18B6 CD 77 19 call X1977 - 3764 18B9 CD D6 19 call X19d6 - 3765 18BC 3E 30 X18bc: mvi a,30h - 3766 18BE D3 62 out 62h - 3767 18C0 C9 ret + 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 ;; - 3771 18C1 DB 42 X18c1: in 42h - 3772 18C3 A1 ana c - 3773 18C4 CA C1 18 jz X18c1 - 3774 18C7 DB 42 X18c7: in 42h - 3775 18C9 A1 ana c - 3776 18CA C2 C7 18 jnz X18c7 - 3777 18CD 3E 2D mvi a,2dh ;; Write READ command to NVR latch - 3778 18CF D3 62 out 62h - 3779 18D1 DB 42 X18d1: in 42h - 3780 18D3 A1 ana c - 3781 18D4 CA D1 18 jz X18d1 - 3782 18D7 DB 42 X18d7: in 42h - 3783 18D9 A1 ana c - 3784 18DA C2 D7 18 jnz X18d7 - 3785 18DD 3E 2F mvi a,2fh ;; Write 0x2fh (standby) to nvr latch - 3786 18DF D3 62 out 62h - 3787 18E1 21 D3 21 lxi h,X21d3 ;; HL = X21d3 - 3788 18E4 06 0E mvi b,0eh ;; B = 14 -- we're reading 14 bits - 3789 18E6 DB 42 X18e6: in 42h - 3790 18E8 A1 ana c - 3791 18E9 CA E6 18 jz X18e6 - 3792 18EC DB 42 X18ec: in 42h - 3793 18EE A1 ana c - 3794 18EF C2 EC 18 jnz X18ec ;; wait for NVR clock L - 3795 18F2 3E 25 mvi a,25h ;; shft bit out of nvr - 3796 18F4 D3 62 out 62h - 3797 18F6 DB 42 X18f6: in 42h - 3798 18F8 A1 ana c - 3799 18F9 CA F6 18 jz X18f6 ;; wait for NVR clock H - 3800 18FC DB 42 in 42h ;; read bit and store it in memory - 3801 18FE 77 mov m,a - 3802 18FF 23 inx h - 3803 1900 DB 42 X1900: in 42h - 3804 1902 A1 ana c - 3805 1903 C2 00 19 jnz X1900 ;; wait for NVR clock L - 3806 1906 05 dcr b - 3807 1907 C2 F6 18 jnz X18f6 ;; read next bit - 3808 190A 3E 2F mvi a,2fh ;; send standby - 3809 190C D3 62 out 62h - 3810 190E 11 D3 21 lxi d,X21d3 ;; DE = 0x21d3 - 3811 1911 06 0E mvi b,0eh ;; B = 14 - 3812 1913 21 00 00 lxi h,0 ;; HL = 0 - 3813 1916 29 X1916: dad h ;; - 3814 1917 1A ldax d ;; load next char - 3815 1918 E6 20 ani 20h ;; and with NVR data bit - 3816 191A 07 rlc ;; rotate NVR bit to high bit - 3817 191B 07 rlc - 3818 191C 07 rlc - 3819 191D B5 ora l - 3820 191E 6F mov l,a - 3821 191F 13 inx d - 3822 1920 05 dcr b - 3823 1921 C2 16 19 jnz X1916 - 3824 1924 22 AF 21 shld X21af ;; Store the finished data in 21af and 21ae - 3825 1927 C9 ret + 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 ;; - 3829 1928 3A AE 21 X1928: lda X21ae ;; Load accumulator from 0x21ae -- (0x42) - 3830 192B 06 FF X192b: mvi b,0ffh ;; B = 0xff - 3831 192D 04 X192d: inr b ;; increment B - 3832 192E D6 0A sui 0ah ;; subtract 0x0a from accumulator - 3833 1930 F2 2D 19 jp X192d ;; repeat while accumulator is positive - 3834 1933 C6 0A adi 0ah ;; add 0x0a to accumulator + 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) - 3839 1935 21 D3 21 lxi h,X21d3 ;; HL = 0x21d3 - 3840 1938 1E 23 mvi e,23h ;; E = 0x23 - 3841 193A 16 14 mvi d,14h ;; D = 0x14 - 3842 193C 73 X193c: mov m,e ;; - 3843 193D 23 inx h ;; HL++ - 3844 193E 15 dcr d ;; D-- - 3845 193F C2 3C 19 jnz X193c ;; repeat until D is zero + 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 - 3849 1942 36 2F mvi m,2fh ;; Store 0x2f in 21e7 + 3853 1942 36 2F mvi m,2fh ;; Store 0x2f in 21e7 ;; Set 21d3 + a to 0x22 (accept address 0) - 3853 1944 21 D3 21 lxi h,X21d3 ;; HL = 0x21d3 - 3854 1947 5F mov e,a ;; copy A to E - 3855 1948 16 00 mvi d,0 ;; clear D - 3856 194A 19 dad d ;; add DE to HL -- calculate address of bit A - 3857 194B 36 22 mvi m,22h ;; Store 0x22 in M + 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) - 3861 194D 21 D3 21 lxi h,X21d3 ;; HL = 0x21d3 - 3862 1950 3E 0A mvi a,0ah ;; A = 0x0a - 3863 1952 80 add b ;; A = 0x0a + B - 3864 1953 5F mov e,a - 3865 1954 19 dad d - 3866 1955 36 22 mvi m,22h + 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 - 3870 1957 DB 42 X1957: in 42h - 3871 1959 A1 ana c - 3872 195A C2 57 19 jnz X1957 + 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 - 3876 195D 21 D3 21 lxi h,X21d3 - 3877 1960 06 15 mvi b,15h ;; - 3878 1962 DB 42 X1962: in 42h - 3879 1964 A1 ana c ;; Flags Buffer & C - 3880 1965 CA 62 19 jz X1962 - 3881 1968 05 dcr b - 3882 1969 F8 rm ;; Return if B is negative - 3883 196A DB 42 X196a: in 42h - 3884 196C A1 ana c - 3885 196D C2 6A 19 jnz X196a - 3886 1970 7E mov a,m - 3887 1971 D3 62 out 62h - 3888 1973 23 inx h - 3889 1974 C3 62 19 jmp X1962 + 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 - 3891 1977 2A AF 21 X1977: lhld X21af - 3892 197A 29 dad h - 3893 197B 29 dad h - 3894 197C 11 D3 21 lxi d,X21d3 - 3895 197F 06 0E mvi b,0eh - 3896 1981 3E 20 X1981: mvi a,20h - 3897 1983 29 dad h - 3898 1984 17 ral - 3899 1985 12 stax d - 3900 1986 13 inx d - 3901 1987 05 dcr b - 3902 1988 C2 81 19 jnz X1981 - 3903 198B 3E 2F mvi a,2fh - 3904 198D 12 stax d - 3905 198E 21 D3 21 lxi h,X21d3 - 3906 1991 06 0F mvi b,0fh - 3907 1993 DB 42 X1993: in 42h - 3908 1995 A1 ana c - 3909 1996 CA 93 19 jz X1993 - 3910 1999 DB 42 X1999: in 42h - 3911 199B A1 ana c - 3912 199C C2 99 19 jnz X1999 - 3913 199F 7E mov a,m - 3914 19A0 D3 62 out 62h - 3915 19A2 23 inx h - 3916 19A3 05 dcr b - 3917 19A4 C2 93 19 jnz X1993 - 3918 19A7 C9 ret + 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 - 3920 19A8 DB 42 X19a8: in 42h - 3921 19AA A1 ana c - 3922 19AB CA A8 19 jz X19a8 - 3923 19AE DB 42 X19ae: in 42h - 3924 19B0 A1 ana c - 3925 19B1 C2 AE 19 jnz X19ae - 3926 19B4 3E 2B mvi a,2bh - 3927 19B6 D3 62 out 62h - 3928 19B8 CD C0 19 call X19c0 - 3929 19BB 3E 2F mvi a,2fh - 3930 19BD D3 62 out 62h - 3931 19BF 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 - 3933 19C0 21 3B 01 X19c0: lxi h,X013b - 3934 19C3 DB 42 X19c3: in 42h - 3935 19C5 A1 ana c - 3936 19C6 CA C3 19 jz X19c3 - 3937 19C9 DB 42 X19c9: in 42h - 3938 19CB A1 ana c - 3939 19CC C2 C9 19 jnz X19c9 - 3940 19CF 2B dcx h - 3941 19D0 7C mov a,h - 3942 19D1 B5 ora l - 3943 19D2 C2 C3 19 jnz X19c3 - 3944 19D5 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 - 3946 19D6 DB 42 X19d6: in 42h - 3947 19D8 A1 ana c - 3948 19D9 CA D6 19 jz X19d6 - 3949 19DC DB 42 X19dc: in 42h - 3950 19DE A1 ana c - 3951 19DF C2 DC 19 jnz X19dc - 3952 19E2 3E 29 mvi a,29h - 3953 19E4 D3 62 out 62h - 3954 19E6 CD C0 19 call X19c0 - 3955 19E9 3E 2F mvi a,2fh - 3956 19EB D3 62 out 62h - 3957 19ED 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 - 3959 19EE FE 20 X19ee: cpi 20h - 3960 19F0 0E 43 mvi c,43h - 3961 19F2 CA FF 01 jz X01ff - 3962 19F5 21 B0 1B lxi h,X1bb0 - 3963 19F8 E5 push h - 3964 19F9 FE 0D cpi 0dh - 3965 19FB CA 4B 09 jz X094b - 3966 19FE FE 09 cpi 9 - 3967 1A00 CA F9 0D jz X0df9 - 3968 1A03 FE 3A cpi 3ah - 3969 1A05 D2 60 1B jnc X1b60 - 3970 1A08 D6 30 sui 30h - 3971 1A0A F8 rm - 3972 1A0B 87 add a - 3973 1A0C 21 A2 1A lxi h,X1aa2 - 3974 1A0F CD DE 13 call X13de - 3975 1A12 CD 90 13 call X1390 - 3976 1A15 78 mov a,b - 3977 1A16 11 AC 21 lxi d,X21ac - 3978 1A19 E9 pchl + 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 - 3980 1A1A 32 77 21 X1a1a: sta X2177 - 3981 1A1D C3 12 08 jmp X0812 + 3984 1A1A 32 77 21 X1a1a: sta X2177 + 3985 1A1D C3 12 08 jmp X0812 - 3983 1A20 3A 7B 20 X1a20: lda X207b - 3984 1A23 EE FF xri 0ffh - 3985 1A25 32 7B 20 sta X207b - 3986 1A28 CA 61 1A jz X1a61 - 3987 1A2B 0E 80 X1a2b: mvi c,80h - 3988 1A2D CD 8E 10 call X108e - 3989 1A30 2A 40 21 lhld X2140 - 3990 1A33 22 11 21 shld X2111 - 3991 1A36 21 EE 19 lxi h,X19ee - 3992 1A39 22 40 21 shld X2140 - 3993 1A3C 21 00 00 lxi h,0 - 3994 1A3F 22 43 21 shld X2143 - 3995 1A42 22 72 21 shld X2172 - 3996 1A45 2A 04 20 X1a45: lhld X2004 - 3997 1A48 22 C5 21 shld X21c5 - 3998 1A4B 2A F8 20 lhld X20f8 - 3999 1A4E 22 0D 21 shld X210d - 4000 1A51 CD BA 1B call X1bba - 4001 1A54 22 4E 21 shld X214e - 4002 1A57 AF xra a - 4003 1A58 32 F8 20 sta X20f8 - 4004 1A5B CD F9 1B call X1bf9 - 4005 1A5E C3 36 16 jmp X1636 + 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 - 4007 1A61 2A 11 21 X1a61: lhld X2111 - 4008 1A64 22 40 21 shld X2140 - 4009 1A67 CD BA 1B call X1bba - 4010 1A6A 11 00 10 lxi d,X1000 - 4011 1A6D 19 dad d - 4012 1A6E 3A 50 20 lda X2050 - 4013 1A71 36 FF X1a71: mvi m,0ffh - 4014 1A73 23 inx h - 4015 1A74 3D dcr a - 4016 1A75 C2 71 1A jnz X1a71 - 4017 1A78 21 0D 21 lxi h,X210d - 4018 1A7B 7E mov a,m - 4019 1A7C 32 F8 20 sta X20f8 - 4020 1A7F 3E FF mvi a,0ffh - 4021 1A81 23 inx h - 4022 1A82 77 mov m,a - 4023 1A83 CD 36 16 call X1636 - 4024 1A86 2A C5 21 lhld X21c5 - 4025 1A89 22 04 20 shld X2004 - 4026 1A8C AF xra a - 4027 1A8D 32 C4 21 sta X21c4 - 4028 1A90 32 C2 21 sta X21c2 - 4029 1A93 DB 42 in 42h - 4030 1A95 E6 08 ani 8 - 4031 1A97 CA A1 1A jz X1aa1 - 4032 1A9A 3A 76 21 lda X2176 - 4033 1A9D B7 ora a - 4034 1A9E CC E8 12 cz X12e8 - 4035 1AA1 C9 X1aa1: ret + 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 - 4037 1AA2 CF X1aa2: rst 1 - 4038 1AA3 1A ldax d - 4039 1AA4 09 dad b - 4040 1AA5 1B dcx d - 4041 1AA6 D0 rnc - 4042 1AA7 1A ldax d - 4043 1AA8 F2 1A FE jp Xfe1a - 4044 1AAB 1A ldax d - 4045 1AAC 0A ldax b - 4046 1AAD 1B dcx d - 4047 1AAE 22 1B 40 shld X401b - 4048 1AB1 1B dcx d - 4049 1AB2 41 mov b,c - 4050 1AB3 1B dcx d - 4051 1AB4 B6 ora m - 4052 1AB5 1A ldax d - 4053 1AB6 CD 52 1B call X1b52 - 4054 1AB9 AF xra a - 4055 1ABA 32 0E 21 sta X210e - 4056 1ABD 32 0D 21 sta X210d - 4057 1AC0 3A A2 21 lda X21a2 - 4058 1AC3 B7 ora a - 4059 1AC4 F5 push psw - 4060 1AC5 CC 77 0B cz X0b77 - 4061 1AC8 F1 pop psw - 4062 1AC9 C4 63 0B cnz X0b63 - 4063 1ACC C3 45 1A jmp X1a45 + 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 - 4065 1ACF C7 rst 0 - 4066 1AD0 CD 52 1B call X1b52 - 4067 1AD3 3A F8 20 lda X20f8 - 4068 1AD6 B7 ora a - 4069 1AD7 C8 rz - 4070 1AD8 CD 23 0E call X0e23 - 4071 1ADB AE xra m - 4072 1ADC 77 mov m,a - 4073 1ADD CD 23 0E call X0e23 - 4074 1AE0 A6 ana m - 4075 1AE1 06 54 mvi b,54h - 4076 1AE3 C2 E8 1A jnz X1ae8 - 4077 1AE6 06 00 X1ae6: mvi b,0 - 4078 1AE8 78 X1ae8: mov a,b - 4079 1AE9 32 F4 20 sta X20f4 - 4080 1AEC 3A F8 20 lda X20f8 - 4081 1AEF C3 EA 1E jmp X1eea + 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?). ;; - 4086 1AF2 CD 52 1B call X1b52 - 4087 1AF5 CD EC 0D call X0dec - 4088 1AF8 CD CD 1C call X1ccd - 4089 1AFB C3 E6 1A jmp X1ae6 + 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 - 4091 1AFE 21 A5 21 lxi h,X21a5 - 4092 1B01 7E mov a,m - 4093 1B02 EE 20 xri 20h - 4094 1B04 77 mov m,a - 4095 1B05 AF xra a - 4096 1B06 32 44 21 sta X2144 - 4097 1B09 C9 ret + 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 - 4099 1B0A CD 4B 09 call X094b - 4100 1B0D 21 5A 22 lxi h,X225a - 4101 1B10 7E mov a,m - 4102 1B11 EE 03 xri 3 - 4103 1B13 77 mov m,a - 4104 1B14 32 65 22 sta X2265 - 4105 1B17 E6 01 ani 1 - 4106 1B19 32 BE 21 sta X21be - 4107 1B1C CA D3 1C jz X1cd3 - 4108 1B1F C3 35 1C jmp X1c35 + 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 - 4110 1B22 CD 59 1B call X1b59 - 4111 1B25 21 A6 21 lxi h,X21a6 - 4112 1B28 3A F8 20 lda X20f8 - 4113 1B2B D6 02 sui 2 - 4114 1B2D FE 28 cpi 28h - 4115 1B2F D0 rnc - 4116 1B30 00 nop + 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 - 4120 1B34 57 mov d,a - 4121 1B35 CD 2B 0E call X0e2b - 4122 1B38 AE xra m - 4123 1B39 77 mov m,a - 4124 1B3A CD DB 1D call X1ddb - 4125 1B3D C3 D3 1C jmp X1cd3 + 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 - 4127 1B40 1B dcx d - 4128 1B41 EB xchg - 4129 1B42 CD 59 1B call X1b59 - 4130 1B45 32 F8 20 sta X20f8 - 4131 1B48 7E mov a,m - 4132 1B49 C6 10 adi 10h - 4133 1B4B 77 mov m,a - 4134 1B4C CD DB 1D call X1ddb - 4135 1B4F 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 - 4137 1B52 3A BE 21 X1b52: lda X21be - 4138 1B55 B7 ora a - 4139 1B56 C0 rnz - 4140 1B57 E1 pop h - 4141 1B58 C9 ret + 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 - 4143 1B59 3A BE 21 X1b59: lda X21be - 4144 1B5C B7 ora a - 4145 1B5D C8 rz - 4146 1B5E E1 pop h - 4147 1B5F 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 - 4149 1B60 3A 69 20 X1b60: lda X2069 - 4150 1B63 E6 20 ani 20h - 4151 1B65 C8 rz - 4152 1B66 78 mov a,b - 4153 1B67 FE 53 cpi 53h - 4154 1B69 C2 72 1B jnz X1b72 - 4155 1B6C CD 54 17 call X1754 - 4156 1B6F C3 81 1B jmp X1b81 + 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 - 4158 1B72 FE 52 X1b72: cpi 52h - 4159 1B74 C2 86 1B jnz X1b86 - 4160 1B77 CD 5B 17 call X175b - 4161 1B7A FB ei - 4162 1B7B CD A2 03 call X03a2 - 4163 1B7E CD 2B 1A call X1a2b - 4164 1B81 FB X1b81: ei - 4165 1B82 CD F9 1B call X1bf9 - 4166 1B85 C9 ret + 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 - 4168 1B86 FE 41 X1b86: cpi 41h - 4169 1B88 C0 rnz - 4170 1B89 CD 59 1B call X1b59 - 4171 1B8C CD 4B 09 call X094b - 4172 1B8F 3E 41 mvi a,41h - 4173 1B91 CD E6 05 call X05e6 - 4174 1B94 3E 3D mvi a,3dh - 4175 1B96 CD E6 05 call X05e6 - 4176 1B99 3E 20 mvi a,20h - 4177 1B9B CD E6 05 call X05e6 - 4178 1B9E 21 9F 1E lxi h,X1e9f - 4179 1BA1 22 40 21 shld X2140 - 4180 1BA4 E1 pop h - 4181 1BA5 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 - 4183 1BA6 98 sbb b - 4184 1BA7 FE 61 cpi 61h - 4185 1BA9 F8 rm - 4186 1BAA FE 7B cpi 7bh - 4187 1BAC F0 rp - 4188 1BAD E6 DF ani 0dfh - 4189 1BAF 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 - 4191 1BB0 CD 94 03 X1bb0: call X0394 - 4192 1BB3 21 EE 19 lxi h,X19ee - 4193 1BB6 22 40 21 shld X2140 - 4194 1BB9 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 - 4196 1BBA 2A 4E 20 X1bba: lhld scratch_start ; load [0x204e] - 4197 1BBD C3 C3 1B jmp X1bc3 + 4200 1BBA 2A 4E 20 X1bba: lhld scratch_start ; load [0x204e] + 4201 1BBD C3 C3 1B jmp X1bc3 - 4199 1BC0 21 CC 21 X1bc0: lxi h,X21cc - 4200 1BC3 7C X1bc3: mov a,h - 4201 1BC4 E6 0F ani 0fh - 4202 1BC6 F6 20 ori 20h - 4203 1BC8 67 mov h,a - 4204 1BC9 C9 ret + 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 - 4206 1BCA CD BA 1B X1bca: call X1bba - 4207 1BCD CD C8 0F call X0fc8 - 4208 1BD0 E5 push h - 4209 1BD1 36 7F mvi m,7fh - 4210 1BD3 23 inx h - 4211 1BD4 EB xchg - 4212 1BD5 CD C0 1B call X1bc0 - 4213 1BD8 7C mov a,h - 4214 1BD9 E6 0F ani 0fh - 4215 1BDB F6 70 ori 70h - 4216 1BDD 12 stax d - 4217 1BDE 13 inx d - 4218 1BDF 7D mov a,l - 4219 1BE0 12 stax d - 4220 1BE1 E1 pop h - 4221 1BE2 3A 50 20 lda X2050 - 4222 1BE5 5F mov e,a - 4223 1BE6 06 54 mvi b,54h - 4224 1BE8 7B X1be8: mov a,e - 4225 1BE9 CD 27 0E call X0e27 - 4226 1BEC A6 ana m - 4227 1BED CA F4 1B jz X1bf4 - 4228 1BF0 7B mov a,e - 4229 1BF1 CD EA 1E call X1eea - 4230 1BF4 1D X1bf4: dcr e - 4231 1BF5 C2 E8 1B jnz X1be8 - 4232 1BF8 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 - 4234 1BF9 01 AD 1C X1bf9: lxi b,X1cad - 4235 1BFC 21 53 22 lxi h,X2253 - 4236 1BFF 3E FA mvi a,0fah - 4237 1C01 CD 71 1C call X1c71 - 4238 1C04 0E 01 mvi c,1 - 4239 1C06 06 10 mvi b,10h - 4240 1C08 CD 8A 1C call X1c8a - 4241 1C0B 01 AD 1C lxi b,X1cad - 4242 1C0E 3E FA mvi a,0fah - 4243 1C10 CD 71 1C call X1c71 - 4244 1C13 0E 01 mvi c,1 - 4245 1C15 06 50 mvi b,50h - 4246 1C17 CD 8A 1C call X1c8a - 4247 1C1A 01 B6 1C lxi b,X1cb6 - 4248 1C1D 3E FD mvi a,0fdh - 4249 1C1F CD 71 1C call X1c71 - 4250 1C22 0E 13 mvi c,13h - 4251 1C24 CD 88 1C call X1c88 - 4252 1C27 36 7F mvi m,7fh - 4253 1C29 23 inx h - 4254 1C2A EB xchg - 4255 1C2B CD BA 1B call X1bba - 4256 1C2E 7C mov a,h - 4257 1C2F F6 70 ori 70h - 4258 1C31 12 stax d - 4259 1C32 13 inx d - 4260 1C33 7D mov a,l - 4261 1C34 12 stax d - 4262 1C35 CD C0 1B X1c35: call X1bc0 - 4263 1C38 3A 50 20 lda X2050 - 4264 1C3B 47 mov b,a - 4265 1C3C 3E 31 mvi a,31h - 4266 1C3E 77 X1c3e: mov m,a - 4267 1C3F 23 inx h - 4268 1C40 4F mov c,a - 4269 1C41 E6 0F ani 0fh - 4270 1C43 79 mov a,c - 4271 1C44 C2 49 1C jnz X1c49 - 4272 1C47 EE 80 xri 80h - 4273 1C49 3C X1c49: inr a - 4274 1C4A 27 daa - 4275 1C4B D2 50 1C jnc X1c50 - 4276 1C4E F6 80 ori 80h - 4277 1C50 E6 8F X1c50: ani 8fh - 4278 1C52 F6 30 ori 30h - 4279 1C54 05 dcr b - 4280 1C55 C2 3E 1C jnz X1c3e - 4281 1C58 CD 9F 1C call X1c9f - 4282 1C5B CD CA 1B call X1bca - 4283 1C5E 3E 01 mvi a,1 - 4284 1C60 32 BE 21 X1c60: sta X21be - 4285 1C63 21 53 22 lxi h,X2253 - 4286 1C66 7C mov a,h - 4287 1C67 65 mov h,l - 4288 1C68 E6 0F ani 0fh - 4289 1C6A F6 30 ori 30h - 4290 1C6C 6F mov l,a - 4291 1C6D 22 04 20 shld X2004 - 4292 1C70 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 - 4294 1C71 E5 X1c71: push h - 4295 1C72 11 00 10 lxi d,X1000 - 4296 1C75 19 dad d - 4297 1C76 D1 pop d - 4298 1C77 F5 X1c77: push psw - 4299 1C78 0A ldax b - 4300 1C79 B7 ora a - 4301 1C7A CA 86 1C jz X1c86 - 4302 1C7D 12 stax d - 4303 1C7E F1 pop psw - 4304 1C7F 77 mov m,a - 4305 1C80 23 inx h - 4306 1C81 13 inx d - 4307 1C82 03 inx b - 4308 1C83 C3 77 1C jmp X1c77 + 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 - 4310 1C86 F1 X1c86: pop psw - 4311 1C87 C9 ret + 4314 1C86 F1 X1c86: pop psw + 4315 1C87 C9 ret - 4313 1C88 06 70 X1c88: mvi b,70h - 4314 1C8A EB X1c8a: xchg - 4315 1C8B 36 7F X1c8b: mvi m,7fh - 4316 1C8D 23 inx h - 4317 1C8E 54 mov d,h - 4318 1C8F 5D mov e,l - 4319 1C90 13 inx d - 4320 1C91 13 inx d - 4321 1C92 7A mov a,d - 4322 1C93 E6 0F ani 0fh - 4323 1C95 B0 ora b - 4324 1C96 77 mov m,a - 4325 1C97 23 inx h - 4326 1C98 73 mov m,e - 4327 1C99 23 inx h - 4328 1C9A 0D dcr c - 4329 1C9B C2 8B 1C jnz X1c8b - 4330 1C9E 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 - 4332 1C9F 36 7F X1c9f: mvi m,7fh - 4333 1CA1 54 mov d,h - 4334 1CA2 5D mov e,l - 4335 1CA3 23 inx h - 4336 1CA4 7A mov a,d - 4337 1CA5 E6 0F ani 0fh - 4338 1CA7 F6 70 ori 70h - 4339 1CA9 77 mov m,a - 4340 1CAA 23 inx h - 4341 1CAB 73 mov m,e - 4342 1CAC 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: - 4344 1CAD db 'SET-UP A',0 + 4348 1CAD db 'SET-UP A',0 53 45 54 2D 55 50 20 41 00 X1cb6: - 4346 1CB6 db 'TO EXIT PRESS ',022h,'SET-UP',022h,0 + 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 - 4347 1CCD CD BA 1B call X1bba - 4348 1CD0 C3 C8 0F jmp X0fc8 + 4351 1CCD CD BA 1B call X1bba + 4352 1CD0 C3 C8 0F jmp X0fc8 - 4350 1CD3 CD CD 1C X1cd3: call X1ccd - 4351 1CD6 CD C0 1B call X1bc0 - 4352 1CD9 E5 push h - 4353 1CDA 3E 4E mvi a,4eh - 4354 1CDC CD CB 0F call X0fcb - 4355 1CDF E1 pop h - 4356 1CE0 E5 push h - 4357 1CE1 23 inx h - 4358 1CE2 23 inx h - 4359 1CE3 1E 00 mvi e,0 - 4360 1CE5 06 04 mvi b,4 - 4361 1CE7 DB 42 in 42h - 4362 1CE9 E6 08 ani 8 - 4363 1CEB F5 push psw - 4364 1CEC CA F0 1C jz X1cf0 - 4365 1CEF 04 inr b - 4366 1CF0 0E 04 X1cf0: mvi c,4 - 4367 1CF2 CD CC 1D X1cf2: call X1dcc - 4368 1CF5 F6 B0 ori 0b0h - 4369 1CF7 77 mov m,a - 4370 1CF8 1C inr e - 4371 1CF9 23 inx h - 4372 1CFA 0D dcr c - 4373 1CFB C2 F2 1C jnz X1cf2 - 4374 1CFE 0E 04 mvi c,4 - 4375 1D00 36 00 X1d00: mvi m,0 - 4376 1D02 1C inr e - 4377 1D03 23 inx h - 4378 1D04 0D dcr c - 4379 1D05 C2 00 1D jnz X1d00 - 4380 1D08 05 dcr b - 4381 1D09 C2 F0 1C jnz X1cf0 - 4382 1D0C 0E 04 mvi c,4 - 4383 1D0E F1 pop psw - 4384 1D0F F5 push psw - 4385 1D10 C2 17 1D jnz X1d17 - 4386 1D13 79 mov a,c - 4387 1D14 C6 08 adi 8 - 4388 1D16 4F mov c,a - 4389 1D17 36 00 X1d17: mvi m,0 - 4390 1D19 23 inx h - 4391 1D1A 0D dcr c - 4392 1D1B C2 17 1D jnz X1d17 - 4393 1D1E 11 4B 1D lxi d,X1d4b - 4394 1D21 3A AB 21 lda X21ab - 4395 1D24 CD 61 1D call X1d61 - 4396 1D27 11 56 1D lxi d,X1d56 - 4397 1D2A 3A AC 21 lda X21ac - 4398 1D2D CD 61 1D call X1d61 - 4399 1D30 CD 9F 1C call X1c9f - 4400 1D33 11 08 00 lxi d,8 - 4401 1D36 0E 04 mvi c,4 - 4402 1D38 F1 pop psw - 4403 1D39 CA 3D 1D jz X1d3d - 4404 1D3C 0C inr c - 4405 1D3D 3E 31 X1d3d: mvi a,31h - 4406 1D3F E1 pop h - 4407 1D40 77 X1d40: mov m,a - 4408 1D41 3C inr a - 4409 1D42 19 dad d - 4410 1D43 0D dcr c - 4411 1D44 C2 40 1D jnz X1d40 - 4412 1D47 AF xra a - 4413 1D48 C3 60 1C jmp X1c60 + 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 - 4415 1D4B X1d4b: db 20h + 4419 1D4B X1d4b: db 20h 20 - 4416 1D4C db 20h + 4420 1D4C db 20h 20 - 4417 1D4D db 20h + 4421 1D4D db 20h 20 - 4418 1D4E 54 mov d,h - 4419 1D4F db 20h + 4422 1D4E 54 mov d,h + 4423 1D4F db 20h 20 - 4420 1D50 53 mov d,e - 4421 1D51 50 mov d,b - 4422 1D52 45 mov b,l - 4423 1D53 45 mov b,l - 4424 1D54 44 mov b,h - 4425 1D55 db 20h + 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 - 4426 1D56 X1d56: db 20h + 4430 1D56 X1d56: db 20h 20 - 4427 1D57 db 20h + 4431 1D57 db 20h 20 - 4428 1D58 db 20h + 4432 1D58 db 20h 20 - 4429 1D59 52 mov d,d - 4430 1D5A db 20h + 4433 1D59 52 mov d,d + 4434 1D5A db 20h 20 - 4431 1D5B 53 mov d,e - 4432 1D5C 50 mov d,b - 4433 1D5D 45 mov b,l - 4434 1D5E 45 mov b,l - 4435 1D5F 44 mov b,h - 4436 1D60 db 20h + 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 - 4437 1D61 4F X1d61: mov c,a - 4438 1D62 06 0B mvi b,0bh - 4439 1D64 CD 8B 03 call memmove - 4440 1D67 79 mov a,c - 4441 1D68 0F rrc - 4442 1D69 0F rrc - 4443 1D6A 4F mov c,a - 4444 1D6B 0F rrc - 4445 1D6C 0F rrc - 4446 1D6D 81 add c - 4447 1D6E 4F mov c,a - 4448 1D6F 06 00 mvi b,0 - 4449 1D71 11 7C 1D lxi d,X1d7c - 4450 1D74 EB xchg - 4451 1D75 09 dad b - 4452 1D76 EB xchg - 4453 1D77 06 05 mvi b,5 - 4454 1D79 C3 8B 03 jmp memmove + 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 - 4456 1D7C X1d7c: db 20h + 4460 1D7C X1d7c: db 20h 20 - 4457 1D7D db 20h + 4461 1D7D db 20h 20 - 4458 1D7E db 20h + 4462 1D7E db 20h 20 - 4459 1D7F 35 dcr m - 4460 1D80 db 30h + 4463 1D7F 35 dcr m + 4464 1D80 db 30h 30 - 4461 1D81 db 20h + 4465 1D81 db 20h 20 - 4462 1D82 db 20h + 4466 1D82 db 20h 20 - 4463 1D83 db 20h + 4467 1D83 db 20h 20 - 4464 1D84 37 stc - 4465 1D85 35 dcr m - 4466 1D86 db 20h + 4468 1D84 37 stc + 4469 1D85 35 dcr m + 4470 1D86 db 20h 20 - 4467 1D87 db 20h + 4471 1D87 db 20h 20 - 4468 1D88 31 31 30 lxi sp,X3031 - 4469 1D8B db 20h + 4472 1D88 31 31 30 lxi sp,X3031 + 4473 1D8B db 20h 20 - 4470 1D8C db 20h + 4474 1D8C db 20h 20 - 4471 1D8D 31 33 34 lxi sp,X3433 - 4472 1D90 db 20h + 4475 1D8D 31 33 34 lxi sp,X3433 + 4476 1D90 db 20h 20 - 4473 1D91 db 20h + 4477 1D91 db 20h 20 - 4474 1D92 31 35 30 lxi sp,X3035 - 4475 1D95 db 20h + 4478 1D92 31 35 30 lxi sp,X3035 + 4479 1D95 db 20h 20 - 4476 1D96 db 20h + 4480 1D96 db 20h 20 - 4477 1D97 32 30 30 sta X3030 - 4478 1D9A db 20h + 4481 1D97 32 30 30 sta X3030 + 4482 1D9A db 20h 20 - 4479 1D9B db 20h + 4483 1D9B db 20h 20 - 4480 1D9C 33 inx sp - 4481 1D9D db 30h + 4484 1D9C 33 inx sp + 4485 1D9D db 30h 30 - 4482 1D9E db 30h + 4486 1D9E db 30h 30 - 4483 1D9F db 20h + 4487 1D9F db 20h 20 - 4484 1DA0 db 20h + 4488 1DA0 db 20h 20 - 4485 1DA1 36 30 mvi m,30h - 4486 1DA3 db 30h + 4489 1DA1 36 30 mvi m,30h + 4490 1DA3 db 30h 30 - 4487 1DA4 db 20h + 4491 1DA4 db 20h 20 - 4488 1DA5 31 32 30 lxi sp,X3032 - 4489 1DA8 db 30h + 4492 1DA5 31 32 30 lxi sp,X3032 + 4493 1DA8 db 30h 30 - 4490 1DA9 db 20h + 4494 1DA9 db 20h 20 - 4491 1DAA 31 38 30 lxi sp,X3038 - 4492 1DAD db 30h + 4495 1DAA 31 38 30 lxi sp,X3038 + 4496 1DAD db 30h 30 - 4493 1DAE db 20h + 4497 1DAE db 20h 20 - 4494 1DAF 32 30 30 sta X3030 - 4495 1DB2 db 30h + 4498 1DAF 32 30 30 sta X3030 + 4499 1DB2 db 30h 30 - 4496 1DB3 db 20h + 4500 1DB3 db 20h 20 - 4497 1DB4 32 34 30 sta X3034 - 4498 1DB7 db 30h + 4501 1DB4 32 34 30 sta X3034 + 4502 1DB7 db 30h 30 - 4499 1DB8 db 20h + 4503 1DB8 db 20h 20 - 4500 1DB9 33 inx sp - 4501 1DBA 36 30 mvi m,30h - 4502 1DBC db 30h + 4504 1DB9 33 inx sp + 4505 1DBA 36 30 mvi m,30h + 4506 1DBC db 30h 30 - 4503 1DBD db 20h + 4507 1DBD db 20h 20 - 4504 1DBE 34 inr m - 4505 1DBF db 38h + 4508 1DBE 34 inr m + 4509 1DBF db 38h 38 - 4506 1DC0 db 30h + 4510 1DC0 db 30h 30 - 4507 1DC1 db 30h + 4511 1DC1 db 30h 30 - 4508 1DC2 db 20h + 4512 1DC2 db 20h 20 - 4509 1DC3 39 dad sp - 4510 1DC4 36 30 mvi m,30h - 4511 1DC6 db 30h + 4513 1DC3 39 dad sp + 4514 1DC4 36 30 mvi m,30h + 4515 1DC6 db 30h 30 - 4512 1DC7 31 39 32 lxi sp,X3239 - 4513 1DCA db 30h + 4516 1DC7 31 39 32 lxi sp,X3239 + 4517 1DCA db 30h 30 - 4514 1DCB db 30h + 4518 1DCB db 30h 30 - 4515 1DCC E5 X1dcc: push h - 4516 1DCD 21 A6 21 lxi h,X21a6 - 4517 1DD0 53 mov d,e - 4518 1DD1 7B mov a,e - 4519 1DD2 CD 2B 0E call X0e2b - 4520 1DD5 A6 ana m - 4521 1DD6 E1 pop h - 4522 1DD7 C8 rz - 4523 1DD8 3E 01 mvi a,1 - 4524 1DDA C9 ret + 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 - 4526 1DDB 3A AC 21 X1ddb: lda X21ac - 4527 1DDE E6 F0 ani 0f0h - 4528 1DE0 0F rrc - 4529 1DE1 0F rrc - 4530 1DE2 0F rrc - 4531 1DE3 0F rrc - 4532 1DE4 47 mov b,a - 4533 1DE5 3A AB 21 lda X21ab - 4534 1DE8 E6 F0 ani 0f0h - 4535 1DEA B0 ora b - 4536 1DEB 32 58 21 sta X2158 - 4537 1DEE E6 F0 ani 0f0h - 4538 1DF0 FE 20 cpi 20h - 4539 1DF2 3A A4 21 lda X21a4 - 4540 1DF5 CA FF 1D jz X1dff - 4541 1DF8 E6 3F ani 3fh - 4542 1DFA F6 80 ori 80h - 4543 1DFC C3 03 1E jmp X1e03 + 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 - 4545 1DFF E6 3F X1dff: ani 3fh - 4546 1E01 F6 C0 ori 0c0h - 4547 1E03 32 A4 21 X1e03: sta X21a4 - 4548 1E06 DB 42 in 42h - 4549 1E08 E6 08 ani 8 - 4550 1E0A CA 19 1E jz X1e19 - 4551 1E0D 21 A7 21 lxi h,X21a7 - 4552 1E10 7E mov a,m - 4553 1E11 F6 10 ori 10h - 4554 1E13 77 mov m,a - 4555 1E14 3E 6E mvi a,6eh - 4556 1E16 C3 31 1E jmp X1e31 + 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 - 4558 1E19 3A A9 21 X1e19: lda X21a9 - 4559 1E1C E6 C0 ani 0c0h - 4560 1E1E 47 mov b,a - 4561 1E1F 3A A9 21 lda X21a9 - 4562 1E22 E6 20 ani 20h - 4563 1E24 0F rrc - 4564 1E25 F6 20 ori 20h - 4565 1E27 B0 ora b - 4566 1E28 0F rrc - 4567 1E29 0F rrc - 4568 1E2A 47 mov b,a - 4569 1E2B 3A A4 21 lda X21a4 - 4570 1E2E E6 C3 ani 0c3h - 4571 1E30 B0 ora b - 4572 1E31 32 A4 21 X1e31: sta X21a4 - 4573 1E34 3A A9 21 lda X21a9 - 4574 1E37 E6 10 ani 10h - 4575 1E39 CA 3E 1E jz X1e3e - 4576 1E3C 3E 10 mvi a,10h - 4577 1E3E C6 20 X1e3e: adi 20h - 4578 1E40 32 7C 20 sta X207c - 4579 1E43 3A A6 21 lda X21a6 - 4580 1E46 E6 10 ani 10h - 4581 1E48 CA 4D 1E jz X1e4d - 4582 1E4B 3E 01 mvi a,1 - 4583 1E4D CD 6E 1E X1e4d: call X1e6e - 4584 1E50 CD 29 03 call X0329 - 4585 1E53 3A F8 20 lda X20f8 - 4586 1E56 FE 15 cpi 15h - 4587 1E58 CC 42 03 cz X0342 - 4588 1E5B FE 1D cpi 1dh - 4589 1E5D CC 42 03 cz X0342 - 4590 1E60 FE 0C cpi 0ch - 4591 1E62 CC F2 0B cz X0bf2 - 4592 1E65 FE 12 cpi 12h - 4593 1E67 CC F2 0B cz X0bf2 - 4594 1E6A CD 36 16 call X1636 - 4595 1E6D C9 ret + 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 - 4597 1E6E B7 X1e6e: ora a - 4598 1E6F CA 79 1E jz X1e79 - 4599 1E72 32 5B 21 sta X215b - 4600 1E75 AF xra a - 4601 1E76 C3 94 1E jmp X1e94 + 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 - 4603 1E79 DB 42 X1e79: in 42h - 4604 1E7B E6 02 ani 2 - 4605 1E7D C2 90 1E jnz X1e90 - 4606 1E80 32 59 21 sta X2159 - 4607 1E83 3E 01 mvi a,1 - 4608 1E85 32 5B 21 sta X215b - 4609 1E88 3E 02 mvi a,2 - 4610 1E8A 32 5A 21 sta X215a - 4611 1E8D C3 6B 03 jmp X036b + 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 - 4613 1E90 AF X1e90: xra a - 4614 1E91 32 5B 21 sta X215b - 4615 1E94 32 5A 21 X1e94: sta X215a - 4616 1E97 3E 80 mvi a,80h - 4617 1E99 32 59 21 sta X2159 - 4618 1E9C 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 - 4620 1E9F CD DD 1E X1e9f: call X1edd - 4621 1EA2 21 7B 21 lxi h,X217b - 4622 1EA5 77 mov m,a - 4623 1EA6 23 inx h - 4624 1EA7 22 B4 21 shld X21b4 - 4625 1EAA 47 mov b,a - 4626 1EAB 11 14 00 lxi d,20 ; DE = 20(0x0014) - 4627 1EAE CD 83 10 call memset ; call memset(0x1083) - 4628 1EB1 21 B8 1E lxi h,X1eb8 - 4629 1EB4 22 40 21 shld X2140 - 4630 1EB7 C9 ret + 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 - 4632 1EB8 CD DD 1E X1eb8: call X1edd - 4633 1EBB 2A B4 21 lhld X21b4 - 4634 1EBE 47 mov b,a - 4635 1EBF 3A 7B 21 lda X217b - 4636 1EC2 4F mov c,a - 4637 1EC3 B8 cmp b - 4638 1EC4 CA D3 1E jz X1ed3 - 4639 1EC7 7D mov a,l - 4640 1EC8 FE 90 cpi 90h - 4641 1ECA CA D3 1E jz X1ed3 - 4642 1ECD 70 mov m,b - 4643 1ECE 23 inx h - 4644 1ECF 22 B4 21 shld X21b4 - 4645 1ED2 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 - 4647 1ED3 71 X1ed3: mov m,c - 4648 1ED4 CD CD 1C call X1ccd - 4649 1ED7 CD 4B 09 call X094b - 4650 1EDA C3 B0 1B jmp X1bb0 + 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 - 4652 1EDD F5 X1edd: push psw - 4653 1EDE FE 20 cpi 20h - 4654 1EE0 D2 E5 1E jnc X1ee5 - 4655 1EE3 3E 01 mvi a,1 - 4656 1EE5 CD E3 05 X1ee5: call X05e3 - 4657 1EE8 F1 pop psw - 4658 1EE9 C9 ret + 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 - 4660 1EEA E5 X1eea: push h - 4661 1EEB 21 4E 20 lxi h,scratch_start ; HL -> 0x204e - 4662 1EEE 4F mov c,a - 4663 1EEF 3A A2 21 lda X21a2 - 4664 1EF2 B7 ora a - 4665 1EF3 C2 FC 1E jnz X1efc - 4666 1EF6 79 mov a,c - 4667 1EF7 FE 50 cpi 50h - 4668 1EF9 F2 0F 1F jp X1f0f - 4669 1EFC 7E X1efc: mov a,m - 4670 1EFD 23 inx h - 4671 1EFE 66 mov h,m - 4672 1EFF 6F mov l,a - 4673 1F00 7C mov a,h - 4674 1F01 E6 0F ani 0fh - 4675 1F03 F6 20 ori 20h - 4676 1F05 67 mov h,a - 4677 1F06 79 mov a,c - 4678 1F07 85 add l - 4679 1F08 6F mov l,a - 4680 1F09 D2 0D 1F jnc X1f0d - 4681 1F0C 24 inr h - 4682 1F0D 70 X1f0d: mov m,b - 4683 1F0E 78 mov a,b - 4684 1F0F E1 X1f0f: pop h - 4685 1F10 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 - 4687 1F11 D5 X1f11: push d - 4688 1F12 AF xra a - 4689 1F13 32 A5 21 sta X21a5 - 4690 1F16 06 00 mvi b,0 - 4691 1F18 78 X1f18: mov a,b - 4692 1F19 32 58 21 sta X2158 - 4693 1F1C D3 02 out 2 - 4694 1F1E 0E 01 mvi c,1 - 4695 1F20 79 X1f20: mov a,c - 4696 1F21 D3 00 out 0 - 4697 1F23 21 00 C0 lxi h,Xc000 - 4698 1F26 C5 X1f26: push b - 4699 1F27 E5 push h - 4700 1F28 CD 75 06 call X0675 - 4701 1F2B E1 pop h - 4702 1F2C C1 pop b - 4703 1F2D C2 48 1F jnz X1f48 - 4704 1F30 23 inx h - 4705 1F31 7C mov a,h - 4706 1F32 B5 ora l - 4707 1F33 C2 26 1F jnz X1f26 - 4708 1F36 3E 05 X1f36: mvi a,5 - 4709 1F38 D3 01 out 1 - 4710 1F3A 3A 58 21 lda X2158 - 4711 1F3D D3 02 out 2 - 4712 1F3F 3E 25 mvi a,25h - 4713 1F41 32 A5 21 sta X21a5 - 4714 1F44 AF xra a - 4715 1F45 37 stc - 4716 1F46 D1 pop d - 4717 1F47 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 - 4719 1F48 E6 7F X1f48: ani 7fh - 4720 1F4A B9 cmp c - 4721 1F4B C2 36 1F jnz X1f36 - 4722 1F4E 79 mov a,c - 4723 1F4F 07 rlc - 4724 1F50 FE 80 cpi 80h - 4725 1F52 4F mov c,a - 4726 1F53 C2 20 1F jnz X1f20 - 4727 1F56 78 mov a,b - 4728 1F57 C6 11 adi 11h - 4729 1F59 47 mov b,a - 4730 1F5A FE 10 cpi 10h - 4731 1F5C C2 18 1F jnz X1f18 - 4732 1F5F AF xra a - 4733 1F60 D1 pop d - 4734 1F61 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 - 4736 1F62 D5 X1f62: push d - 4737 1F63 16 07 mvi d,7 - 4738 1F65 7A X1f65: mov a,d - 4739 1F66 CD 7B 1F call X1f7b - 4740 1F69 CD A1 1F call X1fa1 - 4741 1F6C BA cmp d - 4742 1F6D C2 36 1F jnz X1f36 - 4743 1F70 15 dcr d - 4744 1F71 C2 65 1F jnz X1f65 - 4745 1F74 3E 05 mvi a,5 - 4746 1F76 D3 01 out 1 - 4747 1F78 AF xra a - 4748 1F79 D1 pop d - 4749 1F7A 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 - 4751 1F7B 47 X1f7b: mov b,a - 4752 1F7C E6 02 ani 2 - 4753 1F7E 0F rrc - 4754 1F7F 0F rrc - 4755 1F80 0F rrc - 4756 1F81 0F rrc - 4757 1F82 F6 10 ori 10h - 4758 1F84 32 C9 21 sta X21c9 - 4759 1F87 D3 62 out 62h - 4760 1F89 0E 05 mvi c,5 - 4761 1F8B 78 mov a,b - 4762 1F8C E6 01 ani 1 - 4763 1F8E CA 93 1F jz X1f93 - 4764 1F91 0E 25 mvi c,25h - 4765 1F93 78 X1f93: mov a,b - 4766 1F94 E6 04 ani 4 - 4767 1F96 CA 9D 1F jz X1f9d - 4768 1F99 79 mov a,c - 4769 1F9A F6 02 ori 2 - 4770 1F9C 4F mov c,a - 4771 1F9D 79 X1f9d: mov a,c - 4772 1F9E D3 01 out 1 - 4773 1FA0 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 - 4775 1FA1 DB 22 X1fa1: in 22h - 4776 1FA3 47 mov b,a - 4777 1FA4 0E 01 mvi c,1 - 4778 1FA6 78 mov a,b - 4779 1FA7 E6 90 ani 90h - 4780 1FA9 CA B3 1F jz X1fb3 - 4781 1FAC FE 90 cpi 90h - 4782 1FAE 3E FF mvi a,0ffh - 4783 1FB0 C0 rnz - 4784 1FB1 0E 00 mvi c,0 - 4785 1FB3 78 X1fb3: mov a,b - 4786 1FB4 E6 40 ani 40h - 4787 1FB6 CA BD 1F jz X1fbd - 4788 1FB9 79 mov a,c - 4789 1FBA F6 02 ori 2 - 4790 1FBC 4F mov c,a - 4791 1FBD DB 01 X1fbd: in 1 - 4792 1FBF 0F rrc - 4793 1FC0 0F rrc - 4794 1FC1 2F cma - 4795 1FC2 E6 20 ani 20h - 4796 1FC4 A8 xra b - 4797 1FC5 E6 20 ani 20h - 4798 1FC7 3E FF mvi a,0ffh - 4799 1FC9 C0 rnz - 4800 1FCA 78 mov a,b - 4801 1FCB E6 20 ani 20h - 4802 1FCD C2 D4 1F jnz X1fd4 - 4803 1FD0 79 mov a,c - 4804 1FD1 F6 04 ori 4 - 4805 1FD3 4F mov c,a - 4806 1FD4 B7 X1fd4: ora a - 4807 1FD5 79 mov a,c - 4808 1FD6 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 - 4813 1FFF 00 nop + 4817 1FFF 00 nop ; Miscellaneous equates @@ -4964,7 +4968,6 @@ 20 65 X2065 equ 2065h 20 67 X2067 equ 2067h 20 69 X2069 equ 2069h - 20 6E X206e equ 206eh 20 72 X2072 equ 2072h 20 73 X2073 equ 2073h 20 74 X2074 equ 2074h @@ -4985,7 +4988,6 @@ 20 F2 X20f2 equ 20f2h 20 F4 X20f4 equ 20f4h 20 F5 X20f5 equ 20f5h - 20 F6 X20f6 equ 20f6h 20 F8 X20f8 equ 20f8h 20 F9 X20f9 equ 20f9h 20 FA X20fa equ 20fah @@ -5078,7 +5080,6 @@ 22 65 X2265 equ 2265h 22 D0 X22d0 equ 22d0h 28 39 X2839 equ 2839h - 30 00 X3000 equ 3000h 30 30 X3030 equ 3030h 30 31 X3031 equ 3031h 30 32 X3032 equ 3032h @@ -5127,6 +5128,7 @@ 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 @@ -5150,7 +5152,6 @@ X205c EQU 0205Ch X2065 EQU 02065h X2067 EQU 02067h X2069 EQU 02069h -X206e EQU 0206Eh X2072 EQU 02072h X2073 EQU 02073h X2074 EQU 02074h @@ -5171,7 +5172,6 @@ X20de EQU 020DEh X20f2 EQU 020F2h X20f4 EQU 020F4h X20f5 EQU 020F5h -X20f6 EQU 020F6h X20f8 EQU 020F8h X20f9 EQU 020F9h X20fa EQU 020FAh @@ -5264,7 +5264,6 @@ X225a EQU 0225Ah X2265 EQU 02265h X22d0 EQU 022D0h X2839 EQU 02839h -X3000 EQU 03000h X3030 EQU 03030h X3031 EQU 03031h X3032 EQU 03032h @@ -5588,7 +5587,6 @@ X0feb Label 00FEBh X0fed Label 00FEDh X0ffa Label 00FFAh X0fff Label 00FFFh -X1000 Label 01000h X1003 Label 01003h X1012 Label 01012h X101a Label 0101Ah @@ -5839,8 +5837,8 @@ X1fd4 Label 01FD4h Statistics ---------- "Name" = 0 -"EQU" = 176 +"EQU" = 174 "SET" = 0 -Labels = 536 +Labels = 535 diff --git a/modules/pc8080/lib/keyboard.js b/modules/pc8080/lib/keyboard.js index 78123677b..bc06ceea4 100644 --- a/modules/pc8080/lib/keyboard.js +++ b/modules/pc8080/lib/keyboard.js @@ -249,15 +249,15 @@ Keyboard.STUPID_KEYCODES[Keyboard.KEYCODE.FF_DASH] = Keyboard.ASCII['-']; Keyboard.MINPRESSTIME = 100; // 100ms /** - * Alternate keyCode mappings (to support popular "WASD"-style directional-key mappings) + * Alternate keyCode mappings to support popular "WASD"-style directional-key mappings. * * TODO: ES6 computed property name support may now be in all mainstream browsers, allowing us to use * a simple object literal for this and all other object initializations. */ -Keyboard.ALTCODES = {}; -Keyboard.ALTCODES[Keyboard.ASCII.A] = Keyboard.KEYCODE.LEFT; -Keyboard.ALTCODES[Keyboard.ASCII.D] = Keyboard.KEYCODE.RIGHT; -Keyboard.ALTCODES[Keyboard.ASCII.L] = Keyboard.KEYCODE.SPACE; +Keyboard.WASDCODES = {}; +Keyboard.WASDCODES[Keyboard.ASCII.A] = Keyboard.KEYCODE.LEFT; +Keyboard.WASDCODES[Keyboard.ASCII.D] = Keyboard.KEYCODE.RIGHT; +Keyboard.WASDCODES[Keyboard.ASCII.L] = Keyboard.KEYCODE.SPACE; /* * Supported configurations @@ -265,6 +265,7 @@ Keyboard.ALTCODES[Keyboard.ASCII.L] = Keyboard.KEYCODE.SPACE; Keyboard.SI1978 = { MODEL: 1978.1, KEYMAP: {}, + ALTCODES: Keyboard.WASDCODES, LEDCODES: {}, SOFTCODES: { '1p': Keyboard.KEYCODE.ONE, @@ -279,6 +280,7 @@ Keyboard.SI1978 = { Keyboard.VT100 = { MODEL: 100.0, KEYMAP: {}, + ALTCODES: {}, LEDCODES: {}, SOFTCODES: {}, /* @@ -302,7 +304,7 @@ Keyboard.VT100 = { LED2: 0x04, LED1: 0x08, LOCKED: 0x10, - ONLINE: 0x20, + LOCAL: 0x20, LEDS: 0x3F, // all LEDs START: 0x40, // set to initiate a scan /* @@ -411,8 +413,8 @@ Keyboard.VT100.LEDCODES = { 'l2': Keyboard.VT100.STATUS.LED2, 'l1': Keyboard.VT100.STATUS.LED1, 'locked': Keyboard.VT100.STATUS.LOCKED, - 'online': Keyboard.VT100.STATUS.ONLINE, - 'local': ~Keyboard.VT100.STATUS.ONLINE + 'local': Keyboard.VT100.STATUS.LOCAL, + 'online': ~Keyboard.VT100.STATUS.LOCAL }; /* @@ -689,7 +691,7 @@ Keyboard.prototype.updateLEDs = function(bLEDs) */ Keyboard.prototype.getSoftCode = function(keyCode) { - keyCode = Keyboard.ALTCODES[keyCode] || keyCode; + keyCode = this.config.ALTCODES[keyCode] || keyCode; if (this.config.KEYMAP[keyCode]) { return keyCode; } @@ -786,31 +788,30 @@ Keyboard.prototype.onSoftKeyDown = function(softCode, fDown) } if (this.chipset) { + var bit = 0; switch(softCode) { case '1p': - this.chipset.updateStatus1(ChipSet.SI1978.STATUS1.P1, fDown); + bit = ChipSet.SI1978.STATUS1.P1; break; - case '2p': - this.chipset.updateStatus1(ChipSet.SI1978.STATUS1.P2, fDown); + bit = ChipSet.SI1978.STATUS1.P2; break; - case 'coin': - this.chipset.updateStatus1(ChipSet.SI1978.STATUS1.CREDIT, fDown); + bit = ChipSet.SI1978.STATUS1.CREDIT; break; - case 'left': - this.chipset.updateStatus1(ChipSet.SI1978.STATUS1.P1_LEFT, fDown); + bit = ChipSet.SI1978.STATUS1.P1_LEFT; break; - case 'right': - this.chipset.updateStatus1(ChipSet.SI1978.STATUS1.P1_RIGHT, fDown); + bit = ChipSet.SI1978.STATUS1.P1_RIGHT; break; - case 'fire': - this.chipset.updateStatus1(ChipSet.SI1978.STATUS1.P1_FIRE, fDown); + bit = ChipSet.SI1978.STATUS1.P1_FIRE; break; } + if (bit) { + this.chipset.updateStatus1(bit, fDown); + } } return true; }; @@ -885,7 +886,18 @@ Keyboard.prototype.inVT100UARTAddress = function(port, addrFrom) var b = this.bVT100Address; if (this.iKeyNext >= 0) { if (this.iKeyNext < this.aKeysActive.length) { - var key = this.aKeysActive[this.iKeyNext++]; + var key = this.aKeysActive[this.iKeyNext]; + if (!MAXDEBUG) { + this.iKeyNext++; + } else { + /* + * In MAXDEBUG builds, this code removes the key as soon as it's been reported, because + * when debugging, it's easy for the window to lose focus and never receive the keyUp event, + * thereby leaving us with a stuck key. However, this causes more problems than it solves, + * and seems to illustrate that key presses need to be persist for more than a single poll. + */ + this.aKeysActive.splice(this.iKeyNext, 1); + } b = Keyboard.VT100.KEYMAP[key.softCode]; if (b & 0x80) { /* diff --git a/versions/pc8080/1.23.3/pc8080-dbg.js b/versions/pc8080/1.23.3/pc8080-dbg.js index 25d5c0022..2fd69da0b 100644 --- a/versions/pc8080/1.23.3/pc8080-dbg.js +++ b/versions/pc8080/1.23.3/pc8080-dbg.js @@ -9,54 +9,54 @@ function qa(){return window?window.navigator.userAgent:""}function u(a){window&& function ua(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}function va(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function wa(a){if(window){var b=qa();return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}function xa(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0=this.J?10:20>=this.J?12:24>=this.J?14:15;this.Ea=1<>2;this.A=this.Ea-1;this.M=this.O/this.Ea|0;this.K=this.M-1;this.u=[];this.w=[];this.F=this.H=!1;this.Z=[];this.ba=[];a=new E;tb(a,this.I);this.W=Array(this.M);for(b=0;b>>a.na;0f&&(l=f);if(g&&g.size){if(g.type==d){if(e+f<=g.G)return g.Fb+=g.G-e,g.G=e,!0;if(e>=g.G+g.Fb){l=g.size-(e-k);l>f&&(l=f);g.Fb=e-g.G+l;e=k+a.Ea;f-=l;h++;continue}}return vb(1,e,f)}e=new E(e,l,a.Ea,d);tb(e,a.I,g);a.W[h++]=e;e=k+a.Ea;f-=l}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+wb[d]+" at "+t(b)),!0):vb(2,b,c)}m.Y=function(a){return this.W[(a&this.D)>>>this.na].qb(a&this.A,a)}; -function xb(a,b){return a.W[(b&a.D)>>>a.na].Db(b&a.A,b)}m.Qa=function(a){var b=a&this.A,c=(a&this.D)>>>this.na;return b!=this.A?this.W[c].Ac(b,a):this.W[c++].qb(b,a)|this.W[c&this.K].qb(0,a+1)<<8};function yb(a,b){var c=b&a.A,d=(b&a.D)>>>a.na;return c!=a.A?a.W[d].ac(c,b):a.W[d++].Db(c,b)|a.W[d&a.K].Db(0,b+1)<<8}m.ra=function(a,b){this.W[(a&this.D)>>>this.na].sb(a&this.A,b&255,a)};function zb(a,b,c){a.W[(b&a.D)>>>a.na].Gb(b&a.A,c&255,b)} -m.Rb=function(a,b){var c=a&this.A,d=(a&this.D)>>>this.na;c!=this.A?this.W[d].Cc(c,b&65535,a):(this.W[d++].sb(c,b&255,a),this.W[d&this.K].sb(0,b>>8&255,a+1))};function Ab(a,b){if(void 0===b)return a.F=!a.F,a.F;void 0===a.u[b]&&(a.u[b]=[null,!1]);a.u[b][1]=!a.u[b][1];return a.u[b][1]}function Bb(a,b,c,d){void 0===d&&(d=0);if(c)for(var e in c){var f=a,h=+e+d,g=c[e].bind(b);if(void 0!==g)for(var k=+e+d;k<=h;k++)void 0!==f.u[k]?u("Input port "+t(k)+" already registered"):f.u[k]=[g,!1]}} -function Cb(a,b,c){for(var d=1,e=0,f=0;0>>=f)&k;if(void 0!==h){if(h[0])h[0](b,k,d);a.I&&a.H!=h[1]&&Hb(a.I,b,k)}else a.I&&(eb(a.I,a,b,k,d),a.H&&Hb(a.I,b,k));f+=g<<3;b+=g;e-=g}} -function vb(a,b,c){u("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}var Ib;if(lb){var Jb=new ArrayBuffer(2);(new DataView(Jb)).setUint16(0,256,!0);Ib=256===(new Uint16Array(Jb))[0]}else Ib=!1;var Kb=Ib; -function E(a,b,c,d){this.id=Tb+=2;this.b=null;this.G=a;this.Fb=b;this.size=c||0;this.type=d||Ub;this.L=d==Vb;tb(this);this.La=this.lc=!1;if(c)if(lb)this.F=new ArrayBuffer(c),this.H=new DataView(this.F,0,c),this.A=new Uint8Array(this.F,0,c),this.K=new Uint16Array(this.F,0,c>>1),this.b=new Int32Array(this.F,0,c>>2),Wb(this,Kb?Xb:Yb);else{this.b=Array(c>>2);for(a=0;a>2),b=0;b>8,c)},da:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},ma:function(a){var b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8},Ba:function(a,b){var c=a>>2,d=(a&3)<<3;this.b[c]=this.b[c]&~(255<>2,d=(a&3)<<3;24>d?this.b[c]=this.b[c]&~(65535<>8);this.La=!0},Z:function(a,b){if(this.I&&null!=this.G){var c=this.I;cc(c,this.G+a,1,c.Z)&&c.la(!0)}return this.Db(a,b)},fa:function(a,b){if(this.I&&null!=this.G){var c=this.I;cc(c,this.G+a,2,c.Z)&&c.la(!0)}return this.ac(a,b)},va:function(a,b,c){if(this.I&&null!=this.G){var d=this.I;cc(d,this.G+a,1,d.H)&&d.la(!0)}this.L?this.D(a,b,c):this.Gb(a,b,c)},Ja:function(a, -b,c){if(this.I&&null!=this.G){var d=this.I;cc(d,this.G+a,2,d.H)&&d.la(!0)}this.L?this.D(a,b,c):this.cc(a,b,c)},P:function(a){return this.A[a]},ba:function(a){return this.A[a]},ea:function(a){return this.H.getUint16(a,!0)},ha:function(a){return a&1?this.A[a]|this.A[a+1]<<8:this.K[a>>1]},oa:function(a,b){this.A[a]=b;this.La=!0},wa:function(a,b){this.A[a]=b;this.La=!0},Ca:function(a,b){this.H.setUint16(a,b,!0);this.La=!0},Ka:function(a,b){a&1?(this.A[a]=b,this.A[a+1]=b>>8):this.K[a>>1]=b;this.La=!0}}; -function tb(a,b,c){a.I=b;a.u=a.w=0;c&&((a.u=c.u)&&bc(a,ac,!1),(a.w=c.w)&&$b(a,ac,!1))}function dc(a,b){b?0===--a.w&&(a.sb=a.L?a.D:a.Gb,a.Cc=a.L?a.J:a.cc):0===--a.u&&(a.qb=a.Db,a.Ac=a.ac)}function $b(a,b,c){c&&a.w||(a.sb=!a.L&&b[2]||a.D,a.Cc=!a.L&&b[3]||a.J);if(c||void 0===c)a.Gb=b[2]||a.D,a.cc=b[3]||a.J}function bc(a,b,c){c&&a.u||(a.qb=b[0]||a.M,a.Ac=b[1]||a.O);if(c||void 0===c)a.Db=b[0]||a.M,a.ac=b[1]||a.O}function Wb(a,b){b||(b=ec);bc(a,b,void 0);$b(a,b,void 0)} -var ec=[],Zb=[E.prototype.da,E.prototype.ma,E.prototype.Ba,E.prototype.ab],ac=[E.prototype.Z,E.prototype.fa,E.prototype.va,E.prototype.Ja];if(lb)var Yb=[E.prototype.P,E.prototype.ea,E.prototype.oa,E.prototype.Ca],Xb=[E.prototype.ba,E.prototype.ha,E.prototype.wa,E.prototype.Ka]; -function fc(a,b){x.call(this,"CPU",a,fc,1);var c=a.cycles||b,d=a.multiplier||1;this.i={};this.i.pb=c;this.i.Ob=0;this.i.Za=d;this.i.Xb=Math.round(this.i.pb/1E4)/100;this.i.Xa=this.i.Xb*this.i.Za;this.C.xa=!1;this.C.Vb=!1;this.C.kc=a.autoStart;this.C.mc=!1;this.C.hb=!1;this.i.xb=this.i.mb=0;this.i.yb=a.csStart;this.i.lb=a.csInterval;this.i.nb=a.csStop;this.ba=this.$a.bind(this);D(this)}Za(fc);var gc=["power","reset"];m=fc.prototype; -m.Na=function(a,b,c,d){this.u=a;this.A=b;this.I=d;for(b=0;b=a.i.mb&&(a.i.mb+=a.i.lb,c=!0);0<=a.i.nb&&a.i.nb<=oc(a)&&(a.i.lb=a.i.nb=-1,jc(a),a.la(),c=!0);c&&a.g(oc(a)+" cycles: checksum="+n(a.i.xb))}} -m.ka=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.L[b]=c;a=!0;break;case "run":this.L[b]=c;c.onclick=function(){var a;if(a=d.u)if(a=d.u,a.C.sa)a=!0;else{var b=null,c,g=bb(a.id);for(c=0;cc&&(c=2);var d=1;b&&1a.i.Wa/a.i.Xa?b=1:d=!0;a.i.Za=b;b=a.i.Xb*a.i.Za;if(a.i.Xa!=b){a.i.Xa=b;b=a.i.Xa.toFixed(2)+"Mhz";var e=a.L.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}c&&a.u&&a.u.Eb()}Cc(a,a.H);a.H=0;a.i.kb=la();a.i.Ya=0;Dc(a);return d} -m.$a=function(a){if(hb(this,!0)){if(!this.C.xa){Bc(this);this.u&&this.u.start(this.i.kb,oc(this));this.C.xa=!0;this.C.Vb=!0;this.D&&this.D.start();var b=this.L.run;b&&(b.textContent="Halt");this.u&&(this.u.Ga(!0),a&&this.u.Eb(!0))}this.i.$b>=this.i.pb&&Dc(this,!0);this.i.Bb=0;this.i.Nb=la();this.i.Ya&&(a=this.i.Nb-this.i.Ya,a>this.i.tc&&(this.i.kb+=a,this.i.kb>this.i.Nb&&(this.i.kb=this.i.Nb)));try{do{this.rb(this.C.hb?1:this.i.rd);var c=this.F-this.b;this.H+=c;this.i.Bb+=c;Cc(this,0,!0);nc(this, -c);this.i.Ab-=c;0>=this.i.Ab&&(this.i.Ab+=this.i.vc,this.u&&Ec(this.u,this.i.Ob++),this.i.Ob>this.M&&(this.i.Ob=0));this.i.zb-=c;0>=this.i.zb&&(this.i.zb+=this.i.uc,this.u&&this.u.Ga());this.i.ob-=c;if(0>=this.i.ob){this.i.ob+=this.i.Zb;break}}while(this.C.xa)}catch(e){this.la();lc(this);this.u&&this.u.stop(la(),oc(this));hb(this,!1);kb(this,e.stack||e.message);return}c=setTimeout;a=this.ba;this.i.Ya=la();b=this.i.tc;this.i.Bb&&(b=Math.round(b*this.i.Bb/this.i.Zb));var b=b-(this.i.Ya-this.i.Nb),d= -this.i.Ya-this.i.kb;d&&(this.i.Wa=Math.round(this.H/(10*d))/100,864E5<=d&&(this.J=0,Bc(this)));if(0>b||this.i.Wa=this.J?10:20>=this.J?12:24>=this.J?14:15;this.Ea=1<>2;this.A=this.Ea-1;this.M=this.O/this.Ea|0;this.K=this.M-1;this.u=[];this.w=[];this.I=this.G=!1;this.Z=[];this.ba=[];a=new E;tb(a,this.H);this.W=Array(this.M);for(b=0;b>>a.na;0f&&(l=f);if(g&&g.size){if(g.type==d){if(e+f<=g.F)return g.Fb+=g.F-e,g.F=e,!0;if(e>=g.F+g.Fb){l=g.size-(e-k);l>f&&(l=f);g.Fb=e-g.F+l;e=k+a.Ea;f-=l;h++;continue}}return vb(1,e,f)}e=new E(e,l,a.Ea,d);tb(e,a.H,g);a.W[h++]=e;e=k+a.Ea;f-=l}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+wb[d]+" at "+t(b)),!0):vb(2,b,c)}m.Y=function(a){return this.W[(a&this.C)>>>this.na].qb(a&this.A,a)}; +function xb(a,b){return a.W[(b&a.C)>>>a.na].Db(b&a.A,b)}m.Qa=function(a){var b=a&this.A,c=(a&this.C)>>>this.na;return b!=this.A?this.W[c].Bc(b,a):this.W[c++].qb(b,a)|this.W[c&this.K].qb(0,a+1)<<8};function yb(a,b){var c=b&a.A,d=(b&a.C)>>>a.na;return c!=a.A?a.W[d].ac(c,b):a.W[d++].Db(c,b)|a.W[d&a.K].Db(0,b+1)<<8}m.ra=function(a,b){this.W[(a&this.C)>>>this.na].sb(a&this.A,b&255,a)};function zb(a,b,c){a.W[(b&a.C)>>>a.na].Gb(b&a.A,c&255,b)} +m.Rb=function(a,b){var c=a&this.A,d=(a&this.C)>>>this.na;c!=this.A?this.W[d].Dc(c,b&65535,a):(this.W[d++].sb(c,b&255,a),this.W[d&this.K].sb(0,b>>8&255,a+1))};function Ab(a,b){if(void 0===b)return a.I=!a.I,a.I;void 0===a.u[b]&&(a.u[b]=[null,!1]);a.u[b][1]=!a.u[b][1];return a.u[b][1]}function Bb(a,b,c,d){void 0===d&&(d=0);if(c)for(var e in c){var f=a,h=+e+d,g=c[e].bind(b);if(void 0!==g)for(var k=+e+d;k<=h;k++)void 0!==f.u[k]?u("Input port "+t(k)+" already registered"):f.u[k]=[g,!1]}} +function Cb(a,b,c){for(var d=1,e=0,f=0;0>>=f)&k;if(void 0!==h){if(h[0])h[0](b,k,d);a.H&&a.G!=h[1]&&Hb(a.H,b,k)}else a.H&&(eb(a.H,a,b,k,d),a.G&&Hb(a.H,b,k));f+=g<<3;b+=g;e-=g}} +function vb(a,b,c){u("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}var Ib;if(nb){var Jb=new ArrayBuffer(2);(new DataView(Jb)).setUint16(0,256,!0);Ib=256===(new Uint16Array(Jb))[0]}else Ib=!1;var Sb=Ib; +function E(a,b,c,d){this.id=Tb+=2;this.b=null;this.F=a;this.Fb=b;this.size=c||0;this.type=d||Ub;this.L=d==Vb;tb(this);this.La=this.mc=!1;if(c)if(nb)this.I=new ArrayBuffer(c),this.G=new DataView(this.I,0,c),this.A=new Uint8Array(this.I,0,c),this.K=new Uint16Array(this.I,0,c>>1),this.b=new Int32Array(this.I,0,c>>2),Wb(this,Sb?Xb:Yb);else{this.b=Array(c>>2);for(a=0;a>2),b=0;b>8,c)},da:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},ma:function(a){var b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8},Ba:function(a,b){var c=a>>2,d=(a&3)<<3;this.b[c]=this.b[c]&~(255<>2,d=(a&3)<<3;24>d?this.b[c]=this.b[c]&~(65535<>8);this.La=!0},Z:function(a,b){if(this.H&&null!=this.F){var c=this.H;cc(c,this.F+a,1,c.Z)&&c.la(!0)}return this.Db(a,b)},fa:function(a,b){if(this.H&&null!=this.F){var c=this.H;cc(c,this.F+a,2,c.Z)&&c.la(!0)}return this.ac(a,b)},va:function(a,b,c){if(this.H&&null!=this.F){var d=this.H;cc(d,this.F+a,1,d.G)&&d.la(!0)}this.L?this.C(a,b,c):this.Gb(a,b,c)},Ja:function(a, +b,c){if(this.H&&null!=this.F){var d=this.H;cc(d,this.F+a,2,d.G)&&d.la(!0)}this.L?this.C(a,b,c):this.cc(a,b,c)},P:function(a){return this.A[a]},ba:function(a){return this.A[a]},ea:function(a){return this.G.getUint16(a,!0)},ha:function(a){return a&1?this.A[a]|this.A[a+1]<<8:this.K[a>>1]},oa:function(a,b){this.A[a]=b;this.La=!0},wa:function(a,b){this.A[a]=b;this.La=!0},Ca:function(a,b){this.G.setUint16(a,b,!0);this.La=!0},Ka:function(a,b){a&1?(this.A[a]=b,this.A[a+1]=b>>8):this.K[a>>1]=b;this.La=!0}}; +function tb(a,b,c){a.H=b;a.u=a.w=0;c&&((a.u=c.u)&&bc(a,ac,!1),(a.w=c.w)&&$b(a,ac,!1))}function dc(a,b){b?0===--a.w&&(a.sb=a.L?a.C:a.Gb,a.Dc=a.L?a.J:a.cc):0===--a.u&&(a.qb=a.Db,a.Bc=a.ac)}function $b(a,b,c){c&&a.w||(a.sb=!a.L&&b[2]||a.C,a.Dc=!a.L&&b[3]||a.J);if(c||void 0===c)a.Gb=b[2]||a.C,a.cc=b[3]||a.J}function bc(a,b,c){c&&a.u||(a.qb=b[0]||a.M,a.Bc=b[1]||a.O);if(c||void 0===c)a.Db=b[0]||a.M,a.ac=b[1]||a.O}function Wb(a,b){b||(b=ec);bc(a,b,void 0);$b(a,b,void 0)} +var ec=[],Zb=[E.prototype.da,E.prototype.ma,E.prototype.Ba,E.prototype.ab],ac=[E.prototype.Z,E.prototype.fa,E.prototype.va,E.prototype.Ja];if(nb)var Yb=[E.prototype.P,E.prototype.ea,E.prototype.oa,E.prototype.Ca],Xb=[E.prototype.ba,E.prototype.ha,E.prototype.wa,E.prototype.Ka]; +function fc(a,b){x.call(this,"CPU",a,fc,1);var c=a.cycles||b,d=a.multiplier||1;this.i={};this.i.pb=c;this.i.Ob=0;this.i.Za=d;this.i.Xb=Math.round(this.i.pb/1E4)/100;this.i.Xa=this.i.Xb*this.i.Za;this.D.xa=!1;this.D.Vb=!1;this.D.lc=a.autoStart;this.D.nc=!1;this.D.hb=!1;this.i.xb=this.i.mb=0;this.i.yb=a.csStart;this.i.lb=a.csInterval;this.i.nb=a.csStop;this.ba=this.$a.bind(this);D(this)}Za(fc);var gc=["power","reset"];m=fc.prototype; +m.Na=function(a,b,c,d){this.u=a;this.A=b;this.H=d;for(b=0;b=a.i.mb&&(a.i.mb+=a.i.lb,c=!0);0<=a.i.nb&&a.i.nb<=Ac(a)&&(a.i.lb=a.i.nb=-1,jc(a),a.la(),c=!0);c&&a.g(Ac(a)+" cycles: checksum="+n(a.i.xb))}} +m.ka=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.L[b]=c;a=!0;break;case "run":this.L[b]=c;c.onclick=function(){var a;if(a=d.u)if(a=d.u,a.D.sa)a=!0;else{var b=null,c,g=bb(a.id);for(c=0;cc&&(c=2);var d=1;b&&1a.i.Wa/a.i.Xa?b=1:d=!0;a.i.Za=b;b=a.i.Xb*a.i.Za;if(a.i.Xa!=b){a.i.Xa=b;b=a.i.Xa.toFixed(2)+"Mhz";var e=a.L.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}c&&a.u&&a.u.Eb()}Cc(a,a.G);a.G=0;a.i.kb=la();a.i.Ya=0;Dc(a);return d} +m.$a=function(a){if(hb(this,!0)){if(!this.D.xa){Bc(this);this.u&&this.u.start(this.i.kb,Ac(this));this.D.xa=!0;this.D.Vb=!0;this.I&&this.I.start();var b=this.L.run;b&&(b.textContent="Halt");this.u&&(this.u.Ga(!0),a&&this.u.Eb(!0))}this.i.$b>=this.i.pb&&Dc(this,!0);this.i.Bb=0;this.i.Nb=la();this.i.Ya&&(a=this.i.Nb-this.i.Ya,a>this.i.uc&&(this.i.kb+=a,this.i.kb>this.i.Nb&&(this.i.kb=this.i.Nb)));try{do{this.rb(this.D.hb?1:this.i.sd);var c=this.C-this.b;this.G+=c;this.i.Bb+=c;Cc(this,0,!0);nc(this, +c);this.i.Ab-=c;0>=this.i.Ab&&(this.i.Ab+=this.i.wc,this.u&&Ec(this.u,this.i.Ob++),this.i.Ob>this.M&&(this.i.Ob=0));this.i.zb-=c;0>=this.i.zb&&(this.i.zb+=this.i.vc,this.u&&this.u.Ga());this.i.ob-=c;if(0>=this.i.ob){this.i.ob+=this.i.Zb;break}}while(this.D.xa)}catch(e){this.la();lc(this);this.u&&this.u.stop(la(),Ac(this));hb(this,!1);kb(this,e.stack||e.message);return}c=setTimeout;a=this.ba;this.i.Ya=la();b=this.i.uc;this.i.Bb&&(b=Math.round(b*this.i.Bb/this.i.Zb));var b=b-(this.i.Ya-this.i.Nb),d= +this.i.Ya-this.i.kb;d&&(this.i.Wa=Math.round(this.G/(10*d))/100,864E5<=d&&(this.J=0,Bc(this)));if(0>b||this.i.Wa>8&255;a.S=b&255}function Oc(a){return a.T<<8|a.U}function Pc(a,b){a.T=b>>8&255;a.U=b&255}function K(a){return a.V<<8|a.X} function Qc(a,b){a.V=b>>8&255;a.X=b&255}function F(a,b){a.N=b&65535}function Rc(a){return a.aa&256?1:0}function Sc(a,b){a.aa=a.aa&255|b}function Tc(a){return ob[a.ca&255]?4:0}function Uc(a){return(a.ca^a.ua)&16?16:0}function Vc(a){return a.aa&255?0:64}function Wc(a){return a.ca&128?128:0}function Lc(a){return a.ta&-214|Wc(a)|Vc(a)|Uc(a)|Tc(a)|Rc(a)}function Jc(a,b){a.aa=a.ca=a.ua=0;b&1&&(a.aa|=256);b&4||(a.ca|=1);b&16&&(a.ua|=16);b&64||(a.aa|=255);b&128&&(a.ca^=192);a.ta=a.ta&-726|b&512|2} function Xc(a,b){a.ua=a.j^b;return a.ca=(a.aa=a.j+b)&255}function Yc(a,b){a.ua=a.j^b;return a.ca=(a.aa=a.j+b+(a.aa&256?1:0))&255}function Zc(a,b){a.aa=a.ca=a.ua=a.j&b;(a.j|b)&8&&(a.ua^=16);return a.aa}function $c(a,b){a.ua=b^255;b=a.ca=b+255&255;a.aa=a.aa&-256|b;return b}function ad(a,b){a.ua=b;b=a.ca=b+1&255;a.aa=a.aa&-256|b;return b}function bd(a,b){return a.ca=a.aa=a.ua=a.j|b}function L(a,b){b^=255;a.ua=a.j^b;return a.ca=(a.aa=a.j+b+1^256)&255} function cd(a,b){b^=255;a.ua=a.j^b;return a.ca=(a.aa=a.j+b+(a.aa&256?0:1)^256)&255}function dd(a,b){return a.ca=a.aa=a.ua=a.j^b}m.Y=function(a){return this.A.Y(a)};m.ra=function(a,b){this.A.ra(a,b)};function M(a){var b=a.Y(a.N);F(a,a.N+1);return b}function N(a){var b=a.A.Qa(a.N);F(a,a.N+2);return b}function P(a){var b=a.A.Qa(a.ja);a.ja=a.ja+2&65535;return b}function Q(a,b){a.ja=a.ja-2&65535;a.A.Rb(a.ja,b)}function ed(a,b){a.w=a.w&-8|b|8} -function S(a,b,c,d){d=d||2;a.L[b]&&(void 0===c&&(kb(a,"Value for "+b+" is invalid"),a.la()),c=!a.C.xa||a.C.mc?n(c,d):"--------".substr(0,d),a.L[b].textContent!=c&&(a.L[b].textContent=c))} -m.Ga=function(a){this.Z&&(a||!this.C.xa||this.C.mc)&&(S(this,"A",this.j),S(this,"B",this.R),S(this,"C",this.S),S(this,"BC",Mc(this),4),S(this,"D",this.T),S(this,"E",this.U),S(this,"DE",Oc(this),4),S(this,"H",this.V),S(this,"L",this.X),S(this,"HL",K(this),4),S(this,"SP",this.ja,4),S(this,"PC",this.N,4),a=Lc(this),S(this,"PS",a,4),S(this,"IF",a&512?1:0,1),S(this,"SF",a&128?1:0,1),S(this,"ZF",a&64?1:0,1),S(this,"AF",a&16?1:0,1),S(this,"PF",a&4?1:0,1),S(this,"CF",a&1?1:0,1));if(a=this.L.speed)a.textContent= -this.C.xa&&this.i.Wa?this.i.Wa.toFixed(2)+"Mhz":"Stopped"};m.rb=function(a){this.C.Jb=!0;var b=this.C.gd=this.I&&fd(this.I),c=a?this.C.Vb?0:1:-1;this.C.Vb=!1;this.F=this.b=a;do{if(this.w){if(a&&this.w&8&&this.ta&512){var d=199|(this.w&7)<<3;this.w&=-17;this.w&=-16;this.ta&=-513;this.O[d].call(this)}if(this.w&16){this.b=0;break}}if(b){if(zd(this.I,this.N,c)){this.la();break}c=1}this.O[M(this)].call(this)}while(0>8;Sc(this,a&256);this.b-=4},Ad,function(){var a;Qc(this,a=K(this)+Mc(this));Sc(this,a>>8&256);this.b-=10},function(){this.j=this.Y(Mc(this));this.b-=7},function(){Nc(this,Mc(this)-1);this.b-= 5},function(){this.S=ad(this,this.S);this.b-=5},function(){this.S=$c(this,this.S);this.b-=5},function(){this.S=M(this);this.b-=7},function(){var a=this.j<<8&256;this.j=(a|this.j)>>1;Sc(this,a);this.b-=4},Ad,function(){Pc(this,N(this));this.b-=10},function(){this.ra(Oc(this),this.j);this.b-=7},function(){Pc(this,Oc(this)+1);this.b-=5},function(){this.T=ad(this,this.T);this.b-=5},function(){this.T=$c(this,this.T);this.b-=5},function(){this.T=M(this);this.b-=7},function(){var a=this.j<<1;this.j=a&255| @@ -67,7 +67,7 @@ ad(this,this.X);this.b-=5},function(){this.X=$c(this,this.X);this.b-=5},function 5},function(){this.R=this.X;this.b-=5},function(){this.R=this.Y(K(this));this.b-=7},function(){this.R=this.j;this.b-=5},function(){this.S=this.R;this.b-=5},function(){this.b-=5},function(){this.S=this.T;this.b-=5},function(){this.S=this.U;this.b-=5},function(){this.S=this.V;this.b-=5},function(){this.S=this.X;this.b-=5},function(){this.S=this.Y(K(this));this.b-=7},function(){this.S=this.j;this.b-=5},function(){this.T=this.R;this.b-=5},function(){this.T=this.S;this.b-=5},function(){this.b-=5},function(){this.T= this.U;this.b-=5},function(){this.T=this.V;this.b-=5},function(){this.T=this.X;this.b-=5},function(){this.T=this.Y(K(this));this.b-=7},function(){this.T=this.j;this.b-=5},function(){this.U=this.R;this.b-=5},function(){this.U=this.S;this.b-=5},function(){this.U=this.T;this.b-=5},function(){this.b-=5},function(){this.U=this.V;this.b-=5},function(){this.U=this.X;this.b-=5},function(){this.U=this.Y(K(this));this.b-=7},function(){this.U=this.j;this.b-=5},function(){this.V=this.R;this.b-=5},function(){this.V= this.S;this.b-=5},function(){this.V=this.T;this.b-=5},function(){this.V=this.U;this.b-=5},function(){this.b-=5},function(){this.V=this.X;this.b-=5},function(){this.V=this.Y(K(this));this.b-=7},function(){this.V=this.j;this.b-=5},function(){this.X=this.R;this.b-=5},function(){this.X=this.S;this.b-=5},function(){this.X=this.T;this.b-=5},function(){this.X=this.U;this.b-=5},function(){this.X=this.V;this.b-=5},function(){this.b-=5},function(){this.X=this.Y(K(this));this.b-=7},function(){this.X=this.j; -this.b-=5},function(){this.ra(K(this),this.R);this.b-=7},function(){this.ra(K(this),this.S);this.b-=7},function(){this.ra(K(this),this.T);this.b-=7},function(){this.ra(K(this),this.U);this.b-=7},function(){this.ra(K(this),this.V);this.b-=7},function(){this.ra(K(this),this.X);this.b-=7},function(){var a=this.N-1;if(this.K.length)for(var b=0;b>8;this.b-=10},function(){var a=N(this);Wc(this)||F(this,a);this.b-=10},function(){this.ta&=-513;this.b-=4},function(){var a=N(this);Wc(this)||(Q(this,this.N),F(this,a),this.b-=6);this.b-=11},function(){Q(this,Lc(this)&255|this.j<<8);this.b-=11},function(){this.j=bd(this,M(this));this.b-=7},function(){Q(this,this.N);F(this,48);this.b-=11},function(){Wc(this)&&(F(this,P(this)), this.b-=6);this.b-=5},function(){this.ja=K(this)&65535;this.b-=5},function(){var a=N(this);Wc(this)&&F(this,a);this.b-=10},function(){this.ta|=512;this.b-=4},function(){var a=N(this);Wc(this)&&(Q(this,this.N),F(this,a),this.b-=6);this.b-=11},Dd,function(){L(this,M(this));this.b-=7},function(){Q(this,this.N);F(this,56);this.b-=11}]; -function T(a){x.call(this,"ChipSet",a,T,32768);var b=a.model;b&&!Ed[b]&&Ka("Unrecognized ChipSet model: "+b);this.D=Ed[b]||{};a.sound&&(this.da=null,window&&(this.da=window.AudioContext||window.webkitAudioContext),this.da&&new this.da);D(this)}Za(T); -var U={ya:1978.1,bd:{za:0,Pd:1,Td:16,$d:32,ie:64,he:128,tb:14},Sa:{za:1,Hc:1,Xc:2,Tc:4,Uc:16,Vc:32,Wc:64,tb:8},cd:{za:2,Od:3,pe:4,Qd:8,de:16,ee:32,fe:64,Rd:128,tb:0},le:{za:3},je:{za:2,ae:7},ne:{za:3,qe:1,me:2,ge:4,Yd:8,Sd:16,Md:32},ke:{za:4},oe:{za:5,Ud:1,Vd:2,Wd:4,Xd:8,re:16}},V={ya:100,Pa:{za:66,se:1,Rc:2,Sc:4,ce:8,be:16,gc:32,fc:64,dc:128},Gc:{za:66,INIT:0},Ha:{Zd:{za:98},Ra:{Ec:0,Dc:1,Zc:2,dd:4,Kc:5,Yc:6,$c:7},Hb:16383},Jc:{za:162,INIT:0},Ic:{za:194,INIT:0}},Ed={SI1978:U,VT100:V}; -T.prototype.ka=function(){return!1};T.prototype.Na=function(a,b,c,d){this.A=b;this.b=c;this.I=d;this.u=a;this.M=qb(a,"Keyboard");Bb(b,this,this.D.Pb);Fb(b,this,this.D.Qb)};T.prototype.Aa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};T.prototype.Fa=function(a){return a?this.save():!0};U.INIT=[[U.bd.tb,U.Sa.tb,U.cd.tb,0,0,0,0]]; -V.INIT=[[V.Gc.INIT,V.Pa.Rc|V.Pa.Sc,V.Jc.INIT,V.Ic.INIT],[0,0,0,0,[11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11776,11856,11824,11840,11808,11776,12E3,12E3,11857,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]];m=T.prototype; -m.reset=function(){this.D.INIT&&!this.restore(this.D.INIT)&&this.ga("reset error")};m.save=function(){var a=new G(this);switch(this.D.ya){case U.ya:H(a,0,[this.va,this.F,this.wa,this.P,this.ba,this.ma,this.oa]);break;case V.ya:H(a,0,[this.ea,this.J,this.ha,this.fa]),H(a,1,[this.O,this.w,this.K,this.Z,this.H])}return a.data()}; -m.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.D.ya){case U.ya:return this.va=b[0],this.F=b[1],this.wa=b[2],this.P=b[3],this.ba=b[4],this.ma=b[5],this.oa=b[6],!0;case V.ya:return this.ea=b[0],this.J=b[1],this.ha=b[2],this.fa=b[3],b=a[1],this.O=b[0],this.w=b[1],this.K=b[2],this.Z=b[3],this.H=b[4],!0}return!1};m.start=function(){};m.stop=function(){};function Fd(a,b,c){a.F&=~b;c&&(a.F|=b)}m.ld=function(a,b){var c=this.va;C(this,a,null,b,"STATUS0",c,!0);return c}; -m.md=function(a,b){var c=this.F;C(this,a,null,b,"STATUS1",c,!0);return c};m.nd=function(a,b){var c=this.wa;C(this,a,null,b,"STATUS2",c,!0);return c};m.kd=function(a,b){var c=this.P>>8-this.ba&255;C(this,a,null,b,"SHIFT.RESULT",c,!0);return c};m.vd=function(a,b,c){C(this,a,b,c,"SHIFT.COUNT",null,!0);this.ba=b};m.xd=function(a,b,c){C(this,a,b,c,"SOUND1",null,!0);this.ma=b};m.wd=function(a,b,c){C(this,a,b,c,"SHIFT.DATA",null,!0);this.P=b<<8|this.P>>8}; -m.yd=function(a,b,c){C(this,a,b,c,"SOUND2",null,!0);this.oa=b};m.zd=function(a,b,c){C(this,a,b,c,"WATCHDOG",null,!0)};function Gd(a){var b=0,c=0,d=~a.O;for(a=0;10>a;a++)d&1&&(b=9-a),d>>=1;for(a=0;10>a;a++)d&1&&(c=9-a),d>>=1;return 10*b+c} -m.od=function(a,b){var c=this.J,c=c&~V.Pa.fc;if((oc(this.b)&64)<<1&&(c|=V.Pa.fc,c!=this.J)){var d,e;d=this.K&1;e=this.K>>1&7;switch(e){case V.Ha.Ra.$c:break;case V.Ha.Ra.Dc:this.O=this.O<<1|d;break;case V.Ha.Ra.Kc:d=Gd(this);this.H[d]=V.Ha.Hb;fb(this,"doNVRCommand(): erase data at addr "+t(d));break;case V.Ha.Ra.Ec:this.w=this.w<<1|d;break;case V.Ha.Ra.dd:d=Gd(this);e=this.w&V.Ha.Hb;this.H[d]=e;fb(this,"doNVRCommand(): write data "+t(e)+" to addr "+t(d));break;case V.Ha.Ra.Yc:d=Gd(this);e=this.H[d]; -null==e&&(e=V.Ha.Hb);this.w=e;fb(this,"doNVRCommand(): read data "+t(e)+" from addr "+t(d));break;case V.Ha.Ra.Zc:this.w<<=1;this.Z=this.w&V.Ha.Hb+1;break;default:fb(this,"doNVRCommand(): unrecognized command 0x"+n(e,2))}}c&=~V.Pa.gc;this.Z&&(c|=V.Pa.gc);c&=~V.Pa.dc;this.M&&(c|=V.Pa.dc);this.J=c;C(this,a,null,b,"FLAGS.BUFFER",c);return c};m.Ad=function(a,b,c){C(this,a,b,c,"BRIGHTNESS");this.ea=b};m.Dd=function(a,b,c){C(this,a,b,c,"NVR.LATCH");this.K=b}; -m.Cd=function(a,b,c){C(this,a,b,c,"DC012");this.ha=b};m.Bd=function(a,b,c){C(this,a,b,c,"DC011");this.fa=b};U.Pb={0:T.prototype.ld,1:T.prototype.md,2:T.prototype.nd,3:T.prototype.kd};U.Qb={2:T.prototype.vd,3:T.prototype.xd,4:T.prototype.wd,5:T.prototype.yd,6:T.prototype.zd};V.Pb={66:T.prototype.od};V.Qb={66:T.prototype.Ad,98:T.prototype.Dd,162:T.prototype.Cd,194:T.prototype.Bd};Ia(function(){for(var a=B(document,"pc8080","chipset"),b=0;b>>0,h],q=ka(p,k,a.Ua);0>q&&p.splice(-(q+1),0,k)}l&&(g.a=l.replace(/''/g,'"'))}a.J.push({te:b,G:c,qd:d,Oa:e,ic:f})}delete this.Oa}return!0};Hd.prototype.Fa=function(){return!0}; -function Id(a,b,c,d){if(d)a.ga("Unable to load system ROM (error "+d+": "+b+")");else{ab(a.Tb,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,h=e.data;if(f)a.u=f;else if(h)for(a.u=Array(4*h.length),d=c=0;c>8&255,a.u[d++]=h[c]>>16&255,a.u[d++]=h[c]>>24&255;else a.u=e;a.Oa=e.symbols;if(!a.u.length){u("Empty ROM: "+b);return}if(1==a.u.length){u(a.u[0]);return}}catch(g){a.ga("ROM data error: "+g.message);return}else for(b=c.replace(/\n/gm, -" ").replace(/ +$/,"").split(" "),a.u=Array(b.length),e=0;e>>f.na;0>>=f.na;0>8-this.ba&255;C(this,a,null,b,"SHIFT.RESULT",c,!0);return c};m.wd=function(a,b,c){C(this,a,b,c,"SHIFT.COUNT",null,!0);this.ba=b};m.yd=function(a,b,c){C(this,a,b,c,"SOUND1",null,!0);this.ma=b};m.xd=function(a,b,c){C(this,a,b,c,"SHIFT.DATA",null,!0);this.P=b<<8|this.P>>8}; +m.zd=function(a,b,c){C(this,a,b,c,"SOUND2",null,!0);this.oa=b};m.Ad=function(a,b,c){C(this,a,b,c,"WATCHDOG",null,!0)};function Fd(a){var b=0,c=0,d=~a.O;for(a=0;10>a;a++)d&1&&(b=9-a),d>>=1;for(a=0;10>a;a++)d&1&&(c=9-a),d>>=1;return 10*b+c} +m.pd=function(a,b){var c=this.J,c=c&~V.Pa.hc;if((Ac(this.b)&64)<<1&&(c|=V.Pa.hc,c!=this.J)){var d,e;d=this.K&1;e=this.K>>1&7;switch(e){case V.Ha.Ra.ad:break;case V.Ha.Ra.Ec:this.O=this.O<<1|d;break;case V.Ha.Ra.Lc:d=Fd(this);this.G[d]=V.Ha.Hb;fb(this,"doNVRCommand(): erase data at addr "+t(d));break;case V.Ha.Ra.Fc:this.w=this.w<<1|d;break;case V.Ha.Ra.ed:d=Fd(this);e=this.w&V.Ha.Hb;this.G[d]=e;fb(this,"doNVRCommand(): write data "+t(e)+" to addr "+t(d));break;case V.Ha.Ra.Zc:d=Fd(this);e=this.G[d]; +null==e&&(e=V.Ha.Hb);this.w=e;fb(this,"doNVRCommand(): read data "+t(e)+" from addr "+t(d));break;case V.Ha.Ra.$c:this.w<<=1;this.Z=this.w&V.Ha.Hb+1;break;default:fb(this,"doNVRCommand(): unrecognized command 0x"+n(e,2))}}c&=~V.Pa.ic;this.Z&&(c|=V.Pa.ic);c&=~V.Pa.ec;this.M&&(c|=V.Pa.ec);this.J=c;C(this,a,null,b,"FLAGS.BUFFER",c);return c};m.Bd=function(a,b,c){C(this,a,b,c,"BRIGHTNESS");this.ea=b};m.Ed=function(a,b,c){C(this,a,b,c,"NVR.LATCH");this.K=b}; +m.Dd=function(a,b,c){C(this,a,b,c,"DC012");this.ha=b};m.Cd=function(a,b,c){C(this,a,b,c,"DC011");this.fa=b};U.Pb={0:T.prototype.md,1:T.prototype.nd,2:T.prototype.od,3:T.prototype.ld};U.Qb={2:T.prototype.wd,3:T.prototype.yd,4:T.prototype.xd,5:T.prototype.zd,6:T.prototype.Ad};V.Pb={66:T.prototype.pd};V.Qb={66:T.prototype.Bd,98:T.prototype.Ed,162:T.prototype.Dd,194:T.prototype.Cd};Ia(function(){for(var a=B(document,"pc8080","chipset"),b=0;b>>0,h],q=ka(p,k,a.Ua);0>q&&p.splice(-(q+1),0,k)}l&&(g.a=l.replace(/''/g,'"'))}a.J.push({ue:b,F:c,rd:d,Oa:e,jc:f})}delete this.Oa}return!0};Gd.prototype.Fa=function(){return!0}; +function Hd(a,b,c,d){if(d)a.ga("Unable to load system ROM (error "+d+": "+b+")");else{ab(a.Tb,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,h=e.data;if(f)a.u=f;else if(h)for(a.u=Array(4*h.length),d=c=0;c>8&255,a.u[d++]=h[c]>>16&255,a.u[d++]=h[c]>>24&255;else a.u=e;a.Oa=e.symbols;if(!a.u.length){u("Empty ROM: "+b);return}if(1==a.u.length){u(a.u[0]);return}}catch(g){a.ga("ROM data error: "+g.message);return}else for(b=c.replace(/\n/gm, +" ").replace(/ +$/,"").split(" "),a.u=Array(b.length),e=0;e>>f.na;0>>=f.na;0d?a.A.push({bc:b,Yb:Date.now(),Ib:!1}):(a.A[d].Yb=Date.now(),a.A[d].Ib=!1);else if(0<=d){if(!a.A[d].Ib){var e=a.A[d].Yb;if(e&&100>Date.now()-e)return a.A[d].Ib=!0,Vd(a),!0}a.A.splice(d,1)}if(a.D)switch(b){case "1p":Fd(a.D,U.Sa.Tc,c);break;case "2p":Fd(a.D,U.Sa.Xc,c);break;case "coin":Fd(a.D,U.Sa.Hc,c);break;case "left":Fd(a.D,U.Sa.Vc,c);break;case "right":Fd(a.D,U.Sa.Wc,c);break;case "fire":Fd(a.D,U.Sa.Uc,c)}return!0} -function Vd(a){for(var b=0,c=-1;bc||c>e)c=e}else{Td(a,d,!1);b=0;continue}}b++}0<=c&&setTimeout(function(){Vd(a)},c)}m.pd=function(a,b){var c=this.F;0<=this.w&&(this.w>3)*this.da;if(this.Id||ub(this.A,this.va,this.Ua,3))1>1)),this.O=document.createElement("canvas"),this.O.width=b,this.O.height=c,this.cb=this.O.getContext("2d"),this.ma={},this.Ca=1<=a.Fd?8:16,f=8>(7d?a.u.push({bc:b,Yb:Date.now(),Ib:!1}):(a.u[d].Yb=Date.now(),a.u[d].Ib=!1);else if(0<=d){if(!a.u[d].Ib){var e=a.u[d].Yb;if(e&&100>Date.now()-e)return a.u[d].Ib=!0,Td(a),!0}a.u.splice(d,1)}if(a.I){d=0;switch(b){case "1p":d=U.Sa.Uc;break;case "2p":d=U.Sa.Yc;break;case "coin":d=U.Sa.Ic;break;case "left":d=U.Sa.Wc;break;case "right":d=U.Sa.Xc;break;case "fire":d=U.Sa.Vc}d&&(a=a.I,b=d,a.I&=~b,c&&(a.I|=b))}return!0} +function Td(a){for(var b=0,c=-1;bc||c>e)c=e}else{Rd(a,d,!1);b=0;continue}}b++}0<=c&&setTimeout(function(){Td(a)},c)}m.qd=function(a,b){var c=this.C;0<=this.w&&(this.w>3)*this.da;if(this.Jd||ub(this.A,this.va,this.Ua,3))1>1)),this.O=document.createElement("canvas"),this.O.width=b,this.O.height=c,this.cb=this.O.getContext("2d"),this.ma={},this.Ca=1<=a.Gd?8:16,f=8>(7>4)*c)}return k} -Wd.prototype.Aa=function(){if(2==this.ea){for(var a={0:[32,"SET-UP A"],2:[64,'TO EXIT PRESS "SET-UP"'],22:[96," T T T T T T T T T"],23:[96,"1234567890","1234567890","1234567890","1234567890","1234567890","1234567890","1234567890","1234567890"],24:[]},b=this.va,c=-1,d=-1,e,f=-(60==this.yc?2:5);f>8&15|16;zb(this.A,b++,e);zb(this.A,b++, -c&255);if(g)break}if(h)for(c=0,e=1;ec&&(a=Math.round(c/b*100)+"%")}this.qc?(this.P.style.width=a,this.P.style.width=a,this.P.style.display="block",this.P.style.margin="auto"):(this.w.style.width=a,this.w.style.height="auto");this.w.style.backgroundColor="black";this.w.fb();a=!0}this.Ba&&this.Ba.focus()}return a}; -function Zd(a,b){!b&&a.w&&(a.qc?a.P.style.width=a.P.style.height="":a.w.style.width=a.w.style.height="");fb(a,"notifyFullScreen("+b+")",!0)}function ae(a,b){a.wc=b;a.wa=!1;if(void 0===a.J||a.J.length!=a.wc)a.J=Array(a.wc)}function de(a,b,c,d,e){d=a.D?(b.height-c-1)*b.width+d:c+d*b.width;e&&1==a.ea&&(208<=c&&236>c?e=a.Ca+0:28<=c&&72>c&&(e=a.Ca+1));a=a.oa[e];d*=a.length;b.data[d]=a[0];b.data[d+1]=a[1];b.data[d+2]=a[2];b.data[d+3]=a[3]} -function ee(a){for(var b=a.va,c=-1,d=0,e=60==a.yc?2:5,f=0,h=0;d>=1);;){var q=xb(a.A,k++);if(127==(q&127)){var r=xb(a.A,k++),c=r&96,b=(r&15)<<8|xb(a.A,k),b=b+(r&16?8192:16384);break}if(g>4)*q.ia,w=void 0,J=void 0,A=void 0, -R=void 0,za=q.qa,Z=q.ia;y?(w=p*r.qa,J=d*r.ia,A=r.qa,R=r.ia):(w=p*r.Lb,J=d*r.Mb,A=r.Lb,R=r.Mb);q.qa>r.qa&&(w*=2,A*=2);q.ia>r.ia&&(0==l&&(v+=r.ia),Z=r.ia);y?y.drawImage(q.canvas,I,v,za,Z,w,J,A,R):(w+=0,J+=0,r.F.drawImage(q.canvas,I,v,za,Z,w,J,A,R))}h++}f++}d++}}a.wa=!0;h&&a.cb&&a.F.drawImage(a.O,0,0,a.K,a.da-a.ia,0,0,a.Gd,a.Hd)} +Ud.prototype.Aa=function(){if(2==this.ea){for(var a={0:[32,"SET-UP A"],2:[64,'TO EXIT PRESS "SET-UP"'],22:[96," T T T T T T T T T"],23:[96,"1234567890","1234567890","1234567890","1234567890","1234567890","1234567890","1234567890","1234567890"],24:[]},b=this.va,c=-1,d=-1,e,f=-(60==this.zc?2:5);f>8&15|16;zb(this.A,b++,e);zb(this.A,b++, +c&255);if(g)break}if(h)for(c=0,e=1;ec&&(a=Math.round(c/b*100)+"%")}this.rc?(this.P.style.width=a,this.P.style.width=a,this.P.style.display="block",this.P.style.margin="auto"):(this.w.style.width=a,this.w.style.height="auto");this.w.style.backgroundColor="black";this.w.fb();a=!0}this.Ba&&this.Ba.focus()}return a}; +function Xd(a,b){!b&&a.w&&(a.rc?a.P.style.width=a.P.style.height="":a.w.style.width=a.w.style.height="");fb(a,"notifyFullScreen("+b+")",!0)}function Zd(a,b){a.xc=b;a.wa=!1;if(void 0===a.J||a.J.length!=a.xc)a.J=Array(a.xc)}function be(a,b,c,d,e){d=a.C?(b.height-c-1)*b.width+d:c+d*b.width;e&&1==a.ea&&(208<=c&&236>c?e=a.Ca+0:28<=c&&72>c&&(e=a.Ca+1));a=a.oa[e];d*=a.length;b.data[d]=a[0];b.data[d+1]=a[1];b.data[d+2]=a[2];b.data[d+3]=a[3]} +function ce(a){for(var b=a.va,c=-1,d=0,e=60==a.zc?2:5,f=0,h=0;d>=1);;){var q=xb(a.A,k++);if(127==(q&127)){var r=xb(a.A,k++),c=r&96,b=(r&15)<<8|xb(a.A,k),b=b+(r&16?8192:16384);break}if(g>4)*q.ia,w=void 0,J=void 0,A=void 0, +R=void 0,za=q.qa,Z=q.ia;y?(w=p*r.qa,J=d*r.ia,A=r.qa,R=r.ia):(w=p*r.Lb,J=d*r.Mb,A=r.Lb,R=r.Mb);q.qa>r.qa&&(w*=2,A*=2);q.ia>r.ia&&(0==l&&(v+=r.ia),Z=r.ia);y?y.drawImage(q.canvas,I,v,za,Z,w,J,A,R):(w+=0,J+=0,r.I.drawImage(q.canvas,I,v,za,Z,w,J,A,R))}h++}f++}d++}}a.wa=!0;h&&a.cb&&a.I.drawImage(a.O,0,0,a.K,a.da-a.ia,0,0,a.Hd,a.Id)} Ia(function(){for(var a=B(document,"pc8080","video"),b=0;bMissing <canvas> support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=qa().indexOf("MSIE")&&(c.onresize=function(a,b,c,d){return function(){b.style.height= -(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Ra.aspect);f&&.3<=f&&3.33>=f&&(Ha("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");wa("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var h=e.getContext("2d"),d=new Wd(d,e,h,f,c);db(d,c)}}); -function fe(a){this.H=+a.adapter;switch(this.H){case 0:this.J=0;break;default:u("Unrecognized serial adapter #"+this.H);return}x.call(this,"SerialPort",a,fe,8388608);var b=a.binding;if("console"!=b){var c;a=ge;b&&(void 0===c&&(c="Panel"),(c=cb(c,this.id))&&(b=c.L[b])&&this.ka(null,a,b))}}Za(fe);var ge="buffer";m=fe.prototype; -m.ka=function(a,b,c){switch(b){case ge:return this.L[b]=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;(8===b||a.ctrlKey&&65<=b&&90>=b)&&a.preventDefault&&a.preventDefault();return!0},c.onkeypress=function(a){a=a||window.event;a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0}return!1};m.Na=function(a,b,c,d){this.A=b;this.b=c;this.I=d;this.D=qb(a,"ChipSet");Bb(b,this,he,this.J);Fb(b,this,ie,this.J);D(this)}; -m.Aa=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};m.Fa=function(a){return a?this.save():!0};m.reset=function(){je(this)};m.save=function(){var a=new G(this),b=0,c=[];c[b++]=this.w;c[b++]=this.u;c[b++]=this.F;H(a,0,c);return a.data()};m.restore=function(a){return je(this,a[0])};function je(a,b){var c=0;void 0===b&&(b=[0,0,0]);a.w=b[c++];a.u=b[c++];a.F=b[c++];return!0}m.jd=function(a,b){var c=this.w;C(this,a,null,b,"DATA",c);return c}; -m.hd=function(a,b){var c=this.u;C(this,a,null,b,"COMMAND",c);return c};m.ud=function(a,b,c){C(this,a,b,c,"DATA");this.w=b};m.td=function(a,b,c){C(this,a,b,c,"COMMAND");this.u=b};m.sd=function(a,b,c){C(this,a,b,c,"BAUDRATE");this.F=b};var he={0:fe.prototype.jd,1:fe.prototype.hd},ie={0:fe.prototype.ud,1:fe.prototype.td,2:fe.prototype.sd};Ia(function(){for(var a=B(document,"pc8080","serial"),b=0;b=f&&(Ha("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");wa("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var h=e.getContext("2d"),d=new Ud(d,e,h,f,c);db(d,c)}}); +function de(a){this.G=+a.adapter;switch(this.G){case 0:this.J=0;break;default:u("Unrecognized serial adapter #"+this.G);return}x.call(this,"SerialPort",a,de,8388608);var b=a.binding;if("console"!=b){var c;a=ee;b&&(void 0===c&&(c="Panel"),(c=cb(c,this.id))&&(b=c.L[b])&&this.ka(null,a,b))}}Za(de);var ee="buffer";m=de.prototype; +m.ka=function(a,b,c){switch(b){case ee:return this.L[b]=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;(8===b||a.ctrlKey&&65<=b&&90>=b)&&a.preventDefault&&a.preventDefault();return!0},c.onkeypress=function(a){a=a||window.event;a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0}return!1};m.Na=function(a,b,c,d){this.A=b;this.b=c;this.H=d;this.I=qb(a,"ChipSet");Bb(b,this,fe,this.J);Fb(b,this,ge,this.J);D(this)}; +m.Aa=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};m.Fa=function(a){return a?this.save():!0};m.reset=function(){he(this)};m.save=function(){var a=new G(this),b=0,c=[];c[b++]=this.w;c[b++]=this.u;c[b++]=this.C;H(a,0,c);return a.data()};m.restore=function(a){return he(this,a[0])};function he(a,b){var c=0;void 0===b&&(b=[0,0,0]);a.w=b[c++];a.u=b[c++];a.C=b[c++];return!0}m.kd=function(a,b){var c=this.w;C(this,a,null,b,"DATA",c);return c}; +m.jd=function(a,b){var c=this.u;C(this,a,null,b,"COMMAND",c);return c};m.vd=function(a,b,c){C(this,a,b,c,"DATA");this.w=b};m.ud=function(a,b,c){C(this,a,b,c,"COMMAND");this.u=b};m.td=function(a,b,c){C(this,a,b,c,"BAUDRATE");this.C=b};var fe={0:de.prototype.kd,1:de.prototype.jd},ge={0:de.prototype.vd,1:de.prototype.ud,2:de.prototype.td};Ia(function(){for(var a=B(document,"pc8080","serial"),b=0;b>>d.A.na;k=1}d.g("blockid physical blockaddr used size type");d.g("-------- --------- ---------- ------ ------ ----");for(var c=-1,l=0;k--;){var p=b[g];p.type==c?l++||d.g("..."):(c=p.type,l=wb[c],p&&d.g(n(p.id)+" %"+n(g<>>d.A.na;k=1}d.g("blockid physical blockaddr used size type");d.g("-------- --------- ---------- ------ ------ ----");for(var c=-1,l=0;k--;){var p=b[g];p.type==c?l++||d.g("..."):(c=p.type,l=wb[c],p&&d.g(n(p.id)+" %"+n(g<>>e.na;f!=e.A?e.W[h].cc(f,b&65535,d):(e.W[h++].Gb(f,b&255,d),e.W[h&e.K].Gb(0,b>>8&255,d+1));c&&ye(a,c);lc(this.b,!0)}};function X(a){return{G:a,Ma:!1}}function ze(a){return[a.G,a.Ma]}function Ae(a){return{G:a[0],Ma:a[1]}} -function xe(a,b,c){var d;c=(c?a.P:a.bb).G;if(void 0!==b){d=b=Be(a,b);var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;cc&&(c=na(se,a.substr(b,1))));return c}function He(a,b){var c=0,d=Ie(a,b);if(void 0!==d)switch(b){case 7:case 0:case 1:case 2:case 3:case 4:case 5:case 6:c=2;break;case 8:case 9:case 10:case 11:case 12:case 13:case 14:c=4}return c?n(d,c):"??"} -function Ie(a,b){var c;if(0<=b){var d=a.b;switch(b){case 7:c=d.j;break;case 0:c=d.R;break;case 1:c=d.S;break;case 8:c=Mc(d);break;case 2:c=d.T;break;case 3:c=d.U;break;case 9:c=Oc(d);break;case 4:c=d.V;break;case 5:c=d.X;break;case 10:c=K(d);break;case 6:c=d.Y(K(d));break;case 11:c=d.ja;break;case 12:c=d.N;break;case 13:c=Lc(d);break;case 14:c=Lc(d)&255|d.j<<8}}return c} -function Je(a,b){b=Be(a,b);for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=Ge(b,c+1),0<=e&&(b=b.substr(0,c)+He(a,e)+b.substr(c+1+se[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=ba(e,16),null!=d&&32<=d&&128>d?(d=e+" '"+String.fromCharCode(d)+"'",b=b.replace("#"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("$",c));)e=b.substr(c+1,9),(d=xe(a,e))?(d=e+' "'+Fe(a,d)+'"',b=b.replace("$"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("^",c));)e=b.substr(c+1,9),(d=xe(a,e))?(ye(d),d=e+' "'+ -Fe(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}m.message=function(a,b){b&&(a+=" at "+Y(X(this.b.N).G));if(this.pa&1073741824)this.Ba.push(a);else if(!this.wa||a!=this.wa)if(this.wa=a,this.pa&-2147483648&&(this.la(),a+=" (cpu halted)"),this.g(a),this.b){var c=this.b;c.i.ob=0;c.F-=c.b;c.b=0;lc(c)}}; +m.ka=function(a,b,c){var d=this;switch(b){case "debugInput":return this.oa=this.L[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",kc(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?d.I>>e.na;f!=e.A?e.W[h].cc(f,b&65535,d):(e.W[h++].Gb(f,b&255,d),e.W[h&e.K].Gb(0,b>>8&255,d+1));c&&we(a,c);lc(this.b,!0)}};function X(a){return{F:a,Ma:!1}}function xe(a){return[a.F,a.Ma]}function ye(a){return{F:a[0],Ma:a[1]}} +function ve(a,b,c){var d;c=(c?a.P:a.bb).F;if(void 0!==b){d=b=ze(a,b);var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;cc&&(c=na(qe,a.substr(b,1))));return c}function Fe(a,b){var c=0,d=Ge(a,b);if(void 0!==d)switch(b){case 7:case 0:case 1:case 2:case 3:case 4:case 5:case 6:c=2;break;case 8:case 9:case 10:case 11:case 12:case 13:case 14:c=4}return c?n(d,c):"??"} +function Ge(a,b){var c;if(0<=b){var d=a.b;switch(b){case 7:c=d.j;break;case 0:c=d.R;break;case 1:c=d.S;break;case 8:c=Mc(d);break;case 2:c=d.T;break;case 3:c=d.U;break;case 9:c=Oc(d);break;case 4:c=d.V;break;case 5:c=d.X;break;case 10:c=K(d);break;case 6:c=d.Y(K(d));break;case 11:c=d.ja;break;case 12:c=d.N;break;case 13:c=Lc(d);break;case 14:c=Lc(d)&255|d.j<<8}}return c} +function He(a,b){b=ze(a,b);for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=Ee(b,c+1),0<=e&&(b=b.substr(0,c)+Fe(a,e)+b.substr(c+1+qe[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=ba(e,16),null!=d&&32<=d&&128>d?(d=e+" '"+String.fromCharCode(d)+"'",b=b.replace("#"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("$",c));)e=b.substr(c+1,9),(d=ve(a,e))?(d=e+' "'+De(a,d)+'"',b=b.replace("$"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("^",c));)e=b.substr(c+1,9),(d=ve(a,e))?(we(d),d=e+' "'+ +De(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}m.message=function(a,b){b&&(a+=" at "+Y(X(this.b.N).F));if(this.pa&1073741824)this.Ba.push(a);else if(!this.wa||a!=this.wa)if(this.wa=a,this.pa&-2147483648&&(this.la(),a+=" (cpu halted)"),this.g(a),this.b){var c=this.b;c.i.ob=0;c.C-=c.b;c.b=0;lc(c)}}; function eb(a,b,c,d,e,f,h,g){g|=256;null!=f&&(a.pa&g)!=g||a.message(b.ab+"."+(null!=d?"outPort":"inPort")+"("+t(c)+","+(f?f:"unknown")+(null!=d?",0x"+n(d,2):"")+")"+(null!=h?": 0x"+n(h,2):"")+(null!=e?" at "+Y(e):""))} -function ne(a){var b;if(fd(a)){if(!a.O||!a.O.length){a.O=Array(1E3);for(b=0;b>>d.na],!1)}a.Z=["br"];if(void 0!==a.H)for(b=1;b>>d.na],!0);a.H=["bw"];a.cb=0}m.Va=function(a,b,c){var d=!0;c||mf(this,a,b,!1,!0);if(a!=this.w){var e=we(b);if(-1===e)this.g("invalid address: "+Y(b.G)),d=!1;else{var f=this.A;f.W[e>>>f.na].Va(e&f.A,a==this.H)}}d&&(a.push(b),c?b.Ma=!0:(nf(this,a,a.length-1,"set"),ne(this)));return d}; -function mf(a,b,c,d,e){var f=!1;c=we(c);for(var h=1;h>>d.na],b==a.H));g.Ma||ne(a);break}}return f}function of(a,b){for(var c=1;c>24,4);break;case 3:w=n(y.Qa(I,2),4);break;default:y="imm("+t(v)+")";break a}8086==y.style&&v&64?w="["+w+"]":v&16||(w=(y.style==le?"$":"0x")+w);y=w}else v& -16?(y=(q&3840)>>8,v=se[y],8086==a.style&&q&64&&(6==y&&(v="HL"),v="["+v+"]"),y=v):v&128&&(y=(f>>3&7).toString());if(!y||!y.length){g="INVALID";break}0=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9}; -function vf(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break; +function le(a){var b;if(yd(a)){if(!a.O||!a.O.length){a.O=Array(1E3);for(b=0;b>>d.na],!1)}a.Z=["br"];if(void 0!==a.G)for(b=1;b>>d.na],!0);a.G=["bw"];a.cb=0}m.Va=function(a,b,c){var d=!0;c||Me(this,a,b,!1,!0);if(a!=this.w){var e=ue(b);if(-1===e)this.g("invalid address: "+Y(b.F)),d=!1;else{var f=this.A;f.W[e>>>f.na].Va(e&f.A,a==this.G)}}d&&(a.push(b),c?b.Ma=!0:(lf(this,a,a.length-1,"set"),le(this)));return d}; +function Me(a,b,c,d,e){var f=!1;c=ue(c);for(var h=1;h>>d.na],b==a.G));g.Ma||le(a);break}}return f}function mf(a,b){for(var c=1;c>24,4);break;case 3:w=n(y.Qa(I,2),4);break;default:y="imm("+t(v)+")";break a}8086==y.style&&v&64?w="["+w+"]":v&16||(w=(y.style==je?"$":"0x")+w);y=w}else v& +16?(y=(q&3840)>>8,v=qe[y],8086==a.style&&q&64&&(6==y&&(v="HL"),v="["+v+"]"),y=v):v&128&&(y=(f>>3&7).toString());if(!y||!y.length){g="INVALID";break}0=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9}; +function tf(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break; case "^":d=f^e;break;case "|":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(d|0)}return!0} -function Ce(a,b,c){var d;if(b){b=Be(a,b);for(var e=0,f=!1,h=b,g=[],k=[],l=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e>=1;h=p+"b"+h;d>>=8}d="0x"+n(c)+" "+c+". ("+h+")"}a.g((null!=b?b+": ":"")+d);return e}function yf(a,b){if(b)return xf(a,b,a.ha[b]);var c=0;for(b in a.ha)xf(a,b,a.ha[b]),c++;return 0b[0]?1:a[0]>>0;for(b=0;b>>0,g=f.qd;if(e>=h&&e=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e>=1;h=p+"b"+h;d>>=8}d="0x"+n(c)+" "+c+". ("+h+")"}a.g((null!=b?b+": ":"")+d);return e}function wf(a,b){if(b)return vf(a,b,a.ha[b]);var c=0;for(b in a.ha)vf(a,b,a.ha[b]),c++;return 0b[0]?1:a[0]>>0;for(b=0;b>>0,g=f.rd;if(e>=h&&e>8&255;case "C":d.S=g&255;break;case "D":d.T= +function Je(a,b){var c;if(b&&"?"==b[1])a.g("register commands:"),a.g("\tr\tdump registers"),a.g("\trx [#]\tset flag or register x to [#]");else{var d=a.b;null==c&&(c=!0);if(null!=b&&1>8&255;case "C":d.S=g&255;break;case "D":d.T= g&255;break;case "DE":d.T=g>>8&255;case "E":d.U=g&255;break;case "H":d.V=g&255;break;case "HL":d.V=g>>8&255;case "L":d.X=g&255;break;case "SP":d.ja=g&65535;break;case "PC":F(d,g);a.P=X(d.N);break;case "PS":Jc(d,g);break;case "PSW":Jc(d,g&255|d.ta&-256);d.j=g>>8;break;case "CF":d.aa=g?d.aa|256:d.aa&255;break;case "PF":g?Tc(d)||(d.ca^=1):Tc(d)&&(d.ca^=1);break;case "AF":d.ua=g?~d.ca&16|d.ua&-17:d.ca&16|d.ua&-17;break;case "ZF":d.aa=g?d.aa&-256:d.aa|255;break;case "SF":g?Wc(d)||(d.ca^=192):Wc(d)&&(d.ca^= -192);break;case "IF":d.ta=g?d.ta|512:d.ta&-513;break;default:a.g("unknown register: "+e);return}if(!h){a.g("invalid value: "+f);return}lc(d);a.g("updated registers:")}a.g(tf(a));c&&(a.P=X(d.N),Me(a,Y(a.P.G)))}}function Ff(a,b){b=ja(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.g(Je(a,c[2])):Ce(a,b,!0)}function Gf(a,b,c){var d="t"!=b;c=wf(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);xa(c,function(){return hb(a,!0)&&a.rb(e,d,!1)},function(){lc(a.b);hb(a,!1)})} -function Me(a,b,c,d){if(b=xe(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=xe(a,c,!0);if(!d||d.Gg[0].indexOf("+"))){var l=g[0]+":";g[2]&&(l+=" "+g[2]);a.g(l)}g[3]&&(h=g[3],f=null);f=qf(a,b,h,f);a.g(f);a.P=b;e-=b.G-k;c++}}} -function Ee(a,b,c,d){if(c)if(b){0>a.F&&a.D.length&&(a.F=0);if(0>a.F||b!=a.D[a.F])a.D.splice(0,0,b),a.F=0;a.F--}else a.fa?b="end":b=a.D[a.F+1];a=[];if(b){b=b.toLowerCase().replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var h=b.charAt(f);if('"'==h||"'"==h)e?h==e&&(e=null):e=h;else if(h==d&&!e||!h)a.push(ja(b.substring(c,f))),c=f+1}}return a} -function pf(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(">> "+b):(a.fa&&(a.g("ended assemble at "+Y(a.ea.G)),a.P=a.ea,a.fa=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.wa=null;if(jb(a)&&0l||"z"Ca.length&&(a.g("note: only "+Ca.length+" available"),fa=Ca.length);aa-=fa;0>aa&&(null==Ca[Ca.length-1].G?(fa=aa+fa,aa=0):aa+=Ca.length);var id=[];"call"== -Te&&(nb=1E5,id=["CALL"]);for(void 0!==Se&&a.g(fa+" instructions earlier:");0=Ca.length&&(aa=0);a.eb=fa;Ve++;nb--}}Ve||(a.g("no "+Ue+"history available"),a.eb=void 0)}else{var pc=xe(a,Z);if(pc){var qc=0;Va&&("l"==Va.charAt(0)&&(Va=Va.substr(1)||ag),qc=wf(a,Va)>>>0,65536>4||1;cg--&&0uc?String.fromCharCode(uc):".";sc--}Wa&&(Wa+="\n");Wa+=Z+" "+Nb+(0==Mb?" "+kd:"")}Wa&&a.g(Wa);a.bb=pc}}}}break;case "e":if("else"==f[0])break;var vc=1,Ye=255,Ze=a.Y,$e=a.ra;"ew"==f[0]&&(vc=2,Ye=65535,Ze=a.Qa,$e=a.Rb);var af=vc<<1,bf=f[1];if(null==bf)a.g("edit memory commands:"), -a.g("\teb [a] [...] edit bytes at address a"),a.g("\tew [a] [...] edit words at address a");else{var wc=xe(a,bf);if(wc)for(var xc=2;xcrd;){for(var Xa=null,ig=256;65536>Qb.G>>>0;){df.G= -a.Qa(Qb,2);if(null==Qb.G||!ig--)break;for(var jg=a,zc=df,ef=null,Rb=zc.G,ff=Rb,sd=1;6>=sd&&Rb;sd++){if(2\nLicense: GPL version 3 or later ");for(b=0;bQf){if(Mf(d,this.P)){this.H=new G(this,"1.23.3","failsafe");Mf(this.H)&&(Vf(this,d),a=2,Jf(this.H));H(this.H,"timestamp",ma());Kf(this.H);var e=this.u&&!this.K;if(1==a||ra("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=Lf(d)){var f=Nf(d,"code"),h=Nf(d,"data");f&&("ok"==f?Mf(d,h):("error"==f&& -"no machine state"!=h?(this.ga("Error: "+h),"unable to verify user"==h&&(va("user",""),this.w=null)):this.g(f+": "+h),Jf(d),Mf(d)?(c=Lf(d),e=!0):c=!1))}e&&Uf(this,c?d:null)}else 2==a&&d.clear()}else Uf(this);delete this.P;delete this.Z}e=bb(this.id);for(f=0;fa[1];a=a[2];this.oa=!0;this.C.sa=!0;var d=this.L.power;d&&(d.textContent="Shutdown");this.b&&(Wf(this,this.b,b,c,a),mc(this.b));this.ea&&(Vf(this,b),b.clear());!c&&this.H&&(this.H.clear(),delete this.H);this.D=0}; -function Vf(a,b){if(ra("There may be a problem with your PC8080 machine.\n\nTo help us diagnose it, click OK to send this PC8080 machine state to http://www.pcjs.org.")){var c=a.w||"",d=b.toString(),e={app:"PC8080",ver:"1.23.3"};e.url=a.ma;e.user=c;e.type="bug";e.data=d;oa("http://www.pcjs.org/api/v1/report",e,!0)}} -function Hf(a,b,c){var d,e="none";if(a.D)return null;a.D--;var f=new G(a,"1.23.3"),h=new G(a,"1.23.3","validate"),g=ma();H(h,"timestamp",g);H(f,"timestamp",g);H(f,"version","1.23.3");H(f,"url",window?window.location.href:null);H(f,"browser",qa());a.b&&a.b.Fa&&(c&&a.b.la(),d=a.b.Fa(b,c),"object"===typeof d&&H(f,a.b.id,d),c&&(a.b.C.sa=!1,!1===d&&(e=null)));for(var g=bb(a.id),k=0;kg[0].indexOf("+"))){var l=g[0]+":";g[2]&&(l+=" "+g[2]);a.g(l)}g[3]&&(h=g[3],f=null);f=of(a,b,h,f);a.g(f);a.P=b;e-=b.F-k;c++}}} +function Ce(a,b,c,d){if(c)if(b){0>a.I&&a.C.length&&(a.I=0);if(0>a.I||b!=a.C[a.I])a.C.splice(0,0,b),a.I=0;a.I--}else a.fa?b="end":b=a.C[a.I+1];a=[];if(b){b=b.toLowerCase().replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var h=b.charAt(f);if('"'==h||"'"==h)e?h==e&&(e=null):e=h;else if(h==d&&!e||!h)a.push(ja(b.substring(c,f))),c=f+1}}return a} +function nf(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(">> "+b):(a.fa&&(a.g("ended assemble at "+Y(a.ea.F)),a.P=a.ea,a.fa=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.wa=null;if(jb(a)&&0l||"z"Ca.length&&(a.g("note: only "+Ca.length+" available"),fa=Ca.length);aa-=fa;0>aa&&(null==Ca[Ca.length-1].F?(fa=aa+fa,aa=0):aa+=Ca.length);var hd=[];"call"== +Se&&(mb=1E5,hd=["CALL"]);for(void 0!==Re&&a.g(fa+" instructions earlier:");0=Ca.length&&(aa=0);a.eb=fa;Ue++;mb--}}Ue||(a.g("no "+Te+"history available"),a.eb=void 0)}else{var oc=ve(a,Z);if(oc){var pc=0;Va&&("l"==Va.charAt(0)&&(Va=Va.substr(1)||Zf),pc=uf(a,Va)>>>0,65536>4||1;ag--&&0tc?String.fromCharCode(tc):".";rc--}Wa&&(Wa+="\n");Wa+=Z+" "+Mb+(0==Lb?" "+jd:"")}Wa&&a.g(Wa);a.bb=oc}}}}break;case "e":if("else"==f[0])break;var uc=1,Xe=255,Ye=a.Y,Ze=a.ra;"ew"==f[0]&&(uc=2,Xe=65535,Ye=a.Qa,Ze=a.Rb);var $e=uc<<1,af=f[1];if(null==af)a.g("edit memory commands:"), +a.g("\teb [a] [...] edit bytes at address a"),a.g("\tew [a] [...] edit words at address a");else{var vc=ve(a,af);if(vc)for(var wc=2;wcqd;){for(var Xa=null,gg=256;65536>Pb.F>>>0;){cf.F= +a.Qa(Pb,2);if(null==Pb.F||!gg--)break;for(var hg=a,yc=cf,df=null,Qb=yc.F,ef=Qb,rd=1;6>=rd&&Qb;rd++){if(2\nLicense: GPL version 3 or later ");for(b=0;bOf){if(Kf(d,this.P)){this.G=new G(this,"1.23.3","failsafe");Kf(this.G)&&(Tf(this,d),a=2,Hf(this.G));H(this.G,"timestamp",ma());If(this.G);var e=this.u&&!this.K;if(1==a||ra("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=Jf(d)){var f=Lf(d,"code"),h=Lf(d,"data");f&&("ok"==f?Kf(d,h):("error"==f&& +"no machine state"!=h?(this.ga("Error: "+h),"unable to verify user"==h&&(va("user",""),this.w=null)):this.g(f+": "+h),Hf(d),Kf(d)?(c=Jf(d),e=!0):c=!1))}e&&Sf(this,c?d:null)}else 2==a&&d.clear()}else Sf(this);delete this.P;delete this.Z}e=bb(this.id);for(f=0;fa[1];a=a[2];this.oa=!0;this.D.sa=!0;var d=this.L.power;d&&(d.textContent="Shutdown");this.b&&(Uf(this,this.b,b,c,a),mc(this.b));this.ea&&(Tf(this,b),b.clear());!c&&this.G&&(this.G.clear(),delete this.G);this.C=0}; +function Tf(a,b){if(ra("There may be a problem with your PC8080 machine.\n\nTo help us diagnose it, click OK to send this PC8080 machine state to http://www.pcjs.org.")){var c=a.w||"",d=b.toString(),e={app:"PC8080",ver:"1.23.3"};e.url=a.ma;e.user=c;e.type="bug";e.data=d;oa("http://www.pcjs.org/api/v1/report",e,!0)}} +function Ff(a,b,c){var d,e="none";if(a.C)return null;a.C--;var f=new G(a,"1.23.3"),h=new G(a,"1.23.3","validate"),g=ma();H(h,"timestamp",g);H(f,"timestamp",g);H(f,"version","1.23.3");H(f,"url",window?window.location.href:null);H(f,"browser",qa());a.b&&a.b.Fa&&(c&&a.b.la(),d=a.b.Fa(b,c),"object"===typeof d&&H(f,a.b.id,d),c&&(a.b.D.sa=!1,!1===d&&(e=null)));for(var g=bb(a.id),k=0;k>>f.na;0>8|(w&255)<<8);p>J&I;de(d,d.rc,p++,q,R);J+=v}p>r&&(r=p);q=h&&(h=q+1)}g+=2;l++;if(p>=d.K&&(p=0,q++,q>d.da))break}d.wa=!0;eg.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':""))}e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1pc8080$2")); -g=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){g=null,a=q.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");oa(e,null,!0,function(f,h,g){if(g||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(f=d[3])if(g=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=g[0],l,p=/( [a-z]+=)(['"])(.*?)\2/g;l=p.exec(f);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[0]);g[0]!=k&&(h=h.replace(g[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/, -"");a=a.replace(d[0],h);pg(a,b,c)}})}else c(a,null)} -function qg(a,b,c,d){function e(a){if(void 0===g){var b=h&&B(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=ha(a))}function f(a){e("Error: "+a);k&&(--Zf||La(!0));k=!1}var h,g,k=!0;Zf++;$a[a]={};try{if(h=document.getElementById(a)){var l;if("object"==typeof resources&&(l=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],q=document.createElement("style");q.type="text/css";q.styleSheet?q.styleSheet.cssText=l:q.appendChild(document.createTextNode(l));p.appendChild(q)}c|| -(c="/versions/pc8080/1.23.3/components.xsl");l=function(d,g){g?$f(c,null,null,!1,e,function(d,k){if(k)if(ab(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var l=g.transformNode(k);l?(h.outerHTML=l,--Zf||La(!0)):f("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(l=new XSLTProcessor,l.importStylesheet(k),(l=l.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(l,h),--Zf||La(!0)):f("invalid machine element: "+ -a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(d)}):f(d)};"<"!=b.charAt(0)?$f(b,a,d,!0,e,l):og(b,null,a,d,!1,e,l)}else f("missing machine element: "+a)}catch(r){f(r.message)}return k}window.embedPC8080=function(a,b,c,d){La(!1);return qg(a,b,c,d)};window.enableEvents=La;window.sendEvent=Ma; -function rg(a,b,c,d){if(!c&&b){d.push(b);a=$a[d[0]];b=null;for(var e in a)if(ea(e,"components.xsl")){b=e.replace(".xsl",".css");break}b?oa(b,null,!0,function(a,b){sg(b,d)}):sg(null,d)}else u("Error ("+c+") requesting "+a)} -function sg(a,b){var c,d,e,f=b[0],h=b[1];c=b[4];c=c.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/);var g=$a[f],k={},l;for(l in g){var p=g[l],q=da(l);if("xml"==q){for(q=/[ \t]*]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=q.exec(g[l]);){var r=d[2];r&&(g[r]||(p=p.replace(d[0],"")))}d=l=ca(l)}else"xsl"==q&&(e=l=ca(l));k[l]=p}a&&(k[l="css"]=a);b[2]&&(k[l="parms"]=b[2]);b[3]&&(k[l="state"]=b[3]);d&&e?(l=JSON.stringify(k),h+=".js",c=c[1]+"var resources="+l+";"+c[2]+c[3],c=c.replace(/\u00A9/g, +m.ka=function(a,b,c){var d=this;switch(b){case "power":return this.L[b]=c,c.onclick=function(){d.C||(d.D.sa?Ff(d,!1,!0):Rf(d,d.Cb))},!0;case "reset":return this.L[b]=c,c.onclick=function(){if(d.D.sa&&!d.C)if(d.u&&!d.O){var a=ra("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Ff(d,a,!0);!a&&d.da?window&&window.location.reload():d.Cb(Of)}else d.reset(),d.b&&mc(d.b)},!0;case "save":if(ea(pa(),"pcjs.org")){c.parentNode.removeChild(c); +break}this.L[b]=c;c.onclick=function(){var a=Pf(d,!0);if(a){var b=!!(d.u&&!d.O||d.da),c=Ff(d,b);b?Vf(d,a,c):d.ga("Resume disabled, machine state not saved")}};return!0}return!1}; +function Pf(a,b){var c=a.w;c||(c=ua("user"),void 0!==c?!c&&b&&(c=null,window&&(c=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c&&((c=Wf(a,c))||a.ga("The user ID is invalid."))):b&&a.ga("Browser local storage is not available"));return c} +function Wf(a,b){a.w=null;var c=oa(pa()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(va("user",c.data),a.w=c.data)}catch(e){u(e.message+" ("+d+")")}return a.w}function Qf(a){var b=null;a.w&&(b=pa()+"/api/v1/user?req=load&user="+a.w+"&state="+Gf(a,"1.23.3"));return b} +function Vf(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Gf(a,"1.23.3");d.data=c;b=oa(pa()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0>>f.na;0>8|(w&255)<<8);p>J&I;be(d,d.sc,p++,q,R);J+=v}p>r&&(r=p);q=h&&(h=q+1)}g+=2;l++;if(p>=d.K&&(p=0,q++,q>d.da))break}d.wa=!0;eg.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':""))}e||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1pc8080$2")); +g=null;if("<"==a.charAt(0))try{e||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){g=null,a=q.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");oa(e,null,!0,function(f,h,g){if(g||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(f=d[3])if(g=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=g[0],l,p=/( [a-z]+=)(['"])(.*?)\2/g;l=p.exec(f);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[0]);g[0]!=k&&(h=h.replace(g[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/, +"");a=a.replace(d[0],h);ng(a,b,c)}})}else c(a,null)} +function og(a,b,c,d){function e(a){if(void 0===g){var b=h&&B(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=ha(a))}function f(a){e("Error: "+a);k&&(--Xf||La(!0));k=!1}var h,g,k=!0;Xf++;$a[a]={};try{if(h=document.getElementById(a)){var l;if("object"==typeof resources&&(l=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],q=document.createElement("style");q.type="text/css";q.styleSheet?q.styleSheet.cssText=l:q.appendChild(document.createTextNode(l));p.appendChild(q)}c|| +(c="/versions/pc8080/1.23.3/components.xsl");l=function(d,g){g?Yf(c,null,null,!1,e,function(d,k){if(k)if(ab(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var l=g.transformNode(k);l?(h.outerHTML=l,--Xf||La(!0)):f("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(l=new XSLTProcessor,l.importStylesheet(k),(l=l.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(l,h),--Xf||La(!0)):f("invalid machine element: "+ +a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(d)}):f(d)};"<"!=b.charAt(0)?Yf(b,a,d,!0,e,l):mg(b,null,a,d,!1,e,l)}else f("missing machine element: "+a)}catch(r){f(r.message)}return k}window.embedPC8080=function(a,b,c,d){La(!1);return og(a,b,c,d)};window.enableEvents=La;window.sendEvent=Ma; +function pg(a,b,c,d){if(!c&&b){d.push(b);a=$a[d[0]];b=null;for(var e in a)if(ea(e,"components.xsl")){b=e.replace(".xsl",".css");break}b?oa(b,null,!0,function(a,b){qg(b,d)}):qg(null,d)}else u("Error ("+c+") requesting "+a)} +function qg(a,b){var c,d,e,f=b[0],h=b[1];c=b[4];c=c.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/);var g=$a[f],k={},l;for(l in g){var p=g[l],q=da(l);if("xml"==q){for(q=/[ \t]*]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=q.exec(g[l]);){var r=d[2];r&&(g[r]||(p=p.replace(d[0],"")))}d=l=ca(l)}else"xsl"==q&&(e=l=ca(l));k[l]=p}a&&(k[l="css"]=a);b[2]&&(k[l="parms"]=b[2]);b[3]&&(k[l="state"]=b[3]);d&&e?(l=JSON.stringify(k),h+=".js",c=c[1]+"var resources="+l+";"+c[2]+c[3],c=c.replace(/\u00A9/g, "©"),l=h,g=null,k="data:application/javascript,",k=wa("Firefox")?k+encodeURIComponent(c):k+encodeURI(c),l&&(g=document.createElement("a"),"string"!=typeof g.download&&(g=null)),g?(g.href=k,g.download=l,document.body.appendChild(g),g.click(),document.body.removeChild(g),c="Check your Downloads folder for "+l+"."):(window.open(k),c="Check your browser for a new window/tab containing the requested data"+(l?" ("+l+")":"")+"."),c+=', copy it to your web server as "'+h+'", and then add the following to your web page:\n\n', c+='
\n',c+="...\n",c+='