This commit is contained in:
Tolik 2025-02-04 01:43:46 +10:00
parent a35f7e81f2
commit 371e93f6ba
4 changed files with 36 additions and 19 deletions

View File

@ -266,7 +266,7 @@ LOGDRV EQU DEVICE + DEVICE.End
.SIZE_IN_SECTORS EQU 5
.PARTITION_RECORD_NUM EQU 9
.SECTOR_SIZE EQU 10 ; word
.RemovableMedia EQU 12 ; bit0=1 removable, bit1=1 drive changed, bit7..2 reserved
.MediaParameters EQU 12 ; bit0=1 removable, bit1=1 drive changed, bit7..2 reserved
.Reserved_1 EQU 13
.Reserved_2 EQU 14
.Reserved_3 EQU 15

View File

@ -1 +1 @@
3
8

View File

@ -269,14 +269,22 @@ Init: PUSH IY
.NX_DVCI: PUSH BC
LD A,C
LD (CURRENT_DRIVE.Number),A
LD C,BIOS.DRV_DETECT
LD C,BIOS.DRV_DETECT ;[ ] media change ¯¥à¥¤¥« âì «®£¨ªã âãâ ¨ ¢ ¡¨®á? ; !FIXIT
RST ToBIOS
CALL C,.check_error
CALL NC,DEFINE_PARTITIONS
POP BC
.skip: POP BC
INC C
JR C,.NX_DVCI
DJNZ .NX_DVCI
RET
;
.check_error: XOR BIOS.Error.BadNumber
RET NZ
SCF
RET
;---------------------------------------------------------------------[^]
;+00 BYTE MASTER/SLAVE PHISICAL DRIVE NUMBER #80/#81/...
@ -293,7 +301,7 @@ SelectDrive: PUSH DE
;
LOGDRV_ENTRY_FIND LOGDRV
;
; [ ] custorm sector size
; [ ] custom sector size
CALL CHECK_IDE_SECTOR_SIZE
RLA
;
@ -405,15 +413,24 @@ GetParams: EX DE,HL
POP IY
JR NC,.next
;
CP BIOS.Error.ATAPI.NotReady
SCF
LD A,DSS_Error.drv.NOT_READY
JR Z,.error
LD A,DSS_Error.drv.INVALID_DRIVE
JR .error
;CP BIOS.Error.ATAPI.NotReady
;SCF
;LD A,DSS_Error.drv.NOT_READY
;JR Z,.error
;LD A,DSS_Error.drv.INVALID_DRIVE
;JR .error
;
CP BIOS.Error.BadNumber
SCF
LD A,DSS_Error.drv.INVALID_DRIVE
JR Z,.error
LD A,DSS_Error.drv.NOT_READY
JR .error
; [ ] media change
.next: EX AF,AF
JR C,.NoMediaChange
JR NC,.NoMediaChange
CP BIOS.Error.ATAPI.UnitAttention
JR NZ,.NoMediaChange
;
@ -504,7 +521,7 @@ MediaCheck: PUSH IY
;
; [ ] media changed
LD A,(IY + LOGDRV.PHISICAL_DRV_NUMBER)
LD C,BIOS.DRV_DETECT
LD C,BIOS.DRV_DETECT ;[ ] media change ¯¥à¥¤¥« âì «®£¨ªã âãâ ¨ ¢ ¡¨®á? ; !FIXIT
PUSH IY
RST ToBIOS
POP IY
@ -514,7 +531,7 @@ MediaCheck: PUSH IY
JR Z,.Reinit
JR .exit
;
.next_check: BIT 1,(IY + LOGDRV.RemovableMedia)
.next_check: BIT 1,(IY + LOGDRV.MediaParameters)
JR NZ,.Reinit
;
XOR A
@ -524,7 +541,7 @@ MediaCheck: PUSH IY
.Reinit: LD A,(IY + LOGDRV.PHISICAL_DRV_NUMBER)
LD (CURRENT_DRIVE.Number),A
LD (LOGDRV_OFFSET),IY
;RES 1,(IY + LOGDRV.RemovableMedia)
;RES 1,(IY + LOGDRV.MediaParameters)
CALL DEFINE_PARTITIONS
LD A,#FF ;!HARDCODE drive changed
OR A
@ -635,7 +652,7 @@ Exec_BIOS: PUSH IY
CP BIOS.Error.ATAPI.UnitAttention
SCF
RET NZ
SET 1,(IY + LOGDRV.RemovableMedia)
SET 1,(IY + LOGDRV.MediaParameters)
RET
@ -686,7 +703,7 @@ DEFINE_PARTITIONS:
LD (IX + LOGDRV.SECTOR_SIZE),C
LD (IX + LOGDRV.SECTOR_SIZE + 1),B
LD A,(CURRENT_DRIVE.Removable)
LD (IX + LOGDRV.RemovableMedia),A
LD (IX + LOGDRV.MediaParameters),A
;[x] 17.12.2023 § £à㧪  á  ªâ¨¢­®£® à §¤¥« ,   ­¥ á ¯¥à¢®£®
.ExtendedPartitionFlag+1:
LD A,0
@ -743,7 +760,7 @@ DEFINE_PARTITIONS:
;BPB SECTOR ;!TODO ¥á«¨ CD-ROM, â® ¤à㣮© ­®¬¥à ᥪâ®à 
LD IX,(LOGDRV_OFFSET)
LD A,(CURRENT_DRIVE.Removable)
LD (IX + LOGDRV.RemovableMedia),A
LD (IX + LOGDRV.MediaParameters),A
XOR A
LD (IX + LOGDRV.SECTOR_OFFSET + 0),A
LD (IX + LOGDRV.SECTOR_OFFSET + 1),A

@ -1 +1 @@
Subproject commit 171e4791a80462627c5876e095a042dc3e3b9eac
Subproject commit b3224fc3afac71c6b1d461ff54049e58657bbe5a