org 00000h di ;0000 no interrupt ld sp,0ffa6h ;0001 init stack xor a ;0004 A=0 jp init ;0005 go init 00046h ;RST 08 handle - clear top line ld de,0303eh ;0008 point to screen ram call cleartopline ;000b go clear top line 0052dh nop ;000e pass through to display message at return addr nop ;000f ;RST 10 handle - display message at return addr pop hl ;0010 get return addr displaymsg: ld c,(hl) ;0011 load count inc hl ;0012 dump ld b,000h ;0013 jp printroutine ;0015 00541h ; rst 38h ;0018 rst 38h ;0019 rst 38h ;001a rst 38h ;001b rst 38h ;001c rst 38h ;001d rst 38h ;001e rst 38h ;001f rst 38h ;0020 rst 38h ;0021 rst 38h ;0022 rst 38h ;0023 rst 38h ;0024 rst 38h ;0025 rst 38h ;0026 rst 38h ;0027 rst 38h ;0028 rst 38h ;0029 rst 38h ;002a rst 38h ;002b rst 38h ;002c rst 38h ;002d rst 38h ;002e rst 38h ;002f rst 38h ;0030 rst 38h ;0031 rst 38h ;0032 rst 38h ;0033 rst 38h ;0034 rst 38h ;0035 rst 38h ;0036 rst 38h ;0037 rst 38h ;0038 rst 38h ;0039 rst 38h ;003a rst 38h ;003b rst 38h ;003c rst 38h ;003d rst 38h ;003e rst 38h ;003f jp 00000h ;0040 jp 00000h ;0043 ; init init: out (0c0h),a ;0046 clear io, floppy control out (0c4h),a ;0048 Program map A base out (0c5h),a ;004a Program map B base out (0c6h),a ;004c DMA map A base out (0c7h),a ;004e DMA map B base out (0d4h),a ;0050 Hi-res color out (0d8h),a ;0052 Hi-res start ld hl,0005ah ;0054 jp otirloop ;0057 do OTIR loop on following data 00562h defb 0b5h ;005a io port CRT register select defb 004h ;005b count 4 defb 0cfh ;005c defb 0b8h ;005d defb 037h ;005e defb 0efh ;005f ; defb 0b4h ;0060 io port PIO A data defb 001h ;0061 count 1 defb 001h ;0062 ; defb 0a1h ;0063 io port DART A command defb 006h ;0064 count 6 defb 048h ;0065 defb 048h ;0066 defb 004h ;0067 defb 044h ;0068 defb 005h ;0069 defb 0eah ;006a ; defb 0a3h ;006b io port DART B command defb 008h ;006c count 8 defb 048h ;006d defb 048h ;006e defb 004h ;006f defb 044h ;0070 defb 001h ;0071 defb 000h ;0072 defb 003h ;0073 defb 0c1h ;0074 ; defb 0a5h ;0075 io port SIO A command defb 002h ;0076count 2 defb 048h ;0077 defb 048h ;0078 ; defb 0a7h ;0079 io port SIO B command defb 002h ;007a count 2 defb 048h ;007b defb 048h ;007c ; defb 0a8h ;007d io port CTC CHANNEL 0 - Communications baud rate defb 002h ;007e count 2 defb 003h ;007f defb 003h ;0080 ; defb 0a9h ;0081 io port CTC CHANNEL 1 - AUX RS-232C baud rate defb 002h ;0082 count 2 defb 003h ;0083 defb 003h ;0084 ; defb 0aah ;0085 io port CTC CHANNEL 2 - Printer baud rate defb 002h ;0086 count 2 defb 057h ;0087 defb 04eh ;0088 ; defb 000h ;0089 io port reset defb 000h ;008a count 0 terminator ;code continues ld ix,00092h ;008b continuation addr jp setupclearscreen ;008f setup display and clear screen 00505h ;code continues ld a,080h ;0092 out (0d4h),a ;0094 out 0d4h,80h Hi-res color ld de,03000h ;0096 point to display upper left corner ld hl,0009fh ;0099 point to message jp displaymsg ;009c go display message at HL 00011h defb 008h ;009f 8 bytes defb 054h ;00a0 T defb 065h ;00a1 e defb 073h ;00a2 s defb 074h ;00a3 t defb 069h ;00a4 i defb 06eh ;00a5 n defb 067h ;00a6 g defb 02eh ;00a7 . ld a,005h ;00a8 out (0a3h),a ;00aa DART B command ld a,068h ;00ac out (0a3h),a ;00ae DART B command ld a,0f0h ;00b0 ????? out (0c8h),a ;00b2 Map and system control ld ix,0c001h ;00b4 ld bc,000c5h ;00b8 ld d,009h ;00bb ld a,0a0h ;00bd out (0c5h),a ;00bf Program map B base ld (ix-001h),b ;00c1 dec b ;00c4 inc a ;00c5 out (0c5h),a ;00c6 Program map B base ld (ix-001h),b ;00c8 dec a ;00cb out (0c5h),a ;00cc Program map B base ld b,(ix-001h) ;00ce inc b ;00d1 jr z,$+4 ;00d2 ld d,011h ;00d4 ld b,d ;00d6 ld hl,00122h ;00d7 ld de,00000h ;00da outi ;00dd jr z,$+84 ;00df exx ;00e1 ld b,055h ;00e2 memory check ? ld e,000h ;00e4 ld hl,0c000h ;00e6 graphic memory address ld c,b ;00e9 ld (hl),c ;00ea rlc c ;00eb inc l ;00ed jr nz,$-4 ;00ee rlc c ;00f0 inc h ;00f2 jr nz,$-9 ;00f3 ld h,0c0h ;00f5 ld c,b ;00f7 ld a,(hl) ;00f8 xor c ;00f9 or e ;00fa ld e,a ;00fb rlc c ;00fc inc l ;00fe jr nz,$-7 ;00ff rlc c ;0101 inc h ;0103 jr nz,$-12 ;0104 rlc b ;0106 jr nc,$-34 ;0108 ld a,e ;010a exx ;010b and a ;010c jr z,$+10 ;010d inc a ;010f jr z,$+6 ;0110 or d ;0112 ld d,a ;0113 jr $+3 ;0114 inc e ;0116 ld a,b ;0117 cp 004h ;0118 jr nz,$-61 ;011a ld a,020h ;011c out (0c0h),a ;011e Floppy external control jr $-67 ;0120 and c ;0122 pop bc ;0123 pop hl ;0124 nop ;0125 jr nz,$+66 ;0126 ld h,b ;0128 add a,b ;0129 and b ;012a ret nz ;012b ret po ;012c ld bc,04121h ;012d ld h,c ;0130 add a,c ;0131 nop ;0132 xor a ;0133 or d ;0134 or e ;0135 jr z,$+43 ;0136; ld ix,0013fh ;0138 jp 0058ch ;013c ld de,03000h ;013f ld hl,00148h ;0142 jp displaymsg ;0145 00011h defb 017h ;0148 count 23 defb 045h ;0149 Error #2 :Call service. defb 072h ;014a defb 072h ;014b defb 06fh ;014c defb 072h ;014d defb 020h ;014e defb 023h ;014f defb 032h ;0150 defb 020h ;0151 defb 03ah ;0152 defb 043h ;0153 defb 061h ;0154 defb 06ch ;0155 defb 06ch ;0156 defb 020h ;0157 defb 073h ;0158 defb 065h ;0159 defb 072h ;015a defb 076h ;015b defb 069h ;015c defb 063h ;015d defb 065h ;015e defb 02eh ;015f halt ;0160 out (0c5h),a ;0161 Program map B base out (0c8h),a ;0163 Map and system control dec hl ;0165 dec hl ;0166 ld a,(hl) ;0167 rrca ;0168 and 080h ;0169 ld (0ff80h),a ;016b ld de,0ffa6h ;016e ld hl,005beh ;0171 ld bc,0005ah ;0174 ldir ;0177 call 00503h ;0179 call 003d9h ;017c call 0061ch ;017f ld a,0ffh ;0182 jr c,$+3 ;0184 cpl ;0186 ld (0ff93h),a ;0187 ld hl,00404h ;018a ld (0ff91h),hl ;018d or a ;0190 jr nz,$+50 ;0191 ld c,010h ;0193 call 0065ah ;0195 jr c,$+19 ;0198 ld bc,00000h ;019a call 0040eh ;019d jr c,$+11 ;01a0 call 003a2h ;01a2 ld a,(0ff8bh) ;01a5 ld (0ff91h),a ;01a8 ld c,011h ;01ab call 0065ah ;01ad jr c,$+19 ;01b0 ld bc,00000h ;01b2 call 0040eh ;01b5 jr c,$+11 ;01b8 call 003a2h ;01ba ld a,(0ff8bh) ;01bd ld (0ff92h),a ;01c0 ld a,001h ;01c3 ld c,008h ;01c5 or 0a0h ;01c7 out (0c0h),a ;01c9 Floppy external control ld b,a ;01cb in a,(0b0h) ;01cc Floppy status rr a ;01ce jr c,$-4 ;01d0 in a,(0b0h) ;01d2 Floppy status add a,a ;01d4 jr c,$+8 ;01d5 call 0057dh ;01d7 call 00262h ;01da inc c ;01dd ld a,b ;01de add a,a ;01df and 00fh ;01e0 jr nz,$-27 ;01e2 ld a,(0ff93h) ;01e4 or a ;01e7 jr nz,$+28 ;01e8 in a,(0ffh) ;01ea ???? and 020h ;01ec jr nz,$+22 ;01ee ld c,010h ;01f0 call 0065ah ;01f2 ld b,000h ;01f5 call nc,00262h ;01f7 ld c,011h ;01fa call 0065ah ;01fc ld b,000h ;01ff call nc,00262h ;0201 call 00503h ;0204 ld bc,002a3h ;0207 ld hl,0061ah ;020a otir ;020d ld de,03000h ;020f ld hl,00218h ;0212 jp displaymsg ;0215 00011h defb 019h ;0218 count 25 defb 04eh ;0219 No System Device On Line. defb 06fh ;021a defb 020h ;021b defb 053h ;021c defb 079h ;021d defb 073h ;021e defb 074h ;021f defb 065h ;0220 defb 06dh ;0221 defb 020h ;0222 defb 044h ;0223 defb 065h ;0224 defb 076h ;0225 defb 069h ;0226 defb 063h ;0227 defb 065h ;0228 defb 020h ;0229 defb 04fh ;022a defb 06eh ;022b defb 020h ;022c defb 04ch ;022d defb 069h ;022e defb 06eh ;022f defb 065h ;0230 defb 02eh ;0231 call 0057dh ;0232 call 0057dh ;0235 call 0057dh ;0238 jp 0017ch ;023b ld ix,00245h ;023e jp 0058ch ;0242 call 0056bh ;0245 rst 10h ;0248 defb 017h ;0249 count 23 defb 045h ;024a Error #0: Call service. defb 072h ;024b defb 072h ;024c defb 06fh ;024d defb 072h ;024e defb 020h ;024f defb 023h ;0250 defb 030h ;0251 defb 03ah ;0252 defb 020h ;0253 defb 043h ;0254 defb 061h ;0255 defb 06ch ;0256 defb 06ch ;0257 defb 020h ;0258 defb 073h ;0259 defb 065h ;025a defb 072h ;025b defb 076h ;025c defb 069h ;025d defb 063h ;025e defb 065h ;025f defb 02eh ;0260 halt ;0261 push bc ;0262 xor a ;0263 ld (0ff81h),a ;0264 ld (0ff82h),a ;0267 rst 8 ;026a defb 008h ;026b count 8 defb 04ch ;026c Loading defb 06fh ;026d defb 061h ;026e defb 064h ;026f defb 069h ;0270 defb 06eh ;0271 defb 067h ;0272 defb 020h ;0273 pop ix ;0274 call 004a1h ;0276 jr c,$-59 ;0279 ld bc,00000h ;027b call 0040eh ;027e jr c,$+92 ;0281 ld hl,(0ff81h) ;0283 ld a,l ;0286 and a ;0287 jr z,$+20 ;0288 ld a,h ;028a and 003h ;028b in a,(0ffh) ;028d jr z,$+9 ;028f bit 0,a ;0291 jr nz,$+9 ;0293 jp 0034bh ;0295 bit 1,a ;0298 jr z,$-5 ;029a call 003a2h ;029c jp c,00343h ;029f jr z,$+20 ;02a2 call 0040eh ;02a4 jr c,$+54 ;02a7 ld hl,0401fh ;02a9 bit 0,(hl) ;02ac jp nz,0034fh ;02ae call 0040eh ;02b1 jr c,$+41 ;02b4 exx ;02b6 ld hl,0400eh ;02b7 ld d,(hl) ;02ba inc hl ;02bb ld e,(hl) ;02bc push de ;02bd pop iy ;02be ld hl,04080h ;02c0 ld c,(hl) ;02c3 inc hl ;02c4 inc hl ;02c5 ld d,(hl) ;02c6 inc hl ;02c7 ld e,(hl) ;02c8 inc hl ;02c9 ld a,(hl) ;02ca inc hl ;02cb ld l,(hl) ;02cc ld h,a ;02cd ex de,hl ;02ce push hl ;02cf ld a,e ;02d0 add a,0ffh ;02d1 ld a,d ;02d3 exx ;02d4 ld e,000h ;02d5 adc a,e ;02d7 ld d,a ;02d8 pop hl ;02d9 call 00414h ;02da jr c,$+106 ;02dd ld a,(0ff8bh) ;02df cp 002h ;02e2 jr z,$+10 ;02e4 xor a ;02e6 ex af,af' ;02e7 exx ;02e8 jp 0ffa6h ;02e9 ex af,af' ;02ec adc a,c ;02ed push ix ;02ee pop bc ;02f0 ld a,(0ff8bh) ;02f1 ld de,00013h ;02f4 ld hl,0ff8dh ;02f7 jr nz,$+69 ;02fa cp 002h ;02fc jp nz,0ffb8h ;02fe push bc ;0301 bit 3,c ;0302 jr nz,$+7 ;0304 ld a,0ffh ;0306 ld (0ff81h),a ;0308 in a,(0ffh) ;030b ld c,a ;030d xor a ;030e bit 0,c ;030f jr z,$+4 ;0311 ld a,00fh ;0313 bit 1,c ;0315 jr z,$+4 ;0317 or 0f0h ;0319 ld b,a ;031b ld a,(0ff81h) ;031c cpl ;031f and a ;0320 jr z,$+19 ;0321 push bc ;0323 push ix ;0324 pop bc ;0326 ld a,c ;0327 sub 007h ;0328 ld b,a ;032a ld a,080h ;032b rlca ;032d rlca ;032e djnz $-2 ;032f pop bc ;0331 and b ;0332 rrca ;0333 xor b ;0334 pop bc ;0335 ld (0ff81h),a ;0336 ld a,(0ff8bh) ;0339 jp 0ffb8h ;033c ld a,033h ;033f jr $+16 ;0341 ld a,030h ;0343 jr $+12 ;0345 ld a,032h ;0347 jr $+8 ;0349 ld a,039h ;034b jr $+4 ;034d ld a,031h ;034f push ix ;0351 push af ;0353 call 0056bh ;0354 push de ;0357 rst 10h ;0358 defb 028h ;0359 count 40 defb 045h ;035a Error #10: Invalid System Disk in Drive defb 072h ;035b defb 072h ;035c defb 06fh ;035d defb 072h ;035e defb 020h ;035f defb 023h ;0360 defb 031h ;0361 defb 030h ;0362 defb 03ah ;0363 defb 020h ;0364 defb 049h ;0365 defb 06eh ;0366 defb 076h ;0367 defb 061h ;0368 defb 06ch ;0369 defb 069h ;036a defb 064h ;036b defb 020h ;036c defb 053h ;036d defb 079h ;036e defb 073h ;036f defb 074h ;0370 defb 065h ;0371 defb 06dh ;0372 defb 020h ;0373 defb 044h ;0374 defb 069h ;0375 defb 073h ;0376 defb 06bh ;0377 defb 020h ;0378 defb 069h ;0379 defb 06eh ;037a defb 020h ;037b defb 044h ;037c defb 072h ;037d defb 069h ;037e defb 076h ;037f defb 065h ;0380 defb 020h ;0381 pop hl ;0382 pop bc ;0383 ld de,00008h ;0384 add hl,de ;0387 add hl,de ;0388 inc hl ;0389 ld a,004h ;038a Select display memory out (0c8h),a ;038c Map and system control ld (hl),b ;038e xor a ;038f out (0c8h),a ;0390 Map and system control call 0057dh ;0392 call 0057dh ;0395 call 00503h ;0398 call 003d9h ;039b exx ;039e pop bc ;039f scf ;03a0 ret ;03a1 ld a,003h ;03a2 ld (0ff8bh),a ;03a4 ld hl,0401dh ;03a7 ld a,(hl) ;03aa cp 0e5h ;03ab scf ;03ad ret z ;03ae cp 06ch ;03af scf ;03b1 ret z ;03b2 add a,001h ;03b3 jr nc,$+8 ;03b5 ld hl,0ff8bh ;03b7 ld (hl),002h ;03ba ret ;03bc inc hl ;03bd ld b,(hl) ;03be ld a,b ;03bf inc hl ;03c0 ld c,(hl) ;03c1 add a,001h ;03c2 adc a,c ;03c4 ld hl,0ff8bh ;03c5 ld (hl),002h ;03c8 jr z,$+10 ;03ca ld (hl),001h ;03cc ld a,b ;03ce or c ;03cf scf ;03d0 ret z ;03d1 or a ;03d2 ret ;03d3 ld bc,00001h ;03d4 or a ;03d7 ret ;03d8 ld de,03000h ;03d9 rst 10h ;03dc defb 01dh ;03dd count 29 defb 052h ;03de R3-00C Ready For System Disk defb 033h ;03df defb 02dh ;03e0 defb 030h ;03e1 defb 030h ;03e2 defb 043h ;03e3 defb 020h ;03e4 defb 052h ;03e5 defb 065h ;03e6 defb 061h ;03e7 defb 064h ;03e8 defb 079h ;03e9 defb 020h ;03ea defb 046h ;03eb defb 06fh ;03ec defb 072h ;03ed defb 020h ;03ee defb 053h ;03ef defb 079h ;03f0 defb 073h ;03f1 defb 074h ;03f2 defb 065h ;03f3 defb 06dh ;03f4 defb 020h ;03f5 defb 044h ;03f6 defb 069h ;03f7 defb 073h ;03f8 defb 06bh ;03f9 defb 020h ;03fa call 0057dh ;03fb ret ;03fe ld b,00ah ;03ff ld hl,00000h ;0401 inc hl ;0404 ld a,l ;0405 or h ;0406 jr nz,$-3 ;0407 djnz $-5 ;0409 jp 00133h ;040b ld de,00100h ;040e ld hl,04000h ;0411 push bc ;0414 push ix ;0415 pop bc ;0417 ld a,c ;0418 pop bc ;0419 cp 010h ;041a jp nc,006c1h ;041c ld a,005h ;041f ex af,af' ;0421 push bc ;0422 ex (sp),hl ;0423 ld a,l ;0424 and 00fh ;0425 push bc ;0427 push af ;0428 ld a,(0ff81h) ;0429 and a ;042c ld b,000h ;042d jr z,$+4 ;042f ld b,010h ;0431 pop af ;0433 add a,b ;0434 inc a ;0435 out (0b2h),a ;0436 Floppy sector register add hl,hl ;0438 add hl,hl ;0439 add hl,hl ;043a add hl,hl ;043b cp 011h ;043c ld a,h ;043e out (0b3h),a ;043f Floppy data register jr c,$+18 ;0441 rra ;0443 out (0b3h),a ;0444 Floppy data register push ix ;0446 pop bc ;0448 ld a,b ;0449 jr nc,$+4 ;044a or 010h ;044c ld (0ff82h),a ;044e out (0c0h),a ;0451 Floppy external control pop bc ;0453 pop hl ;0454 ld a,01dh ;0455 call 004b6h ;0457 and 098h ;045a jr nz,$+42 ;045c call 004c1h ;045e ld a,(0ff82h) ;0461 bit 4,a ;0464 ld a,082h ;0466 jr z,$+4 ;0468 ld a,08ah ;046a call 004b6h ;046c and 09ch ;046f jr nz,$+21 ;0471 inc h ;0473 inc bc ;0474 dec d ;0475 ret z ;0476 ld a,c ;0477 and 00fh ;0478 jr z,$-91 ;047a in a,(0b2h) ;047c inc a ;047e out (0b2h),a ;047f Floppy sector register ld a,005h ;0481 ex af,af' ;0483 jr $-35 ;0484 scf ;0486 bit 7,a ;0487 ret nz ;0489 ex af,af' ;048a dec a ;048b jr nz,$-107 ;048c ex af,af' ;048e bit 4,a ;048f jr z,$+14 ;0491 ld a,(0ff81h) ;0493 and a ;0496 jr nz,$+8 ;0497 cpl ;0499 ld (0ff81h),a ;049a jr $-126 ;049d scf ;049f ret ;04a0 push bc ;04a1 push ix ;04a2 pop bc ;04a4 ld a,c ;04a5 pop bc ;04a6 cp 010h ;04a7 jp nc,00788h ;04a9 ld a,001h ;04ac call 004b6h ;04ae and 004h ;04b1 ret nz ;04b3 scf ;04b4 ret ;04b5 out (0b0h),a ;04b6 Floppy status in a,(0b4h) ;04b8 bit 4,a ;04ba jr z,$-4 ;04bc in a,(0b0h) ;04be ret ;04c0 push bc ;04c1 ld bc,0b301h ;04c2 jr $+6 ;04c5 push bc ;04c7 ld bc,07803h ;04c8 ld a,b ;04cb ld (0ff8ch),a ;04cc ld a,c ;04cf out (0b4h),a ;04d0 PIO A data ld bc,006ach ;04d2 ld a,0c3h ;04d5 out (c),a ;04d7 djnz $-2 ;04d9 ld a,07dh ;04db out (c),a ;04dd out (c),l ;04df out (c),h ;04e1 out (c),e ;04e3 out (c),d ;04e5 push hl ;04e7 ld hl,004fbh ;04e8 ld b,003h ;04eb otir ;04ed ld a,(0ff8ch) ;04ef out (c),a ;04f2 ld b,005h ;04f4 otir ;04f6 pop hl ;04f8 pop bc ;04f9 ret ;04fa inc d ;04fb jr z,$-121 ;04fc adc a,d ;04fe rst 8 ;04ff ld bc,087cfh ;0500 pop ix ;0503 setupclearscreen: ;entry during initiation with IX=0092 xor a ;0505 start A=0 ld bc,00eb9h ;0506 C=B9 B=14 ld hl,0054fh ;0509 out (0b8h),a ;050c CRT register select inc a ;050e A++ outi ;050f C)=(HL++) and B-- jr nz,$-5 ;0511 loop until B==0 (14 bytes to write) ld de,03002h ;0513 ld hl,03000h ;0516 ld bc,00ffeh ;0519 ;RST 08 jump in here HL=300C DE=300E BC=4E IX=032F ld a,004h ;051c Select display memory out (0c8h),a ;051e Output to screen out C8,04 Map and system control xor a ;0520 ld (hl),a ;0521 put 00h at 3000h or 300Ch inc hl ;0522 bump ld (hl),020h ;0523 put 20h at 3001h or 300Dh dec hl ;0525 go back point to original ldir ;0526 copy 00 20 through 4K or 80 words xor a ;0528 Reset map A=0 out (0c8h),a ;0529 out C8,00 Map and system control jp (ix) ;052b continue cleartopline: ;process RST 08 entry DE=300C push de ;052d save old DE ld l,e ;052e HL=DE ld h,d ;052f inc de ;0530 DE+=2 inc de ;0531 ld bc,0004eh ;0532 80-2 push ix ;0535 save old IX ld ix,0053dh ;0537 exit addr jr $-31 ;053b clear line 300C 80char ;clear line returns here pop ix ;053d restore old IX pop de ;053f restore old DE ret ;0540 printroutine: ;print routine ;BC count ;HL message source ;DE screen target ld a,004h ;0541 Select display memory out (0c8h),a ;0543 Output to screen Map and system control inc de ;0545 do every other addr ldi ;0546 (DE++)=(HL++) and BC-- jp pe,00545h ;0548 repeat while BC not 0 xor a ;054b Reset map out (0c8h),a ;054c Reset to memory Map and system control jp (hl) ;054e ;data to be output to io port B9 14 byte CRT data register defb 069h ;054f defb 050h ;0550 defb 056h ;0551 defb 00bh ;0552 defb 019h ;0553 defb 003h ;0554 defb 018h ;0555 defb 018h ;0556 defb 000h ;0557 defb 00bh ;0558 defb 020h ;0559 defb 000h ;055a defb 000h ;055b defb 000h ;055c ; pop hl ;055d jr $+4 ;055e ; otir ;0560 out B bytes from (HL) to (C) ; otirloop: ld c,(hl) ;0562 get register inc hl ;0563 bump ld b,(hl) ;0564 get count inc hl ;0565 bump ld a,b ;0566 evaluate count and a ;0567 jr nz,$-8 ;0568 if count not 0 loop jp (hl) ;056a ld de,03100h ;056b ld a,00fh ;056e out (0b8h),a ;0570 CRT register select xor a ;0572 out (0b9h),a ;0573 CRT data register in a,(0bbh) ;0575 or a ;0577 ret nz ;0578 ld de,030a0h ;0579 ret ;057c ; ld hl,04600h ;057d dec hl ;0580 ex (sp),hl ;0581 ex (sp),hl ;0582 ex (sp),hl ;0583 ex (sp),hl ;0584 ld a,l ;0585 or h ;0586 jr nz,$-7 ;0587 ret ;0589 pop ix ;058a ld a,00fh ;058c out (0b8h),a ;058e CRT register select xor a ;0590 out (0b9h),a ;0591 CRT data register in a,(0bbh) ;0593 ???? and a ;0595 jr nz,$+6 ;0596 ld a,081h ;0598 out (0d4h),a ;059a Hi-res color ld bc,006cch ;059c ld hl,005b8h ;059f otir ;05a2 ld bc,00000h ;05a4 ex (sp),hl ;05a7 ex (sp),hl ;05a8 dec bc ;05a9 ld a,b ;05aa or c ;05ab jr nz,$-5 ;05ac ld a,080h ;05ae out (0d4h),a ;05b0 Hi-res color ld a,09fh ;05b2 out (0cch),a ;05b4 ????? jp (ix) ;05b6 adc a,(hl) ;05b8 inc b ;05b9 sub d ;05ba cp a ;05bb rst 18h ;05bc rst 38h ;05bd ld a,001h ;05be out (0c8h),a ;05c0 Map and system control ex af,af' ;05c2 adc a,(hl) ;05c3 ex af,af' ;05c4 inc hl ;05c5 dec de ;05c6 ld a,e ;05c7 or d ;05c8 jr nz,$-7 ;05c9 out (0c8h),a ;05cb Map and system control jp 002ech ;05cd cp 002h ;05d0 ld a,001h ;05d2 out (0c8h),a ;05d4 Map and system control jr nz,$+31 ;05d6 ld a,(0ff81h) ;05d8 ld (00022h),a ;05db ld a,c ;05de sub 010h ;05df jr c,$+20 ;05e1 ld c,a ;05e3 jr z,$+10 ;05e4 ld a,(0ff8fh) ;05e6 cp 095h ;05e9 jr nz,$+3 ;05eb inc c ;05ed ld a,004h ;05ee add a,c ;05f0 ld c,a ;05f1 push bc ;05f2 pop ix ;05f3 ld a,(0ff80h) ;05f5 or c ;05f8 ld c,a ;05f9 ld a,(0ff91h) ;05fa ld (de),a ;05fd inc de ;05fe push bc ;05ff ld bc,00004h ;0600 ldir ;0603 ld de,00023h ;0605 ld hl,0ff8dh ;0608 ld a,(0ff92h) ;060b ld (de),a ;060e inc de ;060f ld bc,00004h ;0610 ldir ;0613 pop bc ;0615 jp (iy) ;0616 dec b ;0618 add a,b ;0619 dec b ;061a nop ;061b ld bc,002a3h ;061c ld hl,00618h ;061f otir ;0622 ld b,0ffh ;0624 in a,(079h) ;0626 cp 0c7h ;0628 jr z,$+6 ;062a djnz $-6 ;062c scf ;062e ret ;062f call 00723h ;0630 ret c ;0633 in a,(0ffh) ;0634 rra ;0636 rra ;0637 and 007h ;0638 ld hl,007e2h ;063a jr z,$+18 ;063d ld hl,007d6h ;063f dec a ;0642 jr z,$+5 ;0643 ld hl,007cah ;0645 call 0076bh ;0648 call 00723h ;064b ret c ;064e ld de,0ff8dh ;064f ld bc,00004h ;0652 ldir ;0655 jp 0077fh ;0657 push bc ;065a pop ix ;065b ld a,010h ;065d sub c ;065f jr z,$+4 ;0660 ld a,020h ;0662 ld hl,0ff83h ;0664 ld b,004h ;0667 ld (hl),008h ;0669 inc hl ;066b ld (hl),a ;066c inc hl ;066d ld (hl),000h ;066e djnz $-3 ;0670 call 00723h ;0672 ret c ;0675 call 0074bh ;0676 call 00738h ;0679 and 002h ;067c ret z ;067e scf ;067f ret ;0680 push bc ;0681 call 0056bh ;0682 rst 10h ;0685 defb 028h ;0686 sount 40 defb 045h ;0687 Error 1: Disk system error, Call Service defb 072h ;0688 defb 072h ;0689 defb 06fh ;068a defb 072h ;068b defb 020h ;068c defb 031h ;068d defb 03ah ;068e defb 020h ;068f defb 044h ;0690 defb 069h ;0691 defb 073h ;0692 defb 06bh ;0693 defb 020h ;0694 defb 073h ;0695 defb 079h ;0696 defb 073h ;0697 defb 074h ;0698 defb 065h ;0699 defb 06dh ;069a defb 020h ;069b defb 065h ;069c defb 072h ;069d defb 072h ;069e defb 06fh ;069f defb 072h ;06a0 defb 02ch ;06a1 defb 020h ;06a2 defb 043h ;06a3 defb 061h ;06a4 defb 06ch ;06a5 defb 06ch ;06a6 defb 020h ;06a7 defb 053h ;06a8 defb 065h ;06a9 defb 072h ;06aa defb 076h ;06ab defb 069h ;06ac defb 063h ;06ad defb 065h ;06ae call 0057dh ;06af call 0057dh ;06b2 call 0057dh ;06b5 call 00503h ;06b8 call 003d9h ;06bb pop bc ;06be scf ;06bf ret ;06c0 call 004c7h ;06c1 ld a,b ;06c4 ld (0ff85h),a ;06c5 ld a,c ;06c8 ld (0ff86h),a ;06c9 ld a,d ;06cc ld (0ff87h),a ;06cd push bc ;06d0 push hl ;06d1 call 00723h ;06d2 jp c,006fbh ;06d5 ld hl,0ff83h ;06d8 ld bc,00678h ;06db in a,(079h) ;06de and 041h ;06e0 jr nz,$-4 ;06e2 outi ;06e4 jr nz,$-8 ;06e6 out (07ah),a ;06e8 ????? nop ;06ea in a,(079h) ;06eb and 044h ;06ed jr nz,$-4 ;06ef out (07bh),a ;06f1 ???? call 00738h ;06f3 and 002h ;06f6 call nz,006ffh ;06f8 pop hl ;06fb pop bc ;06fc inc bc ;06fd ret ;06fe call 00723h ;06ff ret c ;0702 ld a,003h ;0703 call 0074dh ;0705 ld bc,00478h ;0708 ld hl,0ff89h ;070b in a,(079h) ;070e cp 00fh ;0710 jr nz,$-4 ;0712 ini ;0714 jr nz,$-8 ;0716 call 00738h ;0718 ld a,(0ff89h) ;071b sub 098h ;071e ret z ;0720 scf ;0721 ret ;0722 in a,(079h) ;0723 and 080h ;0725 scf ;0727 ret z ;0728 ld a,001h ;0729 out (079h),a ;072b ???? ld b,0ffh ;072d in a,(079h) ;072f and 080h ;0731 ret z ;0733 djnz $-5 ;0734 scf ;0736 ret ;0737 in a,(079h) ;0738 and 044h ;073a jr nz,$-4 ;073c in a,(078h) ;073e ld b,a ;0740 in a,(079h) ;0741 and 042h ;0743 jr nz,$-4 ;0745 in a,(078h) ;0747 ld a,b ;0749 ret ;074a ld a,000h ;074b call 00760h ;074d ld a,(0ff84h) ;0750 call 00760h ;0753 ld a,000h ;0756 ld b,004h ;0758 call 00760h ;075a djnz $-3 ;075d ret ;075f push af ;0760 in a,(079h) ;0761 and 041h ;0763 jr nz,$-4 ;0765 pop af ;0767 out (078h),a ;0768 Step out ret ;076a ld a,00ch ;076b call 0074dh ;076d ld bc,00878h ;0770 in a,(079h) ;0773 cp 007h ;0775 jr nz,$-4 ;0777 outi ;0779 jr nz,$-8 ;077b jr $-69 ;077d ld a,0e4h ;077f call 00794h ;0781 ret z ;0784 jp 00681h ;0785 call 00723h ;0788 ret c ;078b ld a,001h ;078c call 00794h ;078e ret z ;0791 jr $+11 ;0792 call 0074dh ;0794 call 00738h ;0797 and 002h ;079a ret ;079c call 0056bh ;079d rst 10h ;07a0 defb 027h ;07a1 count 39 defb 045h ;07a2 Error 3: Disk Malfunction, Call Service defb 072h ;07a3 defb 072h ;07a4 defb 06fh ;07a5 defb 072h ;07a6 defb 020h ;07a7 defb 033h ;07a8 defb 03ah ;07a9 defb 020h ;07aa defb 044h ;07ab defb 069h ;07ac defb 073h ;07ad defb 06bh ;07ae defb 020h ;07af defb 04dh ;07b0 defb 061h ;07b1 defb 06ch ;07b2 defb 066h ;07b3 defb 075h ;07b4 defb 06eh ;07b5 defb 063h ;07b6 defb 074h ;07b7 defb 069h ;07b8 defb 06fh ;07b9 defb 06eh ;07ba defb 02ch ;07bb defb 020h ;07bc defb 043h ;07bd defb 061h ;07be defb 06ch ;07bf defb 06ch ;07c0 defb 020h ;07c1 defb 053h ;07c2 defb 065h ;07c3 defb 072h ;07c4 defb 076h ;07c5 defb 069h ;07c6 defb 063h ;07c7 defb 065h ;07c8 halt ;07c9 ld bc,00432h ;07ca ld bc,00031h ;07cd ld b,b ;07d0 dec bc ;07d1 ld b,000h ;07d2 sub l ;07d4 rst 38h ;07d5 ld bc,00232h ;07d6 ld bc,00031h ;07d9 ld b,b ;07dc dec bc ;07dd ld b,000h ;07de ld c,d ;07e0 rst 38h ;07e1 nop ;07e2 nop ;07e3 ld c,d ;07e4 rst 38h ;07e5 rst 38h ;07e6 rst 38h ;07e7 rst 38h ;07e8 rst 38h ;07e9 rst 38h ;07ea rst 38h ;07eb rst 38h ;07ec rst 38h ;07ed rst 38h ;07ee rst 38h ;07ef rst 38h ;07f0 rst 38h ;07f1 rst 38h ;07f2 rst 38h ;07f3 rst 38h ;07f4 rst 38h ;07f5 rst 38h ;07f6 rst 38h ;07f7 rst 38h ;07f8 rst 38h ;07f9 rst 38h ;07fa rst 38h ;07fb rst 38h ;07fc rst 38h ;07fd rst 38h ;07fe rst 38h ;07ff