Z80ASM+ SuperFast Relocating Macro Assembler í80ASM+ 1.14 Page 1 D0:SFBOOT01.ASM ;**************************************************************************** 1 ;** ** 2 ;** SmartFiler 2000 -- BOOT block ** 3 ;** ** 4 ;** reverse-engineered by ** 5 ;** Richard F. Drushel (drushel@apk.net) ** 6 ;** ** 7 ;**************************************************************************** 8 9 ;version history 10 11 ;01 0008.18 ;Began revisions to make ADAMserve- and ADAMEM-friendly. 12 ; ;Fixed LOAD_BLOCKS to use _READ_BLOCK and bail out to 13 ; ;SmartWriter if an error. 14 ; ;Added REPORT macro and end-pad of block with 0. 15 ; ;Removed orphaned and unneeded code, especially the 16 ; ;tricky tape rewind by calling _START_RD_1_BLOCK just 17 ; ;once. 18 ; ;Updated boot string year to 2000. 19 ; ;Added WAIT delay subroutine, to allow the boot block 20 ; ;graphics to be seen in ADAMEM (it's too fast otherwise). 21 ; ;Some day it needs to actually access the files via the 22 ; ;directory instead of by assuming certain blocks. 23 24 ;00 0008.05 ;Initial disassembly of SmartFiler 27D boot block 25 26 ;**************************************************************************** 27 ; 28 ; SmartFiler 27D boot block 29 ; SFBOOT -> Source re-created by Z80DIS 2.2 30 ; Z80DIS was written by Kenneth Gielow 31 ; Palo Alto, CA 32 ; 33 ;**************************************************************************** 34 35 .Z80 36 37 ;**************************************************************************** 38 39 ; 40 ;REPORT MACRO TO SHOW WHERE THINGS ARE 41 ; 42 REPORT MACRO MESSAGE,VALUE 43 .PRINTX MESSAGE = VALUE 44 ENDM 45 ; 46 ;**************************************************************************** 47 48 0000 I.0000 EQU 0000H ; ----I 49 017F I$017F EQU 017FH ; ----I 50 0204 I$0204 EQU 0204H ; ----I 51 037F I$037F EQU 037FH ; ----I 52 0400 I$0400 EQU 0400H ; ----I 53 3FFF I$3FFF EQU 3FFFH ; ----I 54 55 ;misc 56 Z80ASM+ SuperFast Relocating Macro Assembler í80ASM+ 1.14 Page 2 D0:SFBOOT01.ASM 57 0000 BLOCK_1_ADDR EQU 0000H 58 8400 BLOCK_2_ADDR EQU 8400H 59 0100 PROG_START EQU 0100H 60 0000 ZERO EQU 0000H 61 005C TRADET$ EQU 5CH ;trademark symbol T 62 005D TRADEM$ EQU 5DH ;trademark symbol M 63 005E COPY$ EQU 5EH ;copyright symbol (C) 64 005F REG$ EQU 5FH ;registered symbol (R) 65 66 ;blocks to read 67 68 0001 BLOCK_1 EQU 0001H ;directory 69 0002 BLOCK_2 EQU 0002H ;file1 70 0005 BLOCK_5 EQU 0005H ;file2 71 72 ;OS-7 equates 73 74 080B PUTFRAME EQU 080BH ;internal OS-7 entry point, not jump table!!! 75 76 1F7F LOAD_ASCII EQU 1F7FH 77 1F82 FILL_VRAM EQU 1F82H 78 1F85 MODE_1 EQU 1F85H 79 1FD9 WRITE_REGISTER EQU 1FD9H 80 1FDF WRITE_VRAM EQU 1FDFH 81 73C3 VDP_MODE_WORD EQU 73C3H 82 83 ;EOS equates 84 85 FCF3 _READ_BLOCK EQU 0FCF3H 86 FCE7 _GOTO_WP EQU 0FCE7H 87 FD20 WRITE_REGISTER_EOS EQU 0FD20H 88 89 ;**************************************************************************** 90 ;** ** 91 ;** code begins here ** 92 ;** ** 93 ;**************************************************************************** 94 95 C800 COLD_BOOT_ADDR EQU 0C800H 96 97 C800 ORG COLD_BOOT_ADDR 98 99 C800 COLD_BOOT: 100 C800 78 LD A,B ;get boot device number 101 C801 32 58C8 LD (BOOT_DEVICE),A ;save it 102 C804 31 00C8 LD SP,COLD_BOOT ;set up stack 103 C807 CD 68C8 CALL C$C85C ;draw initial boot screen 104 ; 105 C80A CD 59C8 CALL WAIT ;wait so we can see screen under ADAMem 106 ; 107 ;Load boot graphics code and data (LOGOS) 108 ;This is *evil* because it doesn't use the directory! It assumes that 109 ;the file occupies certain blocks. 110 111 C80D 21 0084 LD HL,BLOCK_2_ADDR ;load address for LOGOS 112 C810 11 0200 LD DE,BLOCK_2 ;start block of LOGOS 113 C813 06 03 LD B,03H ;length of LOGOS Z80ASM+ SuperFast Relocating Macro Assembler í80ASM+ 1.14 Page 3 D0:SFBOOT01.ASM 114 C815 CD 3FC8 CALL LOAD_BLOCKS ;load LOGOS 115 ; 116 ;Show the boot graphics screen. 117 118 C818 CD 0084 CALL BLOCK_2_ADDR ;run LOGOS to load SmartFiler graphic 119 ; 120 C81B CD 59C8 CALL WAIT ;wait so we can see screen under ADAMem 121 ; 122 ;Load the rest of SmartFiler, assuming a certain start block and length. 123 124 C81E 21 0001 LD HL,PROG_START ;load address for SMART_FILER 125 C821 11 0500 LD DE,BLOCK_5 ;start block of SMART_FILER 126 C824 06 1E LD B,1EH ;length of SMART_FILER 127 C826 CD 3FC8 CALL LOAD_BLOCKS ;load SMART_FILER 128 ; 129 C829 0E 00 LD C,00H 130 C82B 06 01 LD B,01H ; 1 131 C82D CD 20FD CALL WRITE_REGISTER_EOS ;write C to VDP register B (EOS version) 132 ; 133 C830 01 7F01 LD BC,I$017F 134 C833 ED 41 OUT (C),B ;bank switch to 32K RAM/32K RAM 135 C835 3A 58C8 LD A,(BOOT_DEVICE) ;get drive 136 C838 47 LD B,A ;into B 137 C839 C3 0001 JP PROG_START ;and begin SmartFiler 138 ; 139 ; ----------------- 140 C83C ABORT: 141 C83C C3 E7FC JP _GOTO_WP ;error exit to SmartWriter 142 ; 143 ; ----------------- 144 ;Load a contiguous series of blocks. On entry, B=number of blocks, 145 ;HL=load address, DE=loword of start block (hiword is forced to 0) and 146 ;(BOOT_DEVICE)=device to load from. On exit, the blocks are loaded. 147 148 ;Note: this code is short-sighted because it assumes that the hiword 149 ;of the block is zero. This is bad for large hard drives. 150 151 C83F LOAD_BLOCKS: 152 C83F C5 PUSH BC ;save block counter (in B) 153 C840 3A 58C8 LD A,(BOOT_DEVICE) ;get drive 154 C843 01 0000 LD BC,ZERO ;force hiword of block to zero 155 C846 D5 PUSH DE 156 C847 E5 PUSH HL 157 C848 CD F3FC CALL _READ_BLOCK ;read it 158 ; 159 C84B 20 EF JR NZ,ABORT ;failed, so abort to SmartWriter 160 C84D E1 POP HL 161 C84E D1 POP DE 162 C84F 01 0004 LD BC,I$0400 ;length of one block 163 C852 09 ADD HL,BC ;offset to next address 164 C853 13 INC DE ;point to next block 165 C854 C1 POP BC ;restore block counter (in B) 166 C855 10 E8 DJNZ LOAD_BLOCKS ;keep going until no more blocks 167 ; 168 C857 C9 RET 169 ; 170 ; ----------------- Z80ASM+ SuperFast Relocating Macro Assembler í80ASM+ 1.14 Page 4 D0:SFBOOT01.ASM 171 C858 BOOT_DEVICE: 172 C858 20 DEFB 20H ;where we save our boot device # 173 174 ; ----------------- 175 ; 176 ;Pause routine. Delay is about 5 seconds with B=10. 177 178 C859 WAIT: 179 C859 06 0A LD B,10 ;change to vary the total delay 180 C85B WAIT1: 181 C85B C5 PUSH BC ;save outer loop counter 182 C85C 21 0000 LD HL,0 ;initialize inner loop counter 183 C85F WAIT2: 184 C85F 2B DEC HL ;one less 185 C860 7C LD A,H 186 C861 B5 OR L ;is HL=0? 187 C862 20 FB JR NZ,WAIT2 ;no, keep going 188 C864 C1 POP BC ;yes, so restore outer loop counter 189 C865 10 F4 DJNZ WAIT1 ;keep going until B=0 190 ; 191 C867 C9 RET ;all done 192 ; 193 ; ----------------- 194 ; 195 ; Subroutine __________________________ 196 ; Inputs ________________________ 197 ; Outputs ________________________ 198 ; 199 C868 C$C85C: 200 C868 01 7F03 LD BC,I$037F 201 C86B ED 41 OUT (C),B 202 C86D CD F1C8 CALL C$C8ED ;bank switch to OS7-24 K RAM/32K RAM 203 ; 204 C870 21 0000 LD HL,I.0000 205 C873 11 FF3F LD DE,I$3FFF 206 C876 AF XOR A 207 C877 CD 821F CALL FILL_VRAM ;wipe VRAM 208 ; 209 C87A CD 851F CALL MODE_1 210 ; 211 C87D CD 7F1F CALL LOAD_ASCII 212 ; 213 C880 DD 21 19CA LD IX,I$C9F4 214 C884 CD BFC8 CALL C.C8B3 215 ; 216 C887 DD 21 FFC9 LD IX,I$C9DA 217 C88B CD BFC8 CALL C.C8B3 218 ; 219 C88E 21 04C9 LD HL,I$C900 220 C891 11 0402 LD DE,I$0204 221 C894 CD B7C8 CALL C$C8AB 222 ; 223 C897 21 83C9 LD HL,BOOT_TEXT 224 C89A CD A1C8 CALL C.C895 225 ; 226 C89D CD FDC8 CALL C$C8F9 227 ; Z80ASM+ SuperFast Relocating Macro Assembler í80ASM+ 1.14 Page 5 D0:SFBOOT01.ASM 228 C8A0 C9 RET 229 ; 230 ; ----------------- 231 ; 232 ; Subroutine __________________________ 233 ; Inputs ________________________ 234 ; Outputs ________________________ 235 ; 236 C8A1 C.C895: 237 C8A1 7E LD A,(HL) 238 C8A2 3C INC A 239 C8A3 C8 RET Z 240 ; 241 C8A4 56 LD D,(HL) 242 C8A5 23 INC HL 243 C8A6 5E LD E,(HL) 244 C8A7 23 INC HL 245 C8A8 4E LD C,(HL) 246 C8A9 23 INC HL 247 C8AA E5 PUSH HL 248 C8AB 06 00 LD B,00H 249 C8AD 09 ADD HL,BC 250 C8AE E3 EX (SP),HL 251 C8AF 06 01 LD B,01H ; 1 252 C8B1 CD 0B08 CALL PUTFRAME ;internal OS-7 ref!!! 253 ; 254 C8B4 E1 POP HL 255 C8B5 18 EA JR C.C895 256 ; 257 ; ----------------- 258 ; 259 ; Subroutine __________________________ 260 ; Inputs ________________________ 261 ; Outputs ________________________ 262 ; 263 C8B7 C$C8AB: 264 C8B7 46 LD B,(HL) 265 C8B8 23 INC HL 266 C8B9 4E LD C,(HL) 267 C8BA 23 INC HL 268 C8BB CD 0B08 CALL PUTFRAME ;internal OS-7 ref!!! 269 ; 270 C8BE C9 RET 271 ; 272 ; ----------------- 273 ; 274 ; Subroutine __________________________ 275 ; Inputs ________________________ 276 ; Outputs ________________________ 277 ; 278 C8BF C.C8B3: 279 C8BF DD 66 01 LD H,(IX+1) 280 C8C2 DD 6E 00 LD L,(IX) 281 C8C5 DD 56 03 LD D,(IX+3) 282 C8C8 DD 5E 02 LD E,(IX+2) 283 C8CB DD 46 05 LD B,(IX+5) 284 C8CE DD 4E 04 LD C,(IX+4) Z80ASM+ SuperFast Relocating Macro Assembler í80ASM+ 1.14 Page 6 D0:SFBOOT01.ASM 285 C8D1 C5 PUSH BC 286 C8D2 E5 PUSH HL 287 C8D3 D5 PUSH DE 288 C8D4 0C INC C 289 C8D5 0D DEC C 290 C8D6 28 05 JR Z,J$C8D1 291 ; 292 C8D8 06 00 LD B,00H 293 C8DA CD DF1F CALL WRITE_VRAM 294 ; 295 C8DD J$C8D1: 296 C8DD D1 POP DE 297 C8DE E1 POP HL 298 C8DF C1 POP BC 299 C8E0 04 INC B 300 C8E1 05 DEC B 301 C8E2 C8 RET Z 302 ; 303 C8E3 C5 PUSH BC 304 C8E4 06 00 LD B,00H 305 C8E6 09 ADD HL,BC 306 C8E7 EB EX DE,HL 307 C8E8 09 ADD HL,BC 308 C8E9 EB EX DE,HL 309 C8EA C1 POP BC 310 C8EB 0E 00 LD C,00H 311 C8ED CD DF1F CALL WRITE_VRAM 312 ; 313 C8F0 C9 RET 314 ; 315 ; ----------------- 316 ; 317 ; Subroutine __________________________ 318 ; Inputs ________________________ 319 ; Outputs ________________________ 320 ; 321 C8F1 C$C8ED: 322 C8F1 3A C473 LD A,(VDP_MODE_WORD+1) ;saved VDP register 1 value 323 C8F4 CB AF RES 5,A ;clear bit 5 324 C8F6 J$C8F2: 325 C8F6 4F LD C,A ;into C so we can write it 326 C8F7 06 01 LD B,01H ; 1 327 C8F9 CD D91F CALL WRITE_REGISTER ;update VDP register 1 328 ; 329 C8FC C9 RET 330 ; 331 ; ----------------- 332 ; 333 ; Subroutine __________________________ 334 ; Inputs ________________________ 335 ; Outputs ________________________ 336 ; 337 C8FD C$C8F9: 338 C8FD 3A C473 LD A,(VDP_MODE_WORD+1) ;saved VDP register 1 value 339 C900 CB F7 SET 6,A ;set bit 6 340 C902 18 F2 JR J$C8F2 ;write it back 341 ; Z80ASM+ SuperFast Relocating Macro Assembler í80ASM+ 1.14 Page 7 D0:SFBOOT01.ASM 342 ; ----------------- 343 C904 I$C900: 344 C904 05 19 DEFB 5,25 ;number of data units, length of each data unit 345 ; 346 C906 00 61 63 63 DEFB 00H,61H,63H,63H,64H 347 C90A 64 348 C90B 00 61 63 63 DEFB 00H,61H,63H,63H,63H 349 C90F 63 350 C910 6E 00 61 63 DEFB 6EH,00H,61H,63H,63H 351 C914 63 352 C915 64 00 61 63 DEFB 64H,00H,61H,63H,64H 353 C919 64 354 C91A 00 7A 63 7E DEFB 00H,7AH,63H,7EH,7FH 355 C91E 7F 356 ; 357 C91F 00 62 60 66 DEFB 00H,62H,60H,66H,65H 358 C923 65 359 C924 00 62 60 6F DEFB 00H,62H,60H,6FH,70H 360 C928 70 361 C929 60 00 62 60 DEFB 60H,00H,62H,60H,66H 362 C92D 66 363 C92E 65 00 62 60 DEFB 65H,00H,62H,60H,65H 364 C932 65 365 C933 00 6A 60 00 DEFB 00H,6AH,60H,00H,00H 366 C937 00 367 ; 368 C938 00 69 67 68 DEFB 00H,69H,67H,68H,60H 369 C93C 60 370 C93D 7C 00 60 71 DEFB 7CH,00H,60H,71H,72H 371 C941 72 372 C942 60 00 69 67 DEFB 60H,00H,69H,67H,68H 373 C946 68 374 C947 60 7C 00 60 DEFB 60H,7CH,00H,60H,60H 375 C94B 60 376 C94C 79 60 60 00 DEFB 79H,60H,60H,00H,00H 377 C950 00 378 ; 379 C951 00 6A 60 60 DEFB 00H,6AH,60H,60H,60H 380 C955 60 381 C956 65 00 60 73 DEFB 65H,00H,60H,73H,74H 382 C95A 74 383 C95B 60 00 6A 60 DEFB 60H,00H,6AH,60H,60H 384 C95F 60 385 C960 60 65 00 60 DEFB 60H,65H,00H,60H,75H 386 C964 75 387 C965 60 77 60 00 DEFB 60H,77H,60H,00H,00H 388 C969 00 389 ; 390 C96A 69 60 6B 6C DEFB 69H,60H,6BH,6CH,6DH 391 C96E 6D 392 C96F 60 7C 60 60 DEFB 60H,7CH,60H,60H,60H 393 C973 60 394 C974 7D 69 60 6B DEFB 7DH,69H,60H,6BH,6CH 395 C978 6C 396 C979 6D 60 7C 60 DEFB 6DH,60H,7CH,60H,76H 397 C97D 76 398 C97E 60 78 60 00 DEFB 60H,78H,60H,00H,00H Z80ASM+ SuperFast Relocating Macro Assembler í80ASM+ 1.14 Page 8 D0:SFBOOT01.ASM 399 C982 00 400 401 C983 BOOT_TEXT: 402 ;row, column, length of string, string data 403 C983 09 0E 03 54 DEFB 9,14,3,"THE" 404 C987 48 45 405 C989 0A 0A 0D 43 DEFB 10,10,13,"COLECOVISION",REG$ 406 C98D 4F 4C 45 43 407 C991 4F 56 49 53 408 C995 49 4F 4E 5F 409 C999 0B 05 16 46 DEFB 11,5,22,"FAMILY COMPUTER SYSTEM" 410 C99D 41 4D 49 4C 411 C9A1 59 20 43 4F 412 C9A5 4D 50 55 54 413 C9A9 45 52 20 53 414 C9AD 59 53 54 45 415 C9B1 4D 416 C9B2 0D 0C 08 50 DEFB 13,12,8,"PRESENTS" 417 C9B6 52 45 53 45 418 C9BA 4E 54 53 419 C9BD 0F 07 12 53 DEFB 15,7,18,"SMART FILER",TRADET$,TRADEM$," 2000" 420 C9C1 4D 41 52 54 421 C9C5 20 46 49 4C 422 C9C9 45 52 5C 5D 423 C9CD 20 32 30 30 424 C9D1 30 425 C9D2 11 0A 0D 5E DEFB 17,10,13,COPY$," 1984 COLECO" 426 C9D6 20 31 39 38 427 C9DA 34 20 43 4F 428 C9DE 4C 45 43 4F 429 C9E2 13 03 19 5E DEFB 19,3,25,COPY$," 2000 RICHARD F. DRUSHEL" 430 C9E6 20 32 30 30 431 C9EA 30 20 52 49 432 C9EE 43 48 41 52 433 C9F2 44 20 46 2E 434 C9F6 20 44 52 55 435 C9FA 53 48 45 4C 436 C9FE FF DEFB 0FFH ;end of data 437 438 C9FF I$C9DA: 439 C9FF 05CA DEFW I$C9E0 ;RAM source address 440 CA01 0020 DEFW 2000H ;VRAM destination address 441 CA03 1400 DEFW 20 ;count 442 CA05 I$C9E0: 443 CA05 50 50 50 50 DEFB 50H,50H,50H,50H 444 CA09 F0 F0 F0 F0 DEFB 0F0H,0F0H,0F0H,0F0H 445 CA0D F0 F0 F0 F0 DEFB 0F0H,0F0H,0F0H,0F0H 446 CA11 50 50 50 50 DEFB 50H,50H,50H,50H 447 CA15 50 50 50 50 DEFB 50H,50H,50H,50H 448 449 CA19 I$C9F4: 450 CA19 1FCA DEFW I$C9FA ;RAM source address 451 CA1B E002 DEFW 02E0H ;VRAM destination address 452 CA1D 2001 DEFW 288 ;count 453 CA1F I$C9FA: 454 CA1F FA 23 22 22 DEFB 0FAH,23H,22H,22H,00H,00H,00H,00H 455 CA23 00 00 00 00 Z80ASM+ SuperFast Relocating Macro Assembler í80ASM+ 1.14 Page 9 D0:SFBOOT01.ASM 456 CA27 20 60 A0 20 DEFB 20H,60H,0A0H,20H,00H,00H,00H,00H 457 CA2B 00 00 00 00 458 CA2F 7C 82 BA A2 DEFB 7CH,82H,0BAH,0A2H,0BAH,82H,7CH,00H 459 CA33 BA 82 7C 00 460 CA37 3C 42 B9 A5 DEFB 3CH,42H,0B9H,0A5H,0B9H,0ADH,42H,3CH 461 CA3B B9 AD 42 3C 462 CA3F FF FF FF FF DEFB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH 463 CA43 FF FF FF FF 464 CA47 00 00 00 00 DEFB 00H,00H,00H,00H,0FH,0FH,1FH,1FH 465 CA4B 0F 0F 1F 1F 466 CA4F 3F 3F 7F 7F DEFB 3FH,3FH,7FH,7FH,01H,00H,00H,00H 467 CA53 01 00 00 00 468 CA57 00 00 00 00 DEFB 00H,00H,00H,00H,0FFH,0FFH,0FFH,0FFH 469 CA5B FF FF FF FF 470 CA5F 00 00 00 00 DEFB 00H,00H,00H,00H,0C0H,0C0H,0E0H,0E0H 471 CA63 C0 C0 E0 E0 472 CA67 F0 F0 F8 F8 DEFB 0F0H,0F0H,0F8H,0F8H,0FCH,0FCH,0FEH,0FEH 473 CA6B FC FC FE FE 474 CA6F FF FF FF FF DEFB 0FFH,0FFH,0FFH,0FFH,0CFH,0CFH,87H,87H 475 CA73 CF CF 87 87 476 CA77 FF FF FF FF DEFB 0FFH,0FFH,0FFH,0FFH,0FEH,0FEH,0FCH,0FCH 477 CA7B FE FE FC FC 478 CA7F 87 03 03 03 DEFB 87H,03H,03H,03H,01H,01H,00H,00H 479 CA83 01 01 00 00 480 CA87 00 00 01 01 DEFB 00H,00H,01H,01H,03H,03H,07H,07H 481 CA8B 03 03 07 07 482 CA8F 0F 0F 1F 1F DEFB 0FH,0FH,1FH,1FH,3FH,3FH,7FH,7FH 483 CA93 3F 3F 7F 7F 484 CA97 FF FF C0 C0 DEFB 0FFH,0FFH,0C0H,0C0H,80H,80H,00H,00H 485 CA9B 80 80 00 00 486 CA9F FF FF 00 00 DEFB 0FFH,0FFH,00H,00H,00H,00H,00H,00H 487 CAA3 00 00 00 00 488 CAA7 FF FF 03 03 DEFB 0FFH,0FFH,03H,03H,01H,01H,00H,00H 489 CAAB 01 01 00 00 490 CAAF 00 00 00 00 DEFB 00H,00H,00H,00H,0F0H,0FCH,0FEH,0FEH 491 CAB3 F0 FC FE FE 492 CAB7 FF FF FF FF DEFB 0FFH,0FFH,0FFH,0FFH,0FFH,80H,80H,80H 493 CABB FF 80 80 80 494 CABF FF FF FF FF DEFB 0FFH,0FFH,0FFH,0FFH,0FFH,03H,01H,01H 495 CAC3 FF 03 01 01 496 CAC7 80 80 80 80 DEFB 80H,80H,80H,80H,80H,80H,80H,80H 497 CACB 80 80 80 80 498 CACF 01 01 01 01 DEFB 01H,01H,01H,01H,01H,01H,01H,01H 499 CAD3 01 01 01 01 500 CAD7 80 80 80 80 DEFB 80H,80H,80H,80H,80H,80H,80H,0FFH 501 CADB 80 80 80 FF 502 CADF 01 01 01 01 DEFB 01H,01H,01H,01H,01H,01H,03H,0FFH 503 CAE3 01 01 03 FF 504 CAE7 7F 7F 3F 3F DEFB 7FH,7FH,3FH,3FH,1FH,1FH,0FH,0FH 505 CAEB 1F 1F 0F 0F 506 CAEF 07 07 03 03 DEFB 07H,07H,03H,03H,01H,01H,00H,00H 507 CAF3 01 01 00 00 508 CAF7 FE FE FC FC DEFB 0FEH,0FEH,0FCH,0FCH,0F8H,0F8H,0F0H,0F0H 509 CAFB F8 F8 F0 F0 510 CAFF E0 E0 C0 C0 DEFB 0E0H,0E0H,0C0H,0C0H,80H,80H,00H,00H 511 CB03 80 80 00 00 512 CB07 00 00 81 81 DEFB 00H,00H,81H,81H,0C3H,0C3H,0E7H,0E7H Z80ASM+ SuperFast Relocating Macro Assembler í80ASM+ 1.14 Page 10 D0:SFBOOT01.ASM 513 CB0B C3 C3 E7 E7 514 CB0F 00 00 00 00 DEFB 00H,00H,00H,00H,03H,03H,07H,07H 515 CB13 03 03 07 07 516 CB17 F3 55 51 51 DEFB 0F3H,55H,51H,51H,00H,00H,00H,00H 517 CB1B 00 00 00 00 518 CB1F 00 00 80 80 DEFB 00H,00H,80H,80H,0C0H,0C0H,0E0H,0E0H 519 CB23 C0 C0 E0 E0 520 CB27 FF FF FF FF DEFB 0FFH,0FFH,0FFH,0FFH,0FEH,0FEH,0FCH,0F0H 521 CB2B FE FE FC F0 522 CB2F FA 23 22 22 DEFB 0FAH,23H,22H,22H,00H,00H,00H,00H 523 CB33 00 00 00 00 524 CB37 20 60 A0 20 DEFB 20H,60H,0A0H,20H,00H,00H,00H,00H 525 CB3B 00 00 00 00 526 ; ----------------- 527 528 ;re-create original credit string 529 530 CB3F 40 20 20 20 DEFB "@ PROGRAM BY SIERRA ON-LINE @" 531 CB43 50 52 4F 47 532 CB47 52 41 4D 20 533 CB4B 42 59 20 53 534 CB4F 49 45 52 52 535 CB53 41 20 4F 4E 536 CB57 2D 4C 49 4E 537 CB5B 45 20 20 20 538 CB5F 20 40 539 CB61 40 20 20 50 DEFB "@ PROGRAMMED BY DON MCGLAUFLIN @" 540 CB65 52 4F 47 52 541 CB69 41 4D 4D 45 542 CB6D 44 20 42 59 543 CB71 20 44 4F 4E 544 CB75 20 4D 43 47 545 CB79 4C 41 55 46 546 CB7D 4C 49 4E 20 547 CB81 20 40 548 CB83 40 20 20 28 DEFB "@ (c) 1984 SIERRA ON-LINE, INC. @" 549 CB87 63 29 20 31 550 CB8B 39 38 34 20 551 CB8F 53 49 45 52 552 CB93 52 41 20 4F 553 CB97 4E 2D 4C 49 554 CB9B 4E 45 2C 20 555 CB9F 49 4E 43 2E 556 CBA3 20 40 557 ; ----------------- 558 559 ; 560 005B BOOTSPACE EQU 0CC00H-$ 561 CBA5 005B DS BOOTSPACE ;zero-fill rest of block 562 CC00 REPORT ,%BOOTSPACE 563 A .PRINTX BOOT BLOCK SPACE = 91 564 565 ;**************************************************************************** 566 567 END Z80ASM+ SuperFast Relocating Macro Assembler í80ASM+ 1.14 Page 11 D0:SFBOOT01.ASM 0 Error(s) Detected. 1024 Absolute Bytes. 50 Symbols Detected. Z80ASM+ SuperFast Relocating Macro Assembler í80ASM+ 1.14 Page 12 Value Symbol Defined Referenced: C83C ABORT 140 159 0001 BLOCK_1 68 0000 BLOCK_1_ADDR 57 0002 BLOCK_2 69 112 8400 BLOCK_2_ADDR 58 111 118 0005 BLOCK_5 70 125 005B BOOTSPACE 560 561 562 C858 BOOT_DEVICE 171 101 135 153 C983 BOOT_TEXT 401 223 C868 C$C85C 199 103 C8B7 C$C8AB 263 221 C8F1 C$C8ED 321 202 C8FD C$C8F9 337 226 C8A1 C.C895 236 224 255 C8BF C.C8B3 278 214 217 C800 COLD_BOOT 99 102 C800 COLD_BOOT_ADDR 95 97 005E COPY$ 63 425 429 1F82 FILL_VRAM 77 207 017F I$017F 49 133 0204 I$0204 50 220 037F I$037F 51 200 0400 I$0400 52 162 3FFF I$3FFF 53 205 C904 I$C900 343 219 C9FF I$C9DA 438 216 CA05 I$C9E0 442 439 CA19 I$C9F4 449 213 CA1F I$C9FA 453 450 0000 I.0000 48 204 C8DD J$C8D1 295 290 C8F6 J$C8F2 324 340 1F7F LOAD_ASCII 76 211 C83F LOAD_BLOCKS 151 114 127 166 1F85 MODE_1 78 209 0100 PROG_START 59 124 137 080B PUTFRAME 74 252 268 005F REG$ 64 408 005D TRADEM$ 62 422 005C TRADET$ 61 422 73C3 VDP_MODE_WORD 81 322 338 C859 WAIT 178 105 120 C85B WAIT1 180 189 C85F WAIT2 183 187 1FD9 WRITE_REGISTER 79 327 FD20 WRITE_REGISTER_EOS 87 131 1FDF WRITE_VRAM 80 293 311 0000 ZERO 60 154 FCE7 _GOTO_WP 86 141 FCF3 _READ_BLOCK 85 157 C83C ABORT 0001 BLOCK_1 0000 BLOCK_1_ADDR 0002 BLOCK_2 8400 BLOCK_2_ADDR 0005 BLOCK_5 005B BOOTSPACE C858 BOOT_DEVICE C983 BOOT_TEXT C868 C$C85C C8B7 C$C8AB C8F1 C$C8ED C8FD C$C8F9 C8A1 C.C895 C8BF C.C8B3 C800 COLD_BOOT C800 COLD_BOOT_ADDR 005E COPY$ 1F82 FILL_VRAM 017F I$017F 0204 I$0204 037F I$037F 0400 I$0400 3FFF I$3FFF C904 I$C900 C9FF I$C9DA CA05 I$C9E0 CA19 I$C9F4 CA1F I$C9FA 0000 I.0000 C8DD J$C8D1 C8F6 J$C8F2 1F7F LOAD_ASCII C83F LOAD_BLOCKS 1F85 MODE_1 0100 PROG_START 080B PUTFRAME 005F REG$ 005D TRADEM$ 005C TRADET$ 73C3 VDP_MODE_WORD C859 WAIT C85B WAIT1 C85F WAIT2 1FD9 WRITE_REGISTER FD20 WRITE_REGISTER_EOS 1FDF WRITE_VRAM 0000 ZERO FCE7 _GOTO_WP FCF3 _READ_BLOCK