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

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