|
@@ -0,0 +1,1319 @@
|
|
|
|
+
|
|
|
|
+ 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
|