removed #55aa for GenIOCTL

new subfunction GetMoreParams for GenIOCTL
This commit is contained in:
Tolik 2026-03-27 01:04:22 +10:00 committed by Tolik Trek
parent 165efe603c
commit 1e52904d97
12 changed files with 64 additions and 32 deletions

View File

@ -499,7 +499,7 @@ write_to_BPB: PUSH BC
; ;
write_no_BPB: ld a,(disk) ; ­®¬¥à § ¤ ­­®£® ¤¨áª  write_no_BPB: ld a,(disk) ; ­®¬¥à § ¤ ­­®£® ¤¨áª 
ld de,Dss.DRV.GenIOCTL.Enter ;ld de,Dss.DRV.GenIOCTL.Enter
ld bc,Dss.DRV.GenIOCTL.GetParams ld bc,Dss.DRV.GenIOCTL.GetParams
rst ToDSS.DRV rst ToDSS.DRV
ex af,af' ex af,af'

View File

@ -31,7 +31,7 @@ BOOTDSK:
; ;
.loop: PUSH BC .loop: PUSH BC
LD A,C LD A,C
LD DE,Dss.DRV.GenIOCTL.Enter ;LD DE,Dss.DRV.GenIOCTL.Enter
LD BC,Dss.DRV.GenIOCTL.GetParams LD BC,Dss.DRV.GenIOCTL.GetParams
RST ToDSS.DRV RST ToDSS.DRV
;[x] 17.12.2023 § £à㧪  á  ªâ¨¢­®£® à §¤¥« ,   ­¥ á ¯¥à¢®£® ;[x] 17.12.2023 § £à㧪  á  ªâ¨¢­®£® à §¤¥« ,   ­¥ á ¯¥à¢®£®

View File

@ -94,7 +94,7 @@ DISKINF: LD C,B
POP AF POP AF
PUSH DE PUSH DE
;LD A,XH ;LD A,XH
LD DE,Dss.DRV.GenIOCTL.Enter ;LD DE,Dss.DRV.GenIOCTL.Enter
LD BC,Dss.DRV.GenIOCTL.GetParams LD BC,Dss.DRV.GenIOCTL.GetParams
RST ToDSS.DRV RST ToDSS.DRV
POP DE POP DE

View File

@ -102,16 +102,19 @@
; ‚•Ž„: L - «®£¨ç¥áª¨© ­®¬¥à ¢ â ¡«¨æ¥ ; ‚•Ž„: L - «®£¨ç¥áª¨© ­®¬¥à ¢ â ¡«¨æ¥
; ‚›•Ž„: IY - ­ ç «® § ¯¨á¨ ; ‚›•Ž„: IY - ­ ç «® § ¯¨á¨
; <20>Ž<EFBFBD>ˆ: HL, DE, IY. ; <20>Ž<EFBFBD>ˆ: HL, DE, IY.
MACRO LOGDRV_ENTRY_FIND tbl_addr MACRO LOGDRV_ENTRY
LD H,0 LD H,0
ADD HL,HL ADD HL,HL
ADD HL,HL ADD HL,HL
ADD HL,HL ADD HL,HL
ADD HL,HL ADD HL,HL
EX DE,HL EX DE,HL
LD IY,tbl_addr
ADD IY,DE ADD IY,DE
ENDM ENDM
MACRO LOGDRV_ENTRY_FIND tbl_addr
LD IY,tbl_addr
LOGDRV_ENTRY
ENDM
; ;
; ;

View File

@ -1 +1 @@
62 63

View File

@ -328,7 +328,11 @@ RAM_DRV:
;-----[] ;-----[]
HARD_DRV: HARD_DRV:
LD L,B LD L,B
LOGDRV_ENTRY_FIND OLD_TABLES.LOGDRV ;
;LOGDRV_ENTRY_FIND OLD_TABLES.LOGDRV
LD IY,OLD_TABLES.LOGDRV
CALL GET_LOGDRV_ENTRY
;
LD IX,LOGDRV LD IX,LOGDRV
LD DE,LOGDRV.TBL_Entry LD DE,LOGDRV.TBL_Entry
LD B,DSS_MAX_DRIVES_AMOUNT LD B,DSS_MAX_DRIVES_AMOUNT

View File

@ -182,6 +182,13 @@ MAKEDVC: LD C,A
RET RET
;-------------------------------------------------
GET_LOGDRV_ENTRY:
LOGDRV_ENTRY
RET
;-------------------------------------------------
;------------------------------------------------- ;-------------------------------------------------
; RST 18h. ‚¥ªâ®à ¤¨áª®¢ëå ãáâனá⢠; RST 18h. ‚¥ªâ®à ¤¨áª®¢ëå ãáâனáâ¢
; ¢å®¤: a=­®¬¥à ãáâனá⢠ (0-25) ; ¢å®¤: a=­®¬¥à ãáâனá⢠ (0-25)

View File

@ -342,10 +342,24 @@ SelectDrive: PUSH DE
RET RET
GetMoreParams: PUSH IX
PUSH IY
LD L,A
LD IY,LOGDRV
CALL @GET_LOGDRV_ENTRY
LD H,(IY + LOGDRV.SECTOR_OFFSET + 3)
LD L,(IY + LOGDRV.SECTOR_OFFSET + 2)
LD D,(IY + LOGDRV.SECTOR_OFFSET + 1)
LD E,(IY + LOGDRV.SECTOR_OFFSET + 0)
POP IY
POP IX
RET
; 00 - GET DEVICE PARAMETERS ; 00 - GET DEVICE PARAMETERS
; 01 - READ TRACK ; 01 - READ TRACK
; 02 - TEST TRACK ; 02 - TEST TRACK
; 03 - GET MORE DEVICE PARAMETERS
; 80 - SET DEVICE PARAMETERS ; 80 - SET DEVICE PARAMETERS
; 81 - WRITE TRACK ; 81 - WRITE TRACK
; 82 - FORMAT TRACK ; 82 - FORMAT TRACK
@ -358,6 +372,8 @@ GenIOCTL: BIT 7,B
JR Z,.error ;ReadTrack JR Z,.error ;ReadTrack
DEC B DEC B
JR Z,TestTRK JR Z,TestTRK
DEC B
JR Z,GetMoreParams
LD A,BIOS.Error.InvalidSubFunction LD A,BIOS.Error.InvalidSubFunction
SCF SCF
RET RET
@ -412,19 +428,21 @@ TestTRK: LD C,BIOS.DRV_VERIFY
; 32 - 4096 bytes ; 32 - 4096 bytes
; 64 - 8192 bytes ; 64 - 8192 bytes
; 128 - 16384 bytes ; 128 - 16384 bytes
GetParams: EX DE,HL GetParams: ;EX DE,HL
LD BC,#55AA ;LD BC,Dss.DRV.GenIOCTL.Enter
AND A ;AND A
SBC HL,BC ;SBC HL,BC
LD L,A LD L,A
LD A,BIOS.Error.Failure ;LD A,BIOS.Error.Failure
SCF ;SCF
RET NZ ;RET NZ
; ;
PUSH IX PUSH IX
PUSH IY PUSH IY
; ;
LOGDRV_ENTRY_FIND LOGDRV ;LOGDRV_ENTRY_FIND LOGDRV
LD IY,LOGDRV
CALL GET_LOGDRV_ENTRY
; ;
LD A,(IY + LOGDRV.PHISICAL_DRV_NUMBER) ;MASTER/SLAVE PHISICAL DRIVE NUMBER #80/#81/... LD A,(IY + LOGDRV.PHISICAL_DRV_NUMBER) ;MASTER/SLAVE PHISICAL DRIVE NUMBER #80/#81/...
PUSH IY PUSH IY

View File

@ -343,15 +343,15 @@ GenIOCTL: BIT 7,B
; D5 - "1" RESERVED ; D5 - "1" RESERVED
; D4 - DEVICE MASTER/SLAVE ; D4 - DEVICE MASTER/SLAVE
; D1..D3 - "0" RESERVED (MAY BE OTHER) ; D1..D3 - "0" RESERVED (MAY BE OTHER)
.GetParams: EX DE,HL .GetParams: ;EX DE,HL
LD BC,#55AA ;LD BC,Dss.DRV.GenIOCTL.Enter
AND #0F AND #0F
SBC HL,BC ;SBC HL,BC
JR Z,.next ;JR Z,.next
; ;
LD A,BIOS.Error.Failure ;LD A,BIOS.Error.Failure
SCF ;SCF
RET ;RET
; ;
.next: PUSH AF .next: PUSH AF
PUSH IY PUSH IY

View File

@ -462,14 +462,14 @@ 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
.RGETPRM: EX DE,HL .RGETPRM: ;EX DE,HL
LD BC,#55AA ;LD BC,Dss.DRV.GenIOCTL.Enter
AND A ;AND A
SBC HL,BC ;SBC HL,BC
LD L,A LD L,A
LD A,BIOS.Error.Failure ;LD A,BIOS.Error.Failure
SCF ;SCF
RET NZ ;RET NZ
; ;
EX AF,AF' EX AF,AF'
LD A,L LD A,L

View File

@ -97,7 +97,7 @@ cmd_info: CALL Get_Path
CP "C" - "A" CP "C" - "A"
JR C,.ItIsFDD JR C,.ItIsFDD
; ;
LD DE,Dss.DRV.GenIOCTL.Enter ;LD DE,Dss.DRV.GenIOCTL.Enter
LD BC,Dss.DRV.GenIOCTL.GetParams LD BC,Dss.DRV.GenIOCTL.GetParams
RST ToDSS.DRV RST ToDSS.DRV
JR C,.noMedia JR C,.noMedia

@ -1 +1 @@
Subproject commit 467265101452bce67322e4b77cc0878044859eaa Subproject commit c020ce3b569f171558e159af931aca3a0fdb78bf