mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 01:11:48 +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 § £à㦠¥â ®¤¨ ᥪâ®à § £àã§ç¨ª ¨ ¯¥à¥¤ ñâ ¥¬ã ã¯à ¢«¥¨¥.
|
||||
|
||||
; 0 - ®à¨£¨ «ìë© ¢ ਠ⠧ ¯ã᪠DSS, 1 - ¢ ਠ⠑ ©¬
|
||||
DEFINE ORIGINAL_DSS 0
|
||||
; 1 - ¡ã¤¥â £à㧨âì ¢¥àá¨î ‘ ©¬ ¨ ®á®¢ãî. 0 - ⮫쪮 ®á®¢ãî.
|
||||
DEFINE UNIVERSAL_BOOT 1
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
ORG_ADDRESS EQU #8000
|
||||
MAX_SECTORS_PER_PAGE EQU #20 ;¬ ªá¨¬ «ì®¥ ª®«-¢® ᥪâ®à®¢ ¢ áâà ¨æ¥ ;!TODO ¥á«¨ ᥪâ®à ¡®«ìè¥ 512?
|
||||
|
||||
@ -64,7 +64,7 @@ RENAME: ; Current Dir 15/10/23
|
||||
LD BC,11
|
||||
LDIR
|
||||
;
|
||||
CALL DELETE_LFN_RECORDS ; [ ] 膉𠼻平言 <20>祠嶁 LFN
|
||||
;CALL DELETE_LFN_RECORDS ; [ ] 膉𠼻平言 <20>祠嶁 LFN
|
||||
;
|
||||
EX AF,AF'
|
||||
OUT (SLOT3),A
|
||||
|
||||
@ -41,6 +41,7 @@ RMDIR: ; Current Dir 15/10/23
|
||||
LD HL,(CORE_BUFFERS.HANDBUF + FAT_DIRECTORY_RECORD.FIRST_CLUSTER_L)
|
||||
PUSH IX ;!TODO record index. ¢®§¬®¦®, çâ® ¬®¦¥â á«®¬ âìáï, ¥á«¨ ¡®«ìè¥ áâà ¨æë
|
||||
;
|
||||
;!FIXIT ;[ ] big dir. ¯à®¢¥àïâì, çâ® ¯ãá⮩ ç¥à¥§ ®¢ë© ¢ë§®¢ Find.
|
||||
;!TODO <20>à®æ¥¤ãà ¯®«®£® ¢ëç¨âë¢ ¨ï ª â «®£ (¢á¥ ª« áâ¥àë). Œ®¦® § ¤¥©á⢮¢ âì ¢ ¤àã£¨å ¬¥áâ å
|
||||
.read_dir_big_loop:
|
||||
PUSH HL
|
||||
|
||||
@ -860,7 +860,7 @@ WRITE_DIR_HANDLE:
|
||||
POP DE
|
||||
RET
|
||||
;----------------------------------------------------------------------;
|
||||
ASSERT 0 "TODO!"
|
||||
ASSERT 0 "TODO! GET_ADDR_IN_DIR_CACHE"
|
||||
;!TODO
|
||||
; .DIRSIZE ¯®¬¥è ¥â ¥á«¨ ¢ ªíè ¡ã¤¥â ¤à㣠ï áâà ¨æ ?
|
||||
; LOAD_SAVE_DIR_PREPARE ¢®§¬®¦® ¥ 㦥, 㦮 ⮫쪮 ãáâ ®¢¨âì ¯à ¢¨«ì®¥ ᬥ饨¥ ¢ FM
|
||||
@ -896,6 +896,7 @@ SAVEDIR: ;!TODO optimize
|
||||
OUT (SLOT3),A
|
||||
RET
|
||||
;
|
||||
; FAT12-16
|
||||
.SaveRootDir: LD HL,(CORE_BUFFERS.FS_Buffer.RootDirFirstSector_H) ;!TODO ¢®§¬®¦®, å¢ â¨â LD HL,0
|
||||
LD IX,(CORE_BUFFERS.FS_Buffer.RootDirFirstSector_L)
|
||||
LD A,(CORE_BUFFERS.FS_Buffer.DirSizeInSectors)
|
||||
@ -1453,12 +1454,36 @@ FS_Buffer:
|
||||
; 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
|
||||
; ¢ Š<>˜ ¤¨à¥ªâ®à¨¨ ¤®«¦ ¡ëâì § £à㦥 ç áâì á 㦮© § ¯¨áìî
|
||||
;!TODO record index. ¢®§¬®¦®, çâ® ¬®¦¥â á«®¬ âìáï, ¥á«¨ ¡®«ìè¥ áâà ¨æë
|
||||
DELETE_REC_FAT: SET_PAGE_X DIRPAGE
|
||||
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 ; ¯à¨§ ª 㤠«¥¨ï ä ©«
|
||||
; fat32
|
||||
LD L,(IX+FAT_DIRECTORY_RECORD.FIRST_CLUSTER_H) ; ü ¯¥à¢®£® ª« áâ¥à
|
||||
|
||||
@ -3,17 +3,19 @@
|
||||
; REN, RENAME. <20>¥à¥¨¬¥®¢ âì ä ©«
|
||||
;
|
||||
;///////////////////////////////////////////////////
|
||||
cmd_rename:
|
||||
ex de,hl
|
||||
ld de,Buffers.work.buffer1;
|
||||
ld c,Dss.GSwitch
|
||||
RST ToDSS
|
||||
ld de,Buffers.work.buffer+256;
|
||||
ld c,Dss.GSwitch
|
||||
RST ToDSS
|
||||
ld hl,Buffers.work.buffer1;
|
||||
ld de,Buffers.work.buffer+256;
|
||||
ld c,Dss.Rename
|
||||
RST ToDSS
|
||||
call c,print_err_message ; ¢ë¢®¤ á®®¡é¥¨ï
|
||||
ret
|
||||
cmd_rename: EX DE,HL
|
||||
LD DE,Buffers.work.buffer1;
|
||||
LD C,Dss.GSwitch
|
||||
RST ToDSS
|
||||
;
|
||||
LD DE,Buffers.work.buffer + 256;
|
||||
LD C,Dss.GSwitch
|
||||
RST ToDSS
|
||||
;
|
||||
LD HL,Buffers.work.buffer1;
|
||||
LD DE,Buffers.work.buffer + 256;
|
||||
LD C,Dss.Rename
|
||||
RST ToDSS
|
||||
;
|
||||
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 & #3FFF €¤à¥á 㦮© ¯®§¨æ¨¨ ¢ ªíè
|
||||
(#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