Убран баг второго канала IDE

This commit is contained in:
Anatoliy Belyanskiy 2023-07-05 02:43:28 +10:00
parent 4fc3220d28
commit 305a557e34
3 changed files with 43 additions and 41 deletions

View File

@ -283,8 +283,7 @@ F_START:
;R05 ;R05
.saveDRV+1: LD A,0 .saveDRV+1: LD A,0
LD B,1 LD BC,1*256 + Dss.BootDSK
LD C,Dss.BootDSK
RST #10 RST #10
EI EI

View File

@ -197,14 +197,17 @@ RESR_H LD A,DSS_Error.drv.INVALID_COMMAND
INIT_H PUSH IY INIT_H PUSH IY
LD HL,LOGDRV LD HL,LOGDRV
LD (OFFSECT),HL LD (OFFSECT),HL
LD IX,DEVICE_CFG LD IX,DEVICE_CFG ;!TODO ᤥ« âì RAMDRIVE âãâ ¢ DEVICE_CFG ?
LD C,#5F LD C,BIOS.DRV_LIST
RST ToBIOS RST ToBIOS
XOR A XOR A
LD B,(IX+2) ;HDD ;!TEST
CP B ;LD B,(IX+2) ;HDD
;CP B
CP (IX+2)
JR Z,NO_HARDS JR Z,NO_HARDS
LD C,#80 LD BC,4*256 + #80 ;!HARDCODE 4 - ª®«¨ç¥á⢮ ¢¨­â®¢, 80 - ID ¢¨­â 
NX_DVCI PUSH BC NX_DVCI PUSH BC
LD A,C LD A,C
LD (DRV),A LD (DRV),A
@ -234,7 +237,7 @@ NX_DVCI PUSH BC
;R02 CALL YEP_DRV ;R02 CALL YEP_DRV
;R02 OUT (C),B ;R02 OUT (C),B
;R02 CALL NZ,PARTIT ;R02 CALL NZ,PARTIT
NO_HARDS NO_HARDS:
POP IY POP IY
LD HL,(OFFSECT) LD HL,(OFFSECT)
LD DE,LOGDRV LD DE,LOGDRV
@ -310,7 +313,7 @@ SPCLH_H EQU 6
; DB #FF ;SECTOR PER CYLINDER HIGH ;06 ; DB #FF ;SECTOR PER CYLINDER HIGH ;06
; DB #FF ;RESERVED ;07 ; DB #FF ;RESERVED ;07
LOGDRV DS 12*LD_DSK LOGDRV BLOCK 12*LD_DSK,0
;+00 BYTE MASTER/SLAVE PHISICAL DRIVE NUMBER #80/#81/... ;+00 BYTE MASTER/SLAVE PHISICAL DRIVE NUMBER #80/#81/...
;+01 LONG SECTOR OFFSET ;+01 LONG SECTOR OFFSET
;+05 LONG SIZE IN SECTORS ;+05 LONG SIZE IN SECTORS
@ -624,6 +627,9 @@ PARTIT1 LD IX,0
PARTIT2 LD (CURSECL),DE PARTIT2 LD (CURSECL),DE
LD (CURSECH),IX LD (CURSECH),IX
CALL LOADSEC CALL LOADSEC
;!TEST
RET C ;FOR IDE2..3
;
LD HL,(PART+510) LD HL,(PART+510)
LD DE,#AA55 LD DE,#AA55
AND A AND A

View File

@ -189,8 +189,7 @@
; 13 (0Dh) - RESERVED ; 13 (0Dh) - RESERVED
; MACRO _mGET_RAMDRV_NUM ; MACRO CALL GET_RAMDRV_NUM
; PUSH BC
; LD BC,RAMDTBL ; LD BC,RAMDTBL
; SLA A ; SLA A
; ADD A,C ; ADD A,C
@ -200,23 +199,9 @@
; LD B,A ; LD B,A
; INC BC ; INC BC
; LD A,(BC) ; LD A,(BC)
; OR #60 ; OR #60 ;!HARDCODE ᤥ« âì ­®¬¥à  à §­ëå ãáâனá⢠ç¥à¥§ ¬¥âª¨
; POP BC
; ENDM ; ENDM
MACRO _mGET_RAMDRV_NUM
LD BC,RAMDTBL
SLA A
ADD A,C
LD C,A
LD A,0
ADC A,B
LD B,A
INC BC
LD A,(BC)
OR #60 ;!HARDCODE ᤼Ť âě ­ŽŹĽŕ  ŕ §­ëĺ ăáâனá⢠çĽŕĽ§ ŹĽâŞ¨
ENDM
; parser ; parser
RMDRIVE: RMDRIVE:
@ -273,7 +258,7 @@ GBPB_RD LD IX,0
; A - DRIVE ; A - DRIVE
READ_RD: READ_RD:
PUSH BC PUSH BC
_mGET_RAMDRV_NUM CALL GET_RAMDRV_NUM
POP BC POP BC
LD C,BIOS.DRV_READ LD C,BIOS.DRV_READ
JP ToBIOS JP ToBIOS
@ -282,7 +267,7 @@ READ_RD:
; RET ; RET
LREAD_RD: LREAD_RD:
PUSH BC PUSH BC
_mGET_RAMDRV_NUM CALL GET_RAMDRV_NUM
POP BC POP BC
LD C,BIOS.DRV_READ_LONG LD C,BIOS.DRV_READ_LONG
JP ToBIOS JP ToBIOS
@ -297,7 +282,7 @@ LREAD_RD:
; A - DRIVE ; A - DRIVE
WRITE_RD: WRITE_RD:
PUSH BC PUSH BC
_mGET_RAMDRV_NUM CALL GET_RAMDRV_NUM
POP BC POP BC
LD C,BIOS.DRV_WRITE LD C,BIOS.DRV_WRITE
JP ToBIOS JP ToBIOS
@ -307,7 +292,7 @@ WRITE_RD:
LWRITE_RD: LWRITE_RD:
PUSH BC PUSH BC
_mGET_RAMDRV_NUM CALL GET_RAMDRV_NUM
POP BC POP BC
LD C,BIOS.DRV_WRITE_LONG LD C,BIOS.DRV_WRITE_LONG
JP ToBIOS JP ToBIOS
@ -428,7 +413,7 @@ IOCTL_RD:
EX AF,AF' EX AF,AF'
LD A,L LD A,L
_mGET_RAMDRV_NUM CALL GET_RAMDRV_NUM
PUSH AF PUSH AF
PUSH AF PUSH AF
EX AF,AF' EX AF,AF'
@ -473,5 +458,17 @@ IOCTL_RD:
; AND A ; AND A
; RET ; RET
GET_RAMDRV_NUM:
LD BC,RAMDTBL
SLA A
ADD A,C
LD C,A
LD A,0
ADC A,B
LD B,A
INC BC
LD A,(BC)
OR #60 ;!HARDCODE ᤥ« âì ­®¬¥à  à §­ëå ãáâனá⢠ç¥à¥§ ¬¥âª¨
RET
ENDDRVR EQU $ ENDDRVR EQU $
; ;