1 TITLE '8080 MICROCHESS' 2 3; 8080 MICROCHESS 4; (C) COPYRIGHT 1977, MICRO-WARE LIMITED 5; WRITTEN BY P. JENNINGS & T. O'BRIEN 6; 7; TYPED IN HEXDUMP FROM THE MANUAL AND APPLIED PATCHES 8; FROM THE OCTOBER 1977 MICROCHESS NOTES. 9; 10; BY DEFAULT THE PROGRAM USES TERMINAL I/O FOR 11; A CROMEMCO TU-ART. BY SETTING ONE OF MITS 12; OR IMSAI TO 1, THE TERMINAL I/O ROUTINES ARE 13; PATCHED FOR A MITS 2SIO OR IMSAI SIO2. 14; 15; ADDED THE DOCUMENTED PATCHES FOR DISPLAY OPTIONS. 16; ADDED PATCHES TO MAKE IT WORKING UNDER CP/M. 17; 18; UDO MUNK, OCTOBER 2016 19; 20; ADDED PATCH TO DISPLAY A SMALL BOARD WITH COORDINATES. 21; ADDED DAZZLER OUPUT USING 8080 INSTRUCTIONS ONLY. 22; MADE PATCH FOR BOARD WITH COORDINATES RELOCATABLE. 23; FIRST SWITCH DAZZLER ON AND THEN DRAW BOARD, SO THAT 24; IT ALSO WORKS WITH DAZZLER II. 25; IMPROVED CP/M PATCH, NOW ALSO SAVES IOBYTE, SOME BIOS'S 26; NEED IT. 27; 28; UDO MUNK, NOVEMBER 2016 29; 30; ASSEMBLE WITH INTEL 8080 CROSSASSEMBLER OR DRI MAC UNDER CP/M. 31; UNDER CP/M DRI LOAD WILL NOT WORK, USE MLOAD. 32 33 34OFFSET SET 0 35 36; 37; BUILD STANDALONE OR CP/M VERSION 38; 39CPM SET 0 40 41 IF CPM 42OFFSET SET 0100H 43 ENDIF 44 45; 46; ADDITIONAL DAZZLER GRAPHICS OUTPUT 47; 48DAZZLER SET 1 49 50; 51; TERMINAL I/O PATCH OPTIONS FOR STANDALONE 52; 53MITS SET 0 54IMSAI SET 1 55 56; 57; DISPLAY OPTIONS 58; 59SMALLD SET 0 ;SMALL BOARD DISPLAY 60COORD SET 1 ;DISPLAY SMALL BOARD WITH COORDINATES 61MAUTO SET 1 ;AUTO DISPLAY AFTER MICROCHESS MOVES 62CAUTO SET 1 ;AUTO DISPLAY AFTER CHALLENGER MOVES 63 64 ORG OFFSET 65 66L000: DB 031H,082H,00DH,0CDH,0ACH,009H,021H,06DH 67 DB 00BH,0CDH,0DAH,001H,021H,093H,00BH,0CDH 68 69L010: DB 0DAH,001H,021H,0B9H,00BH,0CDH,0DAH,001H 70 DB 0CDH,0ACH,009H,0CDH,0AFH,005H,021H,095H 71 72L020: DB 00AH,022H,07DH,00AH,021H,0CBH,00AH,022H 73 DB 07FH,00AH,021H,001H,00BH,022H,079H,00AH 74 75L030: DB 021H,037H,00BH,022H,07BH,00AH,0AFH,032H 76 DB 074H,00AH,032H,078H,00AH,032H,082H,00AH 77 78L040: DB 032H,081H,00AH,032H,075H,00AH,032H,076H 79 DB 00AH,03EH,010H,032H,077H,00AH,03EH,0EEH 80 81L050: DB 032H,04DH,00AH,032H,04EH,00AH,021H,0F5H 82 DB 00BH,0CDH,05CH,001H,0CDH,0C9H,009H,0CDH 83 84L060: DB 0BFH,009H,078H,00FH,0D2H,06FH,000H,03EH 85 DB 001H,032H,082H,00AH,0CDH,0C3H,005H,0CDH 86 87L070: DB 042H,002H,0CDH,0ACH,009H,031H,082H,00DH 88 DB 021H,0E6H,00DH,022H,059H,00AH,021H,020H 89 90L080: DB 020H,022H,020H,00CH,021H,010H,00CH,0CDH 91 DB 05CH,001H,0CDH,020H,003H,0CDH,0ACH,009H 92 93L090: DB 021H,00AH,00DH,07EH,0FEH,047H,0CAH,0D7H 94 DB 000H,0FEH,044H,0CAH,042H,003H,0FEH,045H 95 96L0A0: DB 0CAH,02CH,002H,0FEH,053H,0CAH,0E1H,001H 97 DB 0FEH,04FH,0CAH,0D1H,003H,0FEH,052H,0CAH 98 99L0B0: DB 020H,002H,0FEH,041H,0CAH,0F1H,002H,0FEH 100 DB 04EH,0CAH,005H,003H,0CDH,068H,001H,03AH 101 102L0C0: DB 00FH,00DH,0FEH,04DH,0CAH,026H,001H,0FEH 103 DB 03DH,0CAH,048H,003H,0FEH,00DH,0C2H,02CH 104 105L0D0: DB 001H,0CDH,06DH,008H,000H,000H,000H,0CDH 106 DB 07DH,004H,03AH,078H,00AH,0B7H,0CAH,0F4H 107 108L0E0: DB 000H,021H,04FH,020H,022H,01EH,00CH,021H 109 DB 020H,04FH,022H,01BH,00CH,0AFH,032H,078H 110 111L0F0: DB 00AH,0C3H,002H,001H,0CDH,0ADH,001H,0CDH 112 DB 097H,003H,03AH,04FH,00AH,0FEH,0FFH,0CAH 113 114L100: DB 038H,001H,021H,016H,00CH,0CDH,05CH,001H 115 DB 03AH,081H,00AH,0FEH,0FFH,0CAH,017H,003H 116 117L110: DB 03AH,074H,00AH,0B7H,0CAH,01DH,001H,021H 118 DB 0AEH,00CH,0CDH,05CH,001H,0CDH,0ACH,009H 119 120L120: DB 000H,000H,000H,0C3H,075H,000H,0CDH,06DH 121 DB 008H,0C3H,075H,000H,021H,023H,00CH,0CDH 122 123L130: DB 05CH,001H,0CDH,0ACH,009H,0C3H,075H,000H 124 DB 021H,030H,00CH,0CDH,0DAH,001H,0CDH,042H 125 126L140: DB 002H,0CDH,0ACH,009H,021H,047H,00CH,0CDH 127 DB 05CH,001H,0CDH,0C9H,009H,0CDH,0BFH,009H 128 129L150: DB 078H,0FEH,059H,0C2H,0C8H,001H,0CDH,0ACH 130 DB 009H,0C3H,018H,000H,07EH,0FEH,00DH,0C8H 131 132L160: DB 047H,0CDH,0BFH,009H,023H,0C3H,05CH,001H 133 DB 02AH,00AH,00DH,0CDH,099H,001H,032H,050H 134 135L170: DB 00AH,02AH,00DH,00DH,0CDH,099H,001H,032H 136 DB 051H,00AH,032H,04EH,00AH,03AH,050H,00AH 137 138L180: DB 021H,00CH,00AH,00EH,01FH,0BEH,0CAH,091H 139 DB 001H,02BH,00DH,0F2H,085H,001H,0C3H,02CH 140 141L190: DB 001H,079H,032H,04DH,00AH,032H,04FH,00AH 142 DB 0C9H,07DH,0E6H,00FH,017H,017H,017H,017H 143 144L1A0: DB 047H,07CH,0E6H,00FH,0B0H,047H,0E6H,088H 145 DB 0C2H,02CH,001H,078H,0C9H,03AH,050H,00AH 146 147L1B0: DB 047H,0CDH,08FH,009H,02AH,0DDH,009H,022H 148 DB 01BH,00CH,03AH,051H,00AH,047H,0CDH,08FH 149 150L1C0: DB 009H,02AH,0DDH,009H,022H,01EH,00CH,0C9H 151 DB 0CDH,0ACH,009H,0CDH,0ACH,009H,021H,05BH 152 153L1D0: DB 00CH,0CDH,05CH,001H,0CDH,0ACH,009H,076H 154 DB 000H,000H,0CDH,05CH,001H,0CDH,0ACH,009H 155 156L1E0: DB 0C9H,0CDH,0ACH,009H,021H,0DFH,00BH,0CDH 157 DB 05CH,001H,0CDH,0C9H,009H,0CDH,0BFH,009H 158 159L1F0: DB 078H,0FEH,053H,0CAH,003H,002H,0FEH,042H 160 DB 0CAH,00AH,002H,0FEH,04EH,0CAH,011H,002H 161 162L200: DB 0C3H,02CH,001H,006H,000H,00EH,0FFH,0C3H 163 DB 015H,002H,006H,000H,00EH,0FBH,0C3H,015H 164 165L210: DB 002H,006H,008H,00EH,0FBH,078H,032H,01EH 166 DB 007H,079H,032H,061H,008H,0C3H,072H,000H 167 168L220: DB 0CDH,0ACH,009H,021H,07EH,00CH,0CDH,05CH 169 DB 001H,0C3H,03EH,001H,0CDH,0C3H,005H,03AH 170 171L230: DB 082H,00AH,0B7H,0CAH,03AH,002H,0AFH,0C3H 172 DB 03CH,002H,03EH,001H,032H,082H,00AH,0C3H 173 174L240: DB 075H,000H,0CDH,0ACH,009H,0CDH,0ACH,009H 175 DB 016H,000H,021H,0B6H,00CH,0CDH,0DAH,001H 176 177L250: DB 07AH,0B7H,0CAH,05BH,002H,021H,0D2H,00CH 178 DB 0CDH,0DAH,001H,006H,021H,0CDH,0BFH,009H 179 180L260: DB 006H,020H,0CDH,0BFH,009H,021H,00CH,00AH 181 DB 00EH,01FH,07EH,0BAH,0CAH,0B8H,002H,02BH 182 183L270: DB 00DH,0F2H,06AH,002H,07AH,0E6H,00FH,05FH 184 DB 07AH,0E6H,0F0H,00FH,00FH,00FH,00FH,083H 185 186L280: DB 01FH,0DAH,089H,002H,006H,020H,0C3H,08BH 187 DB 002H,006H,03AH,0CDH,0BFH,009H,0CDH,0BFH 188 189L290: DB 009H,006H,020H,0CDH,0BFH,009H,014H,07AH 190 DB 0E6H,00FH,0FEH,008H,0C2H,065H,002H,006H 191 192L2A0: DB 021H,0CDH,0BFH,009H,0CDH,0ACH,009H,07AH 193 DB 0C6H,008H,057H,0F2H,050H,002H,021H,0EEH 194 195L2B0: DB 00CH,0CDH,0DAH,001H,0CDH,0ACH,009H,0C9H 196 DB 079H,0FEH,010H,0D2H,0D3H,002H,03AH,082H 197 198L2C0: DB 00AH,0B7H,0C2H,0CCH,002H,03AH,083H,00AH 199 DB 047H,0C3H,0DDH,002H,03AH,084H,00AH,047H 200 201L2D0: DB 0C3H,0DDH,002H,03AH,082H,00AH,0B7H,0C2H 202 DB 0C5H,002H,0C3H,0CCH,002H,0CDH,0BFH,009H 203 204L2E0: DB 079H,0E6H,00FH,04FH,006H,000H,021H,085H 205 DB 00AH,009H,046H,0CDH,0BFH,009H,0C3H,091H 206 207L2F0: DB 002H,03EH,0CDH,032H,0D4H,000H,032H,020H 208 DB 001H,021H,042H,002H,022H,0D5H,000H,022H 209 210L300: DB 021H,001H,0C3H,072H,000H,021H,000H,000H 211 DB 022H,0D4H,000H,022H,0D5H,000H,022H,020H 212 213L310: DB 001H,022H,021H,001H,0C3H,072H,000H,021H 214 DB 096H,00CH,0CDH,05CH,001H,0C3H,03EH,001H 215 216L320: DB 021H,00AH,00DH,00EH,000H,0CDH,0C9H,009H 217 DB 078H,077H,0FEH,00DH,0CAH,03CH,003H,0FEH 218 219L330: DB 018H,0CAH,072H,000H,0CDH,0BFH,009H,023H 220 DB 00CH,0C3H,025H,003H,0AFH,0B9H,0CAH,025H 221 222L340: DB 003H,0C9H,0CDH,042H,002H,0C3H,075H,000H 223 DB 0CDH,068H,001H,021H,00CH,00AH,00EH,00FH 224 225L350: DB 03AH,050H,00AH,0BEH,0CAH,05CH,003H,02BH 226 DB 00DH,0F2H,053H,003H,036H,0CCH,021H,08CH 227 228L360: DB 00AH,00EH,007H,03AH,010H,00DH,0BEH,0CAH 229 DB 072H,003H,02BH,00DH,0F2H,066H,003H,0C3H 230 231L370: DB 02CH,001H,021H,0FDH,009H,006H,000H,009H 232 DB 03EH,0CCH,0BEH,0CAH,083H,003H,02BH,0BEH 233 234L380: DB 0C2H,02CH,001H,03AH,051H,00AH,077H,03AH 235 DB 011H,00DH,0FEH,04DH,0CAH,072H,000H,0FEH 236 237L390: DB 00DH,0CAH,0D4H,000H,0C3H,02CH,001H,03AH 238 DB 051H,00AH,0E6H,0F0H,0FEH,070H,0C0H,03AH 239 240L3A0: DB 04FH,00AH,04FH,0E6H,008H,0C8H,021H,0EDH 241 DB 009H,006H,000H,009H,03EH,0CCH,077H,021H 242 243L3B0: DB 0EEH,009H,01EH,000H,0BEH,0CAH,0BDH,003H 244 DB 023H,01CH,0C3H,0B4H,003H,03AH,051H,00AH 245 246L3C0: DB 077H,03EH,03DH,032H,020H,00CH,021H,086H 247 DB 00AH,016H,000H,019H,07EH,032H,021H,00CH 248 249L3D0: DB 0C9H,03AH,00CH,00DH,0FEH,04FH,0C2H,02CH 250 DB 001H,03AH,00EH,00DH,0FEH,04FH,0C2H,02FH 251 252L3E0: DB 004H,03AH,082H,00AH,0B7H,0CAH,005H,004H 253 DB 03AH,0FDH,009H,0FEH,074H,0C2H,02CH,001H 254 255L3F0: DB 03EH,072H,032H,0FDH,009H,03EH,073H,032H 256 DB 000H,00AH,032H,04EH,00AH,03EH,013H,032H 257 258L400: DB 04DH,00AH,0C3H,01FH,004H,03AH,0FDH,009H 259 DB 0FEH,073H,0C2H,02CH,001H,03EH,075H,032H 260 261L410: DB 0FDH,009H,03EH,074H,032H,000H,00AH,032H 262 DB 04EH,00AH,03EH,013H,032H,04DH,00AH,03AH 263 264L420: DB 00FH,00DH,0FEH,04DH,0CAH,072H,000H,0FEH 265 DB 00DH,0CAH,0D4H,000H,0C3H,02CH,001H,03AH 266 267L430: DB 082H,00AH,0B7H,0CAH,053H,004H,03AH,0FDH 268 DB 009H,0FEH,074H,0C2H,02CH,001H,03EH,076H 269 270L440: DB 032H,0FDH,009H,03EH,075H,032H,0FFH,009H 271 DB 032H,04EH,00AH,03EH,012H,032H,04DH,00AH 272 273L450: DB 0C3H,06DH,004H,03AH,0FDH,009H,0FEH,073H 274 DB 0C2H,02CH,001H,03EH,071H,032H,0FDH,009H 275 276L460: DB 03EH,072H,032H,0FFH,009H,032H,04EH,00AH 277 DB 03EH,012H,032H,04DH,00AH,03AH,00DH,00DH 278 279L470: DB 0FEH,04DH,0CAH,072H,000H,0FEH,00DH,0CAH 280 DB 0D4H,000H,0C3H,02CH,001H,02AH,075H,00AH 281 282L480: DB 07DH,0FEH,036H,0D2H,06BH,005H,0CDH,0CFH 283 DB 004H,0F5H,02AH,075H,00AH,023H,022H,075H 284 285L490: DB 00AH,0F1H,0D2H,06BH,005H,0CDH,04FH,005H 286 DB 0CDH,0B7H,004H,0CDH,06DH,008H,03AH,04DH 287 288L4A0: DB 00AH,0FEH,000H,0C0H,03EH,002H,032H,04DH 289 DB 00AH,03AH,04EH,00AH,0EEH,003H,032H,04EH 290 291L4B0: DB 00AH,032H,078H,00AH,0C3H,098H,004H,021H 292 DB 0EDH,009H,03AH,04DH,00AH,032H,04FH,00AH 293 294L4C0: DB 04FH,006H,000H,009H,07EH,032H,050H,00AH 295 DB 03AH,04EH,00AH,032H,051H,00AH,0C9H,0CDH 296 297L4D0: DB 004H,005H,0CAH,0EBH,004H,0CDH,01CH,005H 298 DB 021H,077H,00AH,035H,0F2H,0E7H,004H,0AFH 299 300L4E0: DB 026H,000H,02EH,0F0H,022H,075H,00AH,0DAH 301 DB 0CFH,004H,0C9H,0CDH,029H,005H,02AH,075H 302 303L4F0: DB 00AH,0EBH,02AH,079H,00AH,019H,07EH,032H 304 DB 04DH,00AH,02AH,07BH,00AH,019H,07EH,032H 305 306L500: DB 04EH,00AH,037H,0C9H,02AH,075H,00AH,0EBH 307 DB 02AH,07DH,00AH,019H,03AH,04DH,00AH,0BEH 308 309L510: DB 0C2H,01BH,005H,02AH,07FH,00AH,019H,03AH 310 DB 04EH,00AH,0BEH,0C9H,02AH,075H,00AH,07DH 311 312L520: DB 0C6H,009H,06FH,022H,075H,00AH,0FEH,036H 313 DB 0C9H,02AH,075H,00AH,0E5H,03AH,077H,00AH 314 315L530: DB 04FH,03EH,0FFH,032H,077H,00AH,0CDH,01CH 316 DB 005H,021H,077H,00AH,034H,0D2H,04AH,005H 317 318L540: DB 00DH,0FAH,04AH,005H,0CDH,004H,005H,0CAH 319 DB 036H,005H,0E1H,022H,075H,00AH,0C9H,03AH 320 321L550: DB 01EH,007H,03CH,057H,006H,005H,00EH,0FFH 322 DB 03EH,0FFH,03DH,0C2H,05AH,005H,00DH,0C2H 323 324L560: DB 058H,005H,005H,0C2H,056H,005H,015H,0C2H 325 DB 054H,005H,0C9H,03EH,00CH,032H,054H,00AH 326 327L570: DB 032H,050H,00AH,00EH,014H,0CDH,0DFH,005H 328 DB 03EH,004H,032H,054H,00AH,0CDH,0DDH,005H 329 330L580: DB 03AH,050H,00AH,0FEH,00FH,0DAH,0A3H,005H 331 DB 021H,0EDH,009H,006H,000H,03AH,04FH,00AH 332 333L590: DB 032H,04DH,00AH,04FH,009H,07EH,032H,050H 334 DB 00AH,03AH,051H,00AH,032H,04EH,00AH,0CDH 335 336L5A0: DB 06DH,008H,0C9H,03EH,0FFH,032H,04FH,00AH 337 DB 032H,050H,00AH,032H,051H,00AH,0C9H,021H 338 339L5B0: DB 00DH,00AH,011H,0EDH,009H,00EH,020H,07EH 340 DB 012H,023H,013H,00DH,0C2H,0B7H,005H,0C9H 341 342L5C0: DB 0CDH,0AFH,005H,021H,0EDH,009H,011H,0FDH 343 DB 009H,00EH,010H,03EH,077H,096H,047H,0EBH 344 345L5D0: DB 03EH,077H,096H,070H,0EBH,077H,023H,013H 346 DB 00DH,0C2H,0CBH,005H,0C9H,00EH,010H,021H 347 348L5E0: DB 05DH,00AH,0AFH,077H,023H,00DH,0F2H,0E3H 349 DB 005H,03EH,010H,032H,04DH,00AH,021H,04DH 350 351L5F0: DB 00AH,035H,0F8H,0CDH,058H,007H,03EH,008H 352 DB 032H,055H,00AH,03AH,04DH,00AH,0FEH,008H 353 354L600: DB 0F2H,056H,006H,0FEH,006H,0F2H,043H,006H 355 DB 0FEH,004H,0F2H,035H,006H,0FEH,001H,0CAH 356 357L610: DB 01EH,006H,0F2H,027H,006H,0CDH,098H,006H 358 DB 0C2H,015H,006H,0C3H,0EEH,005H,0CDH,0A9H 359 360L620: DB 006H,0C2H,01EH,006H,0C3H,0EEH,005H,03EH 361 DB 004H,032H,055H,00AH,0CDH,0A9H,006H,0C2H 362 363L630: DB 02CH,006H,0C3H,0EEH,005H,0CDH,0A9H,006H 364 DB 03AH,055H,00AH,0FEH,004H,0C2H,035H,006H 365 366L640: DB 0C3H,0EEH,005H,03EH,010H,032H,055H,00AH 367 DB 0CDH,098H,006H,03AH,055H,00AH,0FEH,008H 368 369L650: DB 0C2H,048H,006H,0C3H,0EEH,005H,03EH,006H 370 DB 032H,055H,00AH,0CDH,0DAH,006H,0FAH,06BH 371 372L660: DB 006H,03AH,052H,00AH,0B7H,0CAH,06BH,006H 373 DB 0CDH,093H,007H,0CDH,058H,007H,021H,055H 374 375L670: DB 00AH,035H,07EH,0FEH,005H,0CAH,05BH,006H 376 DB 0CDH,0DAH,006H,0DAH,08BH,006H,0FAH,0EEH 377 378L680: DB 005H,03AH,052H,00AH,0B7H,0C2H,0EEH,005H 379 DB 0CDH,093H,007H,03AH,04EH,00AH,0E6H,0F0H 380 381L690: DB 0FEH,020H,0CAH,078H,006H,0C3H,0EEH,005H 382 DB 0CDH,0DAH,006H,0FAH,0A1H,006H,0CDH,093H 383 384L6A0: DB 007H,0CDH,058H,007H,021H,055H,00AH,035H 385 DB 0C9H,0CDH,0DAH,006H,0D2H,0C0H,006H,0F5H 386 387L6B0: DB 0E1H,022H,072H,00AH,03AH,052H,00AH,0B7H 388 DB 0CAH,0A9H,006H,02AH,072H,00AH,0E5H,0F1H 389 390L6C0: DB 0FAH,0D2H,006H,03AH,052H,00AH,0F5H,0CDH 391 DB 093H,007H,0F1H,032H,052H,00AH,0B7H,0CAH 392 393L6D0: DB 0A9H,006H,0CDH,058H,007H,021H,055H,00AH 394 DB 035H,0C9H,03AH,055H,00AH,006H,000H,021H 395 396L6E0: DB 02CH,00AH,04FH,009H,03AH,04EH,00AH,086H 397 DB 032H,04EH,00AH,0E6H,088H,0C2H,051H,007H 398 399L6F0: DB 03AH,04EH,00AH,00EH,01FH,021H,00CH,00AH 400 DB 0BEH,0CAH,004H,007H,02BH,00DH,0F2H,0F8H 401 402L700: DB 006H,0C3H,012H,007H,079H,0FEH,010H,0DAH 403 DB 051H,007H,03EH,001H,032H,052H,00AH,0C3H 404 405L710: DB 016H,007H,0AFH,032H,052H,00AH,03AH,054H 406 DB 00AH,0B7H,0FAH,04FH,007H,0FEH,000H,0F2H 407 408L720: DB 04FH,007H,0F5H,03AH,052H,00AH,0F5H,03EH 409 DB 0F9H,032H,054H,00AH,032H,053H,00AH,0CDH 410 411L730: DB 06DH,008H,0CDH,0C3H,005H,0CDH,0E9H,005H 412 DB 0CDH,070H,007H,0F1H,032H,052H,00AH,0F1H 413 414L740: DB 032H,054H,00AH,03AH,053H,00AH,0B7H,0FAH 415 DB 04FH,007H,03EH,080H,0B7H,037H,0C9H,0AFH 416 417L750: DB 0C9H,0AFH,032H,052H,00AH,02FH,0B7H,0C9H 418 DB 021H,0EDH,009H,006H,000H,03AH,04DH,00AH 419 420L760: DB 04FH,009H,07EH,032H,04EH,00AH,0C9H,0CDH 421 DB 06DH,008H,0CDH,0C3H,005H,0CDH,0E9H,005H 422 423L770: DB 0CDH,0C3H,005H,021H,000H,000H,039H,022H 424 DB 057H,00AH,02AH,059H,00AH,0F9H,0D1H,021H 425 426L780: DB 055H,00AH,072H,021H,04DH,00AH,073H,0C1H 427 DB 0E1H,071H,0E1H,070H,078H,032H,04EH,00AH 428 429L790: DB 0C3H,0A0H,008H,03AH,054H,00AH,0B7H,016H 430 DB 000H,05FH,0FAH,020H,008H,03AH,04DH,00AH 431 432L7A0: DB 0B7H,0CAH,0B2H,007H,047H,03EH,008H,0BBH 433 DB 0C2H,0B2H,007H,03AH,065H,00AH,0B8H,0CAH 434 435L7B0: DB 0FBH,007H,021H,062H,00AH,019H,034H,03EH 436 DB 001H,0B8H,0C2H,0BEH,007H,034H,03AH,052H 437 438L7C0: DB 00AH,0B7H,0CAH,0F2H,007H,00EH,00FH,021H 439 DB 00CH,00AH,03AH,04EH,00AH,0BEH,0CAH,0D7H 440 441L7D0: DB 007H,02BH,00DH,0F2H,0CDH,007H,076H,021H 442 DB 03DH,00AH,006H,000H,009H,07EH,021H,063H 443 444L7E0: DB 00AH,019H,0BEH,0DAH,0ECH,007H,077H,021H 445 DB 065H,00AH,019H,071H,021H,064H,00AH,019H 446 447L7F0: DB 086H,077H,07BH,0FEH,004H,0CAH,0FCH,007H 448 DB 0FAH,034H,008H,0C9H,03AH,067H,00AH,032H 449 450L800: DB 05CH,00AH,0AFH,032H,054H,00AH,0CDH,06DH 451 DB 008H,0CDH,0C3H,005H,0CDH,0DDH,005H,0CDH 452 453L810: DB 0C3H,005H,03EH,008H,032H,054H,00AH,0CDH 454 DB 0E9H,005H,0CDH,073H,007H,0C3H,0ACH,008H 455 456L820: DB 016H,0FFH,0FEH,0F9H,0C2H,034H,008H,03AH 457 DB 0FDH,009H,021H,04EH,00AH,0BEH,0C0H,0AFH 458 459L830: DB 032H,053H,00AH,0C9H,03AH,052H,00AH,0B7H 460 DB 0C8H,03AH,04EH,00AH,00EH,007H,021H,004H 461 462L840: DB 00AH,0BEH,0CAH,04BH,008H,02BH,00DH,0C2H 463 DB 041H,008H,0C9H,021H,03DH,00AH,006H,000H 464 465L850: DB 009H,07EH,021H,061H,00AH,019H,0BEH,0DAH 466 DB 05BH,008H,077H,01BH,07BH,032H,054H,00AH 467 468L860: DB 0FEH,0FFH,0CAH,068H,008H,0CDH,067H,007H 469 DB 021H,054H,00AH,034H,0C9H,021H,000H,000H 470 471L870: DB 039H,022H,057H,00AH,02AH,059H,00AH,0F9H 472 DB 03AH,04EH,00AH,047H,00EH,01FH,021H,00CH 473 474L880: DB 00AH,0BEH,0CAH,08AH,008H,02BH,00DH,0F2H 475 DB 081H,008H,036H,0CCH,0E5H,021H,0EDH,009H 476 477L890: DB 016H,000H,03AH,04DH,00AH,05FH,019H,0E5H 478 DB 04EH,070H,0C5H,021H,055H,00AH,056H,0D5H 479 480L8A0: DB 021H,000H,000H,039H,022H,059H,00AH,02AH 481 DB 057H,00AH,0F9H,0C9H,097H,03EH,080H,021H 482 483L8B0: DB 06AH,00AH,086H,023H,086H,023H,086H,021H 484 DB 060H,00AH,086H,021H,05EH,00AH,086H,021H 485 486L8C0: DB 06FH,00AH,096H,023H,096H,021H,061H,00AH 487 DB 096H,021H,05FH,00AH,096H,021H,05DH,00AH 488 489L8D0: DB 096H,021H,06EH,00AH,096H,021H,062H,00AH 490 DB 096H,0D2H,0DDH,008H,097H,01FH,0C6H,040H 491 492L8E0: DB 021H,06BH,00AH,086H,023H,086H,021H,063H 493 DB 00AH,096H,01FH,0C6H,090H,021H,05CH,00AH 494 495L8F0: DB 086H,086H,086H,086H,021H,060H,00AH,086H 496 DB 021H,063H,00AH,096H,096H,023H,096H,096H 497 498L900: DB 021H,05FH,00AH,096H,0F5H,03AH,04EH,00AH 499 DB 0FEH,033H,0CAH,030H,009H,0FEH,034H,0CAH 500 501L910: DB 030H,009H,0FEH,022H,0CAH,030H,009H,0FEH 502 DB 025H,0CAH,030H,009H,03AH,04DH,00AH,0B7H 503 504L920: DB 0CAH,034H,009H,021H,0EDH,009H,006H,000H 505 DB 04FH,009H,07EH,0FEH,010H,0F2H,034H,009H 506 507L930: DB 0F1H,0C6H,002H,0F5H,03AH,063H,00AH,021H 508 DB 03DH,00AH,0BEH,0C2H,043H,009H,0F1H,097H 509 510L940: DB 0C3H,05BH,009H,03AH,062H,00AH,0B7H,0C2H 511 DB 05AH,009H,03AH,06DH,00AH,0B7H,0C2H,05AH 512 513L950: DB 009H,0F1H,03EH,0FFH,032H,081H,00AH,0C3H 514 DB 05BH,009H,0F1H,00EH,004H,021H,054H,00AH 515 516L960: DB 071H,021H,050H,00AH,032H,05BH,00AH,0BEH 517 DB 0DAH,08EH,009H,0CAH,08EH,009H,032H,050H 518 519L970: DB 00AH,03AH,04DH,00AH,032H,04FH,00AH,03AH 520 DB 04EH,00AH,032H,051H,00AH,0AFH,032H,074H 521 522L980: DB 00AH,03AH,06BH,00AH,021H,03DH,00AH,0BEH 523 DB 0C2H,08EH,009H,032H,074H,00AH,0C9H,021H 524 525L990: DB 0DDH,009H,047H,01FH,01FH,01FH,01FH,0CDH 526 DB 0A2H,009H,077H,023H,078H,0CDH,0A2H,009H 527 528L9A0: DB 077H,0C9H,0E6H,00FH,0C6H,030H,0FEH,03AH 529 DB 0D8H,0C6H,007H,0C9H,006H,00DH,0CDH,0BFH 530 531L9B0: DB 009H,006H,00AH,0CDH,0BFH,009H,006H,07FH 532 DB 0CDH,0BFH,009H,0CDH,0BFH,009H,0C9H,0E5H 533 534L9C0: DB 0C5H,0D5H,0CDH,0D7H,009H,0D1H,0C1H,0E1H 535 DB 0C9H,0E5H,0D5H,0C5H,0CDH,0DAH,009H,078H 536 537L9D0: DB 0C1H,0D1H,0E1H,0E6H,07FH,047H,0C9H,0C3H 538 DB 0E6H,00DH,0C3H,0F1H,00DH,000H,000H,000H 539 540L9E0: DB 000H,000H,000H,000H,000H,000H,000H,000H 541 DB 000H,000H,000H,000H,000H,003H,004H,000H 542 543L9F0: DB 007H,002H,005H,001H,006H,010H,017H,011H 544 DB 016H,012H,015H,014H,013H,073H,074H,070H 545 546LA00: DB 077H,072H,075H,071H,076H,060H,067H,061H 547 DB 066H,062H,065H,064H,063H,003H,004H,000H 548 549LA10: DB 007H,002H,005H,001H,006H,010H,017H,011H 550 DB 016H,012H,015H,014H,013H,073H,074H,070H 551 552LA20: DB 077H,072H,075H,071H,076H,060H,067H,061H 553 DB 066H,062H,065H,064H,063H,0F0H,0FFH,001H 554 555LA30: DB 010H,011H,00FH,0EFH,0F1H,0DFH,0E1H,0EEH 556 DB 0F2H,012H,00EH,01FH,021H,00BH,00AH,006H 557 558LA40: DB 006H,004H,004H,004H,004H,002H,002H,002H 559 DB 002H,002H,002H,002H,002H,0EEH,0EEH,000H 560 561LA50: DB 000H,000H,000H,000H,000H,000H,000H,000H 562 DB 000H,0E6H,00DH,000H,000H,000H,000H,000H 563 564LA60: DB 000H,000H,000H,000H,000H,000H,000H,000H 565 DB 000H,000H,000H,000H,000H,000H,000H,000H 566 567LA70: DB 000H,000H,000H,000H,000H,000H,000H,010H 568 DB 000H,001H,00BH,037H,00BH,095H,00AH,0CBH 569 570LA80: DB 00AH,000H,000H,057H,042H,04BH,051H,052H 571 DB 052H,042H,042H,04EH,04EH,050H,050H,050H 572 573LA90: DB 050H,050H,050H,050H,050H,0EEH,01FH,017H 574 DB 016H,016H,014H,016H,01BH,016H,0EEH,01FH 575 576LAA0: DB 01EH,016H,014H,016H,011H,010H,01DH,01EH 577 DB 01DH,016H,01AH,014H,012H,017H,011H,011H 578 579LAB0: DB 01FH,016H,017H,014H,012H,01EH,015H,01BH 580 DB 012H,01FH,016H,014H,012H,01EH,011H,014H 581 582LAC0: DB 01EH,017H,01FH,016H,014H,01DH,01EH,01DH 583 DB 017H,012H,01BH,0EEH,043H,055H,052H,033H 584 585LAD0: DB 063H,054H,055H,066H,0EEH,053H,044H,052H 586 DB 063H,064H,063H,072H,045H,043H,042H,055H 587 588LAE0: DB 056H,066H,075H,052H,062H,052H,044H,055H 589 DB 052H,031H,075H,053H,036H,052H,074H,044H 590 591LAF0: DB 055H,031H,075H,043H,064H,022H,034H,052H 592 DB 044H,055H,042H,052H,043H,043H,052H,075H 593 594LB00: DB 052H,00FH,006H,004H,000H,00EH,001H,004H 595 DB 00EH,007H,00FH,00EH,007H,005H,00FH,005H 596 597LB10: DB 001H,00CH,006H,006H,00FH,00BH,005H,004H 598 DB 000H,006H,006H,00CH,00FH,007H,006H,004H 599 600LB20: DB 000H,00EH,004H,001H,007H,00FH,007H,006H 601 DB 006H,004H,006H,00BH,006H,000H,00FH,007H 602 603LB30: DB 004H,006H,00FH,004H,006H,006H,004H,033H 604 DB 022H,046H,001H,034H,013H,055H,043H,025H 605 606LB40: DB 033H,034H,025H,041H,043H,063H,014H,032H 607 DB 022H,025H,024H,021H,011H,014H,006H,044H 608 609LB50: DB 052H,035H,034H,022H,025H,041H,006H,023H 610 DB 052H,014H,003H,034H,022H,025H,044H,014H 611 612LB60: DB 023H,022H,011H,006H,034H,022H,032H,025H 613 DB 043H,041H,044H,052H,052H,04DH,049H,043H 614 615LB70: DB 052H,04FH,043H,048H,045H,053H,053H,020H 616 DB 020H,020H,020H,020H,020H,020H,020H,020H 617 618LB80: DB 020H,020H,020H,020H,020H,020H,020H,020H 619 DB 020H,028H,043H,029H,020H,031H,039H,037H 620 621LB90: DB 037H,02EH,00DH,057H,052H,049H,054H,054H 622 DB 045H,04EH,020H,042H,059H,03AH,020H,050H 623 624LBA0: DB 02EH,020H,04AH,045H,04EH,04EH,049H,04EH 625 DB 047H,053H,020H,026H,020H,054H,02EH,020H 626 627LBB0: DB 04FH,027H,042H,052H,049H,045H,04EH,02EH 628 DB 00DH,02DH,02DH,02DH,02DH,02DH,02DH,02DH 629 630LBC0: DB 02DH,02DH,02DH,02DH,02DH,02DH,02DH,02DH 631 DB 02DH,02DH,02DH,02DH,02DH,02DH,02DH,02DH 632 633LBD0: DB 02DH,02DH,02DH,02DH,02DH,02DH,02DH,02DH 634 DB 02DH,02DH,02DH,02DH,02DH,02DH,00DH,057H 635 636LBE0: DB 048H,049H,043H,048H,020H,04DH,04FH,044H 637 DB 045H,020H,03FH,020H,028H,053H,02CH,042H 638 639LBF0: DB 02CH,04EH,029H,020H,00DH,044H,04FH,020H 640 DB 059H,04FH,055H,020H,057H,041H,04EH,054H 641 642LC00: DB 020H,057H,048H,049H,054H,045H,020H,03FH 643 DB 020H,028H,059H,02CH,04EH,029H,020H,00DH 644 645LC10: DB 03AH,020H,020H,020H,020H,00DH,04DH,043H 646 DB 020H,03AH,020H,000H,000H,02DH,000H,000H 647 648LC20: DB 020H,020H,00DH,049H,04EH,050H,055H,054H 649 DB 020H,045H,052H,052H,04FH,052H,02EH,00DH 650 651LC30: DB 043H,048H,045H,043H,04BH,04DH,041H,054H 652 DB 045H,020H,02DH,020H,059H,04FH,055H,020H 653 654LC40: DB 057H,049H,04EH,021H,021H,021H,00DH,050H 655 DB 04CH,041H,059H,020H,041H,047H,041H,049H 656 657LC50: DB 04EH,020H,03FH,020H,028H,059H,02CH,04EH 658 DB 029H,020H,00DH,054H,048H,041H,04EH,04BH 659 660LC60: DB 053H,020H,046H,04FH,052H,020H,054H,048H 661 DB 045H,020H,047H,041H,04DH,045H,02EH,02EH 662 663LC70: DB 02EH,020H,04DH,049H,043H,052H,04FH,043H 664 DB 048H,045H,053H,053H,02EH,00DH,059H,04FH 665 666LC80: DB 055H,020H,052H,045H,053H,049H,047H,04EH 667 DB 045H,044H,020H,02DH,020H,049H,020H,057H 668 669LC90: DB 049H,04EH,021H,021H,021H,00DH,020H,020H 670 DB 043H,048H,045H,043H,04BH,04DH,041H,054H 671 672LCA0: DB 045H,020H,02DH,020H,049H,020H,057H,049H 673 DB 04EH,021H,021H,021H,021H,00DH,020H,043H 674 675LCB0: DB 048H,045H,043H,04BH,021H,00DH,02BH,02DH 676 DB 02DH,02DH,02DH,02DH,02DH,020H,04DH,049H 677 678LCC0: DB 043H,052H,04FH,043H,048H,045H,053H,053H 679 DB 020H,02DH,02DH,02DH,02DH,02DH,02DH,02DH 680 681LCDO: DB 02BH,00DH,021H,020H,020H,020H,020H,020H 682 DB 020H,020H,020H,020H,020H,020H,020H,020H 683 684LCE0: DB 020H,020H,020H,020H,020H,020H,020H,020H 685 DB 020H,020H,020H,020H,021H,00DH,02BH,02DH 686 687LCF0: DB 02DH,02DH,02DH,02DH,02DH,020H,043H,048H 688 DB 041H,04CH,04CH,045H,04EH,047H,045H,052H 689 690LD00: DB 020H,02DH,02DH,02DH,02DH,02DH,02DH,02DH 691 DB 02BH,00DH,000H,000H,000H,000H,000H,000H 692 693LD10: DB 000H,000H,000H,000H,000H,000H,000H,000H 694 DB 000H,000H,000H,000H,000H,000H,000H,000H 695 696LD20: DB 000H,000H,000H,000H,000H,000H,000H,000H 697 DB 000H,000H,000H,000H,000H,000H,000H,000H 698 699LD30: DB 000H,000H,000H,000H,000H,000H,000H,000H 700 DB 000H,000H,000H,000H,000H,000H,000H,000H 701 702LD40: DB 000H,000H,000H,000H,000H,000H,000H,000H 703 DB 000H,000H,000H,000H,000H,000H,000H,000H 704 705LD50: DB 000H,000H,000H,000H,000H,000H,000H,000H 706 DB 000H,000H,000H,000H,000H,000H,000H,000H 707 708LD60: DB 000H,000H,000H,000H,000H,000H,000H,000H 709 DB 000H,000H,000H,000H,000H,000H,000H,000H 710 711LD70: DB 000H,000H,015H,0D7H,01FH,0D0H,0CFH,009H 712 DB 000H,020H,007H,080H,00AH,00DH,028H,003H 713 714LD80: DB 08DH,000H,000H,000H,000H,000H,000H,000H 715 DB 000H,000H,000H,000H,000H,000H,000H,000H 716 717LD90: DB 000H,000H,000H,000H,000H,000H,000H,000H 718 DB 000H,000H,000H,000H,000H,000H,000H,000H 719 720LDA0: DB 000H,000H,000H,000H,000H,000H,000H,000H 721 DB 000H,000H,000H,000H,000H,000H,000H,000H 722 723LDB0: DB 000H,000H,000H,000H,000H,000H,000H,000H 724 DB 000H,000H,000H,000H,000H,000H,000H,000H 725 726LDC0: DB 000H,000H,000H,000H,000H,000H,000H,000H 727 DB 000H,000H,000H,000H,000H,000H,000H,000H 728 729LDD0: DB 000H,000H,000H,000H,000H,000H,000H,000H 730 DB 000H,000H,000H,000H,000H,000H,000H,000H 731 732LDE0: DB 000H,000H,000H,000H,000H,000H,0DBH,000H 733 DB 0E6H,080H,0CAH,0E6H,00DH,078H,0D3H,001H 734 735LDF0: DB 0C9H,0DBH,000H,0E6H,040H,0CAH,0F1H,00DH 736 DB 0DBH,001H,0E6H,07FH,047H,0C9H,000H,000H 737 738LE00: DB 000H,000H,000H,000H,000H,000H,000H,000H 739 DB 000H,000H,000H,000H,000H,000H,000H,000H 740 741LE10: DB 000H,000H,000H,000H,000H,000H,000H,000H 742 DB 000H,000H,000H,000H,000H,000H,000H,000H 743 744LE20: DB 000H,000H,000H,000H,000H,000H,000H,000H 745 DB 000H,000H,000H,000H,000H,000H,000H,000H 746 747LE30: DB 000H,000H,000H,000H,000H,000H,000H,000H 748 DB 000H,000H,000H,000H,000H,000H,000H,000H 749 750LE40: DB 000H,000H,000H,000H,000H,000H,000H,000H 751 DB 000H,000H,000H,000H,000H,000H,000H,000H 752 753LE50: DB 000H,000H,000H,000H,000H,000H,000H,000H 754 DB 000H,000H,000H,000H,000H,000H,000H,000H 755 756LE60: DB 000H,000H,000H,000H,000H,000H,000H,000H 757 DB 000H,000H,000H,000H,000H,000H,000H,000H 758 759LE70: DB 000H,000H,000H,000H,000H,000H,000H,000H 760 DB 000H,000H,000H,000H,000H,000H,000H,000H 761 762LE80: DB 000H,000H,000H,000H,000H,000H,000H,000H 763 DB 000H,000H,000H,000H,000H,000H,000H,000H 764 765LE90: DB 000H,000H,000H,000H,000H,000H,000H,000H 766 DB 000H,000H,000H,000H,000H,000H,000H,000H 767 768LEA0: DB 000H,000H,000H,000H,000H,000H,000H,000H 769 DB 000H,000H,000H,000H,000H,000H,000H,000H 770 771LEB0: DB 000H,000H,000H,000H,000H,000H,000H,000H 772 DB 000H,000H,000H,000H,000H,000H,000H,000H 773 774LEC0: DB 000H,000H,000H,000H,000H,000H,000H,000H 775 DB 000H,000H,000H,000H,000H,000H,000H,000H 776 777LED0: DB 000H,000H,000H,000H,000H,000H,000H,000H 778 DB 000H,000H,000H,000H,000H,000H,000H,000H 779 780LEE0: DB 000H,000H,000H,000H,000H,000H,000H,000H 781 DB 000H,000H,000H,000H,000H,000H,000H,000H 782 783LEF0: DB 000H,000H,000H,000H,000H,000H,000H,000H 784 DB 000H,000H,000H,000H,000H,000H,000H,000H 785 786LF00: DB 000H,000H,000H,000H,000H,000H,000H,000H 787 DB 000H,000H,000H,000H,000H,000H,000H,000H 788 789LF10: DB 000H,000H,000H,000H,000H,000H,000H,000H 790 DB 000H,000H,000H,000H,000H,000H,000H,000H 791 792LF20: DB 000H,000H,000H,000H,000H,000H,000H,000H 793 DB 000H,000H,000H,000H,000H,000H,000H,000H 794 795LF30: DB 000H,000H,000H,000H,000H,000H,000H,000H 796 DB 000H,000H,000H,000H,000H,000H,000H,000H 797 798LF40: DB 000H,000H,000H,000H,000H,000H,000H,000H 799 DB 000H,000H,000H,000H,000H,000H,000H,000H 800 801LF50: DB 000H,000H,000H,000H,000H,000H,000H,000H 802 DB 000H,000H,000H,000H,000H,000H,000H,000H 803 804LF60: DB 000H,000H,000H,000H,000H,000H,000H,000H 805 DB 000H,000H,000H,000H,000H,000H,000H,000H 806 807LF70: DB 000H,000H,000H,000H,000H,000H,000H,000H 808 DB 000H,000H,000H,000H,000H,000H,000H,000H 809 810LF80: DB 000H,000H,000H,000H,000H,000H,000H,000H 811 DB 000H,000H,000H,000H,000H,000H,000H,000H 812 813LF90: DB 000H,000H,000H,000H,000H,000H,000H,000H 814 DB 000H,000H,000H,000H,000H,000H,000H,000H 815 816LFA0: DB 000H,000H,000H,000H,000H,000H,000H,000H 817 DB 000H,000H,000H,000H,000H,000H,000H,000H 818 819LFB0: DB 000H,000H,000H,000H,000H,000H,000H,000H 820 DB 000H,000H,000H,000H,000H,000H,000H,000H 821 822LFC0: DB 000H,000H,000H,000H,000H,000H,000H,000H 823 DB 000H,000H,000H,000H,000H,000H,000H,000H 824 825LFD0: DB 000H,000H,000H,000H,000H,000H,000H,000H 826 DB 000H,000H,000H,000H,000H,000H,000H,000H 827 828LFE0: DB 000H,000H,000H,000H,000H,000H,000H,000H 829 DB 000H,000H,000H,000H,000H,000H,000H,000H 830 831LFF0: DB 000H,000H,000H,000H,000H,000H,000H,000H 832 DB 000H,000H,000H,000H,000H,000H,000H,000H 833 834; 835; PATCH TERMINAL I/O FOR MITS 2SIO 836; 837 IF MITS 838 ORG 0DE6H + OFFSET 839TTYO: IN 16 840 ANI 2 841 JZ TTYO - OFFSET 842 MOV A,B 843 OUT 17 844 RET 845TTYI: IN 16 846 ANI 1 847 JZ TTYI - OFFSET 848 IN 17 849 ANI 7FH 850 MOV B,A 851 RET 852 ENDIF 853 854; 855; PATCH TERMINAL I/O FOR IMSAI SIO2 856; 857 IF IMSAI 858 ORG 0DE6H + OFFSET 859TTYO: IN 3 860 ANI 1 861 JZ TTYO - OFFSET 862 MOV A,B 863 OUT 2 864 RET 865TTYI: IN 3 866 ANI 2 867 JZ TTYI - OFFSET 868 IN 2 869 ANI 7FH 870 MOV B,A 871 RET 872 ENDIF 873 874; 875; PATCH FOR SMALL BOARD DISPLAY 876; 877 IF SMALLD 878 ORG 0258H + OFFSET 879 DB 0,0,0 880 ENDIF 881 882; 883; PATCH FOR AUTO DISPLAY AFTER MICROCHESS MOVES 884; 885 IF MAUTO 886 ORG 0120H + OFFSET 887 DB 0CDH,042H,002H 888 ENDIF 889 890; 891; PATCH FOR AUTO DISPLAY AFTER CHALLENGER MOVES 892; 893 IF CAUTO 894 ORG 00D4H + OFFSET 895 DB 0CDH,042H,002H 896 ENDIF 897 898; 899; ORIGINAL PATCH TO DISPLAY SMALL BOARD WITH COORDINATES 900; DO NOT ACTIVATE TOGETHER WITH DAZZLER OUTPUT, USES SAME MEMORY 901; PATCH AREA 902; REPLACED WITH A RELOCATABLE PATCH FOR THIS BELOW 903; 904 IF 0 905 ORG 024AH + OFFSET 906 DB 021H,040H,00EH,0CDH,078H,00EH,03AH,02FH 907 DB 00EH,0C6H,030H,047H,0CDH,060H,00EH,000H 908 DB 000H 909 ORG 02B1H + OFFSET 910 DB 0CDH,084H,00EH 911 ORG 0E40H + OFFSET 912 DB 020H,020H,020H,020H,020H,030H,020H,020H 913 DB 031H,020H,020H,032H,020H,020H,033H,020H 914 DB 020H,034H,020H,020H,035H,020H,020H,036H 915 DB 020H,020H,037H,00DH,000H,000H,000H,000H 916 DB 0CDH,0BFH,009H,004H,078H,0E6H,007H,032H 917 DB 02FH,00EH,006H,020H,0C3H,0BFH,009H,00EH 918 DB 006H,020H,0CDH,0BFH,009H,0C3H,0BFH,009H 919 DB 0CDH,0DAH,001H,0CDH,070H,00EH,021H,0B6H 920 DB 00CH,0C3H,0DAH,001H,0CDH,070H,00EH,0C3H 921 DB 0DAH,001H 922 ENDIF 923 924; 925; RELOCATABLE PATCH TO DISPLAY SMALL BOARD WITH COORDINATES 926; 927 IF COORD 928 ORG 024AH + OFFSET ;PATCH IN ROUTINES FOR BOARD COORDINATES 929 LXI H,CTEXT - OFFSET 930 CALL DISP1 - OFFSET 931 LDA DDAT - OFFSET 932 ADI 30H 933 MOV B,A 934 CALL DISP3 - OFFSET 935 NOP 936 NOP 937 ORG 02B1H + OFFSET 938 CALL DISP4 - OFFSET 939 ENDIF 940 941; 942; MAKE SURE THAT PATCHES BELOW GO INTO THE PATCH AREA, IF 943; NOT ORG'ED OTHERWISE 944; 945 ORG 0E00H + OFFSET 946 947; 948; THE DAZZLER OUPUT ROUTINES FROM CROMEMCO DAZZLECHESS REWRITTEN WITH 949; 8080 INSTRUCTIONS, SO THAT IT WORKS WITH ANY 8080/8085/Z80 SYSTEM 950; 951 952 IF DAZZLER 953 954 ORG 6 + OFFSET ;PATCH THIRD INSTRUCTION TO CALL 955 CALL DINIT - OFFSET ;THE DAZZLER INITIALISATION 956 957 ORG 0059H + OFFSET ;PATCH IN DATA INITALISATION 958 CALL IDATA - OFFSET 959 960 ORG 0242H + OFFSET ;PATCH CALL TO CUSTOM BOARD DISPLAY 961 CALL DDISP - OFFSET 962 963 ORG 05C3H + OFFSET ;PATCH IN SUBROUTINE TO SWITCH PIECE COLOR 964 CALL SWC - OFFSET 965 966 ORG 0E00H + OFFSET ;DAZZLER OUTPUT ROUTINES GO HERE 967 968SWC: PUSH PSW ;SWITCH PIECE COLOR 969 LDA DAT1 - OFFSET 970 CMA 971 STA DAT1 - OFFSET 972 POP PSW 973 LXI H,09EDH 974 RET 975 976DINIT: ;INITIALISE DAZZLER 977 MVI A,8CH ;DAZZLER ON, VIDEO MEMORY @ 1800H 978 OUT 0EH 979 MVI A,30H ;NORMAL COLOR MODE, 64X64 980 OUT 0FH 981 CALL DBOARD - OFFSET ;DRAW CHESS BOARD 982 LXI H,0B6DH 983 RET 984 985IDATA: ;INITIALISE DATA 986 MVI A,0FFH ;PIECE COLOR BLACK 987 STA DAT1 - OFFSET 988 CALL 015CH 989 RET 990 991DDISP: ;CUSTOM BOARD DISPLAY 992 CALL DBOARD - OFFSET ;DRAW CHESS BOAD 993 CALL DPIECE - OFFSET ;DRAW CHESS PIECES 994 RET 995 996DBOARD: MVI B,10H ;DRAW CHESS BOARD 997 LXI D,1801H 998 LXI H,1800H ;DAZZLER VIDEO MEMORY @ 1800H 999DB1: PUSH B 1000 MVI A,03H 1001 MVI B,10H 1002DB2: PUSH B 1003 MVI B,0 ;DRAW FIELDS 1004DBP1: MVI M,33H ;WHITE FIELD AS GREEN 1005 MOV C,A 1006 CALL LDIR 1007 INX D 1008 INX H 1009DBP2: MVI M,99H ;BLACK FIELD AS RED 1010 MOV C,A 1011 CALL LDIR 1012 INX D 1013 INX H 1014 POP B 1015 DCR B 1016 JNZ DB2 - OFFSET 1017 LDA DBP1 + 1 - OFFSET ;FLIP COLORS AND DRAW NEXT ROW OF FIELDS 1018 MOV B,A 1019 LDA DBP2 + 1 - OFFSET 1020 STA DBP1 + 1 - OFFSET 1021 MOV A,B 1022 STA DBP2 + 1 - OFFSET 1023 POP B 1024 DCR B 1025 JNZ DB1 - OFFSET 1026 RET 1027 1028DPIECE: ;DRAW CHESS PIECES 1029 LXI D,09ECH ;PIECE ADDRESS TABLE - 1 1030 MVI B,02H 1031DPIE0: PUSH B 1032 LXI H,PTAB - 6 - OFFSET ;PIECE GRAPHICS TABLE - 1 ENTRY 1033 SHLD DAT2 - OFFSET 1034 MVI B,08H 1035DPIE1: PUSH B 1036 CALL DONEP - OFFSET 1037 POP B 1038 DCR B 1039 JNZ DPIE1 - OFFSET 1040 MVI B,08H 1041DPIE2: PUSH B 1042 CALL DONEP - OFFSET 1043 LXI B,0FFFAH ;BC = -6 1044 LHLD DAT2 - OFFSET 1045 DAD B 1046 SHLD DAT2 - OFFSET 1047 POP B 1048 DCR B 1049 JNZ DPIE2 - OFFSET 1050 LDA DAT1 - OFFSET 1051 CMA 1052 STA DAT1 - OFFSET 1053 POP B 1054 DCR B 1055 JNZ DPIE0 - OFFSET 1056 RET 1057 1058DONEP: ;DRAW ONE PIECE 1059 INX D ;DE -> NEXT PIECE IN TABLE 1060 PUSH D 1061 CALL SUB1 - OFFSET 1062 LXI B,6 ;6 BYTES PER PIECE GRAPHICS 1063 LHLD DAT2 - OFFSET 1064 DAD B 1065 SHLD DAT2 - OFFSET 1066 CALL SUB2 - OFFSET 1067 POP D 1068 RET 1069 1070SUB1: XCHG ;BIT FIDDLING TO GET PIECE GRAPHICS ON BOARD 1071 MOV A,M 1072 ANI 80H 1073 MOV A,M 1074 JZ SUB11 - OFFSET 1075 POP D 1076 LXI B,6 1077 LHLD DAT2 - OFFSET 1078 DAD B 1079 SHLD DAT2 - OFFSET 1080 POP D 1081 RET 1082SUB11: RRC 1083 MOV B,A 1084 RLC 1085 RLC 1086 RLC 1087 MOV C,A 1088 RLC 1089 MOV E,A 1090 RLC 1091 ANI 4 1092 MOV D,A 1093 MOV A,E 1094 ANI 1 1095 ORA D 1096 MOV D,A 1097 MOV A,B 1098 ANI 2 1099 ORA D 1100 MOV D,A 1101 MVI A,18H 1102 ORA D 1103 MOV D,A 1104 MOV A,E 1105 ANI 80H 1106 MOV E,A 1107 MOV A,C 1108 ANI 0CH 1109 ORA E 1110 PUSH PSW 1111 ORI 16 1112 MOV E,A 1113 POP PSW 1114 RET 1115 1116SUB2: MOV B,C 1117SUB22: MOV A,M 1118 ANI 32 1119 CNZ SUB4 - OFFSET 1120 INX D 1121 MOV A,M 1122 ANI 16 1123 CNZ SUB3 - OFFSET 1124 MOV A,M 1125 ANI 8 1126 CNZ SUB4 - OFFSET 1127 INX D 1128 MOV A,M 1129 ANI 4 1130 CNZ SUB3 - OFFSET 1131 MOV A,M 1132 ANI 2 1133 CNZ SUB4 - OFFSET 1134 INX D 1135 MOV A,M 1136 ANI 1 1137 CNZ SUB3 - OFFSET 1138 PUSH H 1139 LXI H,000DH 1140 DAD D 1141 XCHG 1142 POP H 1143 INX H 1144 DCR B 1145 JNZ SUB22 - OFFSET 1146 RET 1147 1148SUB3: XCHG 1149 MOV A,M 1150 ANI 0F0H 1151 MOV C,A 1152 LDA DAT1 - OFFSET 1153 ANI 00FH 1154 ORA C 1155 MOV M,A 1156 XCHG 1157 RET 1158 1159SUB4: XCHG 1160 MOV A,M 1161 ANI 00FH 1162 MOV C,A 1163 LDA DAT1 - OFFSET 1164 ANI 0F0H 1165 ORA C 1166 MOV M,A 1167 XCHG 1168 RET 1169 1170DAT1: DB 0FFH ;PIECE COLOR 1171DAT2: DW 0 ;PIECE LOCATION 1172 1173PTAB: DB 0CH,3FH,33H,21H,33H,1EH ;PIECE GRAPHICS 1174 DB 00H,2DH,3FH,2DH,3FH,3FH 1175 DB 2DH,3FH,1EH,1EH,1EH,1EH 1176 DB 2DH,3FH,1EH,1EH,1EH,1EH 1177 DB 0CH,1CH,3FH,1EH,0CH,3FH 1178 DB 0CH,1CH,3FH,1EH,0CH,3FH 1179 DB 08H,1EH,3FH,37H,07H,0FH 1180 DB 08H,1EH,3FH,37H,07H,0FH 1181 DB 00H,0CH,0CH,1EH,3FH,3FH 1182 1183 ENDIF 1184 1185; 1186; RELOCATABLE PATCH TO DISPLAY SMALL BOARD WITH COORDINATES 1187; 1188 IF COORD 1189 1190DISP1: CALL 01DAH 1191 CALL DISP2 - OFFSET 1192 LXI H,0CB6H 1193 JMP 01DAH 1194 1195DISP2: MVI B,20H 1196 CALL 09BFH 1197 JMP 09BFH 1198 1199DISP3: CALL 09BFH 1200 INR B 1201 MOV A,B 1202 ANI 07H 1203 STA DDAT - OFFSET 1204 MVI B,20H 1205 JMP 09BFH 1206 1207DISP4: CALL DISP2 - OFFSET 1208 JMP 01DAH 1209 1210DDAT: DB 0 1211CTEXT: DB ' 0 1 2 3 4 5 6 7',0DH 1212 1213 ENDIF 1214 1215; 1216; PATCH TO RUN IT UNDER CP/M 1217; 1218 IF CPM 1219 1220 ORG 0 + OFFSET ;PATCH FIRST INSTRUCTION TO JUMP 1221 JMP CPMIN ;TO THE CP/M PATCH 1222 1223 ORG 01D7H + OFFSET ;PATCH HLT FOR STANDALONE TO 1224 JMP CPMOUT ;RETURN TO CP/M 1225 1226 ORG 0DE6H + OFFSET ;PATCH TERMINAL OUT FOR CP/M 1227 MOV C,B 1228 CALL CONOUT 1229 RET 1230 1231 ORG 0DF1H + OFFSET ;PATCH TERMINAL IN FOR CP/M 1232 CALL CONIN 1233 ANI 7FH 1234 MOV B,A 1235 RET 1236 1237 ORG 1000H + OFFSET ;CP/M PATCH AREA 1238CPMIN: LHLD 1 ;BIOS WARM BOOT -> HL 1239 LXI B,6 ;BIOS CONIN -> HL 1240 DAD B 1241 INX H 1242 MOV A,M ;STORE ADR. FOR CONIN 1243 STA CONIN + 1 1244 INX H 1245 MOV A,M 1246 STA CONIN + 2 1247 LHLD 1 ;BIOS WARM BOOT -> HL 1248 LXI B,9 ;BIOS CONOUT -> HL 1249 DAD B 1250 INX H 1251 MOV A,M ;STORE ADR. FOR CONOUT 1252 STA CONOUT + 1 1253 INX H 1254 MOV A,M 1255 STA CONOUT + 2 1256 LDA 3 ;GET THE IOBYTE 1257 LXI SP,STACK 1258 LXI H,0 ;FOR CP/M WE NEED TO SAVE 00-7FH 1259 LXI D,SAVE 1260 LXI B,0080H 1261 CALL LDIR 1262 LXI H,OFFSET ;NOW MOVE THE PROGRAM DOWN TO 0 1263 LXI D,0 1264 LXI B,0FFFH 1265 CALL LDIR 1266 STA 3 ;RESTORE THE IOBYTE, BIOS MIGHT NEED IT 1267 LXI SP,0D82H ;FIRST INSTRUCTION JUST PATCHED ABOVE 1268 CALL 09ACH ;SECOND INSTRUCTION DESTROYED BY IOBYTE 1269 JMP 6 ;GO TO MICROCHESS 1270 1271CPMOUT: LXI SP,STACK 1272 LXI H,SAVE ;RESTORE 00-7FH FOR CP/M 1273 LXI D,0 1274 LXI B,0080H 1275 CALL LDIR 1276 IF DAZZLER 1277 XRA A ;SWITCH DAZZLER OFF 1278 OUT 0EH 1279 ENDIF 1280 RST 0 ;AND THEN RETURN TO CP/M 1281 1282CONIN: JMP 0 ;CALL BIOS CONSOLE IN 1283CONOUT: JMP 0 ;CALL BIOS CONSOLE OUT 1284 1285SAVE: DS 80H 1286 DS 16 1287STACK: 1288 1289 ENDIF 1290 1291; 1292; SUPPORT ROUTINE TO AVOID USING Z80 LDIR INSTRUCTION 1293; 1294 IF CPM OR DAZZLER 1295LDIR: PUSH PSW 1296LDIR1: MOV A,M 1297 STAX D 1298 INX H 1299 INX D 1300 DCX B 1301 MOV A,B 1302 ORA C 1303 JNZ LDIR1 1304 POP PSW 1305 RET 1306 ENDIF 1307 1308 END 1309