2001-07-22 03:58:58 +02:00
|
|
|
+ fixes Bart
|
|
|
|
* 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
|
|
|
|
* 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-07-10 00:19:33 +02:00
|
|
|
2001 Jul 9 - Build 2024/d
|
|
|
|
-------- Bart Oldeman (bart.oldeman@bristol.ac.uk)
|
|
|
|
+ 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-06-03 16:16:18 +02:00
|
|
|
2001 Jun 2 - Build 2024
|
|
|
|
-------- Bart Oldeman (bart.oldeman@bristol.ac.uk)
|
|
|
|
+ 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
|
2001-07-10 00:19:33 +02:00
|
|
|
* init_PSPSet() fix for setting the PSP
|
2001-06-03 16:16:18 +02:00
|
|
|
+ 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-07-10 00:19:33 +02:00
|
|
|
|
2001-06-03 16:16:18 +02:00
|
|
|
2001 Apr 29 - Build 2024
|
|
|
|
-------- Bart Oldeman (bart.oldeman@bristol.ac.uk)
|
|
|
|
+ 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-04-29 19:34:41 +02:00
|
|
|
2001 Apr 21 - Build 2024
|
2001-04-22 00:32:53 +02:00
|
|
|
-------- Bart Oldeman (bart.oldeman@bristol.ac.uk)
|
|
|
|
+ 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.
|
2001-04-22 03:22:15 +02:00
|
|
|
* VDISK signature required in HMA (bug 701 dborca@usa.net).
|
2001-04-22 00:32:53 +02:00
|
|
|
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-04-16 16:28:32 +02:00
|
|
|
2001 Apr 16 - Build 2024
|
|
|
|
-------- Bart Oldeman (bart.oldeman@bristol.ac.uk)
|
|
|
|
+ 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
|
2001-04-16 03:45:26 +02:00
|
|
|
-------- Bart Oldeman (bart.oldeman@bristol.ac.uk)
|
|
|
|
+ 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-04-15 05:21:50 +02:00
|
|
|
2001 Apr 15 - Build 2023
|
|
|
|
-------- Bart Oldeman (bart.oldeman@bristol.ac.uk)
|
|
|
|
+ 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-04-03 01:18:30 +02:00
|
|
|
2001 Apr 2 - Build 2023
|
|
|
|
-------- Bart Oldeman (bart.oldeman@bristol.ac.uk)
|
|
|
|
+ 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-03-30 21:30:06 +02:00
|
|
|
2001 Mar 30 - Build 2023
|
2001-03-27 22:27:43 +02:00
|
|
|
-------- Bart Oldeman (bart.oldeman@bristol.ac.uk)
|
2001-03-30 21:30:06 +02:00
|
|
|
+ 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
|
2001-03-31 00:27:42 +02:00
|
|
|
saner lastdrive handling
|
2001-03-30 21:30:06 +02:00
|
|
|
+ Add Support for SHELLHIGH in config.sys
|
|
|
|
2001 Mar 28 - Build 2023
|
2001-03-27 22:27:43 +02:00
|
|
|
+ Fixes Bug fix release 2023b: dsk.c (reported by Nagy Daniel), inthndlr and
|
|
|
|
int25/26 fixes by Tom Ehlert.
|
2001-03-27 04:56:58 +02:00
|
|
|
2001 Mar 27 - Build 2023
|
|
|
|
-------- Bart Oldeman (bart.oldeman@bristol.ac.uk)
|
|
|
|
+ Fixes Bug fix release 2023a: fixed stack segment bug in entry.asm.
|
2001-03-25 19:11:54 +02:00
|
|
|
2001 Mar 25 - Build 2023
|
|
|
|
-------- Bart Oldeman (bart.oldeman@bristol.ac.uk)
|
|
|
|
+ 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-03-24 23:13:05 +01:00
|
|
|
2001 Mar 24 - Build 2022
|
|
|
|
-------- Bart Oldeman (bart.oldeman@bristol.ac.uk)
|
|
|
|
+ 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-03-21 03:56:26 +01:00
|
|
|
2001 Mar 21 - Build 2022
|
|
|
|
-------- Bart Oldeman (bart.oldeman@bristol.ac.uk)
|
|
|
|
+ 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-03-19 05:50:56 +01:00
|
|
|
2001 Mar 08 - Build 2022
|
|
|
|
-------- Bart Oldeman (bart.oldeman@bristol.ac.uk)
|
|
|
|
+ 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-12-16 02:38:35 +01:00
|
|
|
2000 Dec 15 - Build 2022
|
|
|
|
-------- James Tabor (jimtabor@infohwy.com)
|
|
|
|
+ Fixes Added Patches from Bart Oldeman (Bart.Oldeman@bristol.ac.uk)
|
|
|
|
Fix for NLAST in globals.h and change default return in inthndlr.c.
|
|
|
|
|
2000-10-30 01:03:40 +01:00
|
|
|
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)
|
2000-10-30 01:32:09 +01:00
|
|
|
+ Fixes Brian Reifsnyder (reifsnyderb@mindspring.com)
|
2000-10-30 01:03:40 +01:00
|
|
|
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-09-05 02:56:50 +02:00
|
|
|
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-08-06 06:42:32 +02:00
|
|
|
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-06-23 05:17:29 +02:00
|
|
|
2000 Jun 20 - Build 2021
|
|
|
|
-------- James Tabor (jimtabor@infohwy.com)
|
|
|
|
+ Fix Bart Oldeman (Bart.Oldeman@bristol.ac.uk) 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-06-01 08:37:38 +02:00
|
|
|
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-05-26 21:25:19 +02:00
|
|
|
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-05-25 22:56:23 +02:00
|
|
|
2000 May 25 - Build 2020
|
|
|
|
-------- James Tabor (jimtabor@infohwy.com)
|
|
|
|
+ Fixed Project history.
|
|
|
|
|
2000-05-17 21:15:12 +02:00
|
|
|
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)
|
2000-06-01 08:37:38 +02:00
|
|
|
+ Update Started Update to the New CVS at Sourceforge.net. Setting source
|
2000-05-17 21:15:12 +02:00
|
|
|
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-05-08 06:30:00 +02:00
|
|
|
2000 Apr 28 - Build 2020
|
|
|
|
-------- James Tabor (jimtabor@infohwy.com)
|
|
|
|
+ Added Dos Function calls 0x69, and 0x6C. IOCTL support in disk driver.
|
2000-06-01 08:37:38 +02:00
|
|
|
New functions not yet fully implemented.
|
2000-05-08 06:30:00 +02:00
|
|
|
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 <lozevis.jeanfrancois@free.fr> 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 <k3pbu@arrl.net>.
|
|
|
|
Func 0x32 Get Drive Parameter BLK did not work.
|
|
|
|
|
2000-05-06 21:34:20 +02:00
|
|
|
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=<major>.<minor> (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.
|