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 LD A,C
OUT (SLOT3),A OUT (SLOT3),A
JR Z,.NO_HARDS JR Z,.NO_HARDS
LD C,#80 ;!HARDCODE - ID ATA ¤«ï ¯à®æ¥¤ãàë BIOS.DRV_DETECT LD C,DRIVE_CODES.SPRINTER.ATA
CALL .NX_DVCI CALL .NX_DVCI
; ;
@ -255,7 +255,7 @@ INIT_H: PUSH IY
JR Z,.skip_atapi JR Z,.skip_atapi
; ;
LD B,A LD B,A
LD C,#C0 ;!HARDCODE - ID ATAPI ¤«ï ¯à®æ¥¤ãàë BIOS.DRV_DETECT LD C,DRIVE_CODES.SPRINTER.ATAPI
CALL .NX_DVCI CALL .NX_DVCI
; ;
.skip_atapi: POP IY .skip_atapi: POP IY
@ -588,11 +588,38 @@ DEFINE_PARTITIONS:
; ;
CP PartitionSysTypes.Win_Ext_LBA CP PartitionSysTypes.Win_Ext_LBA
JR Z,.SubLevel JR Z,.SubLevel
JR .NextPartition ; à §¤¥« ­¥ ¯®¤¤¥à¦¨¢ ¥âáï JP .NextPartition ; à §¤¥« ­¥ ¯®¤¤¥à¦¨¢ ¥âáï
;
.ATAPI_TST: ;!FIXIT CDFS .ATAPI_TST: ;JR .check_atapi ;!FIXIT CDFS
;SCF
;RET
.check_atapi: LD A,(DRV_NUM)
AND #F0
CP DRIVE_CODES.SPRINTER.ATAPI
SCF 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 .BEGIN: ;CP IDE.Device.HDD
;RET NZ ;RET NZ
@ -604,6 +631,9 @@ DEFINE_PARTITIONS:
POP AF POP AF
OUT (SLOT3),A OUT (SLOT3),A
RET RET
;
;
.Start: LD IX,0 .Start: LD IX,0
LD DE,0 LD DE,0
LD (EXTDOSL),DE ;R01 LD (EXTDOSL),DE ;R01
@ -612,9 +642,9 @@ DEFINE_PARTITIONS:
.LOOP: LD (CURRENT_SECTOR_L),DE .LOOP: LD (CURRENT_SECTOR_L),DE
LD (CURRENT_SECTOR_H),IX LD (CURRENT_SECTOR_H),IX
CALL .LOAD_SECTOR 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 LD DE,#AA55
AND A AND A
SBC HL,DE SBC HL,DE
@ -638,7 +668,7 @@ DEFINE_PARTITIONS:
CP PartitionSysTypes.Extended CP PartitionSysTypes.Extended
JR Z,.SubLevel JR Z,.SubLevel
CP PartitionSysTypes.Win_Ext_LBA CP PartitionSysTypes.Win_Ext_LBA
JR NZ,.NotExtended JP NZ,.NotExtended
; ;
.SubLevel: PUSH IY .SubLevel: PUSH IY
LD DE,(CURRENT_SECTOR_L) LD DE,(CURRENT_SECTOR_L)

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