ZPM3 Drive Map Fix

- Workaround to make ZPM3 consider all drives (A-P) valid so that subsequent drive ASSIGNments work properly.
This commit is contained in:
Wayne Warthen
2020-05-10 11:52:44 -07:00
parent 103a2fc2ae
commit df195ee75c
3 changed files with 51 additions and 43 deletions

View File

@@ -1171,6 +1171,11 @@ DSK_GETINF:
RLCA ; ... TO USE AS OFFSET INTO DRVMAP
CALL ADDHLA ; ADD OFFSET
LD D,(HL) ; D := UNIT
LD A,D ; PUT UNIT IN ACCUM
INC A ; $FF -> $00
JR Z,DSK_GETINF1 ; HANDLE UNASSIGNED DRIVE LETTER
INC HL ; BUMP TO SLICE
LD E,(HL) ; E := SLICE
INC HL ; POINT TO DPH LSB
@@ -1178,9 +1183,11 @@ DSK_GETINF:
INC HL ; POINT TO DPH MSB
LD H,(HL) ; H := DPH MSB
LD L,A ; L := DPH LSB
LD A,H ; TEST FOR INVALID DPH
OR L ; ... BY CHECKING FOR ZERO VALUE
JR Z,DSK_GETINF1 ; HANDLE ZERO DPH, DRIVE IS INVALID
;LD A,H ; TEST FOR INVALID DPH
;OR L ; ... BY CHECKING FOR ZERO VALUE
;JR Z,DSK_GETINF1 ; HANDLE ZERO DPH, DRIVE IS INVALID
XOR A ; SET SUCCESS
RET
;
@@ -1198,7 +1205,7 @@ DSK_GETINF1: ; ERROR RETURN
DSK_SELECT:
LD B,E ; SAVE E IN B FOR NOW
CALL DSK_GETINF ; GET D=UNIT, E=SLICE, HL=DPH ADDRESS
CALL NZ,PANIC ; *DEBUG*
;CALL NZ,PANIC ; *DEBUG*
RET NZ ; RETURN IF INVALID DRIVE (A=1, NZ SET, HL=0)
PUSH BC ; WE NEED B LATER, SAVE ON STACK
;