mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 09:21:47 +03:00
SYS: Загрузка System.dos > #4000 байтов. Исправлен баг с ненужной проверкой расстояния от BPB до FAT для HDD. SHELL: мелкие правки
73 lines
1.6 KiB
NASM
73 lines
1.6 KiB
NASM
; [x] fat32 ;!TEST
|
||
////////////////////////////////////////////////////////////////////////
|
||
; INPUT: HL - "c:\dir\filename.ext",#00 without simbols * ?
|
||
////////////////////////////////////////////////////////////////////////
|
||
DEL_FN: ;!TEST
|
||
;!TEST Current Dir ;[x] 15/10/23
|
||
PUSH HL
|
||
CALL DIR_PATH_CHECK
|
||
POP HL
|
||
RET C
|
||
;
|
||
CALL GETWORD ; â¥áâ ¤®¯ãáâ. ¨¬ï ¨ áâà. ¤¨áª
|
||
RET C
|
||
CALL MASK
|
||
RET C
|
||
;
|
||
;!TEST optimization
|
||
;LD HL,MASKARE
|
||
;LD BC,11
|
||
;LD A,"?"
|
||
;CPIR
|
||
;LD A,DSS_Error.sys.INVALID_NAME
|
||
;SCF
|
||
CALL CHECK_NAME
|
||
;
|
||
RET Z
|
||
CALL LOADDIR
|
||
CALL SEARCH.File
|
||
RET C
|
||
; ¯®¬¥â¨âì § ¯¨áì ª ª "㤠«¥ ï"
|
||
;!TODO record index. ¢®§¬®¦®, çâ® ¬®¦¥â á«®¬ âìáï, ¥á«¨ ¡®«ìè¥ áâà ¨æë
|
||
.DELETE:
|
||
SET_PAGE_X DIRPAGE
|
||
EX AF,AF'
|
||
LD (IX + _sFAT_DIRECTORY_RECORD.NAME),#E5 ; ¯à¨§ ª 㤠«¥¨ï ä ©«
|
||
; fat32
|
||
LD E,(IX+_sFAT_DIRECTORY_RECORD.FIRST_CLUSTER_H) ; ü ¯¥à¢®£® ª« áâ¥à
|
||
LD D,(IX+_sFAT_DIRECTORY_RECORD.FIRST_CLUSTER_H+1)
|
||
LD A,E
|
||
OR D
|
||
EXX
|
||
LD E,(IX+_sFAT_DIRECTORY_RECORD.FIRST_CLUSTER_L) ; ü ¯¥à¢®£® ª« áâ¥à
|
||
LD D,(IX+_sFAT_DIRECTORY_RECORD.FIRST_CLUSTER_L+1)
|
||
OR D
|
||
OR E
|
||
;
|
||
EX AF,AF'
|
||
OUT (SLOT3),A
|
||
EX AF,AF'
|
||
JP Z,SAVEDIR ; á¡à®á¨âì ª¥è ª â «®£ ¤¨áª
|
||
; ¥á«¨ à §¬¥à ä ©« ¥ ®«ì
|
||
.loop: EX DE,HL ; hl=®¬¥à ª« áâ¥à
|
||
EXX
|
||
EX DE,HL
|
||
EXX
|
||
CALL READ_FROM_FAT ; ¯à®ç¨â âì ¨§ ª¥è FAT- ®¬¥à á«¥¤. ª« áâ¥à
|
||
EXX
|
||
PUSH DE ; ®¬¥à á«¥¤. ª« áâ¥à
|
||
PUSH AF
|
||
LD DE,#0000 ; ®¬¥à ª« áâ¥à
|
||
EXX
|
||
PUSH DE
|
||
LD DE,#0000 ; ®¬¥à ª« áâ¥à
|
||
CALL WRITE_TO_FAT.Custom ; § ¯¨á âì ¢ ª¥è FAT- ®¬¥à ª« áâ¥à
|
||
POP DE
|
||
EXX
|
||
POP AF
|
||
POP DE
|
||
EXX
|
||
JP NC,.loop
|
||
CALL WRITE_FAT_TABLE
|
||
JP SAVEDIR ; á¡à®á¨âì ª¥è ª â «®£ ¤¨áª
|
||
; |