not working

This commit is contained in:
Tolik 2025-01-16 01:27:59 +10:00
parent 22f9ae494c
commit d4911f7c45
5 changed files with 314 additions and 262 deletions

View File

@ -268,8 +268,8 @@ LOGDRV EQU DEVICE + DEVICE.End
.SECTOR_SIZE EQU 10 ; word
.RemovableMedia EQU 12 ; bit0=1 removable, bit1=1 drive changed, bit7..2 reserved
.Reserved_1 EQU 13
.Reserved_1 EQU 14
.Reserved_1 EQU 15
.Reserved_2 EQU 14
.Reserved_3 EQU 15
; ‚•Ž„: L - «®£¨ç¥áª¨© ­®¬¥à ¢ â ¡«¨æ¥
; ‚›•Ž„: IY - ­ ç «® § ¯¨á¨
; <20>Ž<EFBFBD>ˆ: HL, IY. HL<-->DE

View File

@ -49,7 +49,7 @@ ReScanDRV:
SBC HL,DE
JR Z,.nextN ; ¯à®¯ã᪠FDD ¤à ©¢®¢
; HDD?
LD HL,HDDRIVE
LD HL,IDE_DRV.API_TABLE
AND A
SBC HL,DE
; HDD! ‘¢¥àª  ¯® â ¡«¨æ¥ LOGDRV
@ -185,7 +185,7 @@ Fill_if_Exists:
LD A,LOGDRV.TBL_Entry
LD IY,LOGDRV
CALL .RUN
LD DE,HDDRIVE
LD DE,IDE_DRV.API_TABLE
RET NC
; ¯¥à¥å®¤¨¬ ­  ¤àã£ãî â ¡«¨æã - RAMDTBL
LD A,(.tbl)

View File

@ -174,36 +174,38 @@
; IDE0 EQU #0C1C0
; IDE1 EQU #0C1C8
; MODULE ATAPI_DRV
MODULE IDE_DRV
PARTITION_BUFFER _sBOOT_SECTOR = #C000
ATAPI_BUFFER _sCDFS_PRIMARY_VOLUME_DESCRIPTOR = #C000
HDDRIVE: INC C
API_TABLE: INC C
DEC C
JP Z,INIT_H ; [ ] ; c=0 Initialization
JP Z,Init ; [ ] ; c=0 Initialization
DEC C
JP Z,RESE_H ; [ ] ; c=1 open
JP Z,Open ; [ ] ; c=1 open
DEC C
JP Z,STAT_H ; [ ] ; c=2 close
JP Z,Close ; [ ] ; c=2 close
DEC C
JP Z,CHEK_H ; [ ] ; c=3 media check (ᬥ­  ­®á¨â¥«ï)
JP Z,MediaCheck ; [ ] ; c=3 media check (ᬥ­  ­®á¨â¥«ï)
DEC C
JP Z,GBPB_H ; [ ] ; c=4 get BPB
JP Z,GetBPB ; [ ] ; c=4 get BPB
DEC C
JP Z,READH ; [ ] ; c=5 read (ç⥭¨¥ ᥪâ®à®¢)
JP Z,Read ; [ ] ; c=5 read (ç⥭¨¥ ᥪâ®à®¢)
DEC C
JP Z,WRITEH ; [ ] ; c=6 write (§ ¯¨áì ᥪâ®à®¢)
JP Z,Write ; [ ] ; c=6 write (§ ¯¨áì ᥪâ®à®¢)
DEC C
JP Z,REMOV_H ; [ ] ; c=7 Removable
JP Z,Removable ; [ ] ; c=7 Removable
DEC C
JP Z,IOCTL_H ; [ ] ; c=8 ã§­ âì £¥®¬¥âà¨î ¤¨áª  Generic IOCTL
JP Z,GenIOCTL ; [ ] ; c=8 ã§­ âì £¥®¬¥âà¨î ¤¨áª  Generic IOCTL
DEC C
JP Z,.Reserved ; [ ] ; c=9 Reserved
DEC C
JP Z,LREADH ; [ ] ; c=10 Read Long
JP Z,ReadLong ; [ ] ; c=10 Read Long
DEC C
JP Z,LWRITEH ; [ ] ; c=11 Write Long
JP Z,WriteLong ; [ ] ; c=11 Write Long
;
.Reserved: LD A,DSS_Error.drv.INVALID_COMMAND
SCF
@ -216,7 +218,7 @@ HDDRIVE: INC C
;--------------------------------------------------------------------[v]
; c=0 Initialization
INIT_H: PUSH IY
Init: PUSH IY
;!TEST ;[ ] ¤«ï rescanDRV
XOR A
LD (.count),A
@ -285,32 +287,34 @@ INIT_H: PUSH IY
; LOGDRV: BLOCK .TBL_Entry * LD_DSK,0
; .TBL_Entry EQU 16
; .Size EQU $-LOGDRV
SELHDD: PUSH DE
PUSH HL
;
LD L,A
;
LOGDRV_ENTRY_FIND LOGDRV
;
; [ ] custorm sector size
CALL CHECK_IDE_SECTOR_SIZE
RLA
;
;
LD E,(IY+LOGDRV.SECTOR_OFFSET)
LD D,(IY+LOGDRV.SECTOR_OFFSET+1)
ADD IX,DE
LD E,(IY+LOGDRV.SECTOR_OFFSET+2)
LD D,(IY+LOGDRV.SECTOR_OFFSET+3)
POP HL
ADC HL,DE
; [ ] custom sector size
;JR C,.exit
RRA
;
.exit: LD A,(IY+LOGDRV.PHISICAL_DRV_NUMBER)
POP DE
RET
SelectDrive: PUSH DE
PUSH HL
;
LD L,A
;
LOGDRV_ENTRY_FIND LOGDRV
;
; [ ] custorm sector size
CALL CHECK_IDE_SECTOR_SIZE
RLA
;
;
LD E,(IY+LOGDRV.SECTOR_OFFSET)
LD D,(IY+LOGDRV.SECTOR_OFFSET+1)
ADD IX,DE
LD E,(IY+LOGDRV.SECTOR_OFFSET+2)
LD D,(IY+LOGDRV.SECTOR_OFFSET+3)
POP HL
ADC HL,DE
; [ ] custom sector size
;JR C,.exit
RRA
;
.exit: LD A,(IY+LOGDRV.PHISICAL_DRV_NUMBER)
POP DE
RET NC
LD A,DSS_Error.drv.UNKNOWN_FORMAT
RET
; 00 - GET DEVICE PARAMETERS
; 01 - READ TRACK
@ -318,49 +322,54 @@ SELHDD: PUSH DE
; 80 - SET DEVICE PARAMETERS
; 81 - WRITE TRACK
; 82 - FORMAT TRACK
IOCTL_H BIT 7,B
JR NZ,O_CTL_H
INC B
DEC B
JP Z,HGETPRM
DEC B
JP Z,HRDTRAC
DEC B
JP Z,HCHTRAC
LD A,DSS_Error.drv.INVALID_COMMAND
SCF
RET
GenIOCTL: BIT 7,B
JR NZ,.Set
INC B
DEC B
JR Z,GetParams
DEC B
JR Z,.error ;ReadTrack
DEC B
JR Z,TestTRK
LD A,DSS_Error.drv.INVALID_COMMAND
SCF
RET
;
.Set: RES 7,B
INC B
DEC B
RET Z ;SetParams
DEC B
JR Z,.error ;WriteTrack
DEC B
JR Z,.error
LD A,DSS_Error.drv.INVALID_COMMAND
SCF
RET
;
.error: LD A,DSS_Error.drv.GENERAL_FAILURE
SCF
RET
O_CTL_H RES 7,B
INC B
DEC B
JP Z,HSETPRM
DEC B
JP Z,HWRTRAC
DEC B
JP Z,HFRTRAC
LD A,DSS_Error.drv.INVALID_COMMAND
SCF
RET
;HL:IX - SECTOR
; DE - ADDRESS
; B - COUNTER
; A - HDD LOG NUMBER
;CHECK SECTOR
TestTRK: LD C,BIOS.DRV_VERIFY
JP Exec_BIOS
;LD B,L
;CALL CHECKH
;RET
HRDTRAC LD A,DSS_Error.drv.GENERAL_FAILURE
SCF
RET
HCHTRAC LD B,L
CALL CHECKH
RET
; HSETPRM: AND A
; RET
HSETPRM AND A
RET
HWRTRAC LD A,DSS_Error.drv.GENERAL_FAILURE
SCF
RET
HFRTRAC LD A,DSS_Error.drv.GENERAL_FAILURE
SCF
RET
; HFRTRAC: LD A,DSS_Error.drv.GENERAL_FAILURE
; SCF
; RET
; HL:DE - SECTORS ON LOGICAL DISK
; C - PARTITION RECORD NUMBER IN DRIVE MBR. if #FF - then not supported ;[x] 17.12.2023 § £à㧪  á  ªâ¨¢­®£® à §¤¥« ,   ­¥ á ¯¥à¢®£®
@ -387,143 +396,173 @@ HFRTRAC LD A,DSS_Error.drv.GENERAL_FAILURE
; 32 - 4096 bytes
; 64 - 8192 bytes
; 128 - 16384 bytes
HGETPRM:
EX DE,HL
LD BC,#55AA
AND A
SBC HL,BC
LD L,A
LD A,DSS_Error.drv.GENERAL_FAILURE
SCF
RET NZ
;
PUSH IX
PUSH IY
;
LOGDRV_ENTRY_FIND LOGDRV
;
LD A,(IY+LOGDRV.PHISICAL_DRV_NUMBER) ;MASTER/SLAVE PHISICAL DRIVE NUMBER #80/#81/...
PUSH IY
LD C,BIOS.DRV_GET_PAR
RST ToBIOS
POP IY
LD A,DSS_Error.drv.INVALID_DRIVE
JR C,.error
; ¯¥à¥â á®¢ª  ॣ¨áâ஢ á १ã«ìâ â®¬ ®â BIOS
EX DE,HL
LD C,E
LD E,D
LD D,0
LD A,B
LD B,D
EXX
;[ ] 04/01/2025 ¢®§¢à é¥­¨¥ à §¬¥à  ᥪâ®à 
EX AF,AF'
LD A,XH
LD E,XL
RL E
RLA
;
; SECTORS ON LOGICAL DISK
LD E,(IY+LOGDRV.SIZE_IN_SECTORS+0)
LD D,(IY+LOGDRV.SIZE_IN_SECTORS+1)
LD L,(IY+LOGDRV.SIZE_IN_SECTORS+2)
LD H,(IY+LOGDRV.SIZE_IN_SECTORS+3)
;
;[x] 17.12.2023 § £à㧪  á  ªâ¨¢­®£® à §¤¥« ,   ­¥ á ¯¥à¢®£®
LD C,(IY+LOGDRV.PARTITION_RECORD_NUM) ; ­®¬¥à ¯ àâ¨æ¨¨ ¢ MBR ¤¨áª 
;
;[ ] 04/01/2025 ¢®§¢à é¥­¨¥ à §¬¥à  ᥪâ®à 
; 00 - undefined
; 01 - 128 bytes
; 02 - 256 bytes
; 04 - 512 bytes
; 08 - 1024 bytes
; 16 - 2048 bytes
; 32 - 4096 bytes
; 64 - 8192 bytes
; 128 - 16384 bytes
;EX AF,AF'
LD B,A
;
LD A,(IY+LOGDRV.PHISICAL_DRV_NUMBER) ;MASTER/SLAVE PHISICAL DRIVE NUMBER #80/#81/...
EX AF,AF'
;
AND A
.error: POP IY
POP IX
RET
REMOV_H:
LD A,1
AND A
RET
GetParams: EX DE,HL
LD BC,#55AA
AND A
SBC HL,BC
LD L,A
LD A,DSS_Error.drv.GENERAL_FAILURE
SCF
RET NZ
;
PUSH IX
PUSH IY
;
LOGDRV_ENTRY_FIND LOGDRV
;
LD A,(IY+LOGDRV.PHISICAL_DRV_NUMBER) ;MASTER/SLAVE PHISICAL DRIVE NUMBER #80/#81/...
PUSH IY
LD C,BIOS.DRV_GET_PAR
RST ToBIOS
POP IY
LD A,DSS_Error.drv.INVALID_DRIVE
JR C,.error
; ¯¥à¥â á®¢ª  ॣ¨áâ஢ á १ã«ìâ â®¬ ®â BIOS
EX DE,HL
LD C,E
LD E,D
LD D,0
LD A,B
LD B,D
EXX
;[ ] 04/01/2025 ¢®§¢à é¥­¨¥ à §¬¥à  ᥪâ®à 
EX AF,AF'
LD A,XH
LD E,XL
RL E
RLA
;
; SECTORS ON LOGICAL DISK
LD E,(IY+LOGDRV.SIZE_IN_SECTORS+0)
LD D,(IY+LOGDRV.SIZE_IN_SECTORS+1)
LD L,(IY+LOGDRV.SIZE_IN_SECTORS+2)
LD H,(IY+LOGDRV.SIZE_IN_SECTORS+3)
;
;[x] 17.12.2023 § £à㧪  á  ªâ¨¢­®£® à §¤¥« ,   ­¥ á ¯¥à¢®£®
LD C,(IY+LOGDRV.PARTITION_RECORD_NUM) ; ­®¬¥à ¯ àâ¨æ¨¨ ¢ MBR ¤¨áª 
;
;[ ] 04/01/2025 ¢®§¢à é¥­¨¥ à §¬¥à  ᥪâ®à 
; 00 - undefined
; 01 - 128 bytes
; 02 - 256 bytes
; 04 - 512 bytes
; 08 - 1024 bytes
; 16 - 2048 bytes
; 32 - 4096 bytes
; 64 - 8192 bytes
; 128 - 16384 bytes
;EX AF,AF'
LD B,A
;
LD A,(IY+LOGDRV.PHISICAL_DRV_NUMBER) ;MASTER/SLAVE PHISICAL DRIVE NUMBER #80/#81/...
EX AF,AF'
;
AND A
.error: POP IY
POP IX
RET
RESE_H: XOR A
RET
Removable: XOR A
INC A
RET
STAT_H: XOR A
RET
Open: XOR A
RET
CHEK_H: ;LD A,#FF
XOR A
;AND A
RET
Close: XOR A
RET
;[ ] media changed - bios 5x DETECT
; ¢ë室 A=#FF - changed, A=0 - not changed, ZF=1 - not changed
MediaCheck: PUSH IY
CALL SelectDrive
JR C,.exit
;
LD A,#FF
BIT 1,(IY + LOGDRV.RemovableMedia)
JR NZ,.exit
;
LD A,(IY + LOGDRV.PHISICAL_DRV_NUMBER)
LD C,BIOS.DRV_DETECT
RST ToBIOS
AND %0000'0010
JR Z,.norm_exit
;
ld
; २­¨â ¤à ©¢ 
;
.norm_exit: XOR A
.exit: POP IY
RET
; [ ] custorm sector size
CHECK_IDE_SECTOR_SIZE:
LD E,(IY+LOGDRV.SECTOR_SIZE)
LD D,(IY+LOGDRV.SECTOR_SIZE+1)
LD HL,DSS_MAX_SECTOR_SIZE
AND A
SBC HL,DE
RET
LD E,(IY+LOGDRV.SECTOR_SIZE)
LD D,(IY+LOGDRV.SECTOR_SIZE+1)
LD HL,DSS_MAX_SECTOR_SIZE
AND A
SBC HL,DE
RET
;
;HL:IX - SECTOR
; DE - ADDRESS
; B - COUNTER
; A - HDD LOG NUMBER
;READ SECTOR
; DE - ADDRESS
; A - DRIVE
GBPB_H: PUSH IY
PUSH DE
LD L,A
;
LOGDRV_ENTRY_FIND LOGDRV
;
; [ ] custorm sector size
CALL CHECK_IDE_SECTOR_SIZE
JR C,.error
;
LD E,(IY+LOGDRV.SECTOR_OFFSET)
LD D,(IY+LOGDRV.SECTOR_OFFSET+1)
LD L,(IY+LOGDRV.SECTOR_OFFSET+2)
LD H,(IY+LOGDRV.SECTOR_OFFSET+3)
LD XL,E
LD XH,D
LD A,(IY+LOGDRV.PHISICAL_DRV_NUMBER)
POP DE
POP IY
LD BC,1*256 + BIOS.DRV_READ
JP ToBIOS
;
.error: POP DE
POP IY
LD A,DSS_Error.drv.UNKNOWN_FORMAT
RET
GetBPB: ; !FIXIT ¢ë¡¨à âì §­ ç¥­¨ï ¨áå®¤ï ¨§ ⨯  ¤à ©¢  ¨«¨ ¥éñ 祣®-­¨¡ã¤ì
LD HL,0
LD IX,0
JR Read
; PUSH IY
; PUSH DE
; LD L,A
; ;
; LOGDRV_ENTRY_FIND LOGDRV
; ;
; ; [ ] custorm sector size
; CALL CHECK_IDE_SECTOR_SIZE
; JR C,.error
; ;
; LD E,(IY+LOGDRV.SECTOR_OFFSET)
; LD D,(IY+LOGDRV.SECTOR_OFFSET+1)
; LD L,(IY+LOGDRV.SECTOR_OFFSET+2)
; LD H,(IY+LOGDRV.SECTOR_OFFSET+3)
; LD XL,E
; LD XH,D
; LD A,(IY+LOGDRV.PHISICAL_DRV_NUMBER)
; POP DE
; POP IY
; LD BC,1*256 + BIOS.DRV_READ
; JP ToBIOS
; ;
; .error: POP DE
; POP IY
; LD A,DSS_Error.drv.UNKNOWN_FORMAT
; RET
;HL:IX - SECTOR
; DE - ADDRESS
; B - COUNTER
; A'- PAGE
; A - HDD LOG NUMBER
;READ SECTOR
LREADH: PUSH IY
CALL SELHDD
JR C,.error ; [ ] custorm sector size
LD C,BIOS.DRV_READ_LONG
RST ToBIOS
.error: POP IY
RET
ReadLong: LD C,BIOS.DRV_READ_LONG
JP Exec_BIOS
; PUSH IY
; CALL SelectDrive
; JR C,.error ; [ ] custorm sector size
; LD C,BIOS.DRV_READ_LONG
; RST ToBIOS
; .error: POP IY
; RET
;HL:IX - SECTOR
; DE - ADDRESS
@ -531,53 +570,66 @@ LREADH: PUSH IY
; A'- PAGE
; A - HDD LOG NUMBER
;WRITE SECTOR
LWRITEH:
PUSH IY
CALL SELHDD
JR C,.error ; [ ] custorm sector size
LD C,BIOS.DRV_WRITE_LONG
RST ToBIOS
.error: POP IY
RET
WriteLong: LD C,BIOS.DRV_WRITE_LONG
JP Exec_BIOS
; PUSH IY
; CALL SelectDrive
; JR C,.error ; [ ] custorm sector size
; LD C,BIOS.DRV_WRITE_LONG
; RST ToBIOS
; .error: POP IY
; RET
;HL:IX - SECTOR
; DE - ADDRESS
; B - COUNTER
; A - HDD LOG NUMBER
;WRITE SECTOR
WRITEH: PUSH IY
CALL SELHDD
JR C,.error ; [ ] custorm sector size
LD C,BIOS.DRV_WRITE
RST ToBIOS
.error: POP IY
RET
Write: LD C,BIOS.DRV_WRITE
JP Exec_BIOS
; PUSH IY
; CALL SelectDrive
; JR C,.error ; [ ] custorm sector size
; LD C,BIOS.DRV_WRITE
; RST ToBIOS
; .error: POP IY
; RET
;HL:IX - SECTOR
; DE - ADDRESS
; B - COUNTER
; A - HDD LOG NUMBER
;READ SECTOR
READH: PUSH IY
CALL SELHDD
JR C,.error ; [ ] custorm sector size
LD C,BIOS.DRV_READ
RST ToBIOS
.error: POP IY
RET
;HL:IX - SECTOR
; DE - ADDRESS
; B - COUNTER
; A - HDD LOG NUMBER
;CHECK SECTOR
CHECKH: PUSH IY
CALL SELHDD
LD C,BIOS.DRV_VERIFY
RST ToBIOS
POP IY
RET
; CHECKH: PUSH IY
; CALL SelectDrive
; LD C,BIOS.DRV_VERIFY
; RST ToBIOS
; POP IY
; RET
;HL:IX - SECTOR
; DE - ADDRESS
; B - COUNTER
; A - HDD LOG NUMBER
;READ SECTOR
Read: LD C,BIOS.DRV_READ
;
Exec_BIOS: PUSH IY
CALL .exec
POP IY
RET
.exec: CALL SelectDrive
RET C
RST ToBIOS
RET NC
CP BIOS.Error.ATAPI.UnitAttention
SCF
RET NZ
SET 1,(IY + LOGDRV.RemovableMedia)
RET
;------------------------------[ PARTIT ]------------------------------;
DEFINE_PARTITIONS:
.FAT32_DOS: ;
@ -647,7 +699,7 @@ DEFINE_PARTITIONS:
JP Z,.FAT32_DOS
;
CP PartitionSysTypes.Win_Ext_LBA
JR Z,.SubLevel
JP Z,.SubLevel
JP .NextPartition ; à §¤¥« ­¥ ¯®¤¤¥à¦¨¢ ¥âáï
;
@ -813,11 +865,11 @@ DEFINE_PARTITIONS:
;
;!TEST <09>®¤áâà å®¢ª  ®â ¯¥à¥¯®«­¥­¨ï â ¡«¨æë LOGDRV
INC_DRV_COUNT: LD A,(INIT_H.count)
INC_DRV_COUNT: LD A,(Init.count)
INC A
CP DSS_MAX_DRIVES_AMOUNT+1
RET NC
LD (INIT_H.count),A
LD (Init.count),A
RET
;=======================================================================
@ -831,4 +883,4 @@ EXTDOSH: DW #0000
OFFSECT: DW LOGDRV ;POINTER ON CURRENT DISK RECORD
;=======================================================================
; ENDMODULE
ENDMODULE

View File

@ -121,30 +121,30 @@
;-----------------------------------------------------------
; <20>à®áª ­¨à®¢ âì á¨á⥬㠭  FDD/HDD ¤¥¢ ©áë ¨ RAM-¤¨áª¨
;-----------------------------------------------------------
INITDVC: XOR A
LD (DRV_PAGE.LDRIVE),A ; á¡à. ï祩ªã
LD HL,DEVICE
LD (PDEVICE),HL ; ¢®ááâ. ï祩ªã
; ‡ ç¨á⪠ â ¡«¨æ. <20>¥®¡ï§ â¥«ì­®, ­® ¬ «® «¨ çñ ¡ã¤¥â ¤ «ìè¥... ;[ ]
LD HL,DEVICE
LD (HL),#FF
LD DE,DEVICE+1
LD BC,DEVICE.Size + LOGDRV.Size + RAMDTBL.Size - 1
LDIR
; FDD ¤¥¢ ©áë
CALL FDD_DRV.Init ; ã§­ âì ç¨á«® FDD-¤¥¢ ©á®¢
LD DE,FDD_DRV.API_TABLE ;  ¤à¥á ®¡à ¡®â稪  ⥪. ¤¥¢ ©á 
CALL MAKEDVC ; ¨­¨æ. â ¡«¨æã ¯¥à¥å®¤®¢
; HDD ¤¥¢ ©áë
.if_old: CALL INIT_H ; ¥á«¨ ­  áâ à⥠¢¥àá¨ï BIOS ­¥ ¯®¤å®¤¨â, â® £à㧨âìáï ¬®¦­® ⮫쪮 á ¤¨áª¥âë, ¤«ï í⮣® âãâ § ¬¥­  ª®¤  ­  XOR A : RET
LD DE,HDDRIVE
CALL MAKEDVC
; RAM-¤¨áª¨
CALL INIT_RD
LD DE,RMDRIVE
CALL MAKEDVC
XOR A
RET
INITDVC: XOR A
LD (DRV_PAGE.LDRIVE),A ; á¡à. ï祩ªã
LD HL,DEVICE
LD (PDEVICE),HL ; ¢®ááâ. ï祩ªã
; ‡ ç¨á⪠ â ¡«¨æ. <20>¥®¡ï§ â¥«ì­®, ­® ¬ «® «¨ çñ ¡ã¤¥â ¤ «ìè¥... ;[ ]
LD HL,DEVICE
LD (HL),#FF
LD DE,DEVICE+1
LD BC,DEVICE.Size + LOGDRV.Size + RAMDTBL.Size - 1
LDIR
; FDD ¤¥¢ ©áë
CALL FDD_DRV.Init ; ã§­ âì ç¨á«® FDD-¤¥¢ ©á®¢
LD DE,FDD_DRV.API_TABLE ;  ¤à¥á ®¡à ¡®â稪  ⥪. ¤¥¢ ©á 
CALL MAKEDVC ; ¨­¨æ. â ¡«¨æã ¯¥à¥å®¤®¢
; HDD ¤¥¢ ©áë
.if_old: CALL IDE_DRV.Init ; ¥á«¨ ­  áâ à⥠¢¥àá¨ï BIOS ­¥ ¯®¤å®¤¨â, â® £à㧨âìáï ¬®¦­® ⮫쪮 á ¤¨áª¥âë, ¤«ï í⮣® âãâ § ¬¥­  ª®¤  ­  XOR A : RET
LD DE,IDE_DRV.API_TABLE
CALL MAKEDVC
; RAM-¤¨áª¨
CALL INIT_RD
LD DE,RMDRIVE
CALL MAKEDVC
XOR A
RET
; ˆ­¨æ¨¨à®¢ âì â ¡«¨æã ¯¥à¥å®¤®¢ ¤¥¢ ©á .
; ¢å®¤: de= ¤à¥á ®¡à ¡®â稪  ¤¥¢ ©á 

@ -1 +1 @@
Subproject commit 7ef1dd98b491068d5a9ded34f5ff51430b7fa7e7
Subproject commit 857938d1dbf3b332a5e9e8ccabfee531eb3848fa