This commit is contained in:
Anatoliy Belyanskiy 2024-06-09 08:00:03 +10:00
parent f2eb4e47e3
commit 6cbff3cf53
5 changed files with 66 additions and 68 deletions

View File

@ -25,7 +25,7 @@
ORG_ADDRESS EQU #8000
LOAD_SECTORS EQU SECTORS_OF_LOADER.AFTER_BPB
LOADER_IN_BPB:
.MAX_SIZE EQU 300
.MAX_SIZE EQU _sBOOT_SECTOR.PARTITION_TABLE - _sBOOT_SECTOR_PARAMS_FAT32
;------------------------------------------------------------------------------
DISP ORG_ADDRESS
@ -863,6 +863,64 @@ LOAD_CORE: LD (READMEM),DE
;
;
; HL:DE / A => DE:BC, H=0, L - ®áâ â®ª
; DIV_for_SPC:
; LD C,A
; DEC A
; JR Z,.DIV_exit
; ;
; AND E
; LD B,A ; ®áâ â®ª
; LD A,C
; RRCA
; ;
; .DIV_loop: SRL H
; RR L
; RR D
; RR E
; RRCA
; JP NC,.DIV_loop
; LD A,B
; .DIV_exit: LD B,D
; LD C,E
; EX DE,HL
; LD H,0
; LD L,A
; RET
//// //// //// //// //// //// //// //// ////
//// //// //// //// //// //// //// //// ////
DISPLAY "SECTORS 1..3 DATA ENDS:\t",/H,$,". Size: ",/D,$-ORG_ADDRESS," b. Free: ",/D,512*3-($-ORG_ADDRESS)," b."
ZERO_SECTOR_OF_BPB:
.physical EQU $$$
//// //// //// //// //// //// //// //// ////
//// //// //// //// //// //// //// //// ////
;FAT_BLOCK * Sectors_in_Block = SECTOR_OF_FAT
; in: HL - Cache block
; out: C:HL - logical number
; B = 0
GET_SECTOR_OF_FAT:
LD A,(FatBuffer.FAT_TYPE)
LD B,FAT_CACHE.Degree_32 ;!FIXIT ᤥ« âì ç¥à¥§ ¯¥à¥¬¥­­ãî
XOR FAT_TYPE.x32
JR Z,.next
LD B,FAT_CACHE.Degree ;!FIXIT ᤥ« âì ç¥à¥§ ¯¥à¥¬¥­­ãî
XOR A
.next: LD C,A
;
.loop: ADD HL,HL ;x2
ADC A,C
DJNZ .loop
;
LD C,A
RET
;
;¢å®¤: HL - ­®¬¥à ª« áâ¥à 
;¢ë室: HL -  ¤à¥á ­ã¦­®© ï祩ª¨ ¢ áâà ­¨æ¥ FATPAGE
; CF - çñâ­ë©/­¥çñâ­ë©  ¤à¥á ª« áâ¥à 
@ -979,63 +1037,7 @@ READ_FAT_TABLE: PUSH HL
OUT (SLOT3),A
POP HL
RET
;
;FAT_BLOCK * Sectors_in_Block = SECTOR_OF_FAT
; in: HL - Cache block
; out: C:HL - logical number
; B = 0
GET_SECTOR_OF_FAT:
LD A,(FatBuffer.FAT_TYPE)
LD B,FAT_CACHE.Degree_32 ;!FIXIT ᤥ« âì ç¥à¥§ ¯¥à¥¬¥­­ãî
XOR FAT_TYPE.x32
JR Z,.next
LD B,FAT_CACHE.Degree ;!FIXIT ᤥ« âì ç¥à¥§ ¯¥à¥¬¥­­ãî
XOR A
.next: LD C,A
;
.loop: ADD HL,HL ;x2
ADC A,C
DJNZ .loop
;
LD C,A
RET
;
;
; HL:DE / A => DE:BC, H=0, L - ®áâ â®ª
; DIV_for_SPC:
; LD C,A
; DEC A
; JR Z,.DIV_exit
; ;
; AND E
; LD B,A ; ®áâ â®ª
; LD A,C
; RRCA
; ;
; .DIV_loop: SRL H
; RR L
; RR D
; RR E
; RRCA
; JP NC,.DIV_loop
; LD A,B
; .DIV_exit: LD B,D
; LD C,E
; EX DE,HL
; LD H,0
; LD L,A
; RET
//// //// //// //// //// //// //// //// ////
//// //// //// //// //// //// //// //// ////
DISPLAY "SECTORS 1..3 DATA ENDS: ",/H,$,". Size: ",/D,$-ORG_ADDRESS," b. Free: ",/D,512*3-($-ORG_ADDRESS)," b."
ZERO_SECTOR_OF_BPB:
.physical EQU $$$
//// //// //// //// //// //// //// //// ////
//// //// //// //// //// //// //// //// ////
;¢å®¤: HL':HL - ­®¬¥à ª« áâ¥à 
;¢ë室: HL -  ¤à¥á ­ã¦­®© ï祩ª¨ ¢ áâà ­¨æ¥ FATPAGE
GET_FAT32_CELL: ; ¤¢¨£ ¥¬ ¢«¥¢® HL':H
@ -1181,9 +1183,6 @@ READ_FROM_FAT: PUSH HL
//// //// //// //// //// //// //// //// ////
//// //// //// //// //// //// //// //// ////
DISPLAY "SECTORS 0 DATA ENDS:\t\t",/H,$,". Size: ",/D,$-ZERO_SECTOR_OF_BPB," b. Free: ",/D,LOADER_IN_BPB.MAX_SIZE-($-ZERO_SECTOR_OF_BPB)," b."
DISPLAY "_sBOOT_SECTOR.BOOT_CODE ", /H, _sBOOT_SECTOR.BOOT_CODE
DISPLAY "_sBOOT_SECTOR.PARTITION_TABLE ", /H, _sBOOT_SECTOR.PARTITION_TABLE
DISPLAY "_sBOOT_SECTOR.MBR_SIGNATURE ", /H, _sBOOT_SECTOR.MBR_SIGNATURE
ZERO_SECTOR_OF_BPB_END:
ZERO_SECTOR_OF_BPB.Size EQU ZERO_SECTOR_OF_BPB_END - ZERO_SECTOR_OF_BPB
//// //// //// //// //// //// //// //// ////

View File

@ -3,7 +3,7 @@
; A - File attribute
; OUTPUT: A - FM
////////////////////////////////////////////////////////////////////////
CREATE: ;!TEST Current Dir ;[x] 15/10/23
CREATE: ;!TEST Current Dir ;[x] 15/10/23 ;CREATE_FN:
PUSH HL
LD C,A
PUSH BC

View File

@ -562,6 +562,9 @@ LEAVE: LD A,B
LD (EXSTACK),SP
LD SP,HL
;
;!TEST
EI
;
EX DE,HL
LD A,(ErrorLevel)
;R12
@ -573,9 +576,6 @@ LEAVE: LD A,B
JP (HL)
;
.norm_exit: AND A
;!TEST
EI
;
JP (HL)
;/////////////////////////////////////////////////////////////////////

View File

@ -158,10 +158,10 @@ SEARCH:
OR A
JR Z,.error_file_not_found
CP #E5 ;!HARDCODE #E5 - § ¯¨áì ¢ ¤¨à¥ªâ®à¨¨ ᢮¡®¤­ , â ª ª ª ä ©«/¤¨à¥ªâ®à¨ï ¡ë«¨ 㤠«¥­ë
JR Z,.next_record_DE
JR Z,.next_record
LD A,(IX+FAT_DIRECTORY_RECORD.ATTRIBUT)
AND C
JR NZ,.next_record_DE
JR NZ,.next_record
LD HL,MASKARE
LD D,XH
LD E,XL
@ -200,7 +200,6 @@ SEARCH:
RET
.next_record:
LD DE,FAT_DIRECTORY_RECORD
.next_record_DE:
;!TEST 9/11/23 record index
; EXX
; INC DE

@ -1 +1 @@
Subproject commit 314ff5dbefe8d537655601dde8236957e4ed39a7
Subproject commit 378f3fdd49601390b3aacfe51e45c6fceba25022