mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 09:21:47 +03:00
GET_ADDR_IN_DIR_CACHE
This commit is contained in:
parent
3c8e693290
commit
a404ff43cb
0
.tmp/disasm.list
Normal file
0
.tmp/disasm.list
Normal file
@ -16,11 +16,6 @@
|
|||||||
|
|
||||||
; BIOS 3.06 § £à㦠¥â ®¤¨ ᥪâ®à § £àã§ç¨ª ¨ ¯¥à¥¤ ñâ ¥¬ã ã¯à ¢«¥¨¥.
|
; BIOS 3.06 § £à㦠¥â ®¤¨ ᥪâ®à § £àã§ç¨ª ¨ ¯¥à¥¤ ñâ ¥¬ã ã¯à ¢«¥¨¥.
|
||||||
|
|
||||||
; 0 - ®à¨£¨ «ìë© ¢ ਠ⠧ ¯ã᪠DSS, 1 - ¢ ਠ⠑ ©¬
|
|
||||||
DEFINE ORIGINAL_DSS 0
|
|
||||||
; 1 - ¡ã¤¥â £à㧨âì ¢¥àá¨î ‘ ©¬ ¨ ®á®¢ãî. 0 - ⮫쪮 ®á®¢ãî.
|
|
||||||
DEFINE UNIVERSAL_BOOT 1
|
|
||||||
|
|
||||||
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
||||||
ORG_ADDRESS EQU #8000
|
ORG_ADDRESS EQU #8000
|
||||||
MAX_SECTORS_PER_PAGE EQU #20 ;¬ ªá¨¬ «ì®¥ ª®«-¢® ᥪâ®à®¢ ¢ áâà ¨æ¥ ;!TODO ¥á«¨ ᥪâ®à ¡®«ìè¥ 512?
|
MAX_SECTORS_PER_PAGE EQU #20 ;¬ ªá¨¬ «ì®¥ ª®«-¢® ᥪâ®à®¢ ¢ áâà ¨æ¥ ;!TODO ¥á«¨ ᥪâ®à ¡®«ìè¥ 512?
|
||||||
|
|||||||
@ -64,7 +64,7 @@ RENAME: ; Current Dir 15/10/23
|
|||||||
LD BC,11
|
LD BC,11
|
||||||
LDIR
|
LDIR
|
||||||
;
|
;
|
||||||
CALL DELETE_LFN_RECORDS ; [ ] 膉𠼻平言 <20>祠嶁 LFN
|
;CALL DELETE_LFN_RECORDS ; [ ] 膉𠼻平言 <20>祠嶁 LFN
|
||||||
;
|
;
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
|
|||||||
@ -41,6 +41,7 @@ RMDIR: ; Current Dir 15/10/23
|
|||||||
LD HL,(CORE_BUFFERS.HANDBUF + FAT_DIRECTORY_RECORD.FIRST_CLUSTER_L)
|
LD HL,(CORE_BUFFERS.HANDBUF + FAT_DIRECTORY_RECORD.FIRST_CLUSTER_L)
|
||||||
PUSH IX ;!TODO record index. ¢®§¬®¦®, çâ® ¬®¦¥â á«®¬ âìáï, ¥á«¨ ¡®«ìè¥ áâà ¨æë
|
PUSH IX ;!TODO record index. ¢®§¬®¦®, çâ® ¬®¦¥â á«®¬ âìáï, ¥á«¨ ¡®«ìè¥ áâà ¨æë
|
||||||
;
|
;
|
||||||
|
;!FIXIT ;[ ] big dir. ¯à®¢¥àïâì, çâ® ¯ãá⮩ ç¥à¥§ ®¢ë© ¢ë§®¢ Find.
|
||||||
;!TODO <20>à®æ¥¤ãà ¯®«®£® ¢ëç¨âë¢ ¨ï ª â «®£ (¢á¥ ª« áâ¥àë). Œ®¦® § ¤¥©á⢮¢ âì ¢ ¤àã£¨å ¬¥áâ å
|
;!TODO <20>à®æ¥¤ãà ¯®«®£® ¢ëç¨âë¢ ¨ï ª â «®£ (¢á¥ ª« áâ¥àë). Œ®¦® § ¤¥©á⢮¢ âì ¢ ¤àã£¨å ¬¥áâ å
|
||||||
.read_dir_big_loop:
|
.read_dir_big_loop:
|
||||||
PUSH HL
|
PUSH HL
|
||||||
|
|||||||
@ -860,7 +860,7 @@ WRITE_DIR_HANDLE:
|
|||||||
POP DE
|
POP DE
|
||||||
RET
|
RET
|
||||||
;----------------------------------------------------------------------;
|
;----------------------------------------------------------------------;
|
||||||
ASSERT 0 "TODO!"
|
ASSERT 0 "TODO! GET_ADDR_IN_DIR_CACHE"
|
||||||
;!TODO
|
;!TODO
|
||||||
; .DIRSIZE ¯®¬¥è ¥â ¥á«¨ ¢ ªíè ¡ã¤¥â ¤à㣠ï áâà ¨æ ?
|
; .DIRSIZE ¯®¬¥è ¥â ¥á«¨ ¢ ªíè ¡ã¤¥â ¤à㣠ï áâà ¨æ ?
|
||||||
; LOAD_SAVE_DIR_PREPARE ¢®§¬®¦® ¥ 㦥, 㦮 ⮫쪮 ãáâ ®¢¨âì ¯à ¢¨«ì®¥ ᬥ饨¥ ¢ FM
|
; LOAD_SAVE_DIR_PREPARE ¢®§¬®¦® ¥ 㦥, 㦮 ⮫쪮 ãáâ ®¢¨âì ¯à ¢¨«ì®¥ ᬥ饨¥ ¢ FM
|
||||||
@ -896,6 +896,7 @@ SAVEDIR: ;!TODO optimize
|
|||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
|
; FAT12-16
|
||||||
.SaveRootDir: LD HL,(CORE_BUFFERS.FS_Buffer.RootDirFirstSector_H) ;!TODO ¢®§¬®¦®, å¢ â¨â LD HL,0
|
.SaveRootDir: LD HL,(CORE_BUFFERS.FS_Buffer.RootDirFirstSector_H) ;!TODO ¢®§¬®¦®, å¢ â¨â LD HL,0
|
||||||
LD IX,(CORE_BUFFERS.FS_Buffer.RootDirFirstSector_L)
|
LD IX,(CORE_BUFFERS.FS_Buffer.RootDirFirstSector_L)
|
||||||
LD A,(CORE_BUFFERS.FS_Buffer.DirSizeInSectors)
|
LD A,(CORE_BUFFERS.FS_Buffer.DirSizeInSectors)
|
||||||
@ -1453,12 +1454,36 @@ FS_Buffer:
|
|||||||
; FAT_X 12-16-32
|
; FAT_X 12-16-32
|
||||||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
||||||
|
|
||||||
|
|
||||||
|
; ‚室: IX - 㪠§ â¥«ì ®¬¥à § ¯¨á¨ ¢ ª â «®£¥
|
||||||
|
; ‚ë室: HL - ᬥ饨¥ ¢ SLOT3 § ¯¨áì ¢ ª â «®£¥
|
||||||
|
GET_ADDR_IN_DIR_CACHE:
|
||||||
|
LD A,3
|
||||||
|
PUSH IX
|
||||||
|
POP HL
|
||||||
|
RR H
|
||||||
|
;
|
||||||
|
RR L
|
||||||
|
RRA
|
||||||
|
RR L
|
||||||
|
RRA
|
||||||
|
RR L
|
||||||
|
RRA
|
||||||
|
LD H,L
|
||||||
|
LD L,A
|
||||||
|
LD A,H
|
||||||
|
OR #C0
|
||||||
|
LD H,A
|
||||||
|
RET
|
||||||
|
|
||||||
|
|
||||||
; “¤ «ï¥â § ¯¨áì ¢ ª â «®£¥ ¨ ®á¢®¡®¦¤ ¥â § ïâãî æ¥¯®çªã ª« áâ¥à®¢
|
; “¤ «ï¥â § ¯¨áì ¢ ª â «®£¥ ¨ ®á¢®¡®¦¤ ¥â § ïâãî æ¥¯®çªã ª« áâ¥à®¢
|
||||||
; ‚室: IX - 㪠§ ⥫ì 㤠«ï¥¬ãî § ¯¨áì ¢ DIRPAGE
|
; ‚室: IX - 㪠§ ⥫ì 㤠«ï¥¬ãî § ¯¨áì ¢ DIRPAGE
|
||||||
|
; ¢ Š<>˜ ¤¨à¥ªâ®à¨¨ ¤®«¦ ¡ëâì § £à㦥 ç áâì á 㦮© § ¯¨áìî
|
||||||
;!TODO record index. ¢®§¬®¦®, çâ® ¬®¦¥â á«®¬ âìáï, ¥á«¨ ¡®«ìè¥ áâà ¨æë
|
;!TODO record index. ¢®§¬®¦®, çâ® ¬®¦¥â á«®¬ âìáï, ¥á«¨ ¡®«ìè¥ áâà ¨æë
|
||||||
DELETE_REC_FAT: SET_PAGE_X DIRPAGE
|
DELETE_REC_FAT: SET_PAGE_X DIRPAGE
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
CALL DELETE_LFN_RECORDS ; [ ] big dir ; [x] 膉𠼻平言 <20>祠嶁 LFN
|
;CALL DELETE_LFN_RECORDS ; [ ] big dir ; [x] 㤠«¥¨¥ § ¯¨á¨ LFN
|
||||||
LD (IX + FAT_DIRECTORY_RECORD.NAME),#E5 ; ¯à¨§ ª 㤠«¥¨ï ä ©«
|
LD (IX + FAT_DIRECTORY_RECORD.NAME),#E5 ; ¯à¨§ ª 㤠«¥¨ï ä ©«
|
||||||
; fat32
|
; fat32
|
||||||
LD L,(IX+FAT_DIRECTORY_RECORD.FIRST_CLUSTER_H) ; ü ¯¥à¢®£® ª« áâ¥à
|
LD L,(IX+FAT_DIRECTORY_RECORD.FIRST_CLUSTER_H) ; ü ¯¥à¢®£® ª« áâ¥à
|
||||||
|
|||||||
@ -3,17 +3,19 @@
|
|||||||
; REN, RENAME. <20>¥à¥¨¬¥®¢ âì ä ©«
|
; REN, RENAME. <20>¥à¥¨¬¥®¢ âì ä ©«
|
||||||
;
|
;
|
||||||
;///////////////////////////////////////////////////
|
;///////////////////////////////////////////////////
|
||||||
cmd_rename:
|
cmd_rename: EX DE,HL
|
||||||
ex de,hl
|
LD DE,Buffers.work.buffer1;
|
||||||
ld de,Buffers.work.buffer1;
|
LD C,Dss.GSwitch
|
||||||
ld c,Dss.GSwitch
|
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
ld de,Buffers.work.buffer+256;
|
;
|
||||||
ld c,Dss.GSwitch
|
LD DE,Buffers.work.buffer + 256;
|
||||||
|
LD C,Dss.GSwitch
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
ld hl,Buffers.work.buffer1;
|
;
|
||||||
ld de,Buffers.work.buffer+256;
|
LD HL,Buffers.work.buffer1;
|
||||||
ld c,Dss.Rename
|
LD DE,Buffers.work.buffer + 256;
|
||||||
|
LD C,Dss.Rename
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
call c,print_err_message ; ¢ë¢®¤ á®®¡é¥¨ï
|
;
|
||||||
ret
|
CALL C,print_err_message ; ¢ë¢®¤ á®®¡é¥¨ï
|
||||||
|
RET
|
||||||
|
|||||||
39
TMP_CODE.ASM
39
TMP_CODE.ASM
@ -263,6 +263,45 @@ LOAD_SAVE_DIR_PREPARE:
|
|||||||
#1FFFE0 & #1FC000 ᬥ饨¥ ã¦ë© ¡«®ª ¯® #4000 ¡ ©â®¢
|
#1FFFE0 & #1FC000 ᬥ饨¥ ã¦ë© ¡«®ª ¯® #4000 ¡ ©â®¢
|
||||||
#1FFFE0 & #3FFF €¤à¥á 㦮© ¯®§¨æ¨¨ ¢ ªíè
|
#1FFFE0 & #3FFF €¤à¥á 㦮© ¯®§¨æ¨¨ ¢ ªíè
|
||||||
(#1FFFE0 & #1FC000)<<2 ¤¢¨£ ¥¬ ¡ ©â 2 ¨ 3 ç⮡ ¯®«ãç¨âì ®¬¥à ¡«®ª
|
(#1FFFE0 & #1FC000)<<2 ¤¢¨£ ¥¬ ¡ ©â 2 ¨ 3 ç⮡ ¯®«ãç¨âì ®¬¥à ¡«®ª
|
||||||
|
|
||||||
|
3025
|
||||||
|
#0BD1 ®¬¥à § ¯¨á¨
|
||||||
|
#017A20 ᬥ饨¥ § ¯¨áì ¢ ä ©«¥ ¤¨à¥ªâ®à¨¨
|
||||||
|
#017A20 & #1FC000 = #014000 ᬥ饨¥ ã¦ë© ¡«®ª ¯® #4000 ¡ ©â®¢
|
||||||
|
#017A20 & #3FFF = #3A20 €¤à¥á 㦮© ¯®§¨æ¨¨ ¢ ªíè
|
||||||
|
(#017A20 & #1FC000)<<2 = #50000 ¤¢¨£ ¥¬ ¡ ©â 2 ¨ 3 ç⮡ ¯®«ãç¨âì ®¬¥à ¡«®ª
|
||||||
|
|
||||||
|
1011 1101 0001
|
||||||
|
|
||||||
|
0001 1101 0001
|
||||||
|
0000 1110 1000 1000
|
||||||
|
0000 0111 0100 0100
|
||||||
|
0000 0011 1010 0010
|
||||||
|
A E
|
||||||
|
00000001 11010001 +
|
||||||
|
10000000 11101000
|
||||||
|
01000000 01110100
|
||||||
|
00100000 00111010
|
||||||
|
|
||||||
|
0010 0000 0011 1010
|
||||||
|
E A
|
||||||
|
0011 1010 0010 0000
|
||||||
|
|
||||||
|
0001 0111 1010 0010 0000
|
||||||
|
0000 0011 1010 0010 0000
|
||||||
|
0001 0100 0000 0000 0000
|
||||||
|
|
||||||
|
XOR A
|
||||||
|
PUSH IX
|
||||||
|
POP DE
|
||||||
|
RR D
|
||||||
|
;
|
||||||
|
RR E
|
||||||
|
RRA
|
||||||
|
RR E
|
||||||
|
RRA
|
||||||
|
RR E
|
||||||
|
RRA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
;----------------------------------------------------------------------;
|
;----------------------------------------------------------------------;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user