diff --git a/DSS/FS/FAT/FAT.asm b/DSS/FS/FAT/FAT.asm index 640ec18..b156df1 100644 --- a/DSS/FS/FAT/FAT.asm +++ b/DSS/FS/FAT/FAT.asm @@ -9,7 +9,26 @@ ;R07 17-12-1999 DNS BUG FIX SIGNATURE #55AA AT 510 OFFSET ;--------------------------------------------------------------- ;----------------------------------------------------------------------; - +MAKE_FSinfo: ; чистим сектор + LD HL,CORE_BUFFERS.SECTOR_BUFFER + LD DE,CORE_BUFFERS.SECTOR_BUFFER+1 + LD (HL),0 + LD BC,512 - 1 ;!HARDCODE размер сектора + LDIR + ; LEAD_SIGNATURE + LD HL,#5252 + LD (CORE_BUFFERS.SECTOR_BUFFER + _sFSinfo.LEAD_SIGNATURE),HL + LD HL,#4161 + LD (CORE_BUFFERS.SECTOR_BUFFER + _sFSinfo.LEAD_SIGNATURE + 2),HL + ; DATA_SIGNATURE + LD HL,#7272 + LD (CORE_BUFFERS.SECTOR_BUFFER + _sFSinfo.DATA_SIGNATURE),HL + LD HL,#6141 + LD (CORE_BUFFERS.SECTOR_BUFFER + _sFSinfo.DATA_SIGNATURE + 2),HL + ; SECTOR_SIGNATURE + LD HL,#AA55 + LD (CORE_BUFFERS.SECTOR_BUFFER + _sFSinfo.SECTOR_SIGNATURE),HL + RET ; сбрасывает значение свободных кластеров на "неопределено" ; меняет значение первого свободного кластера SET_FSInfo: LD A,(CORE_BUFFERS.FatBuffer.FAT_TYPE) @@ -21,9 +40,10 @@ SET_FSInfo: LD A,(CORE_BUFFERS.FatBuffer.FAT_TYPE) RET Z ; ;!TODO формировать самому в буфер - CALL READ_FSinfo + ;CALL READ_FSinfo + CALL MAKE_FSinfo ; - ;!TODO FREE_CLUSTERS_COUNT + ; FREE_CLUSTERS_COUNT LD HL,(CORE_BUFFERS.FatBuffer.FREE_CLUSTERS_COUNT_L) LD (CORE_BUFFERS.SECTOR_BUFFER + _sFSinfo.FREE_CLUSTERS_COUNT),HL LD HL,(CORE_BUFFERS.FatBuffer.FREE_CLUSTERS_COUNT_H) @@ -1040,7 +1060,7 @@ RD_BPB: ; LD C,SLOT3 LD DE,#6141 SBC HL,DE JR NZ,.error - ;!TODO FREE_CLUSTERS_COUNT + ; FREE_CLUSTERS_COUNT LD BC,(CORE_BUFFERS.SECTOR_BUFFER + _sFSinfo.FREE_CLUSTERS_COUNT) LD DE,(CORE_BUFFERS.SECTOR_BUFFER + _sFSinfo.FREE_CLUSTERS_COUNT+2) ; CF = 0 diff --git a/DSS/build.txt b/DSS/build.txt index a637eba..37944e4 100644 --- a/DSS/build.txt +++ b/DSS/build.txt @@ -1 +1 @@ -980 \ No newline at end of file +981 \ No newline at end of file diff --git a/SHELL/Commands/DIR.ASM b/SHELL/Commands/DIR.ASM index b0e8251..1f0b0c4 100644 --- a/SHELL/Commands/DIR.ASM +++ b/SHELL/Commands/DIR.ASM @@ -61,7 +61,7 @@ cmd_dir: push de ; LD A,32-5 ; количество строк до ожидания клавиши (с вычетом заголовка) ;!HARDCODE PUSH AF - ; цикл вывода списка файлов/папок + ; цикл вывода списка файлов/папок .loop: POP AF .key_p+1: and #ff dec a