Skip to content

fatfs.c: fix to the fix to the fix, only write file size if appended#246

Merged
PerditionC merged 1 commit intoFDOS:masterfrom
ecm-pushbx:ecm-fix-third-time-is-the-charm
Apr 23, 2026
Merged

fatfs.c: fix to the fix to the fix, only write file size if appended#246
PerditionC merged 1 commit intoFDOS:masterfrom
ecm-pushbx:ecm-fix-third-time-is-the-charm

Conversation

@ecm-pushbx
Copy link
Copy Markdown
Contributor

The prior revision incorrectly corrupted the file size even if just scanning the file, including for read. Move the code so it only runs after the very spot that found it is writing, needed to append a new cluster to the chain, and successfully did do that.

Script for lDebug file to test this error:

=== testtrun.sld
e 200 "A:\test.dat" 0
f 400 l 400 38
a
 mov ah, 3C
 mov cx, 0
 mov dx, 200
 int 21
 xchg bx, ax
 mov ax, 4200
 mov cx, (#10240 >> 10)
 mov dx, (#10240 & FFFF)
 int 21
 mov ah, 40
 mov dx, 400
 mov cx, 0
 int 21
 mov ah, 68
 int 21
 nop
 mov ax, 4200
 xor cx, cx
 xor dx, dx
 int 21
 mov dx, 800
 mov ah, 3F
 mov cx, 380
 int 21
 int3
 mov ah, 68
 int 21
 nop
 int3
 nop
 jmp 100
 .
===

The prior revision incorrectly corrupted the file size even if just
scanning the file, including for read. Move the code so it only runs
after the very spot that found it is writing, needed to append a new
cluster to the chain, and successfully did do that.

Script for lDebug file to test this error:

=== testtrun.sld
e 200 "A:\test.dat" 0
f 400 l 400 38
a
 mov ah, 3C
 mov cx, 0
 mov dx, 200
 int 21
 xchg bx, ax
 mov ax, 4200
 mov cx, (#10240 >> 10)
 mov dx, (#10240 & FFFF)
 int 21
 mov ah, 40
 mov dx, 400
 mov cx, 0
 int 21
 mov ah, 68
 int 21
 nop
 mov ax, 4200
 xor cx, cx
 xor dx, dx
 int 21
 mov dx, 800
 mov ah, 3F
 mov cx, 380
 int 21
 int3
 mov ah, 68
 int 21
 nop
 int3
 nop
 jmp 100
 .
===
@PerditionC PerditionC merged commit b007d5f into FDOS:master Apr 23, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants