not working

This commit is contained in:
Tolik 2025-01-04 02:20:10 +10:00
parent e90f1cafbf
commit 5c47eb30d6
8 changed files with 250 additions and 113 deletions

@ -1 +1 @@
Subproject commit d38cd7dd53426ef452cd4afd2a76f6a1e5a84848
Subproject commit 7ef1dd98b491068d5a9ded34f5ff51430b7fa7e7

View File

@ -521,7 +521,7 @@ TAB_5xFNS:
_mNoDrive_5xTable 1, 0
;-------------------------------------[]
;-------------------------------------------------------------[ HDD #8 ]
;-------------------------------------------------------------[ ATA #8 ]
;
DB low FN_RESERVED_5x
DB low HDD_5x_RESET
@ -546,24 +546,24 @@ TAB_5xFNS:
_mNoDrive_5xTable 3, 0
;-------------------------------------[]
;----------------------------------------------------------[ CDROM #C0 ]
;-----------------------------------------------------------[ ATAPI #C ]
;
DB low FN_RESERVED_5x
DB low CD_5x_RESET
DB low CD_5x_LONG_READ
DB low CD_5x_LONG_WRITE ; LONG_WRITE ; [ ] new
DB low CD_5x_LONG_WRITE ; [ ] new
DB low FN_ABSENT_5x ; VERIFY
DB low CD_5x_READ
DB low CD_5x_WRITE ; WRITE ; [ ] new
DB low CD_5x_WRITE ; [ ] new
DB low CD_5x_DETECT
DB low FN_ABSENT_5x ; GETMED
DB low CD_5x_GETMED ; [ ] new
DB low FN_ABSENT_5x ; SETMED
DB low DRV_VERSION
DB low FN_RESERVED_5x
DB low FN_RESERVED_5x
DB low FN_RESERVED_5x
DB low CD_5x_Extended
DB low CD_5x_Extended ;[ ] media changed? ;!TODO
DB low DRV_LIST
;---------------------------------------------------------------------[]
@ -624,7 +624,7 @@ TAB_5xFNS:
_mNoDrive_5xTable 1, 1
;-------------------------------------[]
;-------------------------------------------------------------[ HDD #8 ]
;-------------------------------------------------------------[ ATA #8 ]
;
DB high FN_RESERVED_5x
DB high HDD_5x_RESET
@ -649,7 +649,7 @@ TAB_5xFNS:
_mNoDrive_5xTable 3, 1
;-------------------------------------[]
;----------------------------------------------------------[ CDROM #C0 ]
;-----------------------------------------------------------[ ATAPI #C ]
;
DB high FN_RESERVED_5x
DB high CD_5x_RESET
@ -659,8 +659,8 @@ TAB_5xFNS:
DB high CD_5x_READ
DB high CD_5x_WRITE ; WRITE ; [ ] new
DB high CD_5x_DETECT
DB high FN_ABSENT_5x
DB high FN_ABSENT_5x
DB high CD_5x_GETMED
DB high FN_ABSENT_5x ; SETMED
DB high DRV_VERSION
DB high FN_RESERVED_5x

View File

@ -26,10 +26,10 @@
FDD_5x_GETMED:
;!TEST FDD 720/1440
IF FDD_NormalCount
LD IY,FDD_INI_TABLE.FDD_0
LD IY,FDD_INIT_TABLE.FDD_0
DEC A
JR C,.getParams
LD IY,FDD_INI_TABLE.FDD_1
LD IY,FDD_INIT_TABLE.FDD_1
.getParams:
ENDIF
IN A,(SLOT3)
@ -48,10 +48,10 @@ FDD_5x_GETMED:
LD XH,A
LD A,(IY+0) ;F144/720
ELSE
LD HL,(FDD_INI_TABLE.FDD_0.SECTORS)
LD DE,(FDD_INI_TABLE.FDD_0.CYLINDL)
LD IX,(FDD_INI_TABLE.FDD_0.BytesPerSector)
LD A,(FDD_INI_TABLE.FDD_0.F144)
LD HL,(FDD_INIT_TABLE.FDD_0.SECTORS)
LD DE,(FDD_INIT_TABLE.FDD_0.CYLINDL)
LD IX,(FDD_INIT_TABLE.FDD_0.BytesPerSector)
LD A,(FDD_INIT_TABLE.FDD_0.F144)
ENDIF
LD B,A
EX AF,AF'
@ -73,10 +73,10 @@ FDD_5x_GETMED:
;[]===========================================================[]
FDD_5x_SETMED: ;!TEST FDD 720/1440
IF FDD_NormalCount
LD IY,FDD_INI_TABLE.FDD_0
LD IY,FDD_INIT_TABLE.FDD_0
DEC A
JR C,.setParams
LD IY,FDD_INI_TABLE.FDD_1
LD IY,FDD_INIT_TABLE.FDD_1
ENDIF
;
.setParams: IN A,(SLOT3)
@ -98,10 +98,10 @@ FDD_5x_SETMED: ;!TEST FDD 720/1440
LD A,B
ELSE
LD A,B
LD (FDD_INI_TABLE.FDD_0.SECTORS),HL
LD (FDD_INI_TABLE.FDD_0.CYLINDL),DE
LD (FDD_INI_TABLE.FDD_0.BytesPerSector),IX
LD (FDD_INI_TABLE.FDD_0.F144),A
LD (FDD_INIT_TABLE.FDD_0.SECTORS),HL
LD (FDD_INIT_TABLE.FDD_0.CYLINDL),DE
LD (FDD_INIT_TABLE.FDD_0.BytesPerSector),IX
LD (FDD_INIT_TABLE.FDD_0.F144),A
ENDIF
;
EX AF,AF'
@ -218,9 +218,9 @@ FDD_5x_LONG_READ:
EX AF,AF'
LD A,SYS_PAGE
OUT (SLOT3),A
LD IY,(FDD_INI_TABLE.FDD_0.BytesPerSector)
LD IY,(FDD_INIT_TABLE.FDD_0.BytesPerSector)
LD XH,C
LD A,(FDD_INI_TABLE.FDD_0.SECTORS)
LD A,(FDD_INIT_TABLE.FDD_0.SECTORS)
LD C,A
EX AF,AF'
OUT (SLOT3),A
@ -363,9 +363,9 @@ FDD_5x_LONG_WRITE:
EX AF,AF'
LD A,SYS_PAGE
OUT (SLOT3),A
LD IY,(FDD_INI_TABLE.FDD_0.BytesPerSector)
LD IY,(FDD_INIT_TABLE.FDD_0.BytesPerSector)
LD XH,C
LD A,(FDD_INI_TABLE.FDD_0.SECTORS)
LD A,(FDD_INIT_TABLE.FDD_0.SECTORS)
LD C,A
EX AF,AF'
OUT (SLOT3),A
@ -615,10 +615,10 @@ S_FDD: PUSH BC
EX AF,AF'
LD A,SYS_PAGE
OUT (SLOT3),A
LD A,(FDD_INI_TABLE.FDD_0.DISK)
LD A,(FDD_INIT_TABLE.FDD_0.DISK)
AND #FE
OR B
LD (FDD_INI_TABLE.FDD_0.DISK),A
LD (FDD_INIT_TABLE.FDD_0.DISK),A
EX AF,AF'
OUT (SLOT3),A
POP BC
@ -644,9 +644,9 @@ CHANGE_SPEED: IN A,(SLOT3)
EX AF,AF'
LD A,SYS_PAGE
OUT (SLOT3),A
LD A,(FDD_INI_TABLE.FDD_0.F144)
LD A,(FDD_INIT_TABLE.FDD_0.F144)
XOR #80
LD (FDD_INI_TABLE.FDD_0.F144),A
LD (FDD_INIT_TABLE.FDD_0.F144),A
AND #80
EX AF,AF'
OUT (SLOT3),A
@ -662,7 +662,7 @@ SET_SPEED: IN A,(SLOT3)
EX AF,AF'
LD A,SYS_PAGE
OUT (SLOT3),A
LD A,(FDD_INI_TABLE.FDD_0.F144)
LD A,(FDD_INIT_TABLE.FDD_0.F144)
AND #80
EX AF,AF'
OUT (SLOT3),A
@ -698,7 +698,7 @@ DISK_ID: EXX
EX AF,AF'
LD A,SYS_PAGE
OUT (SLOT3),A
LD A,(FDD_INI_TABLE.FDD_0.F144)
LD A,(FDD_INIT_TABLE.FDD_0.F144)
EX AF,AF'
OUT (SLOT3),A
EX AF,AF'
@ -724,7 +724,7 @@ SEEK: LD XL,A
EX AF,AF'
LD A,SYS_PAGE
OUT (SLOT3),A
LD A,(FDD_INI_TABLE.FDD_0.DISK)
LD A,(FDD_INIT_TABLE.FDD_0.DISK)
AND 1
EX AF,AF'
OUT (SLOT3),A
@ -800,7 +800,7 @@ NTRACK:
EX AF,AF'
LD A,SYS_PAGE
OUT (SLOT3),A
LD A,(FDD_INI_TABLE.FDD_0.SECTORS)
LD A,(FDD_INIT_TABLE.FDD_0.SECTORS)
LD C,A
LD B,0
EX AF,AF'

View File

@ -21,12 +21,14 @@ RAM_ATAPI_RW_CMD EQU SYS_PAGE.SHARED_BUFFER_32b+16
ASSERT ((PACKET_SIZE % 4) = 0), "PACKET_SIZE must be an even number"
;[]================================================================[#51]
;!FIXIT ᤥ« âì ­ áâ®ï騩 à¥á¥â
CD_5x_RESET: LD C,IDE.Device.ATAPI
CALL SELECT_DRIVE
RET C
LD B,50
.loop: PUSH BC
CALL CD_TEST
;!FIXIT ;[ ] sector size. ᤥ« âì २­¨â HDD_INIT_TABLE
POP BC
RET NC
EI
@ -36,6 +38,44 @@ CD_5x_RESET: LD C,IDE.Device.ATAPI
;[]================================================================[#51]
;[]================================================================[#58]
;Function: Get Current Media Parameters
; A - Disk
;Return:
; H - Heads
; L - Sectors per cylinder
; DE - Cylinders
; IX - Capacity sector in bytes
; B - Flags: MASTER/SLAVE, LBA/CHS
CD_5x_GETMED:
LD C,IDE.Device.ATAPI
CALL SELECT_DRIVE
RET C
; [ ] sector size. media changed
;
IN A,(SLOT3)
EX AF,AF'
LD A,SYS_PAGE
OUT (SLOT3),A
LD HL,0
LD D,H
LD L,H
; LD L,(IY+IDE.HDD_INIT_TABLE.SectorsPerTrack)
; LD H,(IY+IDE.HDD_INIT_TABLE.HeadsNumber)
; LD E,(IY+IDE.HDD_INIT_TABLE.CylinderNumberLow)
; LD D,(IY+IDE.HDD_INIT_TABLE.CylinderNumberHigh)
LD B,(IY+IDE.HDD_INIT_TABLE.DRV_Flags)
LD A,(IY+IDE.HDD_INIT_TABLE.SectorSize) ;[ ]sector size
LD XL,A
LD A,(IY+IDE.HDD_INIT_TABLE.SectorSize + 1) ;[ ]sector size
LD XH,A
EX AF,AF'
OUT (SLOT3),A
;AND A
RET
;[]================================================================[#58]
;!TODO
; atapi.pdf áâà. 24 § ¯¨áì/ç⥭¨¥ ¬®£ãâ ¡ëâì ¬ ªá¨¬ «ì­ë¬¨ ¡«®ª ¬¨ ¢ ­¥áª®«ìª® § å®¤®¢
;[]================================================================[#55]
@ -54,7 +94,7 @@ CD_5x_READ:
EX AF,AF'
;[]================================================================[#52]
;Function: Long Read Sectors
; A -os
; A - Disk
; HL:IX - Sector
; DE - Address
; B - Sector counter
@ -64,6 +104,8 @@ CD_5x_READ:
; DE - Address + (Sector counter * Size sector)
;LONG READ SECTOR(S)
CD_5x_LONG_READ:
AND A
;
PUSH IY
SAFE_PORTY_2
PUSH BC
@ -73,9 +115,15 @@ CD_5x_LONG_READ:
EX AF,AF'
AND A ;read
EX AF,AF'
CALL RW_ATAPI_SECTORs
JP HDD_5x_LONG_READ.shared
;
ld
; ¯à®¢¥à¨âì .RemovableMedia bit, ¥á«¨ ãáâ ­®¢«¥­, â® ¯à®¯ã᪠RW_ATAPI_SECTORs
CALL NC,RW_ATAPI_SECTORs
; [ ] sector size. media changed
JP HDD_5x_LONG_READ.shared
; JP NC,HDD_5x_LONG_READ.shared
; CP BIOS.Error.UnitAttention
; JR Z,CD_MEDIA_CHANGED_ERROR
; SCF
;[]================================================================[#52]
; INPUT:
; A - Disk
@ -159,6 +207,8 @@ CD_5x_WRITE:
; DE - Address + (Sector counter * Size sector)
;WRITE SECTOR(S)
CD_5x_LONG_WRITE:
AND A
;
PUSH IY
SAFE_PORTY_2
PUSH BC
@ -168,11 +218,13 @@ CD_5x_LONG_WRITE:
EX AF,AF'
SCF ;write
EX AF,AF'
CALL RW_ATAPI_SECTORs
;
ld
; ¯à®¢¥à¨âì .RemovableMedia bit, ¥á«¨ ãáâ ­®¢«¥­, â® ¯à®¯ã᪠RW_ATAPI_SECTORs
CALL NC,RW_ATAPI_SECTORs
;
JP HDD_5x_LONG_READ.shared
;[]================================================================[#57]
;Function: Detect Disk
; A - Disk
@ -238,7 +290,16 @@ EXEC_PACKET_COMMAND:
EXX
JR NC,.READY
;
LD BC,IDE.Write.Command
; [ ] media changed
; CP +(BIOS.Error.UnitAttention & #0F)
; JR NZ,.reset
; ;
; CALL CD_MEDIA_CHANGED_ERROR
; OR #70 ; error prefix for ATAPI in BIOS
; SCF
; RET
;
.reset: LD BC,IDE.Write.Command
LD A,IDE.ATAPI.Reset
OUT (C),A
;
@ -248,9 +309,13 @@ EXEC_PACKET_COMMAND:
EXX
CALL CD_WAITPRT
EXX
;RET C
JR C,CD_CHECK_MEDIA_CHANGED.noWait
;
.READY: CALL CD_CHECK_MEDIA_CHANGED
RET C
;
.READY: LD C,SLOT3
LD C,SLOT3
IN B,(C)
PUSH DE
PUSH BC
@ -281,27 +346,34 @@ EXEC_PACKET_COMMAND:
OUT (C),A
CALL CD_WAITPRT
EXX
RET C
;RET C
JR C,CD_CHECK_MEDIA_CHANGED.noWait
;
EXX
LD DE,256*(IDE.CtrlByte.DataRequest+IDE.CtrlByte.Error)+IDE.CtrlByte.DataRequest
CALL CD_WAITPRT.Custom
EXX
BIT IDE.CtrlBit.Error,A
JR NZ,.CDERROR
JR NZ,CD_CHECK_MEDIA_CHANGED.noWait
JR NC,.YEP_DRQ
LD A,#80 ; ERROR TIME OUT ;!HARDCODE
RET
;
.CDERROR: LD BC,IDE.Read.Error ;ERROR
IN A,(C)
RRCA
RRCA
RRCA
RRCA
AND #0F
SCF
LD A,BIOS.Error.TimeOut ;!FIXIT media change test
RET
;
; .CMD_ERROR: CALL CD_GET_ERROR
; OR #70
; CP BIOS.Error.UnitAttention
; CALL Z,CD_MEDIA_CHANGED_ERROR
; ;LD BC,IDE.Read.Error ;ERROR
; ;IN A,(C)
; ;RRCA
; ;RRCA
; ;RRCA
; ;RRCA
; ;AND #0F
; ;!FIXIT ; [ ] sector size. make REQUEST SENSE if A=6
; SCF
; RET
; EXEC ATAPI PACKET COMMAND
.YEP_DRQ: LD C,SLOT3
IN B,(C)
PUSH BC
@ -340,7 +412,7 @@ EXEC_PACKET_COMMAND:
LD BC,IDE.Read.Status
IN A,(C)
BIT IDE.CtrlBit.Error,A
JR NZ,.CDERROR
JR NZ,CD_CHECK_MEDIA_CHANGED.noWait
;
AND IDE.CtrlByte.DataRequest
RET Z ;NO DATA REQUEST. A = 0: BIOS.Error.NoErrors
@ -421,6 +493,18 @@ EXEC_PACKET_COMMAND:
;----------------------------------------------------------------------;
;----------------------------------------------------------------------;
CD_GET_ERROR: LD BC,IDE.Read.Error ;ERROR
IN A,(C)
RRCA
RRCA
RRCA
RRCA
AND #0F
RET
;----------------------------------------------------------------------;
;----------------------------------------------------------------------;
; D - MASK, E - PATTERN
@ -455,6 +539,54 @@ CD_TEST: LD HL,ATAPI_CMD_PACKET.NOP
JP EXEC_PACKET_COMMAND
;----------------------------------------------------------------------;
;----------------------------------------------------------------------;!TODO ᤥ« âì ¤®áâ㯭®© ç¥à¥§ à áè¨à¥­­ãî äã­ªæ¨î API
; ¢å®¤: DE -  ¤à¥á ¤«ï ¤ ­­ëå
CD_REQUEST_SENSE:
LD HL,ATAPI_CMD_PACKET.REQUEST_SENSE
JP EXEC_PACKET_COMMAND
ld
;----------------------------------------------------------------------;
;----------------------------------------------------------------------;
CD_MEDIA_CHANGED_ERROR:
PUSH AF
IN A,(SLOT3)
EX AF,AF
LD A,SYS_PAGE
OUT (SLOT3),A
;
LD A,%0000'0011
LD (IY + HDD_INIT_TABLE.RemovableMedia),A
;
EX AF,AF
OUT (SLOT3),A
POP AF
RET
;----------------------------------------------------------------------;
;----------------------------------------------------------------------;
CD_CHECK_MEDIA_CHANGED:
EXX
LD DE,256*(IDE.CtrlByte.Error) + 0
CALL CD_WAITPRT.Custom
EXX
RET NC
;
.noWait: EXX
CALL CD_GET_ERROR
OR #70
EXX
CP BIOS.Error.UnitAttention
SCF
RET NZ
;
CALL CD_MEDIA_CHANGED_ERROR
; CF=1
LD A,BIOS.Error.UnitAttention
RET
;----------------------------------------------------------------------;
////////////////////////////////////////////////////////////////////////
ATAPI_CMD_PACKET:
@ -484,6 +616,17 @@ ATAPI_CMD_PACKET:
DB #00,#01,#00,#00 ; counter dword
DB #00
;
.READ_CAPACITY_DATA:
DB #25
BLOCK 11,0
;
.REQUEST_SENSE:
DB #03
DB #00,#00,#00
DB MAX_DATA_PACKET_FOR_REQUEST_SENSE
DB #00,#00,#00,#00,#00,#00,#00
;
ATAPI_PACKET:
.SECTOR EQU 2
.COUNTER EQU 7
@ -498,4 +641,9 @@ ATAPI_PACKET:
; DEC E
; JR NZ,PAUSE1
; RET
;
;
/*
᫨ «®¢¨âáï ®è¨¡ª  media changed, â® ¡¨®á ¤®«¦¥­ ¢ëáâ ¢«ïâì ¢ HDD_INIT_TABLE.RemovableMedia = 3
¨ § â¨à âì FF SectorSize.
®á ¯®á«¥ ¯®«ã祭¨ï â ª®© ®è¨¡ª¨ ¤®«¦¥­ ¢ë§ë¢ âì BIOS.DRV_DETECT ¨ ¥á«¨ ¢áñ ŽŠ, â® ReScanDRV
*/

View File

@ -105,18 +105,17 @@ HDD_5x_GETMED:
RET C
IN A,(SLOT3)
EX AF,AF'
LD A,SYS_PAGE
OUT (SLOT3),A
LD L,(IY+IDE.HDD_INIT_TABLE.SectorsPerTrack)
LD H,(IY+IDE.HDD_INIT_TABLE.HeadsNumber)
LD E,(IY+IDE.HDD_INIT_TABLE.CylinderNumberLow)
LD D,(IY+IDE.HDD_INIT_TABLE.CylinderNumberHigh)
LD B,(IY+IDE.HDD_INIT_TABLE.DRV_Flags)
LD IX,512 ;!HARDCODE sector size
LD A,SYS_PAGE
OUT (SLOT3),A
LD L,(IY+IDE.HDD_INIT_TABLE.SectorsPerTrack)
LD H,(IY+IDE.HDD_INIT_TABLE.HeadsNumber)
LD E,(IY+IDE.HDD_INIT_TABLE.CylinderNumberLow)
LD D,(IY+IDE.HDD_INIT_TABLE.CylinderNumberHigh)
LD B,(IY+IDE.HDD_INIT_TABLE.DRV_Flags)
LD IX,512 ;!HARDCODE sector size
EX AF,AF'
OUT (SLOT3),A
;EX AF,AF'
AND A
;AND A
RET
;[]================================================================[#58]
@ -135,17 +134,18 @@ HDD_5x_SETMED:
RET C
IN A,(SLOT3)
EX AF,AF'
LD A,SYS_PAGE
OUT (SLOT3),A
LD (IY+IDE.HDD_INIT_TABLE.SectorsPerTrack),L
LD (IY+IDE.HDD_INIT_TABLE.HeadsNumber),H
LD (IY+IDE.HDD_INIT_TABLE.CylinderNumberLow),E
LD (IY+IDE.HDD_INIT_TABLE.CylinderNumberHigh),D
LD (IY+IDE.HDD_INIT_TABLE.DRV_Flags),B
LD A,SYS_PAGE
OUT (SLOT3),A
LD (IY+IDE.HDD_INIT_TABLE.SectorsPerTrack),L
LD (IY+IDE.HDD_INIT_TABLE.HeadsNumber),H
LD (IY+IDE.HDD_INIT_TABLE.CylinderNumberLow),E
LD (IY+IDE.HDD_INIT_TABLE.CylinderNumberHigh),D
LD (IY+IDE.HDD_INIT_TABLE.DRV_Flags),B
;!TODO ; [ ] sector size
EX AF,AF'
OUT (SLOT3),A
;EX AF,AF'
AND A
;AND A
RET
;[]================================================================[#59]
@ -195,8 +195,6 @@ HDD_5x_LONG_READ:
POP HL
POP IX
POP BC
IF 1
;=======================================================================
; HL:IX + B. ¥á«¨ B=0, â® B=256
XOR A
CP B
@ -212,32 +210,6 @@ HDD_5x_LONG_READ:
.exit: RESTORE_PORTY
POP IY
RET
;=======================================================================
ENDIF
IF 0
;=======================================================================
XOR A ; 4 1
CP B ; 4 1
LD C,B ; 4 1
JR Z,.B_256_sectors ; 12/7 2
;
LD B,A ; 4 1
ADD IX,BC ; 15 2
LD C,A ; 4 1
.pre_exit: ADC HL,BC ; 15 2
.exit: RESTORE_PORTY ;45/62
POP IY
RET
;
.B_256_sectors: INC B ; 4 1
ADD IX,BC ; 15 2
LD B,A ; 4 1
JR .pre_exit ; 12 2
;=======================================================================
ENDIF
;
;
.error: LD B,A ; A - ­®¬¥à ®è¨¡ª¨
LD C,XL
@ -449,7 +421,7 @@ RW_ATA_SECTORs: LD C,IDE.Device.HDD
;
.write_sector: ; WRITE SECTOR 512 bytes ;!HARDCODE sector size
INC B ; LD BC,IDE.Write.Data
LD D,512/WRITE_OUTI_DUPs ;!HARDCODE sector size
LD D,512/WRITE_OUTI_DUPs ;!HARDCODE sector size
.loop: DUP WRITE_OUTI_DUPs
OUTI
EDUP

View File

@ -38,9 +38,9 @@ DRV_LIST:
;Calculating FDD devices
LD A,#FF
LD HL,FDD_INI_TABLE.FDD_0
LD HL,FDD_INIT_TABLE.FDD_0
CALL .CHECK_FDD
LD HL,FDD_INI_TABLE.FDD_1
LD HL,FDD_INIT_TABLE.FDD_1
CALL .CHECK_FDD
; INC (IX+1)
@ -53,7 +53,7 @@ DRV_LIST:
; DJNZ .TFD0
; DEC (IX+1)
; .YYYFD0:
; LD HL,FDD_INI_TABLE.FDD_1
; LD HL,FDD_INIT_TABLE.FDD_1
; INC (IX+1)
; LD B,8
; LD A,#FF

View File

@ -439,6 +439,23 @@ IDESPEC: IN A,(SLOT3)
LD HL,ICHANEL
OR (HL)
LD (IY+IDE.HDD_INIT_TABLE.DRV_Flags),A
;
ld
; [ ] sector size ATAPI
LD HL,ATAPI_CMD_PACKET.READ_CAPACITY_DATA
LD DE,IDENTIFY_DEVICE_BUFFER.ReservedWord224 ; ¯à®áâ® ­ã¦¥­ ¡ë« ¡ãä¥à ­  8 ¡ ©â®¢
CALL EXEC_PACKET_COMMAND
LD HL,#FFFF
JR C,.No_Media
;
LD A,(IDENTIFY_DEVICE_BUFFER.ReservedWord224 + 6) ; sector size high
LD H,A
LD A,(IDENTIFY_DEVICE_BUFFER.ReservedWord224 + 7) ; sector size low
LD L,A
.No_Media: LD (IY+IDE.HDD_INIT_TABLE.SectorSize),L
LD (IY+IDE.HDD_INIT_TABLE.SectorSize + 1),H
LD (IY+IDE.HDD_INIT_TABLE.RemovableMedia),%0000'0001 ; !HARDCODE ATAPI ¯®ª  ¢á¥£¤  removable
;
JR IDESPEC.END
/////////////////////////////////////////////////////////////////////[^]

View File

@ -1188,14 +1188,14 @@ MOVE1: LD SP,#7FFF ; !HARDCODE
SYSID: DZ "Starting..."
.length EQU $-SYSID
FD144A: DB #80,#12,#02,#50,#00,#00,#02,FDD_INI_TABLE.FDD
FD720A: DB #00,#09,#02,#50,#00,#00,#02,FDD_INI_TABLE.FDD
FD144A: DB #80,#12,#02,#50,#00,#00,#02,FDD_INIT_TABLE.FDD
FD720A: DB #00,#09,#02,#50,#00,#00,#02,FDD_INIT_TABLE.FDD
FDD_INSTAL: IN A,(SLOT3)
EX AF,AF'
LD A,SYS_PAGE
OUT (SLOT3),A
LD HL,FDD_INI_TABLE.FDD_0
LD HL,FDD_INIT_TABLE.FDD_0
LD BC,SYS_PAGE.FDD_TBL.Size*256 + #FF ; table_size*256 + fill_byte
.FILLFDD: LD (HL),C
INC HL
@ -1215,7 +1215,7 @@ FDD_INSTAL: IN A,(SLOT3)
EX AF,AF'
LD A,SYS_PAGE
OUT (SLOT3),A
LD DE,FDD_INI_TABLE.FDD_0
LD DE,FDD_INIT_TABLE.FDD_0
LD BC,#0008 ; !HARDCODE
LDIR
EX AF,AF'
@ -1232,7 +1232,7 @@ FDD_INSTAL: IN A,(SLOT3)
EX AF,AF'
LD A,SYS_PAGE
OUT (SLOT3),A
LD DE,FDD_INI_TABLE.FDD_1
LD DE,FDD_INIT_TABLE.FDD_1
LD BC,#0008 ; !HARDCODE
LDIR
EX AF,AF'