148 lines
1.4 KiB
NASM
148 lines
1.4 KiB
NASM
;
|
|
DISK_REDIR:
|
|
PUSH HL
|
|
LD HL,SYS_PAGE.DISK_TYPE-#4000
|
|
IN A,(SLOT2)
|
|
EX AF,AF'
|
|
LD A,SYS_PAGE
|
|
OUT (SLOT2),A
|
|
LD A,(ZX_VARS.OPER_DISK)
|
|
AND 3
|
|
ADD A,L
|
|
LD L,A
|
|
LD L,(HL)
|
|
EX AF,AF'
|
|
OUT (SLOT2),A
|
|
LD A,L
|
|
POP HL
|
|
RET
|
|
;
|
|
|
|
;
|
|
SET_DISK_TYPE:
|
|
PUSH HL
|
|
LD HL,SYS_PAGE.DISK_TYPE-#4000
|
|
IN A,(SLOT2)
|
|
EX AF,AF'
|
|
LD A,SYS_PAGE
|
|
OUT (SLOT2),A
|
|
LD A,(ZX_VARS.OPER_DISK)
|
|
AND 3
|
|
ADD A,L
|
|
LD L,A
|
|
LD (HL),E
|
|
LD L,(HL)
|
|
EX AF,AF'
|
|
OUT (SLOT2),A
|
|
LD A,L
|
|
POP HL
|
|
RET
|
|
;
|
|
|
|
; Disk A, DRV - B
|
|
FDD_TO_DRV:
|
|
CP 4
|
|
CCF
|
|
RET C
|
|
LD C,A
|
|
|
|
LD A,B
|
|
CP 4
|
|
CCF
|
|
RET C
|
|
|
|
LD HL,SYS_PAGE.DISK_TYPE-#4000
|
|
LD L,B
|
|
|
|
IN A,(SLOT2)
|
|
LD B,A
|
|
LD A,SYS_PAGE
|
|
OUT (SLOT2),A
|
|
LD (HL),C
|
|
LD A,B
|
|
OUT (SLOT2),A
|
|
|
|
AND A
|
|
RET
|
|
;
|
|
|
|
;
|
|
; RAM-Disk A, DRV - B
|
|
RAMD_TO_DRV:
|
|
CP SYS_PAGE.RAMD_KEYS.NUM
|
|
CCF
|
|
RET C
|
|
LD C,A
|
|
LD A,B
|
|
CP 4
|
|
CCF
|
|
RET C
|
|
|
|
LD HL,SYS_PAGE.DISK_TYPE-#4000
|
|
LD L,B
|
|
|
|
IN A,(SLOT2)
|
|
LD B,A
|
|
LD A,SYS_PAGE
|
|
OUT (SLOT2),A
|
|
LD A,C
|
|
ADD A,4
|
|
LD (HL),A
|
|
LD A,B
|
|
OUT (SLOT2),A
|
|
AND A
|
|
RET
|
|
;
|
|
|
|
;
|
|
; HDD A, DRV - B
|
|
HDD_TO_DRV:
|
|
AND 0FH
|
|
LD C,A
|
|
LD A,B
|
|
CP 4
|
|
CCF
|
|
RET C
|
|
|
|
LD HL,SYS_PAGE.DISK_TYPE-#4000
|
|
LD L,B
|
|
|
|
IN A,(SLOT2)
|
|
LD B,A
|
|
LD A,SYS_PAGE
|
|
OUT (SLOT2),A
|
|
LD A,C
|
|
ADD A,40H
|
|
LD (HL),A
|
|
LD A,B
|
|
OUT (SLOT2),A
|
|
|
|
AND A
|
|
RET
|
|
;
|
|
|
|
;
|
|
GET_DRV_ST:
|
|
CP 4
|
|
CCF
|
|
RET C
|
|
|
|
PUSH BC
|
|
|
|
LD HL,SYS_PAGE.DISK_TYPE-#4000
|
|
ADD A,L
|
|
LD L,A
|
|
|
|
IN A,(SLOT2)
|
|
LD B,A
|
|
LD A,SYS_PAGE
|
|
OUT (SLOT2),A
|
|
LD C,(HL)
|
|
LD A,B
|
|
OUT (SLOT2),A
|
|
|
|
LD A,C
|
|
POP BC
|
|
AND A
|
|
RET
|
|
; |