-bug fdd-drv.asm: не будет читать сектор больше DSS_MAX_SECTOR_SIZE.

-bug OPENDSK: обработка ошибки после Dss.DRV.MediaCheck
This commit is contained in:
Tolik 2025-04-15 04:36:35 +10:00
parent cc65c4ba24
commit a51e56090b
6 changed files with 23 additions and 10 deletions

View File

@ -192,6 +192,7 @@ OPENDSK: ;!TEST DRV.Open
RST ToDSS.DRV
POP BC
JR Z,.exit
JR C,.error
JR .skip_open ;!FIXIT ª®£¤  DRV.MediaCheck ¨ DRV.Open ¡ã¤ã⠮⫨ç âìáï
;
.open: LD A,B

View File

@ -1 +1 @@
29
30

View File

@ -182,7 +182,6 @@ MAKEDVC: LD C,A
RET
;!FIXIT ¯®¯¥à¥¤¥«ë¢ âì âã⠢맮¢ë ç¥à¥§ â®çª¨ ¢å®¤  ⨯  RST ¨«¨ ¢ë§®¢ë ⨯  LD C,0 : CALL HDDRIVE ­  ¯àï¬ë¥
;-------------------------------------------------
; RST 18h. ‚¥ªâ®à ¤¨áª®¢ëå ãáâனáâ¢
; ¢å®¤: a=­®¬¥à ãáâனá⢠ (0-25)

View File

@ -620,6 +620,7 @@ MediaCheck: PUSH IY
;
CP DSS_Error.sys.UNKNOWN_FORMAT
JR NZ,.exit
; A != 0
AND A ; á¡à®á ZF
SCF
; [ ] media changed
@ -669,9 +670,6 @@ MediaCheck: PUSH IY
CHECK_IDE_SECTOR_SIZE: ;RET
LD E,(IY+LOGDRV.SECTOR_SIZE)
LD D,(IY+LOGDRV.SECTOR_SIZE+1)
; LD HL,DSS_MAX_SECTOR_SIZE
; AND A
; SBC HL,DE
PUSH HL
LD HL,-DSS_MAX_SECTOR_SIZE - 1
ADD HL,DE

View File

@ -178,8 +178,21 @@ Init: LD A,2 ;
; ; ;
;
Open: LD C,BIOS.DRV_RESET
Open: PUSH AF
LD C,BIOS.DRV_RESET
RST ToBIOS
POP BC
RET C
;
LD A,B
LD C,BIOS.DRV_GET_PAR
RST ToBIOS
LD DE,-DSS_MAX_SECTOR_SIZE - 1 ; [ ] 15/04/25 ­¥ ¡ã¤¥â ç¨â âì ᥪâ®à ¡®«ìè¥ DSS_MAX_SECTOR_SIZE
; ZF = 0
LD A,DSS_Error.sys.UNKNOWN_FORMAT
OR A
;
ADD IX,DE ; ¥á«¨ à §¬¥à ᥪâ®à  ¡®«ìè¥, â® ®¡«®¬
RET
; ; ;
@ -190,7 +203,9 @@ Close: XOR A
;!FIXIT ¯à®¢¥àïâì ƒ93 ª®£¤  íâ® áâ ­¥â ¢®§¬®¦­ë¬
MediaCheck: IF NON_REMOVABLE_FDD
MediaCheck: CALL Open
RET C
IF NON_REMOVABLE_FDD
XOR A
ELSE
LD A,#FF
@ -234,13 +249,13 @@ GetBPB: LD IX,0
; RET
; ; ;
;
; !FIXIT ¬®¦¥â 㬥à¥âì ­  à §¬¥à¥ ᥪâ®à  ¡®«ìè¥ 512 ¡ ©â®¢
Read: LD C,BIOS.DRV_READ
RST ToBIOS
RET
; ; ;
;
; !FIXIT ¬®¦¥â 㬥à¥âì ­  à §¬¥à¥ ᥪâ®à  ¡®«ìè¥ 512 ¡ ©â®¢
Write: LD C,BIOS.DRV_WRITE
RST ToBIOS
RET

@ -1 +1 @@
Subproject commit a9f5915a3275f5ffbafa0994bb97c5846aab826c
Subproject commit bd4546a854905998edab6144547b79aa673404f6