2003 Jun xx - Build 2030 -------- Bart Oldeman (bart@dosemu.org) + Changes Tom * if user left accidentally floppy or CD in drive, give him a chance to continue to boot from HD. disabled by default, enablable by SYS CONFIG (BOOTHARDDISKSECONDS) + Changes Lixing Yuan * dosnames.c cleanup, fix for truename if the filename contains wildcards and a trailing dot. + Changes Eric Auer * add sanity check to initdisk.c for (driveParam->chs.Sector == 0) + some display tweaks * add EECHO (echo with $=ESC) support to the config.sys parser. * distinguish between the builtin DOS version and the settable DOS version. * console.asm now accepts extended scancodes (modified by Bart) * added BOOTONLY option to SYS (modified by Bart) + Changes David Bolen * add support for UNC-style paths (that start with "\\") + Changes Luchezar Georgiev * add Bulgarian country structure data + Changes Bart * flip some slashes in drivers/*.asm (enables cross-assembly on Linux) * remove superfluous printf("\n") in patchobj.c * combine the INIT class with the CODE class (classes can span multiple physical segments) * re-add _TEXT to LGROUP to be able to simplify the patchobj magic * don't specify -zPI_GROUP for the init code in Borland compilers (unnecessary, it will be put there because of segs.inc) * remove STDPATCH; it is no longer necessary * add FILESHIGH, LASTDRIVEHIGH, and STACKSHIGH and DOSDATA=UMB to load these structures into UMBs * make DOS sub-MCBs visible (seen by MEM) * preliminary allocation of FILES etc. now takes place at the top of conventional memory, and device drivers are loaded before the final allocation takes place. * handle multiple UMBs more correctly (but config.sys can use only one UMB for devicehigh -- /Ln,xxxx is not yet implemented) * minor size optimizations in newstuff.c, chario.c, dosfns.c and fcbfns.c. asmsupt.asm: correct fmemchr (all n's) and *memset/*memcpy (n==0) * introduce lol structure for list of lists; avoid lots of relocations * avoid more relocations in the asm files by loading ds from [cs:_DGROUP_] * Fix problem with attributes with the volume label bit + findnext * SYS: avoid copying kernel.sys and command.com if the destination is identical to the source. * Fix bug in DeleteBlockInBufferCache: needs to make the block invalid, not flush it, if we're writing. * added switches=/k/n/f support to the config.sys parser. 2003 Mar 14 - Build 2029 -------- Bart Oldeman (bart@dosemu.org) + Changes Tom * fattab.c, fat.h removed the wrong ELSE_ISFAT32() * fatfs.c: rmdir would crash if you rmdir'ed an existing file * config.c, main.c, portab.h implement INSTALL and INSTALLHIGH for config.sys basic COUNTRY=xxx support (with a little help from others, mentioned in config.c) * execrh.asm: save si, di for strategy device driver handler * (adjusted by Bart): the internal "truename" has to reject wildcards for all commands except for the exposed "truename" (DosTrueName, int21/ah=60), FindFirst and FCB functions. + Changes Bart * add top level makefile with list of files to zip for releases * remove obsolete documentation and intr.h * eliminated the "f_highwater" fnode field. * reintroduced HMA_TEXT segment and adjust segments in libm.lib to solve problems with Borland compilers. 2002 Dec 9 - Build 2028 -------- Bart Oldeman (bart@dosemu.org) + Changes Tom * move clock driver initialization to inittext * new ELSE_ISFAT16 macro to save some bytes * use _TEXT for old HMA_TEXT, _LOWTEXT for old _TEXT to get a slightly less complicated memory model from the C compiler's point of view. * add support for int2f/4a01,4a02: query/allocate HMA space. * updated config.txt + Changes Arkady V. Belousov * slightly improved asm for print_hex and int2f clear_ax stuff * use #error for unknown compilers * remove hexDigits reference * correct comment in kernel.asm (pad to 05fdh) + Changes Bart * fix ss:sp init bug for int21/ax=4b01 (visible in DEBUG) * fix redirection problem for character output routines * fix press the any key message for floppy swaps * correct cluster value for BAD cluster * correct FAT12/16/32 cutoff magic values as per the MS spec * the BUFFERS structure is now the same as in MSDOS 5+ and uses a circular double-linked list using near pointers. * move all old RCS log messages into one seperate file * divide the fnode f_cluster_offset field by the size of a cluster: this gives a more efficient map_cluster(). * point the CharMapSrvc pointer to the DOS DS for AARD compliance. * nls.c: set CX to cooperate with load_unf.exe 2002 Nov 9 - Build 2027 -------- Bart Oldeman (bart@dosemu.org) + Changes Tom * memset ErrorAlreadyPrinted to 0 in config.c + Changes Bart * reset drive before and after int26 in SYS for winnt compatibility * propagate sharing bits correctly in DosOpen * return DE_NFILES if a volume label is not found; search for volume label if attr & 8 not just if attr==8 * initialize the critical error code to 0 in inthndlr.c * ignore value of DH for extended open int21/ah=6c * fix problem with NULL device code being in the wrong segment * Hopefully innocent hack to deal with NDN in ioctl.c (ignore upper bits of the drive number) * use subst bit 15 for int21/ax=4409(IOCTL-CHECK IF BLOCK DEVICE REMOTE). 2002 Oct 27 - Build 2027rc -------- Bart Oldeman (bart@dosemu.org) + Changes Bart * reorganized chario.c, got F1-F6, Ins, Del, etc. working * fixed bug in extended open * fixed bug in memory manager (realloc should try to defragment; UMB fixes) * consistently pass sft_idx around for all SFT functions (instead of the far pointer) * lpUserStack is gone :) * Idle interrupt: now uses disk i/o stack instead of error stack if it re-enters DOS; can not be called from int21/ah=3f. It also checks InDos now (as documented in "undocumented dos"). * int21/ah=59 should use the disk i/o stack, not the character stack. * get_cds: a uniform way to get the CDS for drive X which can do error checking too. get_dpb: similar. * task.c uses mid-level system file handles instead of PSP handles. * SFT sequence is MS/DR DOS like: 0=AUX 1=CON 2=PRN * int21/ah=4d needs to clear the return code after returning it. * Removed need for "unusedretval" because some functions return a long int now. * Do not warn for some additional LBA partition layouts (begin/end cylinder=1023) in initdisk.c. * support int2f/ax=1213 (uppercase character) (ASCII only for now). * fix for top of memory parameter to device driver - fixes problem with DRDOS emm386 * eliminated printf for non-init code -- use put_unsigned and put_string instead * better MK_FP for Turbo C++ 1.01 and later * PSP related task.c cleanups * use --best and new upx (1.23) for binary build Changes Tom and Bart: * Use Pascal calling convention for memcpy and friends in asmsupt.asm * Fixed make temp file * fix bug in DosFindNext * misc makefile fixes 2002 Aug 3 - Build 2027test -------- Bart Oldeman (bart@dosemu.org) + Changes Tom * enable LBA FAT16 booting * workaround for redirectors that do/do not set the opencount * int25/26 should fail for redirectors * set the number of sectors per track in the INT 1E table when reading/writing floppies * disabled fatal() in error.c * Disable the A20 line upon exec (int21/ah=4B). This is necessary for some brain-dead exepacked programs. * removed unnecessary "BUFFERS" fields * proper check for network/non-existing drive for int25/26. * save more bytes on the stack at various places * made the local registers for inthndlr.c "near" instead of "far". * fix bug in strchr handling for fcbfns.c (FcbParseFname) + Changes Steffen (but changed a lot by Bart) * new truename (Bart: but without mapPath() style struct) * merge open/create functions into one extended open function * also honor the sharing bits better for "open" * use local 8+3 path names in fatfs.c; merge name+extension into one array * take care of filenames that start with ASCII 5: they should be treated as starting with 0xe5 * exploit the fact that the filenames are already "truenames", i.e., fully qualified in fatfs.c. This simplifies parsing a lot. + Changes Bart * make "if exist c:\dir\nul" working * honor "do not inherit handle on exec" flag for "open". * improve the FCB functions so that they set the critical error code properly * next_cluster returns "1" instead of DE_xxx in case of failure. * create one function to do binary character IO (used for CLOCK$ driver and character drivers such as CON) * better handling of ABORT/FAIL * merge all read and write functions * patchobj makefile correction * printf uses va_list etc. * quicker and more robust Watcom build * use FS: and GS: for Watcom 386. * workaround: don't use DL for floppy boots, but fixed A: * disable unused functions in floppy.asm * cleaner prototypes (thanks to gcc) * reorganized ioctl.c; there was an uninitialized variable. * inlined some functions of fattab.c * added (f)strcmp, (f)memcmp and (f)memchr to asmsupt.asm * initially suggested by Arkady: dsk.c FS_info copy optimization * initialize a VDISK signature in the HMA * sysclk.c: small size optimization * small UMB fixes * made the CDS into a proper array instead of a structure with one member * large task.c cleanups - merge as much as possible from DosExeLoader and DosComLoader (from Tom:) eliminate some structures in low memory * main.c: slightly cleanup "SHELL=" line parsing. 2002 May 9 - Build 2026b -------- Bart Oldeman (bart@dosemu.org) + Changes Tom * limit output at boot time somewhat * GetCurrentDirectory should fail, if drive is accessible * fixed some minor config.sys parser bugs and have the possibility of things like 123?device=EMM386.EXE NOEMS * shorter version of DosMemLargest() + Changes Bart * repaired makefile dependencies * implemented multi-sector writes, and re-merged readblock()/writeblock() into rwblock () * implemented int21/ah=1c for network drives (RHIDE needs this) * initialize current_ldt for findnext (hinted by Steffen) * check serial number for floppy disk changes where the drive does not feature a changeline * reset to root directory when floppy has changed * cleaned up endian helpers {get,put}{byte,word,long} * don't close file if disk is full * enforce minimum of 9 sectors per track for INT1E (necessary for some floppies on some XTs) * clear carry when calling INT23 (ctrl-break handler) as per RBIL * don't copy FCBs on exec if they are pointed to by FFFF:FFFF. * resolved warnings for Watcom (now compiles with -wx -we) * truename fix (return DE_FILENOTFND for foo.bar.foo) + Changes Jeremy * fixed SYS _dos_getdrive for non-Borland compilers + Changes Tom and Bart * cleaned up fatfs.c, fattab.c, sysclk.c (CLOCK$ driver), systime.c 2002 Feb 17 - Build 2026a -------- Bart Oldeman (bart@dosemu.org) + Changes Martin * fixed SYS for non-Watcom compilers + Changes Tom * set CONFIG environment variable to selected number of CONFIG.SYS menu entry, for example for use in AUTOEXEC.BAT. + Changes Bart * fixed FCBOpen * network redirector fixes ; it appears that clearing CF before calling the redirector is safer than setting CF * allow creating, renaming and deleting volume labels using FCBs * fix renaming with wildcards using FCBs * some dosfns.c and fcbfns.c clean-ups * booting from hard disk now always sets the default drive to C:, not D: if booting from the second physical hard disk, etc (bug #1062). 2002 Feb 9 - Build 2026 -------- Bart Oldeman (bart@dosemu.org) + Changes Tom * fixed various typos, #includes + Changes Bart * fixed ECHO in config.sys * made passing parameters to command.com more robust: zero commandline before use, fixed buffer overflow for F5+F8 * "uppermem_root" in the List of Lists is now FFFF if no UMBs available, as documented in RBIL * removed all direct hooks from init_text to hma_text; duplicated the remaining functions (memset, memcpy and friends). * bumped up default DOS version of FAT32 enabled kernel to 7.10 2002 Feb 3 - Build 2026test -------- Bart Oldeman (bart@dosemu.org) + Changes Tom * FCB clean-ups and fixes (bug in FCB Random IO, CYRUS CHESS, bug #1014) * initial config.sys menus (see config.txt) * execrh.asm: construct 'interrupt' address after strategy to avoid some issues with non-trivial 'strategy' routines. * make kernel UPX-able * cleaned up midnight flag, dates * tmark() and friends are floppy specific and implemented in C instead of ASM (parts by Bart) * DMA boundary checking gives the right number of sectors if the start sector is 512-bytes-aligned. + Changes Victor * lfn fixes (lfn is only a place holder, does not work yet) * FAT32 fixes * dosemu log nicer + Changes Martin * log output * warning fixes for sys, patchobj and prf.c + Changes Bart * FCB clean-ups and fixes * make Watcom compiled kernel runnable * make compilation with Pascal style calling conventions for Borland compilers (-p) possible * initialize CDS before opening devices * implement lock/unlock for remote drives * implement commit file (int21/ah=68,6a) * implement ioctl get/set logical drive map (int21/ax=440E--F) * implement get address of drive data table (int2f/ax=0803) * fix "get address of SDA" (int21/ax=5d06) * do not use CHS if the root extended partition of the relevant logical partition is labelled LBA (bug #1011) * hopefully avoid format problem (bug #1030) by not setting drive to "non-accessible" while reading the bpb. * boot sector fixes: enable booting beyond cylinder x where x * number of heads >= 65536. still uses CHS to boot (not able to boot beyond cylinder 1023) recognize FF8-FFF as FAT12 ending (was only FFF) (bug #1021) * avoid using LIB when linking the kernel by echo-ing to a linker resource file. Use a batch file to bypass Borlands Make 2.0 unwillingness to redirect stdout. * UMB variable clean-up * use of "const" for constant global variables * reduced size of Watcom-compiled SYS binary 2001 Nov 18 - Build 2025c -------- Bart Oldeman (bart@dosemu.org) + Changes Bart * ran source code .c and .h files through "indent" * fixed new printf bug * removed some duplicate documents + Changes Victor & Bart * fixed sys.c fat32 detection bug (offset 0x10, not 0x2c) 2001 Nov 17 - Build 2025b -------- Bart Oldeman (bart@dosemu.org) + Changes Tom * fix a few more batch file and makefile details * fix problems with command line editing: F1 and right key * string merging in dosnames.c * optimizations for MSC + Changes Bart * fix readblock problem not properly detecting EOF - it sometimes returned an error where it should just report a short count. Also fnp->f_offset==0 is not a special case for blockread (neither should it be for write - but that'll be for later) For both cases it's perfectly legal to do a seek first. * fix writeblock not setting highwater to offset when doing a truncate (count == 0) * hopefully now really fix the floppy change problem - dsk.c: getbpb() should query changeline BEFORE reading the BPB. * fixed warnings from WATCOM compiler - one of them was in fact a bug in fcbfns.c * started big clean-up - converted obsolete bcopy(), sncopy() and friends to memcpy(), strncpy() etc. - removed $Log entries that are also on the CVS server and removed the $ so no new entries will be added in files. indenting will be next - other fixes will be buried in diffs if I do that now. 2001 Nov 12 - Build 2025a -------- Bart Oldeman (bart@dosemu.org) + Changes Tom * initialize LBA parameter struct to 0's - some BIOSes don't fill in everything. Thanks to Bernd Blaauw's bug report. * Minor boot sector optimization. * added some exeflat options + Changes Jeremy * changes to fdkrncfg.c: mostly cosmetic to the output * added sys.doc file (updated by Bart) + Changes Bart * let int 0 (divide by zero) and int 6 (invalid opcode) print a stack trace to aid in debugging * fixed floppy drive detection for XT's. * fixed bug in int21/ah=0x32 and friends - we should flush data before the forced media_check * Use CHS addressing if possible on partitions with the relevant ID, you can overide this using the new FORCELBA and GLOBALENABLELBASUPPORT sys config options. * Always use BIOS values for translating LBA to CHS for fixed disks - ignoring the boot sector values. For floppies the boot sector is used. * fixed "truename hello." to remove the trailing dot. * added options to SYS to write to a boot sector image file * set Critical Error Code for ioctl's * fake cluster size for 64k clusters just like FAT32 for INT21/AH=0x36 and friends. + Changes Bart+Tom+Victor * make makefile system more robust + Changes Victor * cleaned up map_cluster and dir_read (bug fixed by Bart) * updated LFN API (in development, not used yet) 2001 Nov 4 - Build 2025a (test) -------- Bart Oldeman (bart@dosemu.org) + Changes tom * config.sys processing: placing ? on the left side of '=' like ?device= or device ?= asks for this single line fill the available HMA with buffers * added kernel configuration options to sys.com, small area at 60:xx (in cooperation with Jeremy) * readblock optimized to read as many data as possible in one int13 request - great speedups for large reads * some more SDA variables need to be updated for the network redirector (the sft index) * reduce stack usage in task.c, fattab.c, ioctl.c, execrh.asm, inthndlr.c * protect high part of 32-bit registers (stacks.inc) * moved copyright messages to init data to save a bit of memory * added relocinf, patchobj, sorted + some more output of exeflat * UMB fixes + Fixes Bart, Victor, Tom * more FAT32 fixes - to work with device drivers * fixed overflow problem with more than 2048 directory entries * various space saving changes, dir_init_fnode + Changes Bart, Tom * many makefile changes to enable compilation with different compilers (MS, Watcom, Borland). Watcom compiles but the result does not run yet. + Changes Bart * extended the double-byte lead table from int21/ah=63 to 4 zeros to make Watcom happy * support for IOCTL AX=440D, CL=40,41,42,61,62 for read/write/format track - this enables R. Nordier format to work * default floppy type depends on the drive * rewrote many parts of int2f.asm to have a cleaner remote_xxx interface with less code and stack usage. * limit for int21/ah=36 is FFF6 total/free sectors * made the rtc clock reading code a bit more robust - assumes there is no rtc if the returned date is zero * removed non-necessary code in dosnames.c because we're always dealing with a TRUENAME there * added zero extending of files, but removed it (unless you force it) since MSDOS doesn't zero-extend files either * wrote a source for exeflat, removed all binaries from the source * added more INT2F/AH=12 functions to solve some MSCDEX issues * changed BAD sector handling : only ....FF7 is recognized as BAD, but FORMAT information from initdisk will only give ....FEF as the largest cluster (for safety), so ....FF0-....FF6 are not used for newly formatted disks (here .... is either nothing, F, or FFFF, FAT12/FAT16/FAT32). * more fatfs/fatdir clean-ups - now unnecessary fields dfull, dremote and dsize removed from fnodes. 2001 Sep 24 - Build 2025 -------- Bart Oldeman (bart@dosemu.org) + Fixes Victor * More FAT32 fixes + Fixes Tom * Printer handling * misc INT2F/AH=12 fixes. * misc clean-ups + Fixes Bart * Added drive B: handling if only one floppy drive available (look for play_dj() in dsk.c) * Simplify Victor's FAT32 fixes a bit * More printer clean-ups * fixed sys (thanks Jeremy) * DosChangeDir fails for path name too long. + Fixes Jeremy * Changed SYS so if no source given or only source drive (no path) given, then checks for kernel.sys & command.com in current path (of current drive or given drive) and if not there uses root (but only if source & destination drive are different). Fix printf to include count(ret) if copy can't write all requested bytes 2001 Sep 22 - Build 2025 (test) -------- Bart Oldeman (bart@dosemu.org) + Added Victor * FAT32 support (credits to Martin Stromberg for boot32.asm optimizations) * Delete long file names if short file name given + Added Jeremy * modified SYS so it takes optional 2nd parameter (similar to PC DOS) where if only 1 argument is given, assume to be destination drive, but if two arguments given, 1st is source (drive and/or path) and second is destination drive + fixes Victor * some small FCB and dsk.c fixes + fixes Tom * some FAT32 issues * many compiler portability changes (compiles with Watcom, MSC, ...) * DosMemChange should set the PSP * converted INT2F/AH=12 functions to C and added some - enough to get most of the MS LAN network client working + fixes Bart * some FAT32 issues * Dos{Open,Creat}Sft drive letter issues for CDROMs (thanks Jeremy) * shrink_file should ALWAYS fail for directories, also with dos_set_fattr (thanks Jeremy) * only give warnings for slightly suspect partitions at boot time where CHS does not match LBA. * re-enabled copyright notice. * some dsk.c clean-ups to avoid DIR giving the same contents for a different floppy (get serial number/volume label did reset the changed state). * attribute should be 8-bit fix 2001 Aug 19 - Build 2024/h -------- Bart Oldeman (bart@dosemu.org) + fixes Bart * truename fixes (#580) * free space fixes (#249) * Ctrl-C/Ctrl-Break fix 2001 Aug 19 - Build 2024/g -------- Bart Oldeman (bart@dosemu.org) + fixes Bart * set file time fixes * clock fixes * findfirst/next fixes * added a bit more int2f/ax=12xx functionality * buffers trick to fool MFT so that it does not crash * Ctrl-S (pause) and Ctrl-P (printer echo) now work. Ctrl-Q is ignored by DOS. * FCB "closing twice is legal" fix. Necessary for visicalc. + fixes Bart + Tom * fixed shsucdx /u unloading problem 2001 Jul 28 - Build 2024/f -------- Bart Oldeman (bart@dosemu.org) + fixes Bart * fixed get current directory - MSCDEX works now (always) * initdisk.c correctly sets number of hidden sectors: necessary for FORMAT - SYS chain to work + updates Bart * initialisation memory situation changed: kernel is loaded to the top of conventional memory in the beginning. Then move it back low or high depending on DOS=HIGH and the presence of an XMS driver. DOS=HIGH without an XMS driver (such as FDXMS) has no effect anymore! + fixes Tom, Victor, Bart * various fatfs.c fixes and clean ups 2001 Jul 23 - Build 2024/e -------- Bart Oldeman (bart@dosemu.org) + fixes Tom * dyninit allocation fix * various clean ups + fixes Bart * #define DBLBYTE in inhndlr.c. Necessary for PQDI * FCB corrections and cleanups (with a little help from Tom) * cleaned up (FCB)FindFirst/FindNext a little more. * task.c: copies default FCBs, initializes AX properly and an int21/ax=4b01 fix. Also closes all FCB opened files upon termination of a program. * dosnames.c: fixed DJGPP "ls c:/" problem reported by Martin + fixes Victor Vlasenko * Makefile fix for dealing with Borland make 3.6 * fix for fatfs.c shrink_file() + fixes Bart * handle B: just like A: on a single floppy system. There still needs to be user interaction like "Please put a floppy in drive B:". * ioctl.c fix for INT21/AX=4400 + sft driveno field * various small fcb fixes * put file position number and pointers to Pri/SecPathName into SDA. Now MSCDEX works as redirector (but still not always :-() * redirector set attribute fixes + various cleanups * truename+attr+ioctl fix => DJGPP libc compiles cleanly! + changes Bart * use the output of truename() consistently: this saves a lot of headaches in parsing later and also allows a lot of simplifying: made many parameters in fatfs.c and fatdir.c NEAR + added Bart * partly implemented the "Drive Data Table" see RBIL INT2f/AX=0803 * implemented construction of default BPB in initdisk.c * implemented the access flag in dsk.c * printf writes to DOSEMU log if prf.c compiled with #define DOSEMU + fixes Bart * dsk.c uses default BPB in the right places (with help from Tom and Brian) * Brian's FORMAT now works * Tab fix (bug reported by Martin Stromberg) * INT21/AH=0x1f now simply uses AH=0x32 for the default drive + fixes Tom * saved some static variables * implementation of int_2f_111e_call() for network/LAN manager * return AX=0001 for default redirector handler * enable use of multiple UMBs * fixed task.c 'LOADHIGH executables': minAlloc == maxAlloc = 0 and an fixed overwriting the MCB 2001 Jul 9 - Build 2024/d -------- Bart Oldeman (bart@dosemu.org) + fixes Bart: * fixed Ctrl-C (Ctrl-S and Ctrl-Q still missing). * ioctl EOF fix (DJGPP less&gdb problem reported by Martin Stromberg) * INT21/AH=29 (Parse Filename into FCB) fix (NC problem reported by Ken Martwick) with clean up from Tom. * ioctl should do a media_check before calling the block driver: this fixes bug #726 (first dir gave serial no. 1234-5678). * initdisk.c now uses the init data segment. + fixes Tom: * fixes for INT21/AH=32; this should cure the problems with Brian's new format. * more SYS fixes. + added Tom: * some more diagnostics (123) to aid finding bugs when booting from a hard disk. from 2001 jun 23 : KE2024BP + fixes Tom: * FAT FS: would not expand files correctly, if lseek() beyond EOF (see also relnotes.txt) * FcbFindFirst/Next made compatible with MSDOS CHKDSK * saved even more bytes (now 24 buffers in HMA :-) from KE2024BM + added Tom: * a mechanism, to regain near data (like miarray, bpbarray,...) this is somewhat braindamaging, moving the kernel up and down, working with different CS/DS combinations, but somehow working, :-) miarray allocated, using this mechanism. * made f_nodes near (2 K saving in HMA_TEXT) this technic might as well applied to CDs, DPB, sft's, ... this even saves a few bytes on stack :-) from 2001 May 21: Build2024L + Fixes Tom: * Clustersize 64K made working (one small ULONG was missing) * check for drive existence for INT25/26 * NDEV = max number of possible harddisk partitions bumped from 8 to 20 (my testconfiguration has 13) + Added tom: * LBA support for disks > 8GB (with the help from Brian Reifsnyder, see also relnotes.txt) * moved initialization for DISK (partition scanning) to INIT_CODE 2001 Jun 2 - Build 2024 -------- Bart Oldeman (bart@dosemu.org) + Fixes Tom: * small fixes again. * one possible cause for data corruption (BFR_VALID) detected * directories with 'ARCHIVE' attribute could not be deleted * saved even more bytes (now 20 buffers in HMA :-) * some issues with pathnames around PARSE_MAX removed * blanks in filenames weren't proper handled * there was (at rare circumstances) a buffer overflow while config.sys parsing. + Fixes Bart: * INT 21 0A - Dos Buffered Input reworked * init_PSPSet() fix for setting the PSP + Added tom: * slighly better buffer handling (search BFR_UNCACHE) now go more FAT+DIR sectors, less DATA sectors into cache * dos_mkdir tuned (was ~0.5 sec on 64K cluster partitions) 2001 Apr 29 - Build 2024 -------- Bart Oldeman (bart@dosemu.org) + Fixes Bart: * fixed the "TYPE > FOO.TXT" poor man's editor. * use "fast console output" (int 29) when applicable. * moved 5 FILES to DOS DS:00CC and fixed the SFT linked list. * cleaned up findfirst/findnext for redirected drives. Tom: * more VDISK changes (changed slightly by Bart) * check for presence of A:/B: (changed by Bart to use the BIOS equipment flag from INT11 instead of INT13). * added F5/F8 stepping through config.sys; default SHELL=COMMAND.COM /P/E:256 Use ESC to stop single stepping, F5 to skip remaining config.sys/autoexec.bat. * new sys: uses INT25/26 instead of the low level INT13 related kernel code from floppy.asm (see also comments in sys.c) + a few fixes (also boot.asm related) from Bart. * Hopefully fixed DateTime Changed + ATTRIB |= ARCHIVE bug. * cleaned up dsk.c and saved more bytes. Przemyslaw Czerpak: * Default lastdrive should be 5 (E) not 6 (F). * fixed not ignoring whitespace after '=' in config.sys * noted INT21/AX=3800 bug for getting the country. Put in a workaround for now. 2001 Apr 21 - Build 2024 -------- Bart Oldeman (bart@dosemu.org) + Fixes Tom: * fixed a missing close_dir in fatfs.c. * many reductions of stack space requirements. we hope this fixes some FAT corruption problems. Bart: * fixed "copy con" and INT21/AH=0B. The SFT_FEOF flag, strangely enough, if true indicates NOT end-of-file. * VDISK signature required in HMA (bug 701 dborca@usa.net). Alan Kamrowski * fixed intr: it wasn't putting the flags back correctly and swapped si and bp. + Update Bart: * Changed initialization data segment to its code segment. This frees up a few more kb. * This required some header reorganisation: init-mod.h is for the init modules, globals.h for all the others. * Eliminated the master environment, as it is normally managed by command.com, not by the kernel. This saves 512 bytes and command.com now copies a default environment from 0068:0000; this is in the DOS_PSP at 60:0. * Moved low memory code segment to 70:0. + Add Tom: * Default interrupt 6 handler (invalid opcode). 2001 Apr 16 - Build 2024 -------- Bart Oldeman (bart@dosemu.org) + Fixes * Use turboc.cfg to avoid long command lines; edit ALLCFLAGS in config.mak to enable DEBUG etc. * Fixed critical error handler. * Fixed loading .exe's in UMBs if not enough space available. * Some device drivers require \r\n at the end of their parameter line. 2001 Apr 16 - Build 2023 -------- Bart Oldeman (bart@dosemu.org) + Fixes * Thanks to Martin Stromberg for pointing some bugs out: * more warnings fixed. * accidentally opened too many file handles at boot time. * device drivers should not be linked into the device chain if they do not take up memory. + Add * added printf "%S" and "%Fs" to print far strings. * enabled and cleaned up INT21/AH=6C (extended open/create). 2001 Apr 15 - Build 2023 -------- Bart Oldeman (bart@dosemu.org) + Fixes Tom: * apisupt.asm not necessary anymore. * fix warnings. * Don't allow directories to be created in DOS_CREAT. * LoadDevice: drivers should not hang the computer if they fail. Bart: * fixed SYS. * made most calls near again, with a jump/stack trick to switch between INIT_TEXT and HMA_TEXT. * INIT_TEXT now calls INT21 itself for some things (setting PSP, opening/reading/closing devices and (fd)config.sys). * fixed some carry handling in inthndlr.c and * drives are checked before trying to access them. * fixed console driver "busy state" confusion: the built-in driver had it wrong, nansi.sys had it right: "If no characters in buffer, return BUSY". * space savings (RTL related and various other places) * redirector fixes for find_next. * CREAT on a device file failed (FD said it already existed). But for some reason it should not fail in DOS. * get ATTRIB/other things on a device file should return FILENOTFOUND, not PATHNOTFOUND. The sft_status field is not used for redirected drives. * DosSelectDrv checks the media before setting the default drive. * Fixed INT21/AH=3,4,5 (character R/W AUX/PRN). Hans Lermen: * critical error handler destroyed AH (entry.asm). Martin Stromberg * find_first for volume labels fix. * check drive at more places and avoid drive "@:" for drive "':". * config.m: comment out NASM= by default. * printf fix with DEBUG on. + Add Tom: Introduce init_data segment. New temp file creation implementation. Bart: added INT21/AH=53. XMSDSK works fine now. dynamic allocation of Drive Parameter Blocks (they are all FAR now). + Update Bart: moved DOS_PSP to segment 0x60 as segment 0x50 is already used by GWBASIC/BASICA 2001 Apr 2 - Build 2023 -------- Bart Oldeman (bart@dosemu.org) + Fixes Bart: Volkov Commander revealed a few bugs: -int 21/ah=55 forgot to set current psp to child psp. -memory allocation: mem_access_mode was a signed byte, and hence 0x80 was translated to 0xff80 and not 0x0080 when converting to a COUNT. Hence changed it to become a UBYTE. -An error in memmgr.c: search again in low mem for modes 0x80,81,82, not 0x40,0x41,0x42 * execrh.asm & int2f.asm: made code executable on a 8088 (no push constant) * entry.asm: made sure dos_crit_sect is executed when required to. * Another redirector fix. int 2f/1122 needed DS=current psp. This caused a bug for me: after compiling FreeCOM on a redirected drive "dir" did not work any more. * The nansi.sys problem: as it was, the initialisation phase of nansi called int/ah=30, which checked control-break, which checks the console driver, which at that point is the still not initialized nansi. This messed up the request header passed to it. A solution I found is to link a device into the device chain _after_ initialisation, not before. * Redirector fix: network.c uses fmemcpy instead of fsncopy. * Fixed INT 21/AH=6 (direct console input). Tom: * DE_NFILES instead of DE_FILENOTFOUND to allow Volkov Commander to browse empty drives. * Fixed bug wrt zero terminated device names (should be spaces terminated). 2001 Mar 30 - Build 2023 -------- Bart Oldeman (bart@dosemu.org) + Fixes Tom: Kernel alloc initialises to 0. This avoids some weird errors. Implemented default divide by 0 handler (INT 0) FILES= fixes from config.sys. fatfs.c ignored it and always used the default of 16. Misc debug code removal. int 21/ax=3306 report running HIGH fix. int 21/ah=69 : save CX InitializeAllBPBs() or MakeNortonDiskEditorHappy() More extended information if MCB chain corruption occurs. Bart: getdpb fixes (int 21/ah=32). fix carry handling in int 21/ah=5e. fix {get,set}_machine_name in network.c saner lastdrive handling + Add Support for SHELLHIGH in config.sys 2001 Mar 28 - Build 2023 + Fixes Bug fix release 2023b: dsk.c (reported by Nagy Daniel), inthndlr and int25/26 fixes by Tom Ehlert. 2001 Mar 27 - Build 2023 -------- Bart Oldeman (bart@dosemu.org) + Fixes Bug fix release 2023a: fixed stack segment bug in entry.asm. 2001 Mar 25 - Build 2023 -------- Bart Oldeman (bart@dosemu.org) + Fixes sys.com compilation: it is a proper .com and works again. Suggestions from Martin Stromberg: warning removal and some debugging related changes. Suggestion from Aitor Santamaria Merino: implemented NUMLOCK=ON/OFF in config.sys. Also implemented strcasecmp. Updated intfns.txt; reported version is now 5.0. 2001 Mar 24 - Build 2022 -------- Bart Oldeman (bart@dosemu.org) + Fixes Tom and Bart: cli/sti handling and other fixes in entry.asm, procsupt.asm and apisupt.asm. Bart: warning removal + other compile time fixes. Tom: * more partition detection fixes in dsk.c. * dos_gettime() fix. 2001 Mar 21 - Build 2022 -------- Bart Oldeman (bart@dosemu.org) + Clean A lot of space savings by Tom Ehlert, merely because Turbo C 2.01 does not do it. And several more complicated situations as well, like coding some string functions in assembly (asmsupt.asm). + Add Tom Ehlert: support for DOS=HIGH. Now most of the kernel can be loaded into the HMA. This required a lot of segmentation changes. Let's hope the best of it. Support for device drivers with multiple devices. + Fixes From Tom Ehlert: task.c bug fix (image_size is in bytes) dosfns.c change dir to E:\FREEDOS\*.PRJ fix fcbfns.c fixes. break.c Ctrl-C Ctrl-C -> crash temporary fix. + Fixes From Bart: Let UMBs work again after HMA changes. Be able to compile sys.com again. Is now really a .exe file but still masks as .com in the hope that we can make it a real .com again. DeviceHigh loads low if there are not enough UMB's available. Fixed another redirector problem. + Update Optimized asmsupt.asm a bit with help of the glibc 2.2 source. + Fixes Tom Ehlert and Brian Reifsnyder: fix partition detection in dsk.c + other bug fixes (also: floppy.asm). + Update Tom Ehlert optimized blockio.c. + Fixes a few small ones from Tom I forgot. 2001 Mar 08 - Build 2022 -------- Bart Oldeman (bart@dosemu.org) + Fixes MCB chain corruption fix (thanks Tom Ehlert and Martin Stromberg) Redirector fixes (CDROMs and DOSEmu lredir'ed drives appear to work fine now) UMB fixes Various recodings (dsk.c, prf.c, portab.h) to make kernel object footprint 3k smaller (Tom Ehlert) Fix handling of very long path names (Tom Ehlert) FindFirst/FindNext fixes (Tom Ehlert) Configuration for libm.mak is in config.mak (Martin Stromberg) NLS fix to include pointer to CharMapSrvc. Note: these are changes to automatically generated .asm files, but the generator (GRAB_UNF.EXE) is missing. (thanks Tom Ehlert) DosSelectDrv fix (Martin Stromberg) config.c always converts to upper case and handles dos=umb correctly 2000 Dec 15 - Build 2022 -------- James Tabor (jimtabor@infohwy.com) + Fixes Added Patches from Bart Oldeman (bart@dosemu.org) Fix for NLAST in globals.h and change default return in inthndlr.c. 2000 Oct 29 - Build 2022 -------- James Tabor (jimtabor@infohwy.com) Rebuild local cvs tree after a crash. Update CVS at Sourceforge.net with changes. 2000 Sep 04 - Build 2022 -------- James Tabor (jimtabor@infohwy.com) + ADD Adding Ron Cemer patch for Share support! 2000 Sep 04 - Build 2022 -------- James Tabor (jimtabor@infohwy.com) + Fixes Brian Reifsnyder (reifsnyderb@mindspring.com) Modified dskxfer() such that error codes are now returned. Functions that rely on dskxfer() have also been modified accordingly. Modified interrupts 0x25 & 0x26 to return more accurate error codes. Updated dskxfer() prototype. 2000 Aug 15 - Build 2022 -------- James Tabor (jimtabor@infohwy.com) 2000/08/12 22:49:00 Ron Cemer (roncemer@gte.net) Fixed writeblock() to only use getbuf() if writing a complete sector; otherwise use getbloc() and do a read-modify-write to prevent writing garbage back over pre-existing data in the file. This was a major BUG. 2000 Aug 05 - Build 2021 -------- James Tabor (jimtabor@infohwy.com) Clean up and finish umb code to get 2021 out. 2000 Jul 26 - Build 2021 -------- James Tabor (jimtabor@infohwy.com) + Fix New patch from Ron IsDevice and truename fix. 2000 Jul 14 - Build 2021 -------- James Tabor (jimtabor@infohwy.com) + Add Added NLS patches from Steffen Kaiser and patch from Ron (roncemer@gte.net). 2000 Jun 25 - Build 2021 -------- James Tabor (jimtabor@infohwy.com) + Add Add and Fix support for UMB's. 2000 Jun 20 - Build 2021 -------- James Tabor (jimtabor@infohwy.com) + Fix Bart Oldeman (bart@dosemu.org) found bugs with copy command using Dosemu Lredir. Fixed Dosfns return for ReadCount, WriteCount and DosGetFattr. Fixed the return in int2f.asm for Read/Write Remote. By adding xor ax,ax. I found some more return bugs in int2f.asm after adding Barts patch. 2000 Jun 08 - Build 2021 -------- James Tabor (jimtabor@infohwy.com) + Add Started the UMB code. Devicehigh and dos=umb only works with Dosemu for now. 2000 Jun 07 - Build 2021 -------- James Tabor (jimtabor@infohwy.com) + Add Int2f added code for Fastopen call. Now MSD Scandisk works! 2000 Jun 06 - Build 2021 -------- James Tabor (jimtabor@infohwy.com) + Add Dos Func 0x59 and found a redirector bug in fncfns.c. 2000 Jun 01 - Build 2021 -------- James Tabor (jimtabor@infohwy.com) + Fix Lastdrive is a real number 1 thru 26 not 0 thru 25. + Fix Ioctl and Dsk did not return the currect AX for Ioctl calls. 2000 Jun 01 - Build 2021 -------- James Tabor (jimtabor@infohwy.com) + Clean Removed test prinf statements in source. * Thanks to Lixing Yuan for pointing out an copy to root error. 2000 May 31 - Build 2021 -------- James Tabor (jimtabor@infohwy.com) + Patch Lixing Yuan (yuanlixg@china.com) Patch for parsing bug in FindFirst with wildcards -> ParseDosName (dosnames.c). 2000 May 28 - Build 2021 -------- James Tabor (jimtabor@infohwy.com) + Added Open/Close/Media check to dsk.c and io.asm. + Fixed Device checking in truename. Truename needs to be rewriten. 2000 May 26 - Build 2020 -------- James Tabor (jimtabor@infohwy.com) Code Clean up and Now the Release. 2000 May 26 - Build 2020 -------- James Tabor (jimtabor@infohwy.com) + Fixed IsDevice is used in FcbFns.c and DosFns.c. I removed IsDevice from DosNames.c an placed it in DosFns.c. FcbFns had dup code and it was removed. This fixed all the functions using IsDevice. Truename works now. I consider it dangerous and brain damaged. Note: truename X:\DIR\con -> X:/CON, note the '/'. truename foo*.* -> X:\DIR\FOO?????.??? truename *.*\*.*\*.* -> ????????.???\????????.???\????????.??? truename *.*\*.**\*.* -> endless Loop I will fix this later ;^) Found InitPSP running 3 time. On the 2'nd run the standard handles were closed with out DosClose. Now Device Drivers can Print out there startup info. + Added New IOCTL code in Dsk.c. 2000 May 26 - Build 2020 -------- James Tabor (jimtabor@infohwy.com) + Fix Kolyan Ksenev (7207@mx.csd.tsu.ru) (nik0la@acm.org) found Major bugs in Task.c and chario.c. 2000 May 25 - Build 2020 -------- James Tabor (jimtabor@infohwy.com) + Fixed Project history. 2000 May 17 - Build 2020 -------- James Tabor (jimtabor@infohwy.com) + Fixed Delete, Rename, Mkdir, and Rmdir. Comment out isDevice. There is a serious bug in isDevice. + Added Finished adding function code for disk serial number support. + Clean Cleaned up source and removed duplicate functions. 2000 May 14 - Build 2020 -------- James Tabor (jimtabor@infohwy.com) + Clean Cleaned out the remaining CR's. 2000 May 08 - Build 2020 -------- James Tabor (jimtabor@infohwy.com) + Update Started Update to the New CVS at Sourceforge.net. Setting source from 2018 to 2020. 2000 May 06 -------- Jim Hall (jhall1.isd.net) + Import Jim Hall imported the CVS from gcfl.net to Sourceforge.net. 2000 Apr 28 - Build 2020 -------- James Tabor (jimtabor@infohwy.com) + Added Dos Function calls 0x69, and 0x6C. IOCTL support in disk driver. New functions not yet fully implemented. Clean up DSK.C, IOCTL.C and FCBFNS.C. Removed old blk_device pointers. 2000 Apr 03 - Build 2020 -------- James Tabor (jimtabor@infohwy.com) + Fixed All DPB chains were linking to -1. 2000 Apr 02 - Build 2020 -------- James Tabor (jimtabor@infohwy.com) + Fixed Dos_Free returned wrong due to MaxCluster Calc. Media_Check MaxCluster count wrong, needed +1. 2000 Apr 01 - Build 2020 -------- James Tabor (jimtabor@infohwy.com) + fixed Unable to cd back out of cdrom directories. 2000 Mar 31 - Build 2019 -------- James Tabor (jimtabor@infohwy.com) + added Eric W. Biederman patches via CVS. + 2000 Mar 25 + -------- Eric Biederman + Fixed Lastdrive handling + Fixed Not enough drives for number present devices + Added Working (though not perfect network redirector) Note: Error codes internal to freedos are negative Error codes external to freedos are postive. The network redirector is external to freedos... Note: Running the nonredirected functions on a redirected drive is dangerous. My patch is very careful not to. Except in truename. Where (a) it is safe and (b) I think it is required, and (c) it is needed by dosemu. 2000 Mar 19 - Build 2019 -------- James Tabor (jimtabor@infohwy.com) * Jean-Francois email noting the set/clear interrupt was reverse in order. 2000 Mar 17 - Build 2019 -------- Steffen Kaiser (Steffen.Kaiser@fh-rhein-sieg.de) + Fixed Config.c COUNTRY= statement + Fixed *.c to call upFMem() when upcasing filenames - Removed everything to load NLS into memory = Redesigned hardcoded NLS information --> The kernel will now return the proper information for the hardcoded NLS (U.S.A. / CP437), it would return the correct information for other NLS, too, if there would be a NLSFUNC available, which is not at this time. NOTE: The way the external NLSFUNC is called does not look well, therfore expect a change soon. 2000 Mar 15 - Build 2019 -------- James Tabor (jimtabor@infohwy.com) * Dennis Newbold and Massimo De Munari email kernel bug reports with changes to Globals.h and Inthndlr.c. Fix to leap year and Delete file return code. * Michal Meller found a bug in media_check. It return the wrong value of sector count. Change in FATFS.C. * Fixed Func 0x32 based on information from Marty . Func 0x32 Get Drive Parameter BLK did not work. 2000 Mar 09 - Build 2018 -------- James Tabor (jimtabor@infohwy.com) Added CDS and made FD CDS based. Changes encompass all of the code for FD. Fixed Task.c, rewritten code from FINODE to SFT function calls. Unable to execute from CD. Main.c and Config.c has small changes. Fixed Device drivers are unable to write to con. Rewritten code to relocate DOS_PSP pointer to 050:0000. Removed references to DOS_PSP in DosFns.c. Added Network and Redirection function calls in Inthndlr.c and network.c. I have a note in FatFs.c line 313, describing functions not yet supported for networking. I don't understand Pats thoughts on SFT to FINODE. IMHO it would have been easier to stay with SFT all through the code. I tested MS-Dos 6.22 Command and found it unable to do Find First or Next. This too could explain why MSCDEX does the same thing. I only test this with the current FDCommand at the time, so this could have changed. 1999 Sep 24 - Build 2017 -------- John Price (linux-guru@gcfl.net) * Per Jens Horstmeier's email, changed boot sector code to make Siemens CDROM's bootable. The changes should be OK for all other machines too (in theory). 1999 Sep 22 - Build 2016 -------- John Price (linux-guru@gcfl.net) * Turned off debug output from the kernel. It does not seem to be necessary at this time. * Changed boot sector to do single-sector reads instead of multi-sector reads. Appearantly this was part of the reason the kernel would not boot from a 720K, or other format floppies. Thanx to Charles Dye for the info. 1999 Sep 16 - Build 2016 -------- James Tabor (jimtabor@infohwy.com) * Added Networking and Server Call * Added Dos Idle call * fixed Console.asm ConInStat 1999 Sep 13 - Build 2014 -------- John Price (linux-guru@gcfl.net) * Deleted some files from the drivers directory that were not being used. * Changed the LIB.MAK file so it would work for TC2 or TC3 or higher. * Changed SYS.COM so that it creates a sys.log file with more debug information to help debug problems with making boot disks. 1999 Sep 13 - Build 2014 -------- James Tabor (jimtabor@infohwy.com) * Submitted changes to CONSOLE.ASM & INTHNDLR.ASM to fix the INT21 func 0B bug. 1999 Sep 13 - Build 2014 -------- Helmut Fritsch (helmut.fritsch@gcd-hs.de) * Submitted changes to CONSOLE.ASM to fix the INT21 func 0B bug. 1999 Sep 10 - Build 2014 -------- ror4 (f2xm1@crosswinds.net) * At the suggestion of Mr John Price, modified the int 0x25 and int 0x26 so that they no longer update the disk buffers (int 0x26 only invalidates the buffers for the specified drive). This is to avoid inconsistent disk buffers from appearing in the buffer chain due to interactions between int 0x25/0x26 and file read/write operations. 1999 Aug 24 - Build 2013 -------- John Price (linux-guru@gcfl.net) * With ideas from ror4, I redid the build batch file so you can specify where what make to use. * Also created CONFIG.M and CONFIG.B which should be copied to CONFIG.MAK and CONFIG.BAT, respecively, and edited to reflect the users configuration. This keeps new versions from replacing the configuration files so the user does not have to keep reseting their configutation. 1999 Aug 15 - Build 2013 -------- ror4 (ror4@angelfire.com) * Patched the source so that it can be compiled with Turbo C 2.01. (`asm' statements were rewritten into very ugly equivalents... they probably need more work. :( ) * Modified the `dmatch' structure in `hdr/dirmatch.h' so that the `dm_dirstart' field is in the right place, and also to make it compile under TC 2.01, which doesn't allow bit fields of any types other than signed or unsigned int. * Fixed a few minor bugs in error code returning in `kernel/fatfs.c'. 1999 Jul 16 - Build 2012 -------- ror4 (ror4@iname.com) * Finally ported all the assembly modules to `nasm'. *phew* * Undid plonee's patches to `kernel/fatfs.c' (sorry). They were causing the resulting findfirst/findnext DTA structures to be incompatible with MSDOS's. * Also rewrote all the pattern copying code in `dos_findfirst' in `kernel/fatdir.c' to prevent a bad buffer overflow problem. * Modified the disk buffer handling code, so that logical sector numbers in disk buffers are now 0-based instead of 1-based. * int 0x25 and int 0x26 now do multi-sector reads/writes. 1999 Jul 14 - Build 2012 -------- ror4 (ror4@iname.com) * Ported the modules in the `drivers/' branch to `nasm'. 1999 May 04 - Build 2011 -------- ror4 (ror4@cryogen.com) * Fixed the code for converting day numbers into Julian calendar dates: the first and last days of each month are now returned correctly. * Undid a change to the code to get the day of the week. 1999 May 02 - Build 2011 -------- John Price (linux-guru@gcfl.net) * blockio.c: changed getblock and getbuf so that they leave at least 3 FAT type buffers valid. This helps because the FAT is accessed very often compared to other sectors. * fatfs.c: Fixed a bug in map_cluster so it will optimize FAT reads on disks that have more than one sector per cluster. This sigificantly improved disk access of big files on hard drives. 1999 May 02 - Build 2011 -------- ror4 (ror4@cryogen.com) * Corrected the `struct buffer' definition in `kernel/globals.h' so that it corresponds exactly to Ralf Brown's description of a DOS 3.x buffer. * Also fixed the problem with FATs > 255 sectors, by making use of an originally unused field in the buffer structure. 1999 May 01 - Build 2011 -------- ror4 (ror4@cryogen.com) * Fixed a problem which caused disk corruption on partitions with FATs larger than 127 sectors. (However, FATs larger than 255 sectors may still experience problems -- this is due to a limitation of the DOS 3.x buffering scheme.) * Fixed a bug in the handling of the `stacks=' command in `(fd)config.sys' which caused the system to behave strangely. 1999 Apr 22 - Build 2011 -------- Steffen Kaiser (Steffen.Kaiser@fh-rhein-sieg.de) bugfix: memmgr.c: Invalid returned largest size in MemLargest() fix: memmgr.c: DosMemLargest: change prototype to match its useage bugfix: inthdlr.c: 0x49: ES is decremented fix: inthdlr.c: 0x00: DosMemCheck() does nothing --> added panic() fix: inthdlr.c: 0x4c: DosMemCheck() does nothing --> added panic() fix: inthdlr.c: 0x00: changed to make it the same as DOS-4C-00 Both actions differed e.g. in ErrorMode chg: memmgr.c: the 'name' field of the MCB is never initialized by DOS-48, DOS-49 or DOS-4A. Leave this to the program loading function. bugfix: memmgr.c: adjust_far() / add_far(): Both function together (and the way they are used) don't make sense: adjust_far() normalizes a far pointer, add_far() generates a linear address. Usually both are used this way: far_poi = adjust_far(far_poi); while(...) { ... far_poi = add_far(far_poi, uword); ... } First one makes sure that 'far_poi' is normalized, then far_poi becomes a linear address, which makes it very difficult to use it, because the possibility to get a segment warp gets very high. --> Change: add_far() also returns a normalized real mode pointer as adjust_far() does. Probably in DOS-C supporting various architecures thee functions served other duties, but the current useage is highly dangerous. bugfix: task.c: ChildEnv(): nEnvSize didn't counted the last '\0' bugfix: task.c: ChildEnv(): Allocation: maximum absolute filename to short and forgot the word counter bugfix: task.c: ChildEnv(): for very corrupt environments, the copy function failed. bugfix: task.c: DosExeLoader(): If exe_size > allocated_size or DosMemLargest() failes, the environment is not deallocated bugfix: task.c: DosExeLoader(): Calculating the exe_size to be allocated. At both places (+ header.exMinAlloc & ...MaxAlloc) sizeof(psp) is added to exe_size. Why? image_size already contains sizeof(psp). chg: task.c: DosExeLoader()/DosComLoader(): MCB patching and command line copying is no outside of those functions chg: asmsupt.asm: _fbcopy: re-use parts of _bcopy add: asmsupt.asm: fmemset, fmemclr, fmemclra {Replace the explicit for() loops} 1999 Apr 22 - Build 2011 -------- ror4 (ror4@cryogen.com) * Ported boot.asm to NASM. The plan is to port all assembly to NASM over time. 1999 Apr 19 - Build 2010 -------- John Price (linux-guru@gcfl.net) * Undid the change I made to getblock below because it DID NOT speed anything up, and in fact slowed access down. 1999 Apr 18 - Build 2009 -------- John Price (linux-guru@gcfl.net) * change getblock so that it flushes all buffers for a drive when it has to flush one of them to make room. This should speed disk access slightly. * Change the boot sector so there is a compile-time option to use multi-sector IO or single-sector IO. The default is multi since ror4 seemed to have fixed the problem we had before. 1999 Apr 18 - Build 2009 -------- ror4 (ror4@cryogen.com) * The boot sector can now load the kernel properly from a hard disk. * Other minor changes. 1999 Apr 16 - Build 2008 -------- ror4 (ror4@cryogen.com) * Modified the block device driver to prepare it for multi-sector I/O support. Among other things, the driver can now handle transfer buffers which cross DMA boundaries. * Some other minor changes. 1999 Apr 15 - Build 2008 -------- John Price (linux-guru@gcfl.net) * Changed mainly the map_cluster function in fatfs.c so that instead of starting at the beginning of the FAT chain every time, it will be smart about it, and start at the last FAT location that it was before if it can. This speeds up disk access considerably especially on slower machines. 1999 Apr 15 - Build 2008 -------- Steffen Kaiser (Steffen.Kaiser@fh-rhein-sieg.de) bugfix: ^Break handler according cmt1.txt bugfix: DosCreat(): Detection for Devices and extension: the semi-colon behind if(*froot) is definitely wrong, whether one wants CON.EXT to be interpreted as CON or not. bugfix: DosOpen(): dito * Re-implementation of ^Break handler -- 1999/03/27 ska + Warning: The handle_break() function assumes that the InDOS flag was incremented (except if ErrorMode is true). Never call handle_break() unless the InDOS flag has been incremented within this reentrant call of DOS. + ^Break is detected and handled at certain places within the kernel only: a) within the CON: device when reading or writing a character, and b) when entering the INT-21 service (if extended break checking is enabled). At these places the process flow can be modified to: either a) redo the interrupted function or b) abort the currently running process. + Both actions are performed by switching back to the user stack and enter INT-21 handler again. If to terminate the program, AX is modified into 4C00h. + By default, if the user has no ^Break handler installed, the program is terminated. + Heavy change: The original implementation installed an unique INT-23 handler that directly called the actions performed DOS-4C-XX. In fact, this was identically with when the user had an own handler installed and returned the Carry flag set, except that it was somewhat quicker, because the kernel need not decode the 4C00h command. Now the Carry flag is set prior the call of INT-23, so the default action is to terminate the program. + Note: INT-23 is called with all registers as they are passed to the INT-21 entry. When they are modified, they are passed _modified_ to the API interpreter. This also allows the DOS1-style termination by to load register AH with 0 (zero). + RBIL says: "any DOS call may safely be made within the INT 23 handler, although the handler must check for a recursive invocation if it does call DOS" This can be interpreted so or so, the problem is that the user can call DOS again, what would overwrite the saved _usr_stack pointer with a different value and, therefore, cannot be used to check if INT-23 was returned by RETF or RETF2/IRET. Because a recursive invokation of INT-23 is to prevented by the user, the kernel could internally save SP to somewhere else. However: a) where? b) is it reliable that the user ever returns from INT-23 at all? The implemented method uses the same mechanism as fail-safe intr() function is implemented: A little piece of code is constructed within the stack, which contains the value of SP as an operand of an immediate MOV instruction. 1999 Apr 13 - Build 2007 -------- ror4 (ror4@cryogen.com) * The boot sector now moves itself to the last 512 bytes of conventional memory instead of a lower memory location. * The kernel startup code has also been modified so that it works with the new boot sector. 1999 Apr 12 - Build 2007 -------- ror4 (ror4@cryogen.com) * The directory scanning functions (`findfirst'/`findnext') now also recognize more flavours of the volume label attribute byte (namely 0x09, 0x28 and 0x29). * Subdirectories are now no longer assumed to have the same size as the root directory. * `device/device.lib' is now included as a dependency in the kernel makefile. * Removed several unused assembler modules from the `device/' branch (see `device/device.mak'). 1999 Apr 11 - Build 2007 -------- ror4 (ror4@cryogen.com) * The kernel now reads times from the system clock (0x40:0x6c) instead of the RTC. The RTC is only used during startup to initialize the system clock. (As a side effect of this, `ReadATClock' has been moved from `_TEXT' to `INIT_TEXT'.) * Checking for leap years is now improved -- year numbers which are divisible by 100 but not by 400 are not counted as leap years. (Not that it matters for year 2000, though.) * The scaling factor used to convert the system time count to a second count has been changed from 18.2 to the more accurate (?) 19663/1080. * Day numbers used by `clock$' are now 0-based (as in MSDOS) instead of 1-based. Thus 1 Jan 1980 is now day number 0. 1999 Apr 10 - Build 2007 -------- ror4 (ror4@cryogen.com) * Added code to prevent the kernel from returning path names containing double backslashes. 1999 Apr 9 - Build 2007 -------- ror4 (ror4@usa.net) * File handles are now cloned properly when a child process is spawned. * The `DosClose' function now also frees SFT entries corresponding to devices, not only those entries corresponding to files. * Removed a (minor) memory corruption bug in the code for int 0x21, ah = 0x09. 1999 Apr 6 - Build 2007 -------- ror4 (ror4@cryogen.com) * Functions ax = 0x5700 and 0x5701 (get/set file date and time) now return the right values at the right times. (They used to return success when there's an error, and return error when there's a success.) * Removed the `/k' switch to the linker in `sys/sys.mak'. 1999 Apr 4 - Build 2006 -------- John Price (linux-guru@gcfl.net) * added "version=" directive so that you can change the version that the kernel reports. Usage: version=. (i.e. version=6.22) 1999 Apr 4 - Build 2006 -------- ror4 (ror4@usa.net) * Fixed the file name parsing function (`ParseDosNames') so that it handles single-character path names correctly. * Also modified the functions which call `ParseDosNames' to check its return value instead of assuming that it is always successful. (This is not currentl useful, but it will be when error checking is introduced into `ParseDosNames'. In other words, there'll be more changes to `ParseDosNames' in the near future...) * After wondering for a long time why the kernel text segment was always getting corrupted when I ran DJGPP `bash' 1.14.7, I finally decided to examine the code occurring before the handler for int 0x21, ah = 0x60, and I found out why... :) * Fixed the problem of int 0x21, ax = 0x5d06 causing memory corruption. * Corrected the types of `internal_data', `swap_always' and `swap_indos' in `kernel/globals.h'. * Improved checking for invalid file names in `ParseDosName' (although I'm still not sure whether the check is water-tight or not). * Changed the default path setting from `PATH=' to `PATH=.'. * Output from character I/O functions now goes to standard output as it should, instead of the console. Also, there's now a clear distinction between console input/output and standard input/output. * Tabs are now expanded during writes to the console device. * Removed a hard-wired limit on the number of entries in a JFT. (Although I'm not sure whether this is really correct...) * Many other changes to the file descriptor handling code. 1999 Mar 29 - Build 2006 -------- John Price (linux-guru@gcfl.net) * Changed boot loader so it prints some feedback info while booting. Removed code to handle FAT12 and FAT16, and code to calculate the start of the fat, rootdir, and data. Moved these functions into the sys command. Now there are two versions of the boot loader created, one to handle FAT16, and one for FAT12. These are hard-coded into the sys command, so the need for the boot.bin file is obsolete. * created a new program (bin2c) to convert the boot loader binary file into a header file that can be included in the sys program as an array of bytes. 1999 Mar 29 - Build 2006 -------- ror4 (ror4@usa.net) * Changed the class of `_BSSEND' from "STACK" to "BSS" in the `drivers/' branch (which I forgot about in my last patch). * Removed all traces of the `CONST' segment, since it was causing `IGROUP' to be assimilated into `DGROUP', which shouldn't happen. * Added a `(void)' cast to the `setvec' macro in `kernel/globals.h' (`setvec' no longer returns the original ISR vector). * Changed an incorrect error message in `sys/sys.c'. * Removed `drivers/setvec.asm', since it's no longer needed. * Also removed `kernel/krnstart'. * The name field in a process's MCB is now filled in the same manner as in MSDOS -- instead of being padded to the right with spaces, it is now terminated with '\0'. Also, if the original file name doesn't have an extension, the code will stop copying the file name at '\0' instead of continuing to look for a '.'. * Fixed the problem of the `switchar' syscall (int 0x21, ax = 0x3700) not returning the correct value. 1999 Mar 28 - Build 2005 -------- ror4 (ror4@usa.net) * Removed the need for `ipl.sys'. (!) The kernel makefile now statically relocates `kernel.exe' to 0x60:0 and outputs the resulting binary to `kernel.sys', and the boot sector has also been modified to load `kernel.sys' at 0x60:0 instead of `ipl.sys' at 0x2000:0. (I chose 0x60:0 because it's the first 512-byte boundary occurring after the BIOS data area, 0x40:0.) Finally, `sys.com' has also been updated. * Also changed the boot sector code in some other ways. In particular, because `kernel.sys' is rather large, I had to add some code to move the boot sector away from 0:0x7c00 to somewhere higher. (For 640K systems the boot sector will be shifted to 0x6000:0x7c00. However, there may be problems on systems with very little conventional memory -- I'll probably look into this later.) * Made some minor changes to the assembler source files so that they can compile on `masm'. (JP: The code still compiles fine with tasm too). * Also changed several incorrect label references in the assembler sources. (JP: These changes fixed the "Fixup" errors we been talking about in the list) * Eliminated redundant re-makes of files in the various makefiles. For one thing, `*.cfg' files are no longer generated from the makefiles, but are independent from them. (I didn't like the idea of having to compile an entire branch each time I edit a makefile...) Also, intermediate files are now retained instead of deleted. * Also made some changes to `build.bat' (you'll know them when you see them). * Added a file `lib/libm.mak' * Added a file `kernel/krnstart * The code required to initialize the kernel (or rather most of it) is no longer retained in memory after the initialization process is done. I accomplished this by moving most of the initialization code from `_TEXT' to a new segment named `INIT_TEXT'. Of course, I also had to introduce lots of other changes in order for everything to compile and run properly: - Added code to `kernel/src/kernel/kernel.asm' to move the contents of `INIT_TEXT' to the top of conventional memory and continue from there. Control is only transferred back to `_TEXT' when the kernel calls `p_0'. - Many functions are called from both `_TEXT' and `INIT_TEXT'. To fix this, I created far wrappers for these functions which can then be called from `INIT_TEXT'. (E.g. for `execrh' there's a corresponding far function named `init_call_execrh' which simply calls `execrh' with its own parameters.) One exception to this is `printf' -- instead of creating a far wrapper for a near `printf', I created a near wrapper for a far `printf' (now called `init_call_printf'), because it was easier that way. :) - Most functions which are required only during initialization time were shifted into `INIT_TEXT'. (There are still some functions which should rightfully go into `INIT_TEXT', but are retained in `_TEXT' as far functions, because I found it too difficult to move them out. :( ) Because Turbo C only allows at most one code segment to be defined for each module, I had to shift some functions around within the source tree -- the file `kernel/src/kernel/proto.h' says it all. - A cosmetic change mentioned here for completeness: all functions defined in `INIT_TEXT' are now marked with the word `INIT' (in fact a null macro) so that the reader can easily distinguish them from functions defined in `_TEXT'. * Replaced `exit' calls with `for (;;);'. * Changed `strcpy' into a macro which calls `scopy'. * Also redefined `setvec' to be a macro (I didn't want to waste time writing a far wrapper for it). * Removed the `break_key' function in `kernel/src/kernel/kernel.asm'. * `low_int25_handler' and `low_int26_handler' are now of type `void interrupt far()' instead of `void near()'. (I hope I updated `entry.asm' correctly -- I never tested `int 0x25' and `int 0x26'...) * Changed the class of `_BSSEND' from "STACK" to "BSS" -- "STACK" is now used for a separate stack segment (`_STACK'). * Assembler modules now include `segs.inc' instead of having their own long list of segment definitions. (Some day I'll update the makefile dependencies to reflect this.) * Also made a few minor changes to the assembler modules so that `masm' won't complain. * Changed the `-X' switch in `kernel.cfg' to `-X-', so that I don't have to worry about C module dependencies. * Removed the definition of `CFLAGS' from the makefile -- everything is now in `kernel.cfg'. * Created a file `kernel/src/kernel/init-mod.h' which is included by modules whose code is supposed to go into `INIT_TEXT' instead of `TEXT'. * This diff solves the problem of the MCB of a process not having a correct value in its name field (bug report #6). (The definition of the `toupper' macro is because I shifted the `toupper' function into `INIT_TEXT' a while ago, and therefore can't be called from `_TEXT' now...) -------- John Price (linux-guru@gcfl.net) * Made changes so you can create a directory with the same name as a volume label, but you still can't rename or delete it! * Fix findfirst and findnext functions so that act as they should. (i.e. If the attrib has only the volume label set, then it returns the volume label entry in the root directory, else it returns the files/directories that are specified with the attrib, ignoring the read-only and archive bits (these are always returned). * reorginize the source tree. Removed IPL directory, and command. Moved all the file system C files into the kernel directory. Modifed build.bat, clean.bat, and all the make files to reflect the new tree. * changed so that kernel will look for a "fdconfig.sys" file, and use it INSTEAD of config.sys. If it does not find it, it will look for, and read config.sys, if it exists. * Fixed so that if you call an INT 21 function with AH containing a unsupported function, the carry flag is set. ----- older history, from rcs logs. 13 Nov 2002 tom initclk.c: Initial revision 2001/11/04 bartoldeman install.bat: Text files need to be LF ended at the server. So be it... 2001/04/29 brianreifsnyder dsk.c: Added phase 1 support for LBA hard drives 20 Apr 2001 Bart Oldeman buffer.h: Initial revision. 2001/04/16 bartoldeman dsk.c: Fixed handles, config.sys drivers, warnings. Enabled INT21/AH=6C, printf %S/%Fs 2001/04/15 bartoldeman dsk.c: See history.txt for the list of fixes. 2001/03/27 bartoldeman dsk.c: dsk.c (reported by Nagy Daniel), inthndlr and int25/26 fixes by Tom Ehlert. 2001/03/24 bartoldeman dsk.c: See history.txt: dsk.c changes, warning removal and int21 entry handling. 2001/03/22 bartoldeman install.bat: Change LF to CR/LF in batch files. 2001/03/21 bartoldeman dsk.c: See history.txt for changes. Bug fixes and HMA support are the main ones. 2001/03/16 tom ehlert inithma.c: initial creation 2001/03/08 bartoldeman dsk.c: Space saving fixes from Tom Ehlert 2001/03/07 10:00:00 tomehlert prf.c: recoded for smaller object footprint, added main() for testing+QA 2000/10/29 jimtabor inthndlr.c: Adding Share Support by Ron Cemer 2000/08/15 jhall1 build.txt: update to the build.txt file to remove references to the now-defunct web site at gcfl.net (John's old site). 2000/08/06 jimtabor inthndlr.c, nls_load.c: Add new files and update cvs with patches and changes 2000/06/21 jimtabor dsk.c, inthndlr.c: Add UMB code, patch, and code fixes 2000/06/01 jimtabor dsk.c: Read History for Changes 2000/05/26 jimtabor dsk.c: Read History file for Change info 2000/05/25 jimtabor dsk.c, inthndlr.c: Fixed project history 2000/05/17 jimtabor dsk.c, inthndlr.c: Cleanup, add and fix source. 2000/05/11 jimtabor inthndlr.c: Removed #if statement 2000/05/11 jimtabor dsk.c, inthndlr.c: Added code for DOS FN 69 & 6C 2000/05/11 jimtabor install.bat, inthndlr.c: Clean up and Release 2000/05/08 jimtabor inthndlr.c, dosnames.c, dsk.c, dosnames.h, build.txt: Update CVS to 2020 2000/05/06 jhall1 getvec.asm, dsk.c, inthndlr.c: The FreeDOS Kernel. A DOS kernel that aims to be 100% compatible with MS-DOS. Distributed under the GNU GPL. 2000/04/29 jtabor device.h, blockio.c, dsk.c, fatfs.c, inthndlr.c, ioctl.c: Added new functions and clean up code 2000/04/02 jtabor newstuff.c: Fix ChgDir Code 2000/04/02 jtabor dosfns.c: Replaced ChgDir Code 2000/04/02 jtabor dosfns.c: Fix to DosChgDir 2000/03/31 jprice sys.c: Added discription of program. 2000/03/31 jtabor config.c, dosfns.c, dosnames.c, fatdir.c, fcbfns.c, int2f.asm, main.c, makefile, network.c, newstuff.c, proto.h, task.c: Added Eric W. Biederman Patches 2000/03/23 ska nls.c: Initial revision 2000/03/20 kernel entry.asm: Change in Entry.asm 2000/03/18 kernel intfns.txt: changes in supported functions 2000/03/17 kernel config.c, fatdir.c, fatfs.c, fcbfns.c, inthndlr.c, makefile, network.c, nlssupt.asm, proto.h: Steffen Kaiser's NLS changes 2000/03/17 kernel inthndlr.c: Fixed Func 0x32 2000/03/17 kernel fatfs.c: Added Change for media_check 2000/03/16 kernel globals.h, inthndlr.c: *** empty log message *** 2000/03/09 kernel dosfns.c, dosnames.c, dsk.c, error.c, execrh.asm, fatdir.c, fatfs.c, fcbfns.c, globals.h, initoem.c, int2f.asm, inthndlr.c, io.asm, ioctl.c, kernel.asm, main.c, makefile, memmgr.c, misc.c, network.c, newstuff.c, prf.c, proto.h, strings.c, sysclk.c, task.c, blockio.c, break.c, chario.c, config.c, console.asm, cds.h, dcb.h, device.h, dirmatch.h, fnode.h, mcb.h, sft.h, stacks.inc: 2017f updates by James Tabor 1999/09/25 jprice boot.asm: Optimize boot loader. Documentation. 1999/09/24 jprice boot.asm: Added changes recommended by Jens Horstmeier to make their bootable CD work. 1999/09/23 jprice main.c, network.c, proto.h, globals.h, inthndlr.c, kernel.asm, makefile, config.c, console.asm, dosfns.c, entry.asm, fatfs.c, fcbfns.c, chario.c, boot.asm, fcb.h, sys/makefile, sys.c: *** empty log message *** 1999/09/20 jprice sys.c: Changed open/creat to fopen to make TC2 happy. 1999/09/15 jprice sys.c: Changed boot sector writing code so easier to read. 1999/09/14 jprice lib/makefile: no message 1999/09/14 jprice sys.c: Added debug log creation to sys.com. 1999/09/14 jprice console.asm: no message 1999/09/14 jprice inthndlr.c: ror4: fix int25 & 26 are not cached. 1999/09/14 jprice fatfs.c, dosfns.c: Fixed bug where you could write over directories. 1999/09/13 jprice inthndlr.c, console.asm: Fix 210B function 1999/09/13 jprice console.asm: Changes from Helmut Fritsch to fix INT21 func B 1999/09/13 jprice makefile: Some clean up. 1999/09/13 jprice config.b, config.b: Added COMPILER variable 1999/09/13 jprice lib/makefile: Added !if so we can use TC2 or TC3 to compile. 1999/08/25 jprice build.txt: update 1999/08/25 jprice config.b, clobber.bat, clean.bat, config.b, build.bat: New build batch files. 1999/08/25 jprice intfns.txt, build.txt, build.bat: New build config 1999/08/25 jprice config.b, sys/makefile, sys.c, lib/makefile, task.c, main.c, makefile, memmgr.c, newstuff.c, proto.h, strings.c, fatfs.c, globals.h, initoem.c, inthndlr.c, blockio.c, chario.c, config.c, dosfns.c, fatdir.c, date.h, dirmatch.h, portab.h, time.h, drivers/makefile, install.bat: ror4 patches to allow TC 2.01 compile. 1999/08/10 jprice clobber.bat: case 1999/08/10 jprice dsk.c, inthndlr.c: ror4 2011-04 patch 1999/08/10 jprice globals.h, inthndlr.c, fatfs.c, fattab.c, blockio.c: ror4 2011-03 patch 1999/08/10 jprice irqstack.asm, kernel.asm, makefile, nlssupt.asm, printer.asm, procsupt.asm, segs.inc, apisupt.asm, asmsupt.asm, console.asm, entry.asm, execrh.asm, fatdir.c, int2f.asm, io.asm, io.inc, stacks.inc: ror4 2011-02 patch 1999/08/10 jprice wrpcclk.asm, wratclk.asm, rdpcclk.asm, drivers/makefile, getvec.asm, floppy.asm: ror4 2011-01 patch 1999/05/04 jprice systime.c: ror4 date fix 1999/05/03 jprice fat.h: Changed some variables from signed to unsigned. 1999/05/03 jprice blockio.c, config.c, dosfns.c, fatdir.c, fatfs.c, fattab.c, globals.h, inthndlr.c, misc.c, proto.h: Patches from ror4 and many changed of signed to unsigned variables. 1999/05/03 jprice sys/makefile: no message 1999/05/03 jprice fatfs.c: Fixed bug in map_cluster function 1999/05/03 jprice blockio.c: Changed getblock & getbuf so that they leave at least 3 buffer for FAT data. 1999/04/23 jprice procsupt.asm: Fixed got_cbreak function. 1999/04/23 jprice makefile: no message 1999/04/23 jprice asmsupt.asm, inthndlr.c, memmgr.c, misc.c, proto.h, task.c: Memory manager changes made by ska 1999/04/23 jprice clobber.bat: Initial include 1999/04/23 jprice clean.bat, build.bat, sys/makefile, lib/makefile, makefile, drivers/makefile: Improved by jprice 1999/04/23 jprice boot/makefile: Ported to NASM by ror4. Improvements 1999/04/23 jprice boot.asm: Ported to NASM by ror4 1999/04/21 jprice blockio.c: no message 1999/04/18 jprice blockio.c: no message 1999/04/17 jprice sys.c, boot.asm: Fixed multi-sector code 1999/04/17 jprice build.bat: ror4 patches 1999/04/17 jprice boot.asm: Changed so multi-sector IO is optional. 1999/04/16 jprice blockio.c, config.c, dsk.c, globals.h, main.c, proto.h, floppy.asm: ror4 multi-sector IO 1999/04/16 jprice break.c: Steffen contributed. 1999/04/16 jprice dosfns.c, globals.h, inthndlr.c, irqstack.asm, main.c, makefile, procsupt.asm, proto.h, chario.c, config.c: Steffen c-break handler changes 1999/04/16 jprice fatfs.c, fattab.c, globals.h, main.c, task.c, blockio.c, config.c, dsk.c, fatdir.c, fnode.h, dcb.h: Optimized FAT handling 1999/04/13 jprice kernel.asm: changes for boot loader 1999/04/13 jprice boot.asm: Moves boot sector to top of mem 1999/04/13 jprice makefile, fatdir.c, drivers/makefile: no message 1999/04/12 jprice fatfs.c, blockio.c: Using getbuf to write data instead of getblock using getblock made it read the block before it wrote it 1999/04/12 jprice systime.c, config.c, dosfns.c, fatfs.c, globals.h, main.c, proto.h, sysclk.c: more ror4 patches. Changes for multi-block IO 1999/04/12 jprice rdpcclk.asm, rdatclk.asm: more ror4 patches 1999/04/11 jprice blockio.c: Working on multi-block IO 1999/04/11 jprice globals.h, inthndlr.c, main.c, newstuff.c, proto.h, task.c, blockio.c, config.c, dosfns.c, fatdir.c, fatfs.c, fattab.c: ror4 patches 1999/04/06 jprice boot.asm: Put back code to read multiple sectors at a time. 1999/04/04 jprice config.c, globals.h, inthndlr.c, main.c, dosfns.c, dosnames.c, fatdir.c, fatfs.c, fcbfns.c, globals.h, inthndlr.c, ioctl.c, main.c, newstuff.c, prf.c, proto.h, strings.c, chario.c, sft.h, device.h: no message 1999/04/01 jprice sys.c: SYS modified for new boot loader 1999/04/01 jprice boot/makefile, boot.asm: New boot loader 1999/04/01 jprice install.bat: no message 1999/03/29 jprice wrpcclk.asm, wratclk.asm, rdpcclk.asm, rdatclk.asm, drivers/makefile, getvec.asm, floppy.asm, globals.h, io.inc, task.c: ror4 changes 1999/03/29 jprice sys.c: Fixed error message 1999/03/29 jprice sys.c, syspack.c, prf.c, misc.c, fcbfns.c, fattab.c, fatfs.c, fatdir.c, error.c, dosnames.c, dosfns.c, chario.c, blockio.c, task.c, systime.c, sysclk.c, strings.c, proto.h, segs.inc, procsupt.asm, printer.asm, nlssupt.asm, newstuff.c, memmgr.c, main.c, makefile, kernel.asm, irqstack.asm, ioctl.c, io.inc, io.asm, inthndlr.c, int2f.asm, globals.h, initoem.c, execrh.asm, entry.asm, dsk.c, console.asm, config.c, asmsupt.asm, apisupt.asm, wrpcclk.asm, wratclk.asm, rdpcclk.asm, rdatclk.asm, getvec.asm, floppy.asm, drivers/makefile, install.bat, boot/makefile, boot.asm, tail.h, time.h, sft.h, stacks.inc, process.h, portab.h, pcb.h, kbd.h, mcb.h, file.h, fnode.h, fcb.h, exe.h, fat.h, dosnames.h, error.h, device.h, date.h, dcb.h, cds.h, clock.h, dirmatch.h, intfns.txt, clean.bat, build.bat: New version without IPL.SYS 1999/03/25 jprice fatdir.c: Fixed findfirst & findnext functions to treat the attributes like MSDOS does. 1999/03/23 jprice inthndlr.c: Now sets carry when we don't support a function 1999/03/23 jprice config.c: Now checks for a reads fdconfig.sys file, if exists 1999/03/23 jprice fatfs.c: Fixed mkdir DOS function so it will create a directory with same name as the volument label 1999/03/02 jprice inthndlr.c: Added some comments. Fixed some minor bugs. 1999/03/02 jprice fatfs.c: Fixed bugs with dos set attribute function. Now returns correct error code, and errors if user tries to set bits 6 & 7. 1999/03/02 jprice boot.asm: Added entry address for more recent versions of TLINK 1999/03/02 jprice intfns.txt: Updated interrupt list 1999/03/01 jprice makefile: Fixed so it'll work with config.mak 1999/03/01 jprice makefile: Turned off DEBUG define. 1999/03/01 jprice inthndlr.c: Added some DEBUG ifdef's so that it will compile without DEBUG defined. 1999/02/14 jprice fatdir.c, dsk.c: Changed check media so that it checks if a floppy disk has been changed. 1999/02/14 jprice floppy.asm: Added functions to check if a floppy disk has been changed. 1999/02/09 jprice makefile, drivers/makefile, boot/makefile, clean.bat, build.bat: Make makefile use common config.mak file 1999/02/09 jprice blockio.c, chario.c, dosfns.c, error.c, fatdir.c, fatfs.c, fattab.c, fcbfns.c, device.h, error.h, sysclk.c, systime.c, task.c, apisupt.asm, asmsupt.asm, config.c, console.asm, dsk.c, entry.asm, execrh.asm, globals.h, initoem.c, int2f.asm, inthndlr.c, io.asm, io.inc, ioctl.c, irqstack.asm, kernel.asm, main.c, makefile, memmgr.c, newstuff.c, nlssupt.asm, printer.asm, procsupt.asm, proto.h, segs.inc, floppy.asm: Added Pat's 1937 kernel patches 1999/02/04 jprice chario.c, fatfs.c, fcbfns.c, strings.c, sysclk.c, systime.c, task.c: Formating. Added comments. 1999/02/04 jprice inthndlr.c: Formating 1999/02/04 jprice makefile: Added option to share constants (-d). 1999/02/04 jprice device.h: no message 1999/02/02 jprice dosnames.c: Steve Miller fixed a bug with doing "cd ." would lock the machine. 1999/02/01 jprice apisupt.asm, asmsupt.asm, config.c, dsk.c, entry.asm, execrh.asm, globals.h, initoem.c, int2f.asm, inthndlr.c, ioctl.c, irqstack.asm, kernel.asm, main.c, memmgr.c, newstuff.c, nlssupt.asm, procsupt.asm, proto.h, strings.c, sysclk.c, systime.c, task.c: Clean up; Now you can use hex numbers in config.sys. added config.sys screen function to change screen mode (28 or 43/50 lines) 1999/02/01 jprice chario.c, dosfns.c, dosnames.c, error.c, fatdir.c, fatfs.c, fattab.c, fcbfns.c, misc.c, prf.c, syspack.c, blockio.c: Fixed findfirst function to find volume label with Windows long filenames 1999/02/01 jprice cds.h, clock.h, date.h, dcb.h, device.h, dirmatch.h, dosnames.h, error.h, exe.h, fat.h, fcb.h, file.h, fnode.h, kbd.h, mcb.h, pcb.h, portab.h, process.h, sft.h, stacks.inc, tail.h, time.h: Clean up 1999/01/30 jprice clean.bat, build.bat: Clean up 1999/01/30 jprice main.c, config.c, initoem.c, inthndlr.c: Clean up; Fixed bug with set attribute function. 1999/01/30 jprice globals.h: Clean up; commented out copyright messages while we debug. 1999/01/30 jprice blockio.c, fatdir.c, fatfs.c: Clean up; Fixed bug with set attribute function. If you tried to change the attributes of a directory, it would erase it. 1999/01/30 jprice cds.h, clock.h, error.h, fat.h, fnode.h, build.bat: Clean up 1999/01/22 jprice cds.h, clock.h, date.h, dcb.h, device.h, dirmatch.h, dosnames.h, error.h, exe.h, fat.h, fcb.h, file.h, fnode.h, kbd.h, mcb.h, pcb.h, portab.h, process.h, sft.h, stacks.inc, tail.h, time.h, wrpcclk.asm, wratclk.asm, rdpcclk.asm, rdatclk.asm, drivers/makefile, getvec.asm, floppy.asm, blockio.c, chario.c, dosfns.c, dosnames.c, error.c, fatdir.c, fatfs.c, fattab.c, fcbfns.c, misc.c, prf.c, syspack.c, procsupt.asm, proto.h, strings.c, sysclk.c, systime.c, task.c, globals.h, initoem.c, int2f.asm, inthndlr.c, ioctl.c, irqstack.asm, kernel.asm, main.c, makefile, memmgr.c, newstuff.c, nlssupt.asm, apisupt.asm, asmsupt.asm, config.c, dsk.c, entry.asm, execrh.asm, boot/makefile, boot.asm: Formating. 1999/01/21 jprice Fixed comments. sys.c: Added indent program 1999/01/21 jprice Added messages to sys. Also made sys.c: it create a .COM file. 1999/01/20 jprice cds.h, clock.h, date.h, dcb.h, device.h, dirmatch.h, dosnames.h, error.h, exe.h, fat.h, fcb.h, file.h, fnode.h, kbd.h, mcb.h, pcb.h, portab.h, process.h, sft.h, stacks.inc, tail.h, time.h, apisupt.asm, asmsupt.asm, config.c, dsk.c, entry.asm, execrh.asm, globals.h, initoem.c, int2f.asm, ioctl.c, irqstack.asm, kernel.asm, main.c, makefile, memmgr.c, newstuff.c, nlssupt.asm, procsupt.asm, proto.h, strings.c, sysclk.c, systime.c, task.c: Imported sources 1999/01/20 jprice wrpcclk.asm, wratclk.asm, rdpcclk.asm, rdatclk.asm, drivers/makefile, getvec.asm, floppy.asm, boot/makefile, boot.asm, blockio.c, chario.c, dosfns.c, dosnames.c, error.c, fatdir.c, fatfs.c, fattab.c, fcbfns.c, inthndlr.c, misc.c, prf.c, syspack.c: Imported sources 10 Jan 1999 SRM makefile: Took out "/P-" from TLINK Changed "bcc" to "tcc" 06 Dec 1998 patv entry.asm: New int 21h handler code. 06 Dec 1998 patv inthndlr.c: Expanded due to improved int 21h handler code. 06 Dec 1998 patv ioctl.c, proto.h, apisupt.asm, globals.h: Expanded due to new I/O subsystem. 06 Dec 1998 patv makefile: Added new files for I/O subsystem. 06 Dec 1998 patv main.c, dsk.c: Changed due to new I/O subsystem. 06 Dec 1998 patv irqstack.asm, newstuff.c, int2f.asm, kernel.asm, systime.c, nlssupt.asm, asmsupt.asm, procsupt.asm, task.c, execrh.asm, fatdir.c, fatfs.c: Bug fixes. 06 Dec 1998 patv dosfns.c: Expanded dos functions due to new I/O subsystem. 06 Dec 1998 patv fcbfns.c: Expanded fcb functions for new I/O subsystem. 06 Dec 1998 patv error.c: Now handles errors like MS-DOS. 06 Dec 1998 patv chario.c: changes in character I/O because of new I/O subsystem. 06 Dec 1998 patv blockio.c: Changes in block I/O because of new I/O subsystem. 06 Dec 1998 patv floppy.asm: New floppy support functions. 06 Dec 1998 patv device.h: Changed for new I/O subsystem 06 Dec 1998 patv error.h: Added new errors for new I/O subsystem. 06 Dec 1998 patv io.inc, segs.inc: Initial revision. 09 Feb 1998 patv fatfs.c, fattab.c: Eliminated FAT12 EOF and error returns. 07 Feb 1998 patv stacks.inc, pcb.h, entry.asm, procsupt.asm, inthndlr.c, task.c, globals.h, proto.h: Modified stack fram to match DOS standard 03 Feb 1998 patv kernel.asm: Added a start-up stack for loadable device drivers. Need the separate stack so that all int 21h functions can be called. 03 Feb 1998 patv fatfs.c: Fixed lseek bug. 02 Feb 1998 patv globals.h: Fixed size of default_drive. Caused failures when break_ena was not zero. 31 Jan 1998 patv task.c: Corrected type in load high code. 31 Jan 1998 patv task.c: Added load high in memory option in DosExeLoader. 22 Jan 1998 patv task.c: Eliminated warnings. 22 Jan 1998 patv process.h: Had to change ps_prevps to VOID FAR * due to BC++ error. 22 Jan 1998 patv process.h: Corrected ps_prevpsp declaration. 22 Jan 1998 patv task.c: Corrected short .COM problem. 22 Jan 1998 patv makefile: Outdated stacks.asm. 22 Jan 1998 patv fatfs.c: Corrected remaining file name and extension copies that did not account for far file nodes due to allocated FILES= spec. 22 Jan 1998 patv inthndlr.c, proto.h, config.c, globals.h, kernel.asm, main.c, blockio.c, dosnames.c, fatdir.c, fatfs.c: Fixed pointer problems affecting SDA 11 Jan 1998 patv ioctl.c, proto.h, chario.c, device.h: Added functionality to ioctl. 08 Jan 1998 patv chario.c: Changed automatic requestic packets to static to save stack space. 06 Jan 1998 patv inthndlr.c: Broke apart int21_system from int21_handler. 06 Jan 1998 patv kernel.asm: Reduced device driver stack sizes. 04 Jan 1998 patv globals.h, proto.h, inthndlr.c, newstuff.c, systime.c, main.c, config.c, ioctl.c, memmgr.c, dsk.c, initoem.c, strings.c, sysclk.c, task.c, fatfs.c, chario.c, dosfns.c, dosnames.c, fattab.c, fcbfns.c, prf.c, syspack.c, blockio.c, error.c, fatdir.c, misc.c, device.h, cds.h, clock.h, date.h, dcb.h, fat.h, file.h, fnode.h, kbd.h, mcb.h, pcb.h, sft.h, dirmatch.h, error.h, exe.h, fcb.h, portab.h, process.h, tail.h, time.h: Changed Log for strip utility 04 Jan 1998 patv kernel.asm, inthndlr.c, main.c, config.c, newstuff.c, fatfs.c: Corrected subdirectory bug 03 Jan 1998 patv globals.h, kernel.asm, makefile, systime.c, inthndlr.c, main.c, proto.h, asmsupt.asm, dosfns.c, dosnames.c, fatfs.c, blockio.c, fatdir.c, fcbfns.c: Converted data area to SDA format 31 Dec 1997 patv strings.c: Added new far string functions. 30 Dec 1997 patv chario.c: Modified to support SDA 01 Aug 1997 patv inthndlr.c: COMPATIBILITY: Added return '$' in AL for function int 21h fn 09h 06 Feb 1997 patv kernel.asm: Reduced stack sizes for block and clock devices. 06 Feb 1997 patv globals.h: Changed version format string 06 Feb 1997 patv main.c: Modified to support new version format and changed debug message to output drive letter instead of number. 06 Feb 1997 patv globals.h: Modified to support new version format 06 Feb 1997 patv inthndlr.c, kernel.asm: Added hooks for tsc command 30 Jan 1997 patv makefile: Added TSC flag for trace support. 22 Jan 1997 patv newstuff.c, inthndlr.c, task.c, irqstack.asm: pre-0.92 Svante Frey bug fixes. 22 Jan 1997 patv globals.h: Changed to support version.h and pre-0.92 Svante Frey bug fixes. 22 Jan 1997 patv main.c: Now does correct default drive initialization. 22 Jan 1997 patv fatfs.c, dosfns.c: pre-0.92 bug fixes 16 Jan 1997 patv irqstack.asm: Initial revision. 16 Jan 1997 patv globals.h, main.c, memmgr.c, task.c, ioctl.c, config.c, inthndlr.c, apisupt.asm, nlssupt.asm, proto.h, makefile, fcbfns.c, chario.c, dosnames.c, blockio.c, dosfns.c, fatdir.c, fatfs.c, fattab.c, device.h, fcb.h, sft.h, dsk.c, boot.asm: Corrected copyright 10 Jan 1997 patv boot.asm: Re-written to support C drive and eliminate restrictions on IPL.SYS 10 Jan 1997 patv boot/makefile: Changed to use FreeDOS exe2bin and support new boot code 17 Dec 1996 patv boot/makefile: Converted to FreeDOS exe2bin. 13 Sep 1996 patv globals.h: Fixed boot for hard drive 29 Aug 1996 patv makefile, globals.h, task.c, floppy.asm, wrpcclk.asm, wratclk.asm, drivers/makefile, rdpcclk.asm, rdatclk.asm, getvec.asm, boot/makefile, boot.asm: Bug fixes for v0.91b 29 May 1996 patv clock.h, date.h, dcb.h, kbd.h, dirmatch.h, error.h, exe.h, sft.h, tail.h, time.h, fnode.h, mcb.h, pcb.h, portab.h, process.h, dosnames.h, fat.h, fcb.h, file.h, device.h, dosfns.c, fatdir.c, misc.c, fatfs.c, fattab.c, fcbfns.c, chario.c, dosnames.c, syspack.c, blockio.c, error.c, prf.c, initoem.c, sysclk.c, int2f.asm, config.c, kernel.asm, inthndlr.c, proto.h, systime.c, apisupt.asm, asmsupt.asm, nlssupt.asm, procsupt.asm, task.c, globals.h, memmgr.c, dsk.c, main.c, makefile, execrh.asm, ioctl.c, strings.c: bug fixes for v0.91a 19 Feb 1996 patv int2f.asm: Initial revision. 19 Feb 1996 patv makefile, kernel.asm, nlssupt.asm, proto.h, globals.h, config.c, inthndlr.c, task.c, dsk.c, main.c, memmgr.c, strings.c, initoem.c, ioctl.c, sysclk.c, systime.c, fatdir.c, misc.c, fatfs.c, dosfns.c, dosnames.c, fattab.c, drivers/makefile, cds.h, dirmatch.h, exe.h, sft.h, tail.h, time.h, fcb.h, file.h, fnode.h, mcb.h, pcb.h, portab.h, process.h, clock.h, date.h, dcb.h, device.h, dosnames.h, fat.h, error.h, kbd.h: Added NLS, int2f and config.sys processing 01 Sep 1995 patv wrpcclk.asm, wratclk.asm, rdpcclk.asm, rdatclk.asm, getvec.asm, floppy.asm, boot.asm, apisupt.asm, asmsupt.asm, proto.h, kernel.asm, procsupt.asm, execrh.asm, strings.c, task.c, inthndlr.c, memmgr.c, dsk.c, main.c, sysclk.c, globals.h, initoem.c, ioctl.c, systime.c, dosfns.c, blockio.c, error.c, misc.c, dosnames.c, fcbfns.c, chario.c, fattab.c, prf.c, syspack.c, fatfs.c, fatdir.c, time.h, pcb.h, portab.h, process.h, sft.h, tail.h, fat.h, fcb.h, file.h, fnode.h, mcb.h, date.h, dcb.h, device.h, dirmatch.h, dosnames.h, clock.h, error.h, exe.h, kbd.h: First GPL release. 30 Jul 1995 patv dsk.c, memmgr.c, proto.h, strings.c, task.c, blockio.c, misc.c, chario.c, dosnames.c, error.c, fattab.c, fcbfns.c, prf.c, syspack.c, dosfns.c, fatdir.c, fatfs.c, mcb.h, pcb.h, portab.h, process.h, sft.h, tail.h, time.h, date.h, dcb.h, device.h, dirmatch.h, dosnames.h, fat.h, fcb.h, file.h, fnode.h, clock.h: Eliminated version strings in ipl 30 Jul 1995 patv error.h, kbd.h, exe.h: Fixed ipl 30 Jul 1995 patv boot.asm: Initialized stack before use. 05 Jul 1995 patv asmsupt.asm, proto.h: Initial revision. 02 Jul 1995 patv boot.asm, time.h, tail.h, process.h, sft.h, portab.h, pcb.h, kbd.h, mcb.h, fnode.h, file.h, fat.h, fcb.h, exe.h, error.h, dirmatch.h, dosnames.h, dcb.h, device.h, date.h, clock.h, boot/makefile, procsupt.asm, kernel.asm, execrh.asm, apisupt.asm, task.c, strings.c, inthndlr.c, main.c, memmgr.c, dsk.c, sysclk.c, systime.c, ioctl.c, initoem.c, globals.h, makefile, misc.c, error.c, fcbfns.c, dosnames.c, chario.c, syspack.c, prf.c, fattab.c, fatfs.c, fatdir.c, dosfns.c, blockio.c, wrpcclk.asm, wratclk.asm, getvec.asm, rdpcclk.asm, rdatclk.asm, floppy.asm, drivers/makefile: Initial revision. 25 May 1993 patv dirmatch.h: Initial revision.