ATAPI устройство всегда получает букву, даже без носителя

This commit is contained in:
Tolik 2024-12-27 00:49:35 +10:00
parent 46b0cabbab
commit 883bbf0aeb
2 changed files with 41 additions and 11 deletions

View File

@ -247,7 +247,7 @@ INIT_H: PUSH IY
LD A,C
OUT (SLOT3),A
JR Z,.NO_HARDS
LD C,#80 ;!HARDCODE - ID ATA ¤«ï ¯à®æ¥¤ãàë BIOS.DRV_DETECT
LD C,DRIVE_CODES.SPRINTER.ATA
CALL .NX_DVCI
;
@ -255,7 +255,7 @@ INIT_H: PUSH IY
JR Z,.skip_atapi
;
LD B,A
LD C,#C0 ;!HARDCODE - ID ATAPI ¤«ï ¯à®æ¥¤ãàë BIOS.DRV_DETECT
LD C,DRIVE_CODES.SPRINTER.ATAPI
CALL .NX_DVCI
;
.skip_atapi: POP IY
@ -588,11 +588,38 @@ DEFINE_PARTITIONS:
;
CP PartitionSysTypes.Win_Ext_LBA
JR Z,.SubLevel
JR .NextPartition ; à §¤¥« ­¥ ¯®¤¤¥à¦¨¢ ¥âáï
.ATAPI_TST: ;!FIXIT CDFS
JP .NextPartition ; à §¤¥« ­¥ ¯®¤¤¥à¦¨¢ ¥âáï
;
.ATAPI_TST: ;JR .check_atapi ;!FIXIT CDFS
;SCF
;RET
.check_atapi: LD A,(DRV_NUM)
AND #F0
CP DRIVE_CODES.SPRINTER.ATAPI
SCF
RET
RET NZ
;
; No Media
XOR A
;BPB SECTOR
LD IX,(OFFSECT)
LD (IX + LOGDRV.SECTOR_OFFSET + 0),A
LD (IX + LOGDRV.SECTOR_OFFSET + 1),A
LD (IX + LOGDRV.SECTOR_OFFSET + 2),A
LD (IX + LOGDRV.SECTOR_OFFSET + 3),A
;SIZE DISK
LD (IX + LOGDRV.SIZE_IN_SECTORS + 0),A
LD (IX + LOGDRV.SIZE_IN_SECTORS + 1),A
LD (IX + LOGDRV.SIZE_IN_SECTORS + 2),A
LD (IX + LOGDRV.SIZE_IN_SECTORS + 3),A
; ¤«ï ¯à ¢¨«ì­®£® ¢ë室  ¨§ ¯ àá¥à  à §¤¥«®¢
LD B,1
PUSH BC
;§ £à㧪  á  ªâ¨¢­®£® à §¤¥« ,   ­¥ á ¯¥à¢®£®
DEC A
JR .not_supported
;
.BEGIN: ;CP IDE.Device.HDD
;RET NZ
@ -603,7 +630,10 @@ DEFINE_PARTITIONS:
CALL .Start
POP AF
OUT (SLOT3),A
RET
RET
;
;
.Start: LD IX,0
LD DE,0
LD (EXTDOSL),DE ;R01
@ -612,9 +642,9 @@ DEFINE_PARTITIONS:
.LOOP: LD (CURRENT_SECTOR_L),DE
LD (CURRENT_SECTOR_H),IX
CALL .LOAD_SECTOR
RET C
JR C,.check_atapi
;
LD HL,(PARTITION_BUFFER.MBR_SIGNATURE)
.check_sign: LD HL,(PARTITION_BUFFER.MBR_SIGNATURE)
LD DE,#AA55
AND A
SBC HL,DE
@ -638,7 +668,7 @@ DEFINE_PARTITIONS:
CP PartitionSysTypes.Extended
JR Z,.SubLevel
CP PartitionSysTypes.Win_Ext_LBA
JR NZ,.NotExtended
JP NZ,.NotExtended
;
.SubLevel: PUSH IY
LD DE,(CURRENT_SECTOR_L)

@ -1 +1 @@
Subproject commit ab51192affb0fbcb8cc9df8e463044e33613c35a
Subproject commit 6f28f9f83e4737733b76053891bd9be121aed186