fdd-drv.asm подредактирован под новый биос

This commit is contained in:
Tolik 2026-01-26 01:03:59 +10:00
parent 80c9137f8f
commit 39c2d239aa
2 changed files with 35 additions and 24 deletions

View File

@ -178,11 +178,12 @@ Init: LD A,2 ;
; ; ; ; ; ;
; ;
Open: PUSH AF Open: PUSH IY
PUSH AF
LD C,BIOS.DRV_RESET LD C,BIOS.DRV_RESET
RST ToBIOS RST ToBIOS
POP BC POP BC
RET C JR C,.error
; ;
LD A,B LD A,B
LD C,BIOS.DRV_GET_PAR LD C,BIOS.DRV_GET_PAR
@ -193,6 +194,7 @@ Open: PUSH AF
OR A ; 㡨ࠥ¬ ZF, ¥á«¨ ¥áâì OR A ; 㡨ࠥ¬ ZF, ¥á«¨ ¥áâì
; ;
ADD IX,DE ; ¥á«¨ à §¬¥à ᥪâ®à  ¡®«ìè¥, â® ®¡«®¬ ADD IX,DE ; ¥á«¨ à §¬¥à ᥪâ®à  ¡®«ìè¥, â® ®¡«®¬
.error: POP IY
RET RET
; ; ; ; ; ;
@ -216,7 +218,12 @@ MediaCheck: CALL Open
;DE - ADDRESS ;DE - ADDRESS
GetBPB: LD IX,0 GetBPB: PUSH IY
CALL .Start
POP IY
RET
;
.Start: LD IX,0
; fix bug 14/01/2026. ¥á«¨ ­¥â MBR, â® ­¨ª ª¨å ¬ã⮪ ; fix bug 14/01/2026. ¥á«¨ ­¥â MBR, â® ­¨ª ª¨å ¬ã⮪
LD H,D LD H,D
LD L,E LD L,E
@ -252,18 +259,10 @@ GetBPB: LD IX,0
LD A,D LD A,D
LD C,BIOS.DRV_GET_PAR LD C,BIOS.DRV_GET_PAR
RST ToBIOS RST ToBIOS
; !TEST
;LD A,H ; A heads
;POP HL ; H - drive, L - Sectors Per Track
;PUSH HL
;LD H,A ; H - heads, L - Sectors Per Track
;POP AF ; A - drive
;
LD C,H ; C heads LD C,H ; C heads
POP HL ; H - drive, L - Sectors Per Track POP HL ; H - drive, L - Sectors Per Track
LD A,H ; A - drive LD A,H ; A - drive
LD H,C ; H - heads, L - Sectors Per Track LD H,C ; H - heads, L - Sectors Per Track
;
LD C,BIOS.DRV_SET_PAR LD C,BIOS.DRV_SET_PAR
RST ToBIOS RST ToBIOS
XOR A XOR A
@ -277,14 +276,18 @@ GetBPB: LD IX,0
; ; ; ; ; ;
Read: LD C,BIOS.DRV_READ Read: PUSH IY
LD C,BIOS.DRV_READ
RST ToBIOS RST ToBIOS
POP IY
RET RET
; ; ; ; ; ;
Write: LD C,BIOS.DRV_WRITE Write: PUSH IY
LD C,BIOS.DRV_WRITE
RST ToBIOS RST ToBIOS
POP IY
RET RET
; ; ; ; ; ;
@ -351,21 +354,23 @@ GenIOCTL: BIT 7,B
RET RET
; ;
.next: PUSH AF .next: PUSH AF
PUSH IY
LD C,BIOS.DRV_GET_PAR LD C,BIOS.DRV_GET_PAR
RST ToBIOS RST ToBIOS
POP IY
JR C,.NONE_FDD JR C,.NONE_FDD
;
PUSH HL PUSH HL
PUSH DE PUSH DE
LD A,H LD A,H
LD C,L LD C,L
LD HL,0 LD HL,0
LD B,H LD B,H
;
.mull_loop1: ADD HL,BC .mull_loop1: ADD HL,BC
DEC A DEC A
JR NZ,.mull_loop1 JR NZ,.mull_loop1
; ;
; HL - SECTOR PER CYLLINDER ; HL - SECTORS PER CYLINDER
; A=0 ZF=0 CF=0 ; A=0 ZF=0 CF=0
LD B,H LD B,H
LD C,L LD C,L
@ -422,7 +427,12 @@ GenIOCTL: BIT 7,B
; D5 - "1" RESERVED ; D5 - "1" RESERVED
; D6 - ADDRESSING MODE LBA/CHS ; D6 - ADDRESSING MODE LBA/CHS
; D7 - "1" RESERVED ; D7 - "1" RESERVED
.SetParams: PUSH AF .SetParams: PUSH IY
CALL .Start
POP IY
RET
;
.Start: PUSH AF
EXX EXX
EX DE,HL EX DE,HL
LD H,L LD H,L
@ -439,7 +449,8 @@ GenIOCTL: BIT 7,B
JR C,.NONE_FDD JR C,.NONE_FDD
POP AF POP AF
LD C,BIOS.DRV_SET_PAR LD C,BIOS.DRV_SET_PAR
JP ToBIOS RST ToBIOS
RET
; ; ; ; ; ;

@ -1 +1 @@
Subproject commit 2fec6202f716cfa3ed48fb9bfd79d1081cc2721b Subproject commit 467265101452bce67322e4b77cc0878044859eaa