373 lines
9.6 KiB
NASM
373 lines
9.6 KiB
NASM
; Disassembly of the file "D:\MZ80AFI.BIN"
|
|
;
|
|
; CPU Type: Z80
|
|
;
|
|
; Using the opcode map file "D:\DZ80-INI.MAP"
|
|
; ; Created with dZ80 2.0
|
|
;
|
|
; on Thursday, 06 of February 2020 at 01:38 PM
|
|
;
|
|
; Bring in additional resources.
|
|
INCLUDE "rfs_definitions.asm"
|
|
INCLUDE "macros.asm"
|
|
SS: EQU 00089h
|
|
|
|
|
|
;======================================
|
|
;
|
|
; Floppy Disk Interface
|
|
;
|
|
;======================================
|
|
ORG 0E800H
|
|
|
|
FLOPPY: NOP
|
|
LD DE,01008H
|
|
LD HL,PRMBLK
|
|
LD BC,0000BH
|
|
LDIR
|
|
CALL L0151
|
|
L000F: CALL NL
|
|
LD DE,BOOTDRV
|
|
CALL MSG
|
|
LD DE,011A3H
|
|
CALL GETL
|
|
LD A,(DE)
|
|
CP 01BH
|
|
JP Z,SS
|
|
LD HL,0000CH
|
|
ADD HL,DE
|
|
LD A,(HL)
|
|
CP 00DH
|
|
JR Z,L003A ; (+00dh)
|
|
CALL 03F9H
|
|
JR C,L000F ; (-023h)
|
|
DEC A
|
|
CP 004H
|
|
JR NC,L000F ; (-028h)
|
|
LD (01008H),A
|
|
L003A: LD IX,01008H
|
|
CALL L01BA
|
|
LD HL,0CE00H
|
|
LD DE,DSKID
|
|
LD B,007H
|
|
L0049: LD C,(HL)
|
|
LD A,(DE)
|
|
CP C
|
|
JP NZ,L008C
|
|
INC HL
|
|
INC DE
|
|
DJNZ L0049 ; (-00ah)
|
|
CALL NL
|
|
LD DE,IPLLOAD
|
|
CALL MSG
|
|
LD DE,0CE07H
|
|
CALL MSG
|
|
LD HL,(0CE16H)
|
|
LD (IX+005H),L
|
|
LD (IX+006H),H
|
|
LD HL,(0CE14H)
|
|
LD (IX+003H),L
|
|
LD (IX+004H),H
|
|
LD HL,(0CE1EH)
|
|
LD (IX+001H),L
|
|
LD (IX+002H),H
|
|
CALL L01BA
|
|
CALL L0151
|
|
LD HL,(0CE18H)
|
|
JP (HL)
|
|
|
|
L0087: LD DE,LOADERR
|
|
JR L008F ; (+003h)
|
|
|
|
L008C: LD DE,DSKNOTMST
|
|
L008F: CALL NL
|
|
CALL MSG
|
|
CALL NL
|
|
LD DE,DSKDAT
|
|
CALL MELDY
|
|
JP SS
|
|
|
|
BOOTDRV: DB "BOOY DRIVE ?", 00DH
|
|
LOADERR: DB "LOADING ERROR", 00DH
|
|
IPLLOAD: DB "IPL IS LOADING ", 00DH
|
|
DSKID: DB 002H, "IPLPRO"
|
|
DSKDAT: DB "A0", 0D7H, "ARA", 0D7H, "AR", 00DH
|
|
PRMBLK: DB 000H, 000H, 000H, 000H, 001H, 000H, 0CEH, 000H, 000H, 000H, 000H
|
|
DSKNOTMST: DB "THIS DISKETTE IS NOT MASTER", 00Dh
|
|
|
|
L0104: LD A,(01001H)
|
|
RRCA
|
|
CALL NC,L0138
|
|
LD A,(IX+000H)
|
|
OR 084H
|
|
OUT (0DCH),A
|
|
XOR A
|
|
LD (01000H),A
|
|
LD HL,00000H
|
|
L0119: DEC HL
|
|
LD A,H
|
|
OR L
|
|
JP Z,L029D
|
|
IN A,(0D8H)
|
|
CPL
|
|
RLCA
|
|
JR C,L0119 ; (-00ch)
|
|
LD C,(IX+000H)
|
|
LD HL,01002H
|
|
LD B,000H
|
|
ADD HL,BC
|
|
BIT 0,(HL)
|
|
JR NZ,L0137 ; (+005h)
|
|
CALL L0164
|
|
SET 0,(HL)
|
|
L0137: RET
|
|
|
|
L0138: LD A,080H
|
|
OUT (0DCH),A
|
|
LD B,010H
|
|
L013E: CALL L02C7
|
|
DJNZ L013E ; (-005h)
|
|
LD A,001H
|
|
LD (01001H),A
|
|
RET
|
|
|
|
L0149: LD A,01BH
|
|
CALL L0171
|
|
AND 099H
|
|
RET
|
|
|
|
L0151: XOR A
|
|
OUT (0DCH),A
|
|
LD (01002H),A
|
|
LD (01003H),A
|
|
LD (01004H),A
|
|
LD (01005H),A
|
|
LD (01001H),A
|
|
RET
|
|
|
|
L0164: LD A,00BH
|
|
CALL L0171
|
|
AND 085H
|
|
XOR 004H
|
|
RET Z
|
|
JP L029D
|
|
|
|
L0171: LD (01000H),A
|
|
CPL
|
|
OUT (0D8H),A
|
|
CALL L017E
|
|
IN A,(0D8H)
|
|
CPL
|
|
RET
|
|
|
|
L017E: PUSH DE
|
|
PUSH HL
|
|
CALL L02C0
|
|
LD E,007H
|
|
L0185: LD HL,00000H
|
|
L0188: DEC HL
|
|
LD A,H
|
|
OR L
|
|
JR Z,L0196 ; (+009h)
|
|
IN A,(0D8H)
|
|
CPL
|
|
RRCA
|
|
JR C,L0188 ; (-00bh)
|
|
POP HL
|
|
POP DE
|
|
RET
|
|
|
|
L0196: DEC E
|
|
JR NZ,L0185 ; (-014h)
|
|
JP L029D
|
|
|
|
L019C: PUSH DE
|
|
PUSH HL
|
|
CALL L02C0
|
|
LD E,007H
|
|
L01A3: LD HL,00000H
|
|
L01A6: DEC HL
|
|
LD A,H
|
|
OR L
|
|
JR Z,L01B4 ; (+009h)
|
|
IN A,(0D8H)
|
|
CPL
|
|
RRCA
|
|
JR NC,L01A6 ; (-00bh)
|
|
POP HL
|
|
POP DE
|
|
RET
|
|
|
|
L01B4: DEC E
|
|
JR NZ,L01A3 ; (-014h)
|
|
JP L029D
|
|
|
|
L01BA: CALL L0220
|
|
L01BD: CALL L0229
|
|
L01C0: CALL L0249
|
|
CALL L0149
|
|
JR NZ,L0216 ; (+04eh)
|
|
CALL L0259
|
|
PUSH IX
|
|
LD IX,L03FE
|
|
LD IY,L01DF
|
|
DI
|
|
LD A,094H
|
|
CALL L028A
|
|
L01DB: LD B,000H
|
|
JP (IX)
|
|
|
|
L01DF: INI
|
|
JP NZ,L03FE
|
|
POP IX
|
|
INC (IX+008H)
|
|
LD A,(IX+008H)
|
|
PUSH IX
|
|
LD IX,L03FE
|
|
CP 011H
|
|
JR Z,L01FB ; (+005h)
|
|
DEC D
|
|
JR NZ,L01DB ; (-01eh)
|
|
JR L01FC ; (+001h)
|
|
L01FB: DEC D
|
|
L01FC: CALL L0294
|
|
CALL L02D2
|
|
POP IX
|
|
IN A,(0D8H)
|
|
CPL
|
|
AND 0FFH
|
|
JR NZ,L0216 ; (+00bh)
|
|
CALL L0278
|
|
JP Z,L021B
|
|
LD A,(IX+007H)
|
|
JR L01C0 ; (-056h)
|
|
L0216: CALL L026A
|
|
JR L01BD ; (-05eh)
|
|
|
|
L021B: LD A,080H
|
|
OUT (0DCH),A
|
|
RET
|
|
|
|
L0220: CALL L02A3
|
|
LD A,00AH
|
|
LD (01006H),A
|
|
RET
|
|
|
|
L0229: CALL L0104
|
|
LD D,(IX+004H)
|
|
LD A,(IX+003H)
|
|
OR A
|
|
JR Z,L0236 ; (+001h)
|
|
INC D
|
|
L0236: LD A,(IX+00AH)
|
|
LD (IX+008H),A
|
|
LD A,(IX+009H)
|
|
LD (IX+007H),A
|
|
LD L,(IX+005H)
|
|
LD H,(IX+006H)
|
|
RET
|
|
|
|
L0249: SRL A
|
|
CPL
|
|
OUT (0DBH),A
|
|
JR NC,L0254 ; (+004h)
|
|
LD A,001H
|
|
JR L0255 ; (+001h)
|
|
L0254: XOR A
|
|
L0255: CPL
|
|
OUT (0DDH),A
|
|
RET
|
|
|
|
L0259: LD C,0DBH
|
|
LD A,(IX+007H)
|
|
SRL A
|
|
CPL
|
|
OUT (0D9H),A
|
|
LD A,(IX+008H)
|
|
CPL
|
|
OUT (0DAH),A
|
|
RET
|
|
|
|
L026A: LD A,(01006H)
|
|
DEC A
|
|
LD (01006H),A
|
|
JP Z,L029D
|
|
CALL L0164
|
|
RET
|
|
|
|
L0278: LD A,(IX+008H)
|
|
CP 011H
|
|
JR NZ,L0287 ; (+008h)
|
|
LD A,001H
|
|
LD (IX+008H),A
|
|
INC (IX+007H)
|
|
L0287: LD A,D
|
|
OR A
|
|
RET
|
|
|
|
L028A: LD (01000H),A
|
|
CPL
|
|
OUT (0D8H),A
|
|
CALL L019C
|
|
RET
|
|
|
|
L0294: LD A,0D8H
|
|
CPL
|
|
OUT (0D8H),A
|
|
CALL L017E
|
|
RET
|
|
|
|
L029D: CALL L0151
|
|
JP L0087
|
|
|
|
L02A3: LD B,000H
|
|
LD DE,00010H
|
|
LD L,(IX+001H)
|
|
LD H,(IX+002H)
|
|
XOR A
|
|
L02AF: SBC HL,DE
|
|
JR C,L02B6 ; (+003h)
|
|
INC B
|
|
JR L02AF ; (-007h)
|
|
L02B6: ADD HL,DE
|
|
LD H,B
|
|
INC L
|
|
LD (IX+009H),H
|
|
LD (IX+00AH),L
|
|
RET
|
|
|
|
L02C0: PUSH DE
|
|
LD DE,00007H
|
|
JP L02CB
|
|
|
|
L02C7: PUSH DE
|
|
LD DE,01013H
|
|
L02CB: DEC DE
|
|
LD A,E
|
|
OR D
|
|
JR NZ,L02CB ; (-005h)
|
|
POP DE
|
|
RET
|
|
|
|
L02D2: PUSH AF
|
|
LD A,(0119CH)
|
|
CP 0F0H
|
|
JR NZ,L02DB ; (+001h)
|
|
EI
|
|
L02DB: POP AF
|
|
RET
|
|
|
|
ALIGN 0EBFDh
|
|
DB 0FFh
|
|
|
|
L03FE: JP (IY)
|
|
;DB 0DDH
|
|
; DB 0E9H
|
|
|
|
; Ensure we fill the entire 1K by padding with FF's.
|
|
ALIGN 0EFFDh
|
|
DB 0FFh
|
|
|
|
LF7FE: DB 0fDH
|
|
DB 0E9H
|