diff --git a/kernel/dosfns.c b/kernel/dosfns.c index 2e97e47..f18f685 100644 --- a/kernel/dosfns.c +++ b/kernel/dosfns.c @@ -263,7 +263,7 @@ long DosRWSft(int sft_idx, size_t n, void FAR * bp, int mode) /* Test for eof and exit */ /* immediately if it is */ - if (!(s->sft_flags & SFT_FEOF) || (s->sft_flags & SFT_FNUL)) + if (!(s->sft_flags & SFT_FEOF)) return 0; if (s->sft_flags & SFT_FCONIN) diff --git a/kernel/kernel.asm b/kernel/kernel.asm index fe01dd5..db8257c 100644 --- a/kernel/kernel.asm +++ b/kernel/kernel.asm @@ -223,6 +223,10 @@ _nul_intr: push es push bx les bx,[cs:_ReqPktPtr] ;es:bx--> rqheadr + cmp byte [es:bx+2],4 ;if read, set 0 read + jne no_nul_read + mov word [es:bx+12h],0 +no_nul_read: or word [es:bx+3],100h ;set "done" flag pop bx pop es