mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 17:31:47 +03:00
...
This commit is contained in:
parent
eb3ee21087
commit
5448a82733
164
BOOT/DSSBOOT.ASM
164
BOOT/DSSBOOT.ASM
@ -14,11 +14,11 @@
|
|||||||
|
|
||||||
MODULE DSS_Boot_Loader
|
MODULE DSS_Boot_Loader
|
||||||
|
|
||||||
; BIOS 3.06 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>㦠<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ᥪ<><E1A5AA> <20><><EFBFBD><EFBFBD><EFBFBD>稪<EFBFBD> <20> <20><>।<EFBFBD><E0A5A4><EFBFBD> <20><><EFBFBD> <20>ࠢ<EFBFBD><E0A0A2><EFBFBD><EFBFBD><EFBFBD>.
|
; BIOS 3.06 § £à㦠¥â ®¤¨ ᥪâ®à § £àã§ç¨ª ¨ ¯¥à¥¤ ñâ ¥¬ã ã¯à ¢«¥¨¥.
|
||||||
|
|
||||||
; 0 - <EFBFBD>ਣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ਠ<EFBFBD><E0A8A0> <20><><EFBFBD><EFBFBD>᪠ DSS, 1 - <20><>ਠ<EFBFBD><E0A8A0> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
; 0 - ®à¨£¨ «ìë© ¢ ਠ⠧ ¯ã᪠DSS, 1 - ¢ ਠ⠑ ©¬
|
||||||
DEFINE ORIGINAL_DSS 0
|
DEFINE ORIGINAL_DSS 0
|
||||||
; 1 - <EFBFBD>㤥<EFBFBD> <20><>㧨<EFBFBD><E3A7A8> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20>᭮<EFBFBD><E1ADAE><EFBFBD><EFBFBD>. 0 - ⮫쪮 <20>᭮<EFBFBD><E1ADAE><EFBFBD><EFBFBD>.
|
; 1 - ¡ã¤¥â £à㧨âì ¢¥àá¨î ‘ ©¬ ¨ ®á®¢ãî. 0 - ⮫쪮 ®á®¢ãî.
|
||||||
DEFINE UNIVERSAL_BOOT 1
|
DEFINE UNIVERSAL_BOOT 1
|
||||||
|
|
||||||
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
||||||
@ -43,7 +43,7 @@ DRIVE: _mSYSID
|
|||||||
; LD SP,#C000
|
; LD SP,#C000
|
||||||
; ;
|
; ;
|
||||||
LD (DRIVE),A
|
LD (DRIVE),A
|
||||||
;[ ] 17.12.2023 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>㧪<EFBFBD> <20> <20><>⨢<EFBFBD><E2A8A2><EFBFBD><EFBFBD> ࠧ<><E0A0A7><EFBFBD><EFBFBD>, <20> <20><> <20> <20><>ࢮ<EFBFBD><E0A2AE>
|
;[ ] 17.12.2023 § £à㧪 á ªâ¨¢®£® à §¤¥« , ¥ á ¯¥à¢®£®
|
||||||
XOR A
|
XOR A
|
||||||
LD (DRIVE+1),A
|
LD (DRIVE+1),A
|
||||||
;
|
;
|
||||||
@ -59,7 +59,7 @@ DRIVE: _mSYSID
|
|||||||
BIT 7,A
|
BIT 7,A
|
||||||
JR Z,GOOD_DRIVE
|
JR Z,GOOD_DRIVE
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
LD DE,2*256 + 21 ;!HARDCODE <EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 2.21, <20> <20>訡<EFBFBD><E8A8A1>
|
LD DE,2*256 + 21 ;!HARDCODE ¥á«¨ ¢¥àá¨ï ¨¦¥ 2.21, â® ®è¨¡ª
|
||||||
SBC HL,DE
|
SBC HL,DE
|
||||||
LD HL,MESSAGES.INCORR
|
LD HL,MESSAGES.INCORR
|
||||||
RET C ; goto FAIL
|
RET C ; goto FAIL
|
||||||
@ -67,7 +67,7 @@ DRIVE: _mSYSID
|
|||||||
GOOD_DRIVE: LD DE,#8200 ;!HARDCODE
|
GOOD_DRIVE: LD DE,#8200 ;!HARDCODE
|
||||||
LD HL,0
|
LD HL,0
|
||||||
LD IX,2
|
LD IX,2
|
||||||
LD BC,LOAD_SECTORS*256 + BIOS.DRV_READ ; <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㧪<EFBFBD> ᥪ<> <20><><EFBFBD><EFBFBD><EFBFBD>稪<EFBFBD>
|
LD BC,LOAD_SECTORS*256 + BIOS.DRV_READ ; ¤®§ £à㧪 ᥪâ®à®¢ § £àã§ç¨ª
|
||||||
LD A,(DRIVE)
|
LD A,(DRIVE)
|
||||||
RST ToBIOS_18
|
RST ToBIOS_18
|
||||||
JP NC,CONTINUE
|
JP NC,CONTINUE
|
||||||
@ -164,7 +164,7 @@ CONTINUE: LD HL,0
|
|||||||
;
|
;
|
||||||
LD HL,MESSAGES.NO_SYS
|
LD HL,MESSAGES.NO_SYS
|
||||||
RET C ; goto FAIL
|
RET C ; goto FAIL
|
||||||
; [ ] <EFBFBD><EFBFBD><EFBFBD><EFBFBD>㧪<EFBFBD> system.dos <20><><EFBFBD><EFBFBD><EFBFBD> #4000 <20><><EFBFBD>⮢
|
; [ ] § £à㧪 system.dos ¡®«ìè¥ #4000 ¡ ©â®¢
|
||||||
LD HL,(FSIZE1)
|
LD HL,(FSIZE1)
|
||||||
LD A,H
|
LD A,H
|
||||||
OR L
|
OR L
|
||||||
@ -177,14 +177,14 @@ CONTINUE: LD HL,0
|
|||||||
.set_no_size: LD (LOAD_CORE.BIG_CORE),A
|
.set_no_size: LD (LOAD_CORE.BIG_CORE),A
|
||||||
OR A
|
OR A
|
||||||
PUSH AF
|
PUSH AF
|
||||||
; <EFBFBD><EFBFBD><EFBFBD><EFBFBD>㧪<EFBFBD>
|
; § £à㧪
|
||||||
EXX
|
EXX
|
||||||
LD HL,(FCLUSTER_H)
|
LD HL,(FCLUSTER_H)
|
||||||
EXX
|
EXX
|
||||||
LD HL,(FCLUSTR_L)
|
LD HL,(FCLUSTR_L)
|
||||||
LD DE,#C000
|
LD DE,#C000
|
||||||
CALL LOAD_CORE
|
CALL LOAD_CORE
|
||||||
; [ ] <EFBFBD><EFBFBD><EFBFBD><EFBFBD>㧪<EFBFBD> system.dos <20><><EFBFBD><EFBFBD><EFBFBD> #4000 <20><><EFBFBD>⮢
|
; [ ] § £à㧪 system.dos ¡®«ìè¥ #4000 ¡ ©â®¢
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
POP AF
|
POP AF
|
||||||
JR Z,.no_big_core
|
JR Z,.no_big_core
|
||||||
@ -195,10 +195,10 @@ CONTINUE: LD HL,0
|
|||||||
LD (LOAD_CORE.BANKDOS),A
|
LD (LOAD_CORE.BANKDOS),A
|
||||||
LD A,SUBLOAD_SIZE
|
LD A,SUBLOAD_SIZE
|
||||||
LD (LOAD_CORE.max_sectors),A
|
LD (LOAD_CORE.max_sectors),A
|
||||||
LD (LOAD_CORE.BIG_CORE),A ; ⥯<EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>稪 <20><>⠢<EFBFBD><E2A0A2><EFBFBD><EFBFBD> ᥪ<>
|
LD (LOAD_CORE.BIG_CORE),A ; ⥯¥àì íâ® áçñâ稪 ®áâ ¢è¨åáï ᥪâ®à®¢
|
||||||
;
|
;
|
||||||
LD A,(BOOT_BUFFER + BOOT_SECTOR.SectorsPerCluster)
|
LD A,(BOOT_BUFFER + BOOT_SECTOR.SectorsPerCluster)
|
||||||
CP #20 + 1 ; !HARDCODE <EFBFBD><EFBFBD><EFBFBD>-<2D><> <20><><EFBFBD><EFBFBD>㦠<EFBFBD><E3A6A0><EFBFBD><EFBFBD> ᥪ<>
|
CP #20 + 1 ; !HARDCODE ª®«-¢® § £à㦠¥¬ëå ᥪâ®à®¢
|
||||||
JP NC,INC_SECTOR_NUM
|
JP NC,INC_SECTOR_NUM
|
||||||
;CALL R_F_FAT ; next cluster in chain
|
;CALL R_F_FAT ; next cluster in chain
|
||||||
CALL READ_FROM_FAT ; next cluster in chain
|
CALL READ_FROM_FAT ; next cluster in chain
|
||||||
@ -223,11 +223,11 @@ RUN_CORE: DI
|
|||||||
;
|
;
|
||||||
;DOS LOADED
|
;DOS LOADED
|
||||||
;IF UNIVERSAL_BOOT
|
;IF UNIVERSAL_BOOT
|
||||||
;[ ] 17.12.2023 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>㧪<EFBFBD> <20> <20><>⨢<EFBFBD><E2A8A2><EFBFBD><EFBFBD> ࠧ<><E0A0A7><EFBFBD><EFBFBD>, <20> <20><> <20> <20><>ࢮ<EFBFBD><E0A2AE>
|
;[ ] 17.12.2023 § £à㧪 á ªâ¨¢®£® à §¤¥« , ¥ á ¯¥à¢®£®
|
||||||
LD A,(DRIVE+1) ; <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ࠧ<><E0A0A7><EFBFBD><EFBFBD>
|
LD A,(DRIVE+1) ; ®¬¥à à §¤¥«
|
||||||
LD L,A
|
LD L,A
|
||||||
;
|
;
|
||||||
LD A,(DRIVE) ; <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ன<EFBFBD>⢠
|
LD A,(DRIVE) ; ®¬¥à ãáâனáâ¢
|
||||||
LD C,Dss.Version
|
LD C,Dss.Version
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
JP C,FAIL.NULL
|
JP C,FAIL.NULL
|
||||||
@ -260,7 +260,7 @@ RUN_CORE: DI
|
|||||||
; LD A,(DRIVE)
|
; LD A,(DRIVE)
|
||||||
; LD BC,Dss.BootDSK.Set
|
; LD BC,Dss.BootDSK.Set
|
||||||
; RST ToDSS
|
; RST ToDSS
|
||||||
; LD B<EFBFBD>,Dss.BootDSK.Get
|
; LD B‘,Dss.BootDSK.Get
|
||||||
; ENDIF
|
; ENDIF
|
||||||
;ENDIF
|
;ENDIF
|
||||||
;
|
;
|
||||||
@ -286,7 +286,7 @@ RUN_CORE: DI
|
|||||||
;
|
;
|
||||||
INC_SECTOR_NUM: PUSH DE
|
INC_SECTOR_NUM: PUSH DE
|
||||||
CALL CLUSTER_TO_SECTOR
|
CALL CLUSTER_TO_SECTOR
|
||||||
LD DE,#20 ;!HARDCODE <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢮ <20><><EFBFBD>⠭<EFBFBD><E2A0AD><EFBFBD> ᥪ<>
|
LD DE,#20 ;!HARDCODE ª®«¨ç¥á⢮ ¯à®ç¨â ëå ᥪâ®à®¢
|
||||||
ADD IX,DE
|
ADD IX,DE
|
||||||
JR NC,.no_inc
|
JR NC,.no_inc
|
||||||
INC HL
|
INC HL
|
||||||
@ -294,8 +294,8 @@ INC_SECTOR_NUM: PUSH DE
|
|||||||
POP DE
|
POP DE
|
||||||
LD BC,RUN_CORE
|
LD BC,RUN_CORE
|
||||||
PUSH BC
|
PUSH BC
|
||||||
PUSH HL ; <EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
PUSH HL ; ¤«ï ¡ « á
|
||||||
PUSH HL ; <EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
PUSH HL ; ¤«ï ¡ « á
|
||||||
JP LOAD_CORE.subload
|
JP LOAD_CORE.subload
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -314,7 +314,7 @@ PART_TB: LD HL,(BOOT_BUFFER + BOOT_SECTOR.MBR_SIGNATURE)
|
|||||||
;LD HL,YEPDOS
|
;LD HL,YEPDOS
|
||||||
;
|
;
|
||||||
.part_loop: LD A,(IX + _sMBR_PARTITION_RECORD.FS_ID)
|
.part_loop: LD A,(IX + _sMBR_PARTITION_RECORD.FS_ID)
|
||||||
; <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>প<EFBFBD> <20><><EFBFBD> <20><><EFBFBD>쪨<EFBFBD> ⨯<><E2A8AF> <20><>, <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1fs <20><> 2fs
|
; …‘‹ˆ ¤®¡ ¢¨âáï ¯®¤¤¥à¦ª ¥éñ ¥áª®«ìª¨å ⨯®¢ ”‘, â® ¯®¬¥ïâì 1fs 2fs
|
||||||
; 1
|
; 1
|
||||||
CP PartitionSysTypes.FAT16_LBA
|
CP PartitionSysTypes.FAT16_LBA
|
||||||
JR Z,YEPDOS
|
JR Z,YEPDOS
|
||||||
@ -362,13 +362,13 @@ PART_TB: LD HL,(BOOT_BUFFER + BOOT_SECTOR.MBR_SIGNATURE)
|
|||||||
;
|
;
|
||||||
|
|
||||||
;
|
;
|
||||||
YEPDOS: ;[ ] 17.12.2023 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>㧪<EFBFBD> <20> <20><>⨢<EFBFBD><E2A8A2><EFBFBD><EFBFBD> ࠧ<><E0A0A7><EFBFBD><EFBFBD>, <20> <20><> <20> <20><>ࢮ<EFBFBD><E0A2AE>
|
YEPDOS: ;[ ] 17.12.2023 § £à㧪 á ªâ¨¢®£® à §¤¥« , ¥ á ¯¥à¢®£®
|
||||||
LD A,#80
|
LD A,#80
|
||||||
CP (IX + _sMBR_PARTITION_RECORD.isActive)
|
CP (IX + _sMBR_PARTITION_RECORD.isActive)
|
||||||
JR NZ,PART_TB.next
|
JR NZ,PART_TB.next
|
||||||
LD A,4 ;!HARDCODE <EFBFBD><EFBFBD><EFBFBD>稪 <20><><EFBFBD><EFBFBD>ᥩ <20><><EFBFBD><EFBFBD>権 <20> MBR
|
LD A,4 ;!HARDCODE áç¥â稪 § ¯¨á¥© ¯ àâ¨æ¨© ¢ MBR
|
||||||
SUB B
|
SUB B
|
||||||
PUSH AF ; <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>㧮筮<E3A7AE><E7ADAE> ࠧ<><E0A0A7><EFBFBD><EFBFBD>
|
PUSH AF ; ®¬¥à § £à㧮箣® à §¤¥«
|
||||||
;
|
;
|
||||||
LD L,(IX + _sMBR_PARTITION_RECORD.Start_LBA + 0)
|
LD L,(IX + _sMBR_PARTITION_RECORD.Start_LBA + 0)
|
||||||
LD H,(IX + _sMBR_PARTITION_RECORD.Start_LBA + 1)
|
LD H,(IX + _sMBR_PARTITION_RECORD.Start_LBA + 1)
|
||||||
@ -382,10 +382,10 @@ YEPDOS: ;[ ] 17.12.2023 <20><><EFBFBD><EFBFBD>㧪<EFBFBD> <20> <20><>⨢<EFBFBD><E2A8A2><EFBFBD><EFBFBD> ࠧ<><E0A0A7>
|
|||||||
LD DE,BOOT_BUFFER
|
LD DE,BOOT_BUFFER
|
||||||
LD BC,1*256 + BIOS.DRV_READ
|
LD BC,1*256 + BIOS.DRV_READ
|
||||||
RST ToBIOS_18
|
RST ToBIOS_18
|
||||||
;[ ] 17.12.2023 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>㧪<EFBFBD> <20> <20><>⨢<EFBFBD><E2A8A2><EFBFBD><EFBFBD> ࠧ<><E0A0A7><EFBFBD><EFBFBD>, <20> <20><> <20> <20><>ࢮ<EFBFBD><E0A2AE>
|
;[ ] 17.12.2023 § £à㧪 á ªâ¨¢®£® à §¤¥« , ¥ á ¯¥à¢®£®
|
||||||
POP AF
|
POP AF
|
||||||
POP BC
|
POP BC
|
||||||
LD L,A ; <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>㧮筮<E3A7AE><E7ADAE> ࠧ<><E0A0A7><EFBFBD><EFBFBD>
|
LD L,A ; ®¬¥à § £à㧮箣® à §¤¥«
|
||||||
LD A,C
|
LD A,C
|
||||||
;
|
;
|
||||||
RET
|
RET
|
||||||
@ -409,7 +409,7 @@ GET_BPB: LD HL,#0000
|
|||||||
LD A,(DRIVE)
|
LD A,(DRIVE)
|
||||||
RST ToBIOS_18
|
RST ToBIOS_18
|
||||||
RET C
|
RET C
|
||||||
; <EFBFBD><EFBFBD>४<EFBFBD><EFBFBD>뢠<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>稪<EFBFBD> <20><> 0 ᥪ<><E1A5AA>
|
; ¯¥à¥ª¨¤ë¢ ¨¥ ç á⨠§ £àã§ç¨ª ¨§ 0 ᥪâ®à
|
||||||
LD HL,BOOT_BUFFER + (_sBOOT_SECTOR.PARTITION_TABLE - ZERO_SECTOR_OF_BPB.Size)
|
LD HL,BOOT_BUFFER + (_sBOOT_SECTOR.PARTITION_TABLE - ZERO_SECTOR_OF_BPB.Size)
|
||||||
LD DE,ZERO_SECTOR_OF_BPB
|
LD DE,ZERO_SECTOR_OF_BPB
|
||||||
LD BC,ZERO_SECTOR_OF_BPB.Size
|
LD BC,ZERO_SECTOR_OF_BPB.Size
|
||||||
@ -423,7 +423,7 @@ GET_BPB: LD HL,#0000
|
|||||||
JR NZ,.NX1
|
JR NZ,.NX1
|
||||||
CALL PART_TB ;HDD
|
CALL PART_TB ;HDD
|
||||||
RET C
|
RET C
|
||||||
;[ ] 17.12.2023 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>㧪<EFBFBD> <20> <20><>⨢<EFBFBD><E2A8A2><EFBFBD><EFBFBD> ࠧ<><E0A0A7><EFBFBD><EFBFBD>, <20> <20><> <20> <20><>ࢮ<EFBFBD><E0A2AE>
|
;[ ] 17.12.2023 § £à㧪 á ªâ¨¢®£® à §¤¥« , ¥ á ¯¥à¢®£®
|
||||||
LD (DRIVE+1),HL
|
LD (DRIVE+1),HL
|
||||||
;
|
;
|
||||||
.NX1: CP #00
|
.NX1: CP #00
|
||||||
@ -534,7 +534,7 @@ GET_BPB: LD HL,#0000
|
|||||||
JP NC,.loop3
|
JP NC,.loop3
|
||||||
.loop3.end: ;
|
.loop3.end: ;
|
||||||
LD (FatBuffer.BytesPerCluster),HL
|
LD (FatBuffer.BytesPerCluster),HL
|
||||||
; LD DE,#8001 ; <EFBFBD><EFBFBD>ઠ <20><> ࠧ<><E0A0A7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> 32 <20><> - <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ন<EFBFBD><E0A6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ; !TODO
|
; LD DE,#8001 ; ¯à®¢¥àª à §¬¥à ª« áâ¥à ¡®«ìè¥ 32 ª¡ - ¥ ¯®¤¤¥à¦¨¢ ¥âáï ; !TODO
|
||||||
; AND A
|
; AND A
|
||||||
; SBC HL,DE
|
; SBC HL,DE
|
||||||
; CCF
|
; CCF
|
||||||
@ -596,14 +596,14 @@ GET_BPB: LD HL,#0000
|
|||||||
; HL:DE = DataSec
|
; HL:DE = DataSec
|
||||||
;
|
;
|
||||||
LD A,(FatBuffer.SectorsPerCluster)
|
LD A,(FatBuffer.SectorsPerCluster)
|
||||||
; HL:DE / A => DE:BC, H=0, L - <EFBFBD><EFBFBD><EFBFBD>⮪
|
; HL:DE / A => DE:BC, H=0, L - ®áâ ⮪
|
||||||
;CALL DIV_by_Shifts
|
;CALL DIV_by_Shifts
|
||||||
LD C,A
|
LD C,A
|
||||||
DEC A
|
DEC A
|
||||||
JR Z,.DIV_exit
|
JR Z,.DIV_exit
|
||||||
;
|
;
|
||||||
AND E
|
AND E
|
||||||
LD B,A ; <EFBFBD><EFBFBD><EFBFBD>⮪
|
LD B,A ; ®áâ ⮪
|
||||||
LD A,C
|
LD A,C
|
||||||
RRCA
|
RRCA
|
||||||
;
|
;
|
||||||
@ -620,7 +620,7 @@ GET_BPB: LD HL,#0000
|
|||||||
LD H,0
|
LD H,0
|
||||||
LD L,A
|
LD L,A
|
||||||
;
|
;
|
||||||
; <EFBFBD><EFBFBD><EFBFBD><EFBFBD>塞 ࠧ<>來<EFBFBD><EFA4AD><EFBFBD><EFBFBD> FAT
|
; ¢ëïá塞 à §à冷áâì FAT
|
||||||
LD A,D
|
LD A,D
|
||||||
OR E
|
OR E
|
||||||
JR NZ,.its_FAT32
|
JR NZ,.its_FAT32
|
||||||
@ -637,8 +637,8 @@ GET_BPB: LD HL,#0000
|
|||||||
;
|
;
|
||||||
.its_FAT32: LD A,(BOOT_BUFFER + BOOT_SECTOR.MainFATnumber)
|
.its_FAT32: LD A,(BOOT_BUFFER + BOOT_SECTOR.MainFATnumber)
|
||||||
CP #80
|
CP #80
|
||||||
JR C,.mirrored_FATs ;<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> FAT <20>ᯮ<EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
JR C,.mirrored_FATs ;¥á«¨ ¢á¥ ª®¯¨¨ FAT ¨á¯®«ì§ãîâáï
|
||||||
; <EFBFBD>ᯮ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⮫쪮 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> FAT
|
; ¨á¯®«ì§ã¥âáï ⮫쪮 ®¤ ª®¯¨ï FAT
|
||||||
LD HL,(FatBuffer.FAT1_SEC_H)
|
LD HL,(FatBuffer.FAT1_SEC_H)
|
||||||
LD DE,(FatBuffer.SectorsPerFAT_H)
|
LD DE,(FatBuffer.SectorsPerFAT_H)
|
||||||
LD D,0
|
LD D,0
|
||||||
@ -717,7 +717,7 @@ CLUSTER_TO_SECTOR:
|
|||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
; <EFBFBD><EFBFBD><EFBFBD><EFBFBD> system.dos
|
; ¯®¨áª system.dos
|
||||||
GETROOT: LD HL,(FatBuffer.RootDirFirstSector_H)
|
GETROOT: LD HL,(FatBuffer.RootDirFirstSector_H)
|
||||||
LD IX,(FatBuffer.RootDirFirstSector_L)
|
LD IX,(FatBuffer.RootDirFirstSector_L)
|
||||||
LD BC,(PARTITION_START_L)
|
LD BC,(PARTITION_START_L)
|
||||||
@ -731,7 +731,7 @@ GETROOT: LD HL,(FatBuffer.RootDirFirstSector_H)
|
|||||||
LD A,(FatBuffer.DirSizeInSectors)
|
LD A,(FatBuffer.DirSizeInSectors)
|
||||||
JR NZ,.NEXTSEC
|
JR NZ,.NEXTSEC
|
||||||
;
|
;
|
||||||
LD A,(FatBuffer.SectorsPerCluster);!FIXIT <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ⮫쪮 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>⠫<EFBFBD><E2A0AB><EFBFBD> <20><> FAT32
|
LD A,(FatBuffer.SectorsPerCluster);!FIXIT ¯à®çâñâ ⮫쪮 ¯¥à¢ë© ª« áâ¥à ª â «®£ FAT32
|
||||||
.NEXTSEC: PUSH AF
|
.NEXTSEC: PUSH AF
|
||||||
; [x] 28/04/2024. Bug with incorrect reading root dir. Reported by Roman "Romychs" Boykov.
|
; [x] 28/04/2024. Bug with incorrect reading root dir. Reported by Roman "Romychs" Boykov.
|
||||||
;ADD IX,BC
|
;ADD IX,BC
|
||||||
@ -799,13 +799,13 @@ SEARCH: LD C,17 ;HANDELS PER SECTOR 512/32 + 1
|
|||||||
LD BC,FAT_DIRECTORY_RECORD
|
LD BC,FAT_DIRECTORY_RECORD
|
||||||
LDIR
|
LDIR
|
||||||
; ZF = 1, CF = 0, A != 0
|
; ZF = 1, CF = 0, A != 0
|
||||||
AND A ; <EFBFBD><EFBFBD> <20><>室<EFBFBD> ZF = CF = 0
|
AND A ; ¢ë室¥ ZF = CF = 0
|
||||||
RET
|
RET
|
||||||
|
|
||||||
; HL - CLUSTER
|
; HL - CLUSTER
|
||||||
; DE - ADDRESS
|
; DE - ADDRESS
|
||||||
; !TODO ᤥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ࠧ<><E0A0A7><EFBFBD> SYSTEM.DOS
|
; !TODO ᤥ« âì âãâ ®¯à¥¤¥«¥¨¥ à §¬¥à SYSTEM.DOS
|
||||||
; [ ] <EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>㧨<EFBFBD><E3A7A8> <20><><EFBFBD><EFBFBD><EFBFBD> 1 <20><>࠭<EFBFBD><E0A0AD><EFBFBD>
|
; [ ] ¨ ¢®§¬®¦®áâì § £à㧨âì ¡®«ìè¥ 1 áâà ¨æë
|
||||||
LOAD_CORE: LD (READMEM),DE
|
LOAD_CORE: LD (READMEM),DE
|
||||||
.loop: PUSH HL
|
.loop: PUSH HL
|
||||||
EXX
|
EXX
|
||||||
@ -859,7 +859,7 @@ LOAD_CORE: LD (READMEM),DE
|
|||||||
POP HL
|
POP HL
|
||||||
CCF
|
CCF
|
||||||
RET NC
|
RET NC
|
||||||
; [ ] <EFBFBD><EFBFBD><EFBFBD><EFBFBD>㧪<EFBFBD> system.dos <20><><EFBFBD><EFBFBD><EFBFBD> #4000 <20><><EFBFBD>⮢
|
; [ ] § £à㧪 system.dos ¡®«ìè¥ #4000 ¡ ©â®¢
|
||||||
|
|
||||||
.BIG_CORE+1: LD A,0
|
.BIG_CORE+1: LD A,0
|
||||||
DEC A
|
DEC A
|
||||||
@ -878,14 +878,14 @@ LOAD_CORE: LD (READMEM),DE
|
|||||||
|
|
||||||
|
|
||||||
;
|
;
|
||||||
; HL:DE / A => DE:BC, H=0, L - <EFBFBD><EFBFBD><EFBFBD>⮪
|
; HL:DE / A => DE:BC, H=0, L - ®áâ ⮪
|
||||||
; DIV_by_Shifts:
|
; DIV_by_Shifts:
|
||||||
; LD C,A
|
; LD C,A
|
||||||
; DEC A
|
; DEC A
|
||||||
; JR Z,.DIV_exit
|
; JR Z,.DIV_exit
|
||||||
; ;
|
; ;
|
||||||
; AND E
|
; AND E
|
||||||
; LD B,A ; <EFBFBD><EFBFBD><EFBFBD>⮪
|
; LD B,A ; ®áâ ⮪
|
||||||
; LD A,C
|
; LD A,C
|
||||||
; RRCA
|
; RRCA
|
||||||
; ;
|
; ;
|
||||||
@ -919,10 +919,10 @@ ZERO_SECTOR_OF_BPB:
|
|||||||
; B = 0
|
; B = 0
|
||||||
GET_SECTOR_OF_FAT:
|
GET_SECTOR_OF_FAT:
|
||||||
LD A,(FatBuffer.FAT_TYPE)
|
LD A,(FatBuffer.FAT_TYPE)
|
||||||
LD B,FAT_CACHE.Degree_32 ;!FIXIT ᤥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>१ <20><>६<EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD>
|
LD B,FAT_CACHE.Degree_32 ;!FIXIT ᤥ« âì ç¥à¥§ ¯¥à¥¬¥ãî
|
||||||
XOR FAT_TYPE.x32
|
XOR FAT_TYPE.x32
|
||||||
JR Z,.next
|
JR Z,.next
|
||||||
LD B,FAT_CACHE.Degree ;!FIXIT ᤥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>१ <20><>६<EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD>
|
LD B,FAT_CACHE.Degree ;!FIXIT ᤥ« âì ç¥à¥§ ¯¥à¥¬¥ãî
|
||||||
XOR A
|
XOR A
|
||||||
.next: LD C,A
|
.next: LD C,A
|
||||||
;
|
;
|
||||||
@ -935,18 +935,18 @@ GET_SECTOR_OF_FAT:
|
|||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
;<EFBFBD>室: HL - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
;¢å®¤: HL - ®¬¥à ª« áâ¥à
|
||||||
;<EFBFBD><EFBFBD>室: HL - <20><><EFBFBD><EFBFBD> <20>㦭<EFBFBD><E3A6AD> <20>祩<EFBFBD><E7A5A9> <20> <20><>࠭<EFBFBD><E0A0AD> FATPAGE
|
;¢ë室: HL - ¤à¥á 㦮© ï祩ª¨ ¢ áâà ¨æ¥ FATPAGE
|
||||||
; CF - <EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
; CF - çñâë©/¥çñâë© ¤à¥á ª« áâ¥à
|
||||||
GET_FAT12_CELL: LD D,H
|
GET_FAT12_CELL: LD D,H
|
||||||
LD E,L
|
LD E,L
|
||||||
SRL H
|
SRL H
|
||||||
RR L ; ᤢ<EFBFBD><EFBFBD> <20><>ࠢ<EFBFBD> <20>१ CF
|
RR L ; ᤢ¨£ ¢¯à ¢® ç¥à¥§ CF
|
||||||
PUSH AF ; <EFBFBD><EFBFBD><EFBFBD>. 䫠<>
|
PUSH AF ; á®åà. ä« £
|
||||||
ADD HL,DE ; CLUSTER * 1.5
|
ADD HL,DE ; CLUSTER * 1.5
|
||||||
;
|
;
|
||||||
IF FAT_CACHE.Size_12 < #1800
|
IF FAT_CACHE.Size_12 < #1800
|
||||||
;!FIXIT <EFBFBD><EFBFBD>⨬<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
;!FIXIT ®¯â¨¬¨§¨à®¢ âì
|
||||||
LD A,H
|
LD A,H
|
||||||
LD B,H
|
LD B,H
|
||||||
;
|
;
|
||||||
@ -965,12 +965,12 @@ GET_FAT12_CELL: LD D,H
|
|||||||
AND #07
|
AND #07
|
||||||
;AND FAT_CACHE.Part_Mask_16
|
;AND FAT_CACHE.Part_Mask_16
|
||||||
;
|
;
|
||||||
; [ ] <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>室 <20> <20><>楤<EFBFBD><E6A5A4><EFBFBD> READ_FAT_TABLE. <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> ॣ. A <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
; [ ] ¯®¬¥ï«áï ¢å®¤ ¢ ¯à®æ¥¤ãàã READ_FAT_TABLE. <20> ìè¥ ®¬¥à ¡«®ª ¢ ॣ. A ¯¥à¥¤ ¢ «áï
|
||||||
LD DE,(FatBuffer.CacheBlock) ; BC - BLOCK FAT IN CASH
|
LD DE,(FatBuffer.CacheBlock) ; BC - BLOCK FAT IN CASH
|
||||||
CP E
|
CP E
|
||||||
LD E,A
|
LD E,A
|
||||||
;
|
;
|
||||||
CALL NZ,READ_FAT_TABLE ; <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD> 16 ᥪ<> FAT-<2D>
|
CALL NZ,READ_FAT_TABLE ; ¯à®ç¨â âì ¢ ª¥è 16 ᥪâ®à®¢ FAT-
|
||||||
ENDIF
|
ENDIF
|
||||||
;
|
;
|
||||||
LD DE,FATPAGE.cache
|
LD DE,FATPAGE.cache
|
||||||
@ -978,8 +978,8 @@ GET_FAT12_CELL: LD D,H
|
|||||||
POP AF
|
POP AF
|
||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
;<EFBFBD>室: HL - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
;¢å®¤: HL - ®¬¥à ª« áâ¥à
|
||||||
;<EFBFBD><EFBFBD>室: HL - <20><><EFBFBD><EFBFBD> <20>㦭<EFBFBD><E3A6AD> <20>祩<EFBFBD><E7A5A9> <20> <20><>࠭<EFBFBD><E0A0AD> FATPAGE
|
;¢ë室: HL - ¤à¥á 㦮© ï祩ª¨ ¢ áâà ¨æ¥ FATPAGE
|
||||||
GET_FAT16_CELL: LD A,H
|
GET_FAT16_CELL: LD A,H
|
||||||
LD B,H
|
LD B,H
|
||||||
AND FAT_CACHE.Size_Mask_16
|
AND FAT_CACHE.Size_Mask_16
|
||||||
@ -998,14 +998,14 @@ GET_FAT16_CELL: LD A,H
|
|||||||
LD E,A
|
LD E,A
|
||||||
;
|
;
|
||||||
CALL NZ,READ_FAT_TABLE ; A != C - READ NEW BLOCK FAT
|
CALL NZ,READ_FAT_TABLE ; A != C - READ NEW BLOCK FAT
|
||||||
LD DE,FATPAGE.cache ; <EFBFBD><EFBFBD>砫<EFBFBD> <20><><EFBFBD> FAT-<2D>
|
LD DE,FATPAGE.cache ; ç «® ª¥è FAT-
|
||||||
ADD HL,DE ; <EFBFBD><EFBFBD> <20>祩<EFBFBD><E7A5A9> FAT
|
ADD HL,DE ; ï祩ªã FAT
|
||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
;
|
;
|
||||||
;RE_FAT:
|
;RE_FAT:
|
||||||
;RX01
|
;RX01
|
||||||
; <20><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD> <20><> ᥪ<> FAT-<2D>
|
; <20>à®ç¨â âì ¢ ª¥è •• ᥪâ®à®¢ FAT-
|
||||||
; DE - NEW FAT BLOCK
|
; DE - NEW FAT BLOCK
|
||||||
READ_FAT_TABLE: PUSH HL
|
READ_FAT_TABLE: PUSH HL
|
||||||
;
|
;
|
||||||
@ -1014,7 +1014,7 @@ READ_FAT_TABLE: PUSH HL
|
|||||||
;
|
;
|
||||||
CALL GET_SECTOR_OF_FAT
|
CALL GET_SECTOR_OF_FAT
|
||||||
;
|
;
|
||||||
; BC:HL - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>.ᥪ<><E1A5AA>
|
; BC:HL - ®¬¥à «®£.ᥪâ®à
|
||||||
LD DE,(FatBuffer.FAT1_SEC_L)
|
LD DE,(FatBuffer.FAT1_SEC_L)
|
||||||
ADD HL,DE
|
ADD HL,DE
|
||||||
;
|
;
|
||||||
@ -1052,9 +1052,9 @@ READ_FAT_TABLE: PUSH HL
|
|||||||
POP HL
|
POP HL
|
||||||
RET
|
RET
|
||||||
|
|
||||||
;<EFBFBD>室: HL':HL - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
;¢å®¤: HL':HL - ®¬¥à ª« áâ¥à
|
||||||
;<EFBFBD><EFBFBD>室: HL - <20><><EFBFBD><EFBFBD> <20>㦭<EFBFBD><E3A6AD> <20>祩<EFBFBD><E7A5A9> <20> <20><>࠭<EFBFBD><E0A0AD> FATPAGE
|
;¢ë室: HL - ¤à¥á 㦮© ï祩ª¨ ¢ áâà ¨æ¥ FATPAGE
|
||||||
GET_FAT32_CELL: ; <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> HL':H
|
GET_FAT32_CELL: ; ¤¢¨£ ¥¬ ¢«¥¢® HL':H
|
||||||
LD A,H
|
LD A,H
|
||||||
EXX
|
EXX
|
||||||
LD C,A
|
LD C,A
|
||||||
@ -1063,13 +1063,13 @@ GET_FAT32_CELL: ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> HL':H
|
|||||||
LD H,A
|
LD H,A
|
||||||
LD A,C
|
LD A,C
|
||||||
;
|
;
|
||||||
LD B,FAT_CACHE.Degree ; 4 ᤢ<EFBFBD><EFBFBD><EFBFBD>
|
LD B,FAT_CACHE.Degree ; 4 ᤢ¨£
|
||||||
.loop_block: RLCA ; << H
|
.loop_block: RLCA ; << H
|
||||||
RL L ; << L'
|
RL L ; << L'
|
||||||
RL H ; << H'
|
RL H ; << H'
|
||||||
DJNZ .loop_block
|
DJNZ .loop_block
|
||||||
EXX
|
EXX
|
||||||
; <EFBFBD> <20>⮣<EFBFBD> <20><><EFBFBD> <20> HL' <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> FAT
|
; ‚ ¨â®£¥ âãâ ¢ HL' ®¬¥à ¡«®ª FAT
|
||||||
;
|
;
|
||||||
; HL - FAT32 OFFSET (FROM CASH)
|
; HL - FAT32 OFFSET (FROM CASH)
|
||||||
LD A,H
|
LD A,H
|
||||||
@ -1086,20 +1086,20 @@ GET_FAT32_CELL: ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> HL':H
|
|||||||
SBC HL,DE
|
SBC HL,DE
|
||||||
CALL NZ,READ_FAT_TABLE ; A != C - READ NEW BLOCK FAT
|
CALL NZ,READ_FAT_TABLE ; A != C - READ NEW BLOCK FAT
|
||||||
POP HL
|
POP HL
|
||||||
LD DE,FATPAGE.cache ; <EFBFBD><EFBFBD>砫<EFBFBD> <20><><EFBFBD> FAT-<2D>
|
LD DE,FATPAGE.cache ; ç «® ª¥è FAT-
|
||||||
ADD HL,DE ; <EFBFBD><EFBFBD> <20>祩<EFBFBD><E7A5A9> FAT
|
ADD HL,DE ; ï祩ªã FAT
|
||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
;------------------------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------------------------
|
||||||
; <20><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> FAT-<2D> <20><><EFBFBD><EFBFBD><EFBFBD> <>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
; <20>à®ç¨â âì ¨§ ª¥è FAT- ®¬¥à á«¥¤. ª« áâ¥à
|
||||||
; <EFBFBD>室: hl - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>襥 <><E1ABAE>)
|
; ¢å®¤: hl - ®¬¥à ª« áâ¥à (¬« ¤è¥¥ á«®¢®)
|
||||||
; hl' - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD>襥 <><E1ABAE>. ⮫쪮 <20><><EFBFBD> FAT32)
|
; hl' - ®¬¥à ª« áâ¥à (áâ à襥 á«®¢®. ⮫쪮 ¤«ï FAT32)
|
||||||
; <EFBFBD><EFBFBD>室: hl - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>襥 <><E1ABAE>)
|
; ¢ë室: hl - ®¬¥à ª« áâ¥à (¬« ¤è¥¥ á«®¢®)
|
||||||
; hl' - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD>襥 <><E1ABAE>)
|
; hl' - ®¬¥à ª« áâ¥à (áâ à襥 á«®¢®)
|
||||||
; de - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>襥 <><E1ABAE>)
|
; de - ®¬¥à á«¥¤. ª« áâ¥à (¬« ¤è¥¥ á«®¢®)
|
||||||
; de' - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD>襥 <><E1ABAE>)
|
; de' - ®¬¥à á«¥¤. ª« áâ¥à (áâ à襥 á«®¢®)
|
||||||
; <EFBFBD> DE':DE = 0, <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HL':HL <><E1A2AE><EFBFBD><EFBFBD><EFBFBD>
|
; ¥á«¨ DE':DE = 0, â® ª« áâ¥à HL':HL ᢮¡®¤¥
|
||||||
; CF - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 楯<>窨
|
; CF - ª®¥æ 楯®çª¨
|
||||||
;------------------------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------------------------
|
||||||
READ_FROM_FAT: PUSH HL
|
READ_FROM_FAT: PUSH HL
|
||||||
;
|
;
|
||||||
@ -1112,18 +1112,18 @@ READ_FROM_FAT: PUSH HL
|
|||||||
CP FAT_TYPE.x16
|
CP FAT_TYPE.x16
|
||||||
JR C,.FAT12
|
JR C,.FAT12
|
||||||
JR NZ,.FAT32
|
JR NZ,.FAT32
|
||||||
; fat16, <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <>. <20><><EFBFBD><EFBFBD><EFBFBD>
|
; fat16, ¯à®áâ® ç¨â âì á«¥¤. ®¬¥à
|
||||||
.FAT16: CALL GET_FAT16_CELL
|
.FAT16: CALL GET_FAT16_CELL
|
||||||
LD E,(HL) ; <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
LD E,(HL) ; ¯à®ç¨â âì ®¬¥à ª« áâ¥à
|
||||||
INC HL
|
INC HL
|
||||||
LD D,(HL)
|
LD D,(HL)
|
||||||
;
|
;
|
||||||
LD HL,SERVICE_SECTORS.FAT16
|
LD HL,SERVICE_SECTORS.FAT16
|
||||||
.exit: POP AF
|
.exit: POP AF
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
; <EFBFBD><EFBFBD><EFBFBD><EFBFBD>塞 CF <20> <20><>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20>訡<EFBFBD><E8A8A1> = DssErr.sys.NO_ERROR
|
; ®¡ã«ï¥¬ CF ¨ ãáâ ¢«¨¢ ¥¬ ª®¤ ®è¨¡ª¨ = DssErr.sys.NO_ERROR
|
||||||
XOR A
|
XOR A
|
||||||
; <EFBFBD><EFBFBD>ઠ <20><> <20><>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
; ¯à®¢¥àª á«ã¦. ª« áâ¥àë
|
||||||
SBC HL,DE
|
SBC HL,DE
|
||||||
POP HL
|
POP HL
|
||||||
EXX
|
EXX
|
||||||
@ -1143,7 +1143,7 @@ READ_FROM_FAT: PUSH HL
|
|||||||
JR NC,.Correct_2
|
JR NC,.Correct_2
|
||||||
.Correct_1: LD A,E
|
.Correct_1: LD A,E
|
||||||
AND #F0
|
AND #F0
|
||||||
DUP 4 ; <EFBFBD><EFBFBD>ࠢ<EFBFBD> <20><> 4 <20><><EFBFBD>a
|
DUP 4 ; ¢¯à ¢® 4 ¡¨âa
|
||||||
RR D
|
RR D
|
||||||
RRA
|
RRA
|
||||||
EDUP
|
EDUP
|
||||||
@ -1160,12 +1160,12 @@ READ_FROM_FAT: PUSH HL
|
|||||||
EXX
|
EXX
|
||||||
;
|
;
|
||||||
CALL GET_FAT32_CELL
|
CALL GET_FAT32_CELL
|
||||||
; <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>襥 <><E1ABAE> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
; ¯à®ç¨â âì ¬« ¤è¥¥ á«®¢® ®¬¥à ª« áâ¥à
|
||||||
LD E,(HL)
|
LD E,(HL)
|
||||||
INC HL
|
INC HL
|
||||||
LD D,(HL)
|
LD D,(HL)
|
||||||
INC HL
|
INC HL
|
||||||
; <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>襥 <><E1ABAE> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
; ¯à®ç¨â âì áâ à襥 á«®¢® ®¬¥à ª« áâ¥à
|
||||||
LD A,(HL)
|
LD A,(HL)
|
||||||
INC HL
|
INC HL
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
@ -1176,12 +1176,12 @@ READ_FROM_FAT: PUSH HL
|
|||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
LD E,A
|
LD E,A
|
||||||
EXX
|
EXX
|
||||||
; <EFBFBD><EFBFBD><EFBFBD><EFBFBD>塞 CF <20> <20><>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20>訡<EFBFBD><E8A8A1> = DssErr.sys.NO_ERROR
|
; ®¡ã«ï¥¬ CF ¨ ãáâ ¢«¨¢ ¥¬ ª®¤ ®è¨¡ª¨ = DssErr.sys.NO_ERROR
|
||||||
XOR A
|
XOR A
|
||||||
; <EFBFBD><EFBFBD>ઠ <20><> <20><>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>襣<EFBFBD> <><E1ABAE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
; ¯à®¢¥àª á«ã¦. ª« áâ¥àë ¬« ¤è¥£® á«®¢ ª« áâ¥à
|
||||||
LD HL,SERVICE_SECTORS.FAT32.Low
|
LD HL,SERVICE_SECTORS.FAT32.Low
|
||||||
SBC HL,DE
|
SBC HL,DE
|
||||||
; <EFBFBD><EFBFBD>ઠ <20><> <20><>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>襣<EFBFBD> <><E1ABAE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
; ¯à®¢¥àª á«ã¦. ª« áâ¥àë áâ à襣® á«®¢ ª« áâ¥à
|
||||||
EXX
|
EXX
|
||||||
LD HL,SERVICE_SECTORS.FAT32.High
|
LD HL,SERVICE_SECTORS.FAT32.High
|
||||||
SBC HL,DE
|
SBC HL,DE
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user