mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-18 10:50:34 +03:00
bugfixes
This commit is contained in:
parent
f2eb4e47e3
commit
6cbff3cf53
119
BOOT/DSSBOOT.ASM
119
BOOT/DSSBOOT.ASM
@ -25,7 +25,7 @@
|
|||||||
ORG_ADDRESS EQU #8000
|
ORG_ADDRESS EQU #8000
|
||||||
LOAD_SECTORS EQU SECTORS_OF_LOADER.AFTER_BPB
|
LOAD_SECTORS EQU SECTORS_OF_LOADER.AFTER_BPB
|
||||||
LOADER_IN_BPB:
|
LOADER_IN_BPB:
|
||||||
.MAX_SIZE EQU 300
|
.MAX_SIZE EQU _sBOOT_SECTOR.PARTITION_TABLE - _sBOOT_SECTOR_PARAMS_FAT32
|
||||||
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
||||||
|
|
||||||
DISP ORG_ADDRESS
|
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 - ®¬¥à ª« áâ¥à
|
||||||
;¢ë室: HL - ¤à¥á 㦮© ï祩ª¨ ¢ áâà ¨æ¥ FATPAGE
|
;¢ë室: HL - ¤à¥á 㦮© ï祩ª¨ ¢ áâà ¨æ¥ FATPAGE
|
||||||
; CF - çñâë©/¥çñâë© ¤à¥á ª« áâ¥à
|
; CF - çñâë©/¥çñâë© ¤à¥á ª« áâ¥à
|
||||||
@ -979,63 +1037,7 @@ READ_FAT_TABLE: PUSH HL
|
|||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
POP HL
|
POP HL
|
||||||
RET
|
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':HL - ®¬¥à ª« áâ¥à
|
||||||
;¢ë室: HL - ¤à¥á 㦮© ï祩ª¨ ¢ áâà ¨æ¥ FATPAGE
|
;¢ë室: HL - ¤à¥á 㦮© ï祩ª¨ ¢ áâà ¨æ¥ FATPAGE
|
||||||
GET_FAT32_CELL: ; ¤¢¨£ ¥¬ ¢«¥¢® HL':H
|
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 "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_END:
|
||||||
ZERO_SECTOR_OF_BPB.Size EQU ZERO_SECTOR_OF_BPB_END - ZERO_SECTOR_OF_BPB
|
ZERO_SECTOR_OF_BPB.Size EQU ZERO_SECTOR_OF_BPB_END - ZERO_SECTOR_OF_BPB
|
||||||
//// //// //// //// //// //// //// //// ////
|
//// //// //// //// //// //// //// //// ////
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
; A - File attribute
|
; A - File attribute
|
||||||
; OUTPUT: A - FM
|
; OUTPUT: A - FM
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
CREATE: ;!TEST Current Dir ;[x] 15/10/23
|
CREATE: ;!TEST Current Dir ;[x] 15/10/23 ;CREATE_FN:
|
||||||
PUSH HL
|
PUSH HL
|
||||||
LD C,A
|
LD C,A
|
||||||
PUSH BC
|
PUSH BC
|
||||||
|
|||||||
@ -562,6 +562,9 @@ LEAVE: LD A,B
|
|||||||
LD (EXSTACK),SP
|
LD (EXSTACK),SP
|
||||||
LD SP,HL
|
LD SP,HL
|
||||||
;
|
;
|
||||||
|
;!TEST
|
||||||
|
EI
|
||||||
|
;
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
LD A,(ErrorLevel)
|
LD A,(ErrorLevel)
|
||||||
;R12
|
;R12
|
||||||
@ -573,9 +576,6 @@ LEAVE: LD A,B
|
|||||||
JP (HL)
|
JP (HL)
|
||||||
;
|
;
|
||||||
.norm_exit: AND A
|
.norm_exit: AND A
|
||||||
;!TEST
|
|
||||||
EI
|
|
||||||
;
|
|
||||||
JP (HL)
|
JP (HL)
|
||||||
;/////////////////////////////////////////////////////////////////////
|
;/////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|||||||
@ -158,10 +158,10 @@ SEARCH:
|
|||||||
OR A
|
OR A
|
||||||
JR Z,.error_file_not_found
|
JR Z,.error_file_not_found
|
||||||
CP #E5 ;!HARDCODE #E5 - § ¯¨áì ¢ ¤¨à¥ªâ®à¨¨ ᢮¡®¤ , â ª ª ª ä ©«/¤¨à¥ªâ®à¨ï ¡ë«¨ 㤠«¥ë
|
CP #E5 ;!HARDCODE #E5 - § ¯¨áì ¢ ¤¨à¥ªâ®à¨¨ ᢮¡®¤ , â ª ª ª ä ©«/¤¨à¥ªâ®à¨ï ¡ë«¨ 㤠«¥ë
|
||||||
JR Z,.next_record_DE
|
JR Z,.next_record
|
||||||
LD A,(IX+FAT_DIRECTORY_RECORD.ATTRIBUT)
|
LD A,(IX+FAT_DIRECTORY_RECORD.ATTRIBUT)
|
||||||
AND C
|
AND C
|
||||||
JR NZ,.next_record_DE
|
JR NZ,.next_record
|
||||||
LD HL,MASKARE
|
LD HL,MASKARE
|
||||||
LD D,XH
|
LD D,XH
|
||||||
LD E,XL
|
LD E,XL
|
||||||
@ -200,7 +200,6 @@ SEARCH:
|
|||||||
RET
|
RET
|
||||||
.next_record:
|
.next_record:
|
||||||
LD DE,FAT_DIRECTORY_RECORD
|
LD DE,FAT_DIRECTORY_RECORD
|
||||||
.next_record_DE:
|
|
||||||
;!TEST 9/11/23 record index
|
;!TEST 9/11/23 record index
|
||||||
; EXX
|
; EXX
|
||||||
; INC DE
|
; INC DE
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
Subproject commit 314ff5dbefe8d537655601dde8236957e4ed39a7
|
Subproject commit 378f3fdd49601390b3aacfe51e45c6fceba25022
|
||||||
Loading…
Reference in New Issue
Block a user