Thanks to Rex Conn (on the photo) who released build 132 source
code, development of the King of the DOS/W9x shells can now be
continued! (Use Take
Command for NT.) 4DOS remains free and not supported
by anyone. It is maintained by me (Лъчезар
Георгиев). I read comp.os.msdos.4dos.
صبري
جريس (Sabri Jiryis), writer, lawyer, prominent
Palestinian activist, comrade of the late Arafat
Edward Mendelson, Columbia University professor
and editor for PC Magazine
1. Files for download and intro
⇩
No DOS or W9x/ME user must be without 4DOS anymore. Its powerful batch
language and 100s of commands, variables and functions make it the only
complete scripting solution that fits in 1.44 MB.
(In case you have not heard of it before, 4DOS is a command line interpreter
by JP Software, designed to replace the default command interpreter COMMAND.COM
in DOS and W9x/ME. But to stop here would be a gross underestimation. 4DOS
is so powerful that it would be a joke to compare it to COMMAND.COM. And unlike
"BASH" and similar shells, it is completely self-contained and does not require
shared libraries and numerous external utilities to do any useful work. Anyway,
suffice to say that I know many people who made the transition from COMMAND.COM
to 4DOS, but not even one who made the transition from 4DOS back to COMMAND.COM
☻)
System requirements (of course, it works in the latest hardware and
DOS/W9x too)
Minimum: 8086/88 or later, 0.5 MB of RAM or more, DOS 2.00 or later
Recommended: 386 or later, 2 MB of RAM or more, DOS 5.00 or later
Also required:
a 8253/8254-compatible timer
a MC14818-compatible CMOS RAM & real-time clock (for PC/AT and above)
an industry standard BIOS or EFI firmware with built-in legacy BIOS support
If the server keeps truncating your download, sorry but I cannot help you as
I have no control over it. Try downloading the SFX, then extract it in Windows
(256+ MB of RAM needed). Or download one of the smaller binary patch files (the
first is for 4DOS 7.50, the second – for 4DOS 7.92 or newer), unzip it
in your 4DOS directory and run PATCH from there to update 4DOS to its latest
version. (Pocket
Soft kindly provided me a complimentary copy of RTPatch 11.0 as a courtesy
to encourage the 4DOS development.) If PATCH complains that some old files do
not exist or their contents does not match, give it the -i switch to ignore
them so it can patch the rest of your files. Voilá! You must now have the
latest 4DOS version, without having used an installer.
If you know PHP (sorry, I don't), you can offer me a prone to server timeout
alternative to the simple "readfile()" function that I use in my "download.php"
file to provide the downloaded file to you. (Fortunately, some servers do not
suffer from this problem.)
If you are updating 4DOS and have already configured the help colours with
HELPCFG, your custom colours will be lost, if you unzip all files to the old
4DOS directory. In this case, extract only the newer files using the PKUNZIP
-f(reshen) or -n(ewer) option. See the PKUNZIP user's manual for details on
using these options. Alternatively, as recommended by JP Software, unzip the
new version in its own directory and copy your customised 4HELP.EXE from the
old 4DOS directory. (The installer is not so smart to detect that you have
customised your colours and do this for you, so you need to help it a bit.)
Another simple solution is to set the "Read-Only" attribute to 4HELP.EXE after
you have modified it so it cannot be overwritten easily (ATTRIB +R 4HELP.EXE).
Note that if you use the RTPatch method described above, the problem will not
arise, as RTPatch will detect that your file has changed and will not update
it. (Yet another advantage of this great product!)
Note that PKUNZIP 2.0 or newer is required to extract the 4DOS archive.
PKUNZIP 1.1 or older do not support the newer "deflate" compressing method
used to create the archive. Alternatively, you can use InfoZIP's UNZIP and
many other utilities that support the ZIP file format to extract the files.
If there is not enough free conventional RAM to start 4DOS as a secondary
shell from an application programme that occupies too much of it itself,
Shell Room can help.
If you need transcendental mathematical functions (which the @EVAL function
of 4DOS lacks, unlike TCC/ex-4NT) in your calculations, you can use ACALC
(ASCII Calculator) from PC DOS. Type ACALC to get help for its usage. Operators
are listed sorted by precedence; those with highest precedence are at the top.
A decimal value (d) is a real number up to 19 significant digits (80-bit
extended precision floating point number). The range for binary (b), octal (o),
and hexadecimal (x) is from –2,147,483,648 to +2,147,483,647 (32-bit
signed integer number).
Apply CODE.DIF against the original source code release by Rex Conn.
Create a DOS sub-directory. 4DOS.COM will be there if built successfully.
Modify MSC7.BTM to set your environment variables PATH, INCLUDE, LIB.
Run MKDOS.BTM. You should see one inevitable A4013 warning. Ignore it.
Before modifying the code, increment both VER_BUILD and INTVER so that the
new shell does not inherit the old one, or it will crash soon or later. OPTION
must be rebuilt to work with each build.
Install BP7, EDITOOLS4 and TPRO5 and build the latter's units.
Apply the BP7 patch and Turbofix.
Update
tpcmd.pas,tpdos.pas,tpedit.pas,tpinline.pas,tpmemchk.pas,tpstring.pas
and tpcrt.pas and copy tpdefine.inc,tppick.in1 and tpmouse.asm from TPRO5.
Apply 4HELP.DIF and adjust TPC.CFG and BUILD.BTM for your environment.
Run BUILD.BTM.
5. "Dead" or missing link
All links provided above were valid at the time of writing. Their validity
in the future cannot be guaranteed by anyone. Please report any "dead" link.
You can use TotalValidator (see its button at the bottom of this page) to check
the accessibility of all the external links present on this page.
If you use 4DOS and are a famous person, I think that a link to your site is
missing here. If you agree, please let me know, and I will add your name, photo
and a link to your site. By "famous" I mean prominent, well-known in any field.
It will be good for my visitors to know that if 4DOS is used by people like you
it really deserves attention. And I thank you very much in advance for yours!
6. "Forking"?!
Please do not create a "fork". Let us unite our efforts and not be like the
swan, the pike and the crayfish in the Krylov's fable who dragged the cart to 3
different directions. Let us merge each others' patches. (So far, 4 people have
contributed to my builds: Kenneth Davis, Michal Necasek, Jaelani Utomo and
Klaus Meinhard, for which I am very grateful to them all! If you can write in C
and Assembler and would like to contribute to 4DOS, you are welcome to do so
too.)
7. "Porting"?!
Michal Necasek has ported 4DOS to Open Watcom C. His source code patches are
merged with mine. The port is preliminary and does not build with "standard"
Open Watcom C version 1.8, which does not support jumps from an _asm block to a
C label outside it. Even if it builds with a future version, it will still need
much testing and stabilisation before it can be used reliably in practise.
"Porting" 4DOS to Linux, *BSD, Mac OS X or another UNIX-like OS, even if it
was not expressly disallowed by Rex Conn, would be very hard to do, as 4DOS is
inherently a 16-bit DOS programme.
There is a fine point here. If someone manages to convert 4DOS to a 32-bit
programme, even for DOS, without porting it to any other operating system, he
would thus make such a port significantly easier. Hence, such a conversion is
not permitted by the very logic of the disallowance for porting 4DOS, because
this disallowance spans not only to the porting itself, but also to any other
action that would ease it. Therefore, 4DOS must remain a 16-bit programme!
TCC (ex-4NT) can be ported to other operating systems though. But a full
port is already impossible, because too many (mostly new) functions in it are
NT-specific. Alas, it seems that the UNIX-like operating systems will have to
live with standard GNU shells like BASH while the power of the JP Software
products will remain limited only to the [so far] ubiquitous "NT". C'est la
vie! On the other hand, with the demise of Microsoft started with "Vista",
nobody knows when times will change to the extent that Rex Conn could write and
sell a 4NIX or 4MAC...
8. Licence
The 4DOS source code licence starts as a simple, all-permissive licence:
"Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
sell copies of the Software, and to permit persons to whom the Software is
furnished to do so."
But it then says: "The Software, or any portion of it, may not be compiled
for use on any operating system OTHER than FreeDOS without written permission
from Rex Conn", contrary to the above permission "to deal without restriction".
When asked "what about MS-DOS, PC-DOS, DR DOS etcetera?", Rex Conn answered:
"I don't have any problems with people using it on those OS's (although I'd be
surprised if there was a lot of MS-DOS or PC-DOS action left). That license was
written by the FreeDOS people – it was probably worded that way because
it's impossible to list every possible variation of the DOS OS's."
Because of these contradictions of the source code licence, the binary
archive is distributed under its original 2004 freeware licence, which is much
more consistent and clear. If the source code licence can be changed at all
(i.e. it is not too late) I regard this freeware licence as the best candidate.
After all, it is already used for the 4OS2 source code. But I am not a lawyer.
Another possibility is the so-called dual licensing – an increasingly
popular practice where the code is released under a free open source licence,
but any proprietary use is regulated by a second licence. In a research I did
in the autumn of 2006, I found 81 companies and organisations using this model.
Now they are probably more. The best candidate for the open source licence is
the GNU GPL because it forbids inclusion of the code in proprietary products.
A proprietary licence, if someone requests it, can be settled with JP Software.
Whatever the licence, the rule is simple: if you do not use it commercially
and do not port it to a non-DOS operating system, you can do with 4DOS and its
source code anything. The GNU GPL would outlaw commercial use, as the software
in a commercial product has almost always a closed source code, which it bans.
The few examples of the contrary only prove this rule.
If you intend to use 4DOS commercially, please ask JP Software. The company
owner is Rex Conn himself who has said in 2001: "I liked the software so much,
I bought the company!". I am sure that he will arrange something for you. But,
what I am even more sure is that he will be greatly surprised by your request!
Having said that, I think that the probability of somebody wanting to use 4DOS
commercially is already next to zero. After all, it was because the 4DOS sales
dropped near zero that he stopped its development. In general, DOS already has
become a "vintage" operating system which only some embedded systems still use.
9. Motivation
It is a real pleasure to "wade in" this masterpiece of code especially for a
C++ and Windows programming ignorant like me. 4DOS has been one of my favourite
programmes since ~1990, so it is a big honour for me to revive its development!
But, even the Sun has spots! Through the code, there are bugs, disabled and
missing features here and there, crying "Fix me!", "Enable me!", "Add me!". So,
here's where I see my role – to fix, enable and add them, respectively.
As TCC (ex-4NT) is already a few years ahead of 4DOS, we can not "catch up".
But 4DOS will live at least until TCC (ex-4NT) can be run in DOS – now
impossible, but perhaps some day some Win32 emulator for DOS like DOSWIN32,
HINTOS, WINDOSX or HX will be able to run it? (But do not hold your breath yet
– now these emulators cannot run even CMD.EXE, let alone TCC/ex-4NT).
Still, 4DOS has one great advantage to TCC/ex-4NT – speed. It is much
faster, so where processing speed matters, use 4DOS, even if it needs a much
older operating system as DOS (so what?!). Last not least, both DOS and 4DOS
start up much more quickly than NT and TCC/ex-4NT, respectively. Sometimes this
is very important too. Then, use DOS and 4DOS and enjoy!
Note that I do not claim any "copy right" over my patches or the contents of
this web site – they are placed in "public domain" for maximal benefit
of the DOS community. The future generations who will live in a much more just
and highly developed society than we do will surely find very funny the pitiful
attempts of our capitalist society to impose the ancient idea of "copy right"
dated back to the Gutenberg era over the digital realm. Oh, how they will laugh
at us!
If the above is not enough, reckon me using the Libre Commons Res
Communes Licence for my patches and site: Ⓛ 2006–2008 Libre
Commons Res Communes Licence.
(Thanks to David M. Berry and Giles Moss for this undoubtedly most radically
free / libre licence!)
But four trolls will laugh at the above, so here is an alternative for them:
You Robert Riebisch from Berlin, Andreas Grech from Reutlingen, Steve Adelewitz
from New York and a Canadian lacking guts to disclose his name, may download my
"bloated" 4DOS work no more often than once a day and only after shouting loud:
"共产主义万岁!", or no more often than once
a week, if you are unable or unwilling to shout that, or do not understand it.
10. Priorities and future
Bug fixes are always a higher priority for me than adding new features. If
you find a bug, please let me know so I can try to find and fix it. I cannot
promise that I will manage to catch it alone, so I may need your help in that.
Of course, if you can find it yourself, you will save me a lot of time.
As to adding new features, if you convince me that it is really useful, and
if you can find a similar feature in TCC (ex-4NT) or in older 4DOS versions, I
will consider adding it when I can. Of course, you may also add it yourself
– then I will be very grateful to have your patch so I can add it too.
TCC (ex-4NT) options, functions and variables have always a higher priority
for adding into 4DOS, provided that the given feature can be implemented in the
DOS environment and has sense there. But due to the different operating systems
there will always be a need for DOS-specific features, which I add as well. So,
unfortunately, full TCC (ex-4NT) compatibility can never be accomplished.
4DOS, 4OS2 and TCC (ex-4NT) are shells with great strengths, but they also
have their weak sides and weird points. While I am committed to work on 4DOS,
please do not ask me to radically change it to overcome its inherent problems.
I have not written 4DOS and cannot change the way it is designed to work. If
TCC (ex-4NT) overcomes these issues, I may try too. Until then – sorry!
As there are more and more people who try to use 4DOS under the NT family of
operating systems (and most of all, in XP) a warning is due: Please avoid that.
4DOS is simply not designed to work there. Please use TCC (ex-4NT) for that, or
"downgrade" to W9x/ME. Indeed, an unsupported shell is best used under an
unsupported OS! (Moreover, there is now a free light edition of TCC/ex-4NT
called TCC/LE. Use it!) Consequently, I will not consider any
suggestions aimed at improving the 4DOS operation under this operating system
and if you insist too much, might even be forced to add a code which aborts
4DOS if such an operating system is detected. Of course, this could easily be
"cracked", so it could not be a reliable measure against such unregulated use,
but at least I will have done everything within my power to prevent it. Please
do not force me to do it!
And there is another point here. By using (and especially by encouraging use
of) 4DOS where TCC (ex-4NT) should be used, you may be hurting the sales of the
latter which is anything but fair to the 4DOS author, Rex Conn, who is the last
who deserves that. Please consider this too.
Of course, there is no such problem if you run 4DOS within an 80x86 emulator
under DOS or W9x. (Note that this setup is even less supported than the totally
unsupported 4DOS!)
Anyway, it is worth noting that I am not planning any revolutionary changes
in 4DOS. In fact, due to the severe limitation of 3450 .EXE file relocations
(of which only a few per cent still remain unused!), just a few further
releases can be made anyway. Hey, 4DOS is already 20 years old – a
venerable age for any programme (most last less than 10 years!). New operating
systems replaced DOS, which led to such a decrease of interest in 4DOS that not
only JP Software can no longer sell it, but even my donors can be counted on
the fingers of one hand. The 4DOS user base has shrunk from tens of thousands
to probably no more than several hundred.
I cannot even promise that any newer 4DOS versions will be released at all.
In fact, given the steady progress in Take Command development and the so few
users of 4DOS still left, they are strongly encouraged to upgrade to TCC
(ex-4NT). 4DOS is simple and fast, but the rich feature set of the unique TCC
(ex-4NT) could never be compared with those of 4DOS, just because most of them
are impossible in DOS. And the few that are possible require hard and dedicated
work, which cannot be done by a programmer working just for the idea. Besides,
I am not qualified enough to implement all of them. Last not least, there are
still large parts of the existing source code that I do not understand. So,
what will most likely happen in the future is that nothing happens anymore.
But, if you really would like to change this, then why not take over 4DOS
maintenance? There are so few DOS developers left that it is very unlikely that
someone would still want to take it over, but wonders do happen sometimes. Why
not? If you are strong in C and x86 Assembler, why not? Please drop me a note
if you would like to do so, so that I can announce this at this site.
Note that the only FreeDOS developer left (Eric Auer) has taken over so many
projects that I would not like that he takes over 4DOS too. This would put 4DOS
into the backyard, together with projects with too many inherent flaws. Do you
think that I deserve to see this nightmare come true (4DOS fallen into his
hands) after all I have done for it, not in the last place to prevent exactly
this?
11. Known problems
Last access date can be set only in W9x, MS-DOS 7.x, PC DOS 7.1 and
no other DOS variant. Creation date/time can be set only in W9x. This is a
limitation of the DOS kernels, not 4DOS.
In DOSLFN only, a DIR right after a TOUCH in the same directory may not
show the updated file date/time as the DOSLFN cache has not been
refreshed. This is a problem of DOSLFN, not 4DOS.
Directory names containing backquote characters are not supported.
Secondary shell cannot properly install TSR programmes with /C.
Many commands (even CD) and some functions do not work in Wendin-DOS.
COUNTRY setting fails in DR-DOS and does not work in ROM-DOS and OS/2.
SETDOS /W does not work in ROM-DOS.
REBOOT /P does not work in OS/2.
FOR /I /R ignores the descriptions in subdirectories.
LIST does not work properly with files over 2 GB long.
LIST search result in hex mode is not highlighted across 16-byte boundary.
DIR says "Out of memory" in LFN mode if folder has over ≈1160..5500
files (exact number depends on the total size of all long file names).
4DOS crashes just past FNType in ZDOS, of all 16 tested operating systems:
Embedded DOS-ROM,DR DOS,FreeDOS,MS-DOS,OS/2,PC DOS,PTS-DOS,
Real/32,ROM-DOS,RxDOS,S/DOS,VirtuOS,W9x,Wendin-DOS,X-DOS,ZDOS.
12. Acknowledgements to:
Rex C. Conn – for writing 4DOS (1986-2004) and releasing its sources
Tom Rawson – for founding Jamaica Plain Software and
writing most .ASM files
Ed Lucas – for writing OPTION and other code at JP Software
Ross Neilson Wentworth, Scott McGrath and Tom Rawson – for writing
4HELP
Hardin Brothers, Tom Rawson and Rex Conn – for writing the
documentation
Erwin Veermans, Georges Wanderstok, Stephen Foyle, Prof Chris Murphy,
Kenneth Jensen, Jay Terry, Richard Bonner, Andrew Watkins,
林俊生 (Lam Chun Sang), Kenneth Poland for their
€€€
Sebastian Mozejko – for his mediation on releasing the source code
James F. Hall – for publishing the source code released by Rex Conn
Kenneth J. Davis – for the first patches allowing successful build
Charles E. Dye – for his extended help and list of [now fixed] bugs
Jaelani C. Utomo – for his EDISCRN.INC (for HELPCFG) and KSTACK /U
Michal Necasek – for porting 4DOS to Open Watcom C
Владимир
Захарычев
(Vladimir Zakharychev) for his CPU/FPU detection library
Dennis Saunders – for their Mix C/WinDOS Toolchest (for OPTION)
Tony Olivero – for their Pocket Soft RTPatch he provided me with
Egon Stephen Fábián – for his help in the newsgroup and
with C/WinDOS
Klaus Meinhard – for his _4INST clean-up, BTMs, history and old
versions
Gary Welles, Szymon Wiatr, Jacob Poon and others who reported 4DOS bugs
Stephen Foyle, Steven Kamp, Stefano Piccardi and others who thanked me
Assoc. Prof. Bob Weems, Peter Norton, Kris Heidenstrom, "sk", Roman Stangl,
David Lindauer, George Marsaglia, Francois Panneton, Pierre L'Ecuyer,
Lattice Semiconductor and the PHP group for their algorithms, methods and
code.
13. Good example
I wish everyone follow the example of Rex Conn. Release the sources of your
unused software! Let others use it, if you do not! Do not be another Plyushkin!
Break that code free, if you cannot sell it anymore. Do not bury it in your
cabinet! Do not let it rot there without bringing good to anybody!
If you do not listen to the above, be prepared for some unpleasant events.
Your so valued old source code will eventually "leak" (examples: MS-DOS 6.00,
Windows 2000, AwardBIOS and so on) causing you much more headache than if you
had voluntarily released it. So you have nothing to gain, only to lose if you
obey your class-consciousness instead of your conscience, Mr. Bourgeois.
Schlachte: Free the surce code of the Metaware High C/C++ 2.8 for x86/DOS!
Nielsen: Free the source code of Borland C++ 5.2, Turbo Pascal 7, TASM
5.3!
Ballmer: Free the source code of Visual C++ 1.52, Windows 98SE!
Palmisano: Free the source code of PC DOS 7.1!
Sparks: Free the source code of DR-DOS 8.0!
Husa: Free the source code of Embedded DOS-ROM 4.3!
Karmanos: Free the source code of SoftICE 2.80 for DOS!
Thompson: Free the source code of PCT 7, QEMM 9, DV/X 2.1, NU 8!
Haddix: Free the source code of PKZIP/PKUNZIP 2.50 for DOS!
Fister: Free the source code of OrCAD ESP 386+ 1.21 for DOS!
Kaneko: Free the source code of CADStar PCB 7.1.6 for DOS!
Martin: Free the source code of P-CAD 8.7 for DOS!
Narayen: Free the source code of Acrobat Reader 1.0 for DOS!
Hagerman: Free the source code of Ventura Publisher 4.4.1!
Oh: Free the source code of DUSE 4.9!
Please at least make a backup copy of the source code residing on diskettes
or old hard disks while they are still readable to a CD. If you no longer have
the necessary floppy drive, JAZ or ZIP drive, send me your disks and I will do
it for you (I do not have a magneto-optical, SyQuest or tape drive).
Don't you know that all software older than 10 years is obsolete by default
in view of the blazingly fast and permanent changes in the computer industry?!
Then, what is your reason for not freeing your old source code to the people?!
Man may not be a slave of another man. Why his creations may remain so, then?!
Too many questions to think about. But hurry, time elapses. Software rots!
14. About me
I am a Bulgarian radio- and computer engineer, hardware designer and
programmer working as an Assistant Professor in the Computer Science department
at the Technical University of Varna, Bulgaria. I am married and have two daughters.
15. Build history since build 132 in reverse order
This history is duplicated in the README.TXT file in the "Binaries" archive
on the left. See the patches for details on these changes. Sources released
by Rex Conn were version 7.50 build 132, so it is the base. After build 150,
version number is determined by the formula VERSION = 6.00 + BUILD / 100.
Build 200 (Version 8.00) — 27 February 2009:
Fixed my v7.51 bug: swapping to hard disk would crash
SET {the switch character}{any character}={value string} now works
REN /N now returns an error if the target filename already exists
Added SETERROR command
Added ATTRIB /N option
Added @ISLOWER and @ISUPPER functions
Added _LASTDIR, _VERMAJOR, _VERMINOR and _VERSION variables
Updated help file for the above changes and updated "Keywords" page
Build 199 (Version 7.99) — 29 December 2008:
No _CPUSPEED crash on early 586 if RDTSC not emulated by EMM386
_CPUSPEED now returns a much more consistent value under W9x/ME
_CPUSPEED now works even if the CPU has no TSC (i.e. 8086-486), and
_CPU and _NDP now return much more detailed info if no brand string
thanks to the CPU/FPU detection library by Vladimir M. Zakharychev
Updated help file for the above changes
Build 198 (Version 7.98) — 19 December 2008:
Fixed my v7.92 bug: if the Int 67h vector was 0, _VCPI would crash
Mouse functions would no longer crash on old PCs if no mouse driver
Added @COM function and _SBDSP internal variable
_VIDEO now returns "svga" if a VESA SuperVGA BIOS is present
Updated help file for the above changes and updated "Keywords" page
Build 197 (Version 7.97) — 12 December 2008:
_DRIVES and _LASTDISK now return correct results in PTS-DOS
4DOS now honours the NO_SEP environment variable
Added _VDS internal variable
Updated help file for the above changes and updated "Keywords" page
Build 196 (Version 7.96) — 1 December 2008:
Added REBOOT /M(onitor off) and /S(uspend) options
Added @CODEPAGE function and _POWER variable
Updated help file for the above changes and updated "Keywords" page
Build 195 (Version 7.95) — 24 November 2008:
Now LIST /X /T"xy zt..." searches for the hex sequence "xy zt..."
In VESA text video-modes with over 80 columns, BP7 no longer resets
the video-mode on start or blanks the screen on exit (invoked by F1).
Build 164 (Version 7.64) — 26 May 2008:
If the string has a leading separator, the word or field index is
negative and its absolute value is equal to the number of words
(fields), @WORD and @FIELD no longer return the whole string
@WORD[S], @FIELD[S] no longer ignore leading space(s) in string
TOUCH /R or /T now set file seconds properly without halving them
LIST now shows also seconds and 4-digit year in its file info box
Added EQC (case-sensitive) comparison operator
Updated help file for the above change
Build 163 (Version 7.63) — 3 May 2008:
If EditMode is not Init*, cursor shape is now reset on hitting Enter
"Warm" REBOOT in DOS now also pulses RESET pin on ATs (still "warm")
If InstallPath is not set, OPTION can now invoke 4HELP
Build 162 (Version 7.62) — 25 April 2008:
The prompt after a CLS now goes to the first, not the second line
As in COMMAND.COM, /K now suppresses the signon messages like /C
(Note: As IO.SYS 7.x appends "/D /K AUTOEXEC" or "/K NETSTART"
to the SHELL= line, add a colon after the "K" to "mute" the signon.)
Build 161 (Version 7.61) — 28 January 2008:
Correctly show the minor version number of OS/2 Warp 4.x
Correctly show X-DOS version and avoid NLS separator corruption in it
Recognise Wendin-DOS (rus as 4DOS.EXE; some commands fail there)
Build 160 (Version 7.60) — 28 December 2007:
Auto-completion and SELECT now support filenames containing backquotes
HEAD/TAIL /V option header now always starts on new line if /C used
Return value of @FILEWRITE now equals the number of bytes written
Build 159 (Version 7.59) — 27 October 2007:
Wildcard matches include all LFNs containing bracket characters ([])
Added @MD5 function for files using the RSA algorithm from RFC 1321
Updated help file for the above change
CODE.DIF changes on 3 October 2007:
Integrated the changes by Michal Necasek for Open Watcom C
Changes allowing 4DOS build will appear in Open Watcom C version 1.8
VC 1.5x still builds a 100% identical executable file (same as build 158)
Build 158 (Version 7.58) — 15 September 2007:
Direct screen output now works in monochrome video modes too
Amended sign-on message with information about 4DOS patches
Re-enabled the MOVE /W(ipe) option
Build 157 (Version 7.57) — 27 July 2007:
Auto-completion of file names with many dots works in DOSLFN as in W9x
Creation / access times can now be TOUCHed in DOSLFN, not only in W9x
SELECT /X now works in DOSLFN too, not only in W9x
Fixed possible pointer underflow if @WORD and @FIELD count backwards
@WORD and @FIELD no longer return whole string if it has leading space
Added @FIELDS function
Updated help file for the above change
Build 156 (Version 7.56) — 25 June 2007:
Show zero creation or access times in DOSLFN the same way as in W9x
Added _DATETIME and _MONTHF variables
Added @AGEDATE and @MONTHF functions
Updated help file for the above changes
Build 155 (Version 7.55) — 14 May 2007:
Show proper CD/DVD-ROM disk space in raw DOS; fixes DIR in PCDOS7.1
Avoid false detection of MS-DOS 7 (MSDOS7 variable) in case of FreeDOS
DIR /2 /X in Windows now looks like in DOS and doesn't reach column 80
VER /R now displays also build date
Build 154 (Version 7.54) — 20 April 2007:
Added message.* to global header dependency
Added high-level @EMS function code (was missing in original sources)
The "Marked" message of SELECT no longer shifts even on largest files
8.3 file size over 1 GB no longer misaligns DIR, TREE or SELECT output
Updated help for the above (maximal non-wrap description size now 39)
Build 152 (Version 7.52) — 4 February 2007:
Correctly process the "invalid disk change" code during critical error
Irrelevant error codes in critical error converted to "general failure"
Added a /L(ine offset) option to LIST
Updated help file for the above change
Build 151 (Version 7.51) — 31 January 2007:
For Novell DOS and DR-DOS 7.x-8.0, show the right DOS version
For hard errors, show operation and drive; accept only allowed actions
DOS error messages amended and edited to clarify and remove duplicates
Updated help file for the above change
Build 150 — 25 January 2007:
Fixed the "Lock violation on COPY from remote drive without SHARE" bug
Worked around a bug (in MSVCRT?!) leaving high byte of _doserrno != 0
VER_MINOR = VER_BUILD - 100 from now on (version 7.51 = build 151)
Build 149 — 18 January 2007:
Fixed the "DIR [PATH] finds no files in DOS LFN volumes" bug
An * instead of *.* default wildcard is now used for DOS LFN volumes
FFIND /U (summary only) option can now be evaluated by @EXECSTR
FFIND and LIST search can now be interrupted with Ctrl-C
4HELP Changes on 15 January 2007
4HELP now supports mouse wheel (As for 4DOS, a driver that supports
wheel is needed, e.g. Cute Mouse 2.x; the W9x driver does not support
wheel for the DOS mouse API.)
Build 148 — 10 January 2007:
LIST, SELECT and command history window now support mouse wheel Note: A driver that supports wheel is needed, e.g. Cute Mouse 2.x
The right mouse button now exits LIST and SELECT
Build 147 — 8 January 2007:
Fixed command line buffer overflow when repeatedly pressing F12
Added hexadecimal output option to @EVAL
Updated help file for the above change
Build 146 — 7 January 2007:
Fixed command line buffer overflow and path search name underflow bug
Added new @CWD and @CWDS functions
Updated help file for the above change
Build 145 — 6 January 2007:
@READY now equals the inverted "no disk in drive" bit for CD-ROMs
Added new EJECTMEDIA and CLOSETRAY commands
Updated help file for the above change
Build 144 — 30 December 2006:
Added a /V(erbose) option to TYPE to show a header for each file
Added a /P(ower off) option to REBOOT to shut the system down
REBOOT now flushes SMARTDRV cache before reboot or power off
Updated help file for the above changes
Build 143 — 29 December 2006:
/P page prompts are now overwritten like DR-/PTS-DOS COMMAND.COM
Restored DOS version 2.x compatibility of 4DOS.COM, lost in v6
4DOS.COM now aborts on attempt to run it in DOS version 1.x
Build 142 — 26 December 2006:
Restored 8086/8088 (PC/XT, Pravetz-16, etc.) compatibility, lost in v6
Added compatibility information about CADStar PCB in the help file
Added @SERIAL function; help file updated for it too
Build 141 — 24 December 2006:
Added GB units to file size ranges, @DISK* and @FILESIZE functions
DIR /4 now shows size of files over 1 GB with precision of 0.1 GB
Added information about the above features in the help file
Build 140 — 22 December 2006:
For Pentium 4 and up, _CPU now returns 786
Removed the @READY warning from 4DOS.HLP and added 786 info to it
Added build.h dependency for expand, removed shareware dependencies
Build 139 — 21 December 2006:
Recognise Datalight ROM-DOS
Can now load in upper memory in PTS-DOS
@READY now works properly in PTS-DOS
Build 138 — 19 December 2006:
@READY now works more reliably with CD-ROM drives
Removed unused modules "batcomp" and "parspath" from 4DOS.LNK
INTVER = VER_BUILD again, now OPTION.EXE patched on each build
Build 137 — 17 December 2006:
Re-enabled _4INST.BTM (self-installer) support
Added the installer files from version 6.02 (1999) to the archive
4DOS.HLP replaced by extended and updated version by Charles Dye
Build 136 — 15 December 2006:
Process the DR-DOS F5/F8 startup keystrokes too
Fixed the "%* affected by the SHIFT command" bug
Removed the unused (non-4DOS and shareware) error messages
Build 135 — 13 December 2006:
No longer mistake DR-DOS 7.0x for Novell DOS
Recognise PC DOS, FreeDOS, PTS-DOS and DR-DOS 7.03
Fixed the "DIR /F and DIR /B /S disable colourisation" bug
Build 134 — 9 December 2006:
Batch debugger now refuses to load batch files over the 64 KB size limit
Fixed the "total @FILESIZE roll-over at 4 GB" bug
Fixed the "DESCRIBE loses third-party info" bug
Build 133 — 7 December 2006:
Properly show FAT32 drive space in MS/PC/LZ/EDR/PTS/ROM/FreeDOS
Properly show free XMS memory in the MEMORY command if > 64 MB
Re-enabled the /Y single-stepping option that was disabled in 2003
Fixed the "SET /M not upper-casing master environment variables" bug
Fixed the "RD not removing hidden and system sub-directories" bug
Fixed the C4018 "signed/unsigned mismatch" C compiler warnings
Reverted INTVER from 131 to 130 to make OPTION compatible
4DOS History before build 132
For earlier builds and versions and their history, please see the site of
the 4DOS veteran user and contributor Klaus Meinhard. It provides a wealth
of information on 4DOS and a great collection of 4DOS batch files, aliases
and functions. His site is really a must visit for any serious user of any
JP Software's command processor. Eventual future versions of 4DOS may
also be there.
The visitors of this page come from over 100 countries. Top 7 visitors'
cities: 北京市 (Beijing),
תֵּל־אָבִיב-יָפוֹ
(Tel Aviv), London, 台北市 (Taipei), Denver, Paris, Herndon.