DIR: don't display invalid data with devices
When doing `DIR NUL` findfirst will actually return success
with an attribute indicating a device exists with that name.
MS-DOS shows 'File not found' in this case, but FreeCOM
(and also Comcom64) can display invalid data, so let's
correct that. Since the required constant FA_DEVICE isn't
always present in `dos.h`, let's define it when necessary.
[https://github.com/FDOS/freecom/issues/181]
Before (C: is MFS, D: is FAT16):
~~~
C:\>dir nul
Volume in drive C is IR DXXXXS C
Directory of C:\
NUL 0 10-30-25 6:55p
1 file(s) 0 bytes
0 dir(s) 49,839 Mega bytes free
C:\>d:
D:\>dir nul
Volume in drive D has no label
Volume Serial Number is 4A09-DBB4
Directory of D:\
NUL 0 10-30-25 6:55p
1 file(s) 0 bytes
0 dir(s) 42,698,752 bytes free
~~~
With patch (C: is MFS, D: is FAT16):
~~~
C:\>dir nul
Volume in drive C is IR DXXXXS C
Directory of C:\
File not found.
C:\>d:
D:\>dir nul
Volume in drive D has no label
Volume Serial Number is 4A09-DBB4
Directory of D:\
File not found.
~~~
Recent Commits to freecom:master
-
DIR: don't display invalid data with devices
-
support up to LASTDRIVE=32 (lDOS or patched MS-DOS v7)
support up to LASTDRIVE=32 (lDOS or patched MS-DOS v7) Changing to a drive or running DIR with only a drive letter and colon didn't work. (DIR with drive letter, colon, backslash did work already.) Without this patch applied: C:\>]: Bad command or filename - "]:". C:\>dir ]: File not found. - ']:' C:\>dir ]:\ Volume in drive ] is SRDXMS 2.10 Directory of ]:\ LDEBUG COM 94,208 09-19-25 6:35p 1 file(s) 94,208 bytes 0 dir(s) 948,224 bytes free With this patch applied: C:\>]: ]:\>dir ]: Volume in drive ] is SRDXMS 2.10 Directory of ]:\ LDEBUG COM 94,208 09-19-25 6:35p 1 file(s) 94,208 bytes 0 dir(s) 948,224 bytes free -
CI: Update Linux runner to 24.04
CI: Update Linux runner to 24.04
-
termhook.asm: help debugging by running an int3 in I_AM_DEAD_loop
termhook.asm: help debugging by running an int3 in I_AM_DEAD_loop
-
CI: Force lower case when unzipping (#176)
CI: Force lower case when unzipping (#176) Sometimes DOS packages can have upper or mixed case filenames that Linux unzip doesn't recognise as needing downcasing.
-
Import textual fixes from fd-nls [closes #174] (#175)
Import textual fixes from fd-nls [closes #174] (#175) Part of patch ~~~ commit 01c4ad0a496797e74fccee2e5ae61244f8e4e641 Author: Sebastian Rasmussen <sebras@gmail.com> Date: Thu Apr 10 00:21:02 2025 +0200 Fix typos in the original English files for many projects. ~~~ -
add /D option to FOR command to look for directories instead of files…
add /D option to FOR command to look for directories instead of files matching the "set" file specifiers e.g. to list all directories: FOR /D %a in (*.*) DO ECHO %a
-
use head instead of stack for recursive delete, avoid stack corruptio…
use head instead of stack for recursive delete, avoid stack corruption on really nested directory structure
-
increase size of heap from 6KB to 8KB for build.sh also
increase size of heap from 6KB to 8KB for build.sh also
-
DBCS: handle DBCS for "mkdir /p" and "rmdir /s"
DBCS: handle DBCS for "mkdir /p" and "rmdir /s" (cherry picked from commit b231e93802276bf67357a05a1a191a5696b8df6b)
-
Languages: Import Portuguese from fd-nls
Languages: Import Portuguese from fd-nls Note the codepage is 860, not sure how that plays out with the Euro currency symbol.
-
Minor fixes for pt-br.
Minor fixes for pt-br.