Hi, some comments on your comments...

HIMEM /INT15H=... should not be extremely hard to do, so I vote for it.
HIMEM /HMAMIN=m is indeed not very useful. Being able to allocate PARTS
  of the HMA would be nice but was not introduced before MS DOS 7 or so,
  and before that time, HMAMIN protected the system from giving the HMA
  away as a whole to some program which only wanted a bit of it.
HIMEM /TESTMEM:... is indeed not that useful. An exist-check might be
  useful, but a check like "write own address to all 0x?????000 form
  addresses" (to check if there is really RAM there and it is not multiple
  copies of the first 16 MB or something) will probably be useful to detect
  broken BIOS-hooking memory allocation schemes without wasting much CPU time.
HIMEM /TEST is quite nice, so it should probably be ad*ertized more.

CHKDSK is written with compatibility in mind even though it has several
  auto-activating cache builtin cache schemes. It looks like CHKDSK for the
  user, adds surface scan, and is 8086 compatible. CHKDSK of MS DOS does not
  support FAT32 - this is generally a task for SCANDISK at least in the earlier
  versions of FAT32-enabled Windows.

SCANDISK can use the DOSFSCK engine if it is okay to require a 386 CPU and
  quite a bit of RAM. Otherwise I would recommend that SCANDISK should call
  the CHKDSK program as a child process for the actual checks and only have
  the surface scan with the drive usage diagram display actually inside the
  SCANDISK binary (this diagram is already displayed by DEFRAG, so DEFRAG
  is a good starting point for SCANDISK).
Another possible SCANDISK would be a combination of the DEFRAG user interface
  and the CHKDSK or DOSFSCK engine all wrapped up in a single binary. That
  would be harder to break because you cannot forget installing CHKDSK or
  DOSFSCK... DOSFSCK has the advantage of supporting FAT32 while it has the
  problem of having no even remotely MS-looking user interface (not a problem
  if you only use the engine for SCANDISK).

The fastest way to write SCANDISK would be implementing the user interface
only as sort of a "progress bar" to CHKDSK, possibly using source code taken
from the existing broken scandisk. This would be missing the eye-candy of the
usage diagram during the surface scan (which should definitely have some
progress indicator - which should be off if isatty() is false for stdout - like
a "cluster X of Y" display even in the plain CHKDSK program!). It would also
be missing any possible interactive fix stuff: could somebody find out which
interactive fixes are offered by SCANDISK at all?? Other than CHKDSK, the
DOSFSCK engine already contains many interactive prompts (which you can
switch to "automatic" for non-interactive mode) and even a "simulate all
collected writes and scan again" mode. Collecting written data is also good
for creating a "save UNDO data" feature for a DOSFSCK-based SCANDISK.

So I think if it is okay to require a 386 and enough free RAM, then an
all-in-one SCANDISK binary based on the DOSFSCK engine would probably be
the best choice. CHKDSK would stay around for FAT12/FAT16 analysis on any
FreeDOS compatible computer. This is similar to MS style where CHKDSK
just works and SCANDISK has all the eye candy and a few extra checks and
the interactive mode and the FAT32 support.

Last but not least it is useful to have TWO different ways to scan FAT12/FAT16
(because you can assume that both have different bugs, this will help finding
the bugs in both tools).

FreeDOS kernel should be MS DOS 3.3 but system should be MS DOS 6.22? Not
really an easy choice. I would prefer "MS DOS 5.0 in all aspects" plus LBA
plus "kernel and some of the tools with FAT32 support". MS DOS 6.22 differs
to MS DOS 5.0 in that MS added several third party products after 5.00, some
of which are both complex and not really core DOS things (e.g. the Windows 3
user interfaces for UNDELETE / BACKUP / SMARTDRV, the tools UNDELETE, MIRROR,
UNFORMAT, BACKUP, RESTORE, MSAV (with MWAV Windows GUI), VSAFE, DEFRAG,
SCANDISK, ...). And of course there is QBASIC/HELP/EDIT (sharing the QBASIC
binary which does the bulk of the work) and DOSSHELL.

Let me see... German website with a well sorted listing... (Steve has a more
detailed list, including information about older DOS versions):
http://www.chemie.fu-berlin.de/chemnet/general/topics/dos_neu.html
DOS 4.0 -> 3.5inch drives, partitions >32 MB (with SHARE), DOSSHELL
DOS 5.0 -> UMBs, HMA, smaller kernel, UNFORMAT/UNDELETE, QBASIC/HELP/EDIT,
  DIR with sorting, DOSKEY, mixed improvements (e.g. SMARTDRV improved)
---
DOS 6.0 -> improved EMM386, MEMMAKER (config tuning helper), MSAV/VSAFE,
  DBLSPACE (compressed drives), PC-Tools "MS"BACKUP, Norton/Symantec DEFRAG,
  improved help/FASTHELP, config MENU functionality, CHOICE, INTERLNK/INTERSVR,
  MOVE, DELTREE, improved MEM, DIR, UMB-loading of things improved
DOS 6.20 -> SCANDISK, DISKCOPY improved (using harddisk as buffer), single-
  stepping in autoexec, improved DBLSPACE / HIMEM / SMARTDRV (added CD-ROM
  caching, I think; SMARTDRV 4.x of DOS 6.0 already added delayed writes,
  4.2 makes "write before returning to prompt" default, 5.0 of DOS 6.20 and
  Windows 3.11 even makes "no delayed writes" default:
  http://www.knowwareglobal.com/optimal/optimal_smartdrv.htm
  The smartdrv of DOS 4.01 and 5.0 is a SYS file and caches BIOS based, while
  the smartdrv of DOS 6.xx is an EXE file and caches "int" 25/26 based and can
  even cache networked drives as far as I remember. The sys version uses EMS.
  Or XMS. Default is XMS/extended, /a makes it use EMS/expanded.
  ... note that DOS 4/5 SMARTDRV had a syntax of only [size] [/a], not more).
DOS 6.21 -> removed DBLSPACE (license troubles)
DOS 6.22 -> some bugfixes, add DRVSPACE (clone of DBLSPACE), something like that...

Forgotten on the above site but still...: DOS 5 adds EXPAND, LOADFIX (to load
EXEPACKed files > 64k boundary, workaround for "the only" thing which keeps
people putting A20 gates into x86 processors since the 1980s...), SETVER,
MIRROR (counterpart to UNFORMAT).
DOS 6.xx also added the MSD system diagnostics tool.

The NCCorps FreeDOS distro seems to be planning to help with DBLSPACE,
DOSSHELL, INTERLNK/INTERSRV and DRIVER,SYS:
http://nccorpstemp.o-f.com/fd10list.htm

So apart from Windows 3.11 compatibility, how far are we?
DOS 4.0 yes - we have some disk cache and a graphical user interface etc.!
DOS 5.0 mostly - we do not have a good QBASIC (BWBasic improvement project is
  currently on hold due to lack of interest, let me know if you want to help).
  All other DOS 5.0 goodies are present in FreeDOS by now, although with some
  limitations (unformat, undelete, edit, dosshell, setver). EXPAND is missing?
---
DOS 6.0 not really - our EMM386 is limited, MEMMAKER not existing at all,
  ClamAV clamscan can replace MSAV, a VSAFE would be nice (I would like to
  start such a project, who wants to help? Rob?), DBLSPACE would have to be
  removed 0.21 versions later due to license issues ;-), BACKUP would be bought
  from PC-Tools, DEFRAG would be bought from Norton/Symantec, HELP/FASTHELP is
  present but in some aspects describes MS DOS instead of FreeDOS (!), config
  MENU is present but nor syntax compatible to MS, CHOICE is there, some
  "serial port drive letter" tool has been found by Tyler but nobody tested it
  successfully yet (!), MOVE works, DELTREE works, DIR works, LH and DEVICEHIGH
  work, MEM could be better but works.
DOS 6.20 uhmm... we are thinking about a SCANDISK of WinDOS 7.xx power, our
  DISKCOPY is already great, autoexec stepping works, we might - no joke - add
  support for readonly compressed filesystems in 2004 or 2005 at least, our
  XMS drivers are improving and I might eventually get bored enough too add
  delayed writes and other gimmicks to LBAcache (and maybe add a network drive
  cache and a mechanism to share XMS between the different caches).

So my personal opinion is: QBASIC is more than abandonware (has been online
for download on MS servers for quite a while!), EXPAND is for MS style install
archives which are usually bundled with EXPAND. So we should focus on bug-
fixing and improving the existing tools to reach "MS DOS 5.0 and some more"
feature set. Whenever we have extra spare time, we can work our way towards
more MS DOS 6.0 features - but without trying to be a close clone. Having a
virus scanner is okay, but cloning MSAV would mean cloning a bad product which
is 11 years old, for example (probably more, MS DOS 6.22 was of 1993, and I
do not remember any updates for MSAV shipped after that). Many of the extra
features of MS DOS 6.xx were bought from 3rd party sources. You can use FreeDOS
with lots of 3rd party software, too X-).

APPEND would be nice for dual-floppy-no-harddisk systems. So having it is
good. If it refuses to work on FAT32 or anything like that, fine for me.
DRIVER/DRIVPARM in the kernel would be nice for embedded systems and probably
not even very complicated to add!
Normal users with harddisks will need neither APPEND nor DRIVER/DRIVPARM.

I think we can call FreeDOS a clone of MS DOS 5.0 features with many goodies
from later Win/DOS versions inside but with still a few DOS 5.0 features
missing - some "legacy" ones do not hurt, some others like Win 3.11 compat
should probably be fixed before we call it FreeDOS 1.0 ...

This is not exactly a short reaction to the suggested TODO list updates but
it is a longer elaboration about SCANDISK and the-MS-DOS-which-we-should-try-
to-reach choices. Congrats if you have reached the end of this mail 8-).

Eric.



-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
_______________________________________________
Freedos-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to