Убран баг второго канала 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
.saveDRV+1: LD A,0
LD B,1
LD C,Dss.BootDSK
LD BC,1*256 + Dss.BootDSK
RST #10
EI

View File

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

View File

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