diff --git a/DSS/FS/FAT/FAT_X.asm b/DSS/FS/FAT/FAT_X.asm index e3460c2..45561f1 100644 --- a/DSS/FS/FAT/FAT_X.asm +++ b/DSS/FS/FAT/FAT_X.asm @@ -1211,7 +1211,7 @@ CHECK_FIRST_CLUSTER: OR H RET -; [x] fat32 ;!TEST +; [x] fat32 ; WRITE SECTORS OF FILE ; вход: HL:DE - FP (in sectors) ; IX - data in RAM @@ -1226,7 +1226,7 @@ BLOK_WRITE: LD (READ.PointerOnBuffer),IX PUSH HL ; остаток DIV_for_SPC ;[x] GET/SAVE CLUSTER NUMBER BEFORE/AFTER READ/WRITE PUSH BC ; младшее слово номера кластера - PUSH DE ; [x] fat32 старшее слово номера кластера + PUSH DE ; fat32 старшее слово номера кластера ; ; EXX ; LD L,(IY+_sFM.FS_REC.FIRST_CLUSTER_H) ; START CLUSTER High @@ -1242,7 +1242,7 @@ BLOK_WRITE: LD (READ.PointerOnBuffer),IX JR NZ,.FindCluster ; PUSH BC ; младшее слово номера кластера - PUSH DE ; [x] fat32 старшее слово номера кластера + PUSH DE ; fat32 старшее слово номера кластера ; [x] fat32 CALL G_CLUST JP C,.Error_6 @@ -1255,6 +1255,9 @@ BLOK_WRITE: LD (READ.PointerOnBuffer),IX LD (IY+_sFM.FS_REC.FIRST_CLUSTER_H+1),H EXX ; + XOR A + CALL SET_NEW_FREE_CLUSTERS + ; CALL WRITE_TO_FAT ;!TEST ;!TODO 2/12/23 ; [ ] баг с избыточной записью WRITE_FAT_TABLE? ;PUSH HL @@ -1262,10 +1265,10 @@ BLOK_WRITE: LD (READ.PointerOnBuffer),IX ;POP HL ; POP DE ; младшее слово номера кластера - POP BC ; [x] fat32 старшее слово номера кластера + POP BC ; fat32 старшее слово номера кластера ; INC B - INC D ; [x] fat32 + INC D ; fat32 PUSH DE JP .enter_loop ;[x] GET/SAVE CLUSTER NUMBER BEFORE/AFTER READ/WRITE @@ -1273,7 +1276,7 @@ BLOK_WRITE: LD (READ.PointerOnBuffer),IX ;HL': HL - известный кластер файла для отсчёта ;DE : BC - оставшееся смещение в файле в кластерах (D=D+1, B=B+1) ; - PUSH DE ; [x] оставшееся смещение в файле в кластерах (старшее слово) + PUSH DE ; оставшееся смещение в файле в кластерах (старшее слово) JP .enter_loop ; ; [x] fat32 @@ -1296,7 +1299,7 @@ BLOK_WRITE: LD (READ.PointerOnBuffer),IX .enter_loop: INC B DEC BC DJNZ .loop - POP BC ; [x] оставшееся смещение в файле в кластерах (старшее слово) + POP BC ; оставшееся смещение в файле в кластерах (старшее слово) INC B DEC BC DJNZ .loop_big diff --git a/DSS/build.txt b/DSS/build.txt index 9a32da2..6f17eed 100644 --- a/DSS/build.txt +++ b/DSS/build.txt @@ -1 +1 @@ -984 \ No newline at end of file +985 \ No newline at end of file diff --git a/SHELL/Commands/DIR.ASM b/SHELL/Commands/DIR.ASM index ae5f3f8..23008c1 100644 --- a/SHELL/Commands/DIR.ASM +++ b/SHELL/Commands/DIR.ASM @@ -784,6 +784,7 @@ GET_BIG_DIG: ld b,"0"-1 inc ix ret ; stop +; A:HL':HL - число для перевода PRINT_5BYTES: ld ix,L40BIT.Str ; "00" ld c,#17 exx @@ -811,7 +812,7 @@ PRINT_5BYTES: ld ix,L40BIT.Str ; "00" ; ; DE':DE = 100,000,000 CALL MAKE_LN.skip_1 -.exit_clean: ld de,SIZE_BUFFER.high ; "0 000 000 000" + ld de,SIZE_BUFFER.high ; "0 000 000 000" ld hl,L40BIT.Str ; "0000000000" ldi ldi