Update .lsm version.h and changelog.

git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@887 6ac86273-5f31-0410-b378-82cca8765d1b
This commit is contained in:
Bart Oldeman 2004-04-17 19:13:20 +00:00
parent 2734dd94ae
commit c42277d259
3 changed files with 203 additions and 3 deletions

View File

@ -1,7 +1,7 @@
Begin3
Title: The FreeDOS Kernel
Version: 2.0.34
Entered-date: xx Apr 2004
Entered-date: 17 Apr 2004
Description: The FreeDOS Kernel.
Keywords: kernel freedos dos msdos
Author: (developers)

View File

@ -1,3 +1,203 @@
2004 Apr 17 - Build 2034
-------- Bart Oldeman (bart@dosemu.org)
* break.c, chario.c, inthndlr.c, proto.h: Improve ctrl-c/ctrl-break
handling:
- read_char_sft_dev handles ^C at a fairly high level.
- ^C didn't work for int21/ah=3f. Corrected
- Do_DosIdle_loop still needs to wait even if it doesn't call the
idle int
- ^C needs to be echoed to STDOUT for low character functions
(ah<0xd) but to the device that is read from for handle
functions. So we need to pass either the STDOUT sft or that
device on to the ^C echoer which now correctly prints ^C\r\n.
- misc cleanups in break.c.
* main.c: Move memset up a little else it would overwrite too much.
* build.txt, config.c, init-mod.h, initdisk.c, inithma.c, main.c: Lucho
reported that MSC compiled kernels now work after all. Let's mark
those nasty "BSS" variables explicitly then to try to avoid
future problems. Also DATASTART should be FAR and not DOSFAR for MSC
* stacks.inc, generic.mak, entry.asm, int2f.asm, kernel.asm, segs.inc:
(suggested by Arkady): use CPU to enforce 8086 etc instructions.
* ioctl.c: Correct int21/ax=4401: returned AL = old value, should
set CY and DE_INVLDDATA if DH!=0 (RBIL is a little confusing here).
* memmgr.c: Converted nxtMCBsize back to a macro. There is no need
to use far2para; FP_SEG works fine since MCBs always have offset 0.
* build.txt, config.c, config.h, kernel.asm, main.c, segs.inc, task.c:
Removed obsolete BYTE cfgCSYS_fnam[NAMEMAX]; config variable. Changed
cfgInit and cfgInitTail to pointers, adjusted some code to cooperate.
* chario.c: The screen position (for TABs) is only for raw
*CONOUT* devices already updated in dosfns.c
* memmgr.c, proto.h: Make unnecessary far pointers near.
* device.h, dsk.c, initdisk.c: Move the ddt bitfields to
df_descflags. Let SetLogDev call GetLogdev, eliminating common code.
* init-mod.h, mscl8.mak: Some vars need to be DOSFAR;
init code is no longer tiny but small.
* segs.inc, inithma.c, main.c, asmsupt.asm, execrh.asm, init-mod.h,
kernel.asm, watcom.mak:
Make CS the same for INIT and HMA text for Watcom. Move HMA text
up in kernel.asm. Use std for the memory move: helps if there's
overlap (PCs with a very low amount of RAM).
No longer include duplicate execrh, asmsupt, and u8m/d functions
for the init text in the Watcom compiled kernel, since they can
be called "near" in the resident code.
* portab.h, kernel.asm, main.c, segs.inc:
Use the "small" model for the init code (split code/data).
* main.c: Use pointer to MK_FP(0,0x5e0) to save a bit of code.
* initdisk.c: Move some common code into a "push_ddt" function.
* sys.c: Correct int25/26 pragmas. Need to explicitly preserve bp
and pop flags.
* initdisk.c: fmemcpy->memcpy where possible
* config.c, init-mod.h, inithma.c, int2f.asm: Make
UMB_get_largest "pascal". Let it use the xms driver address from
the HMA code. Misc small config.c cleanups.
* initdisk.c: "Cache" far drive data table near. Enables elimination
of many far pointers in initdisk.c. Also clear up the
unnecessary casts in ConvPartTableEntryToIntern.
* drivers/getvec.asm, drivers/rdpcclk.asm, drivers/wratclk.asm,
drivers/wrpcclk.asm, globals.h: Use pascal calling
conventions for all clock related asm functions.
* drivers/floppy.asm, dsk.c: Use pascal calling conventions
for floppy asm functions.
* init-mod.h, intr.asm, proto.h, kernel.asm: Use the
pascal calling convention for all intr.asm functions, and let
them pop the stack (smaller code than using bx). Tell Watcom
which registers are clobbered; save some more registers for
intr() -- especially for intr() this helps.
* device.h, execrh.asm, init-mod.h: Use pascal calling conventions
for execrh().
* mkfiles/watcom.mak: Use the "-r" switch for Watcom to preserve ES
around calls -- saves ~350 bytes.
* sys.c, init-mod.h, fdkrncfg.c, portab.h, prf.c, proto.h:
Introduce VA_CDECL: only Turbo C 2.01 needs an explicit cdecl
for printf, all other compilers can use it with pascal or
"register" calling conventions. Saves ~50 bytes for the init code.
* asmsupt.asm, config.c, init-mod.h: Use strchr and strlen
more often; also use strchr in the init code.
* memmgr.c: Better to call fmemset than to do things manually.
* asmsupt.asm, proto.h, init-mod.h: Be more specific about
which registers are clobbered by asmsupt.asm functions. Preserve
"ES" for Watcom. Saves ~150 bytes resident, ~90 bytes
nonresident, more for 386 kernels.
Preserve bx and cx for WATCOMC as well. Saves another 200 bytes.
* inthndlr.c: Simplify memory access mode check.
* dsk.c: Remove wrong "512" value for number of root directory
entries on FAT32 partitions.
* file.h, sft.h, dosfns.c, fcbfns.c: Get rid of SFT_M* mode
values. O_* values are sufficient.
* file.h, fatfs.c: Define O_ACCMODE and use it instead of "3" for
the open access mask.
* config.c, init-mod.h: Change default STACKS= size to 256.
* config.c, init-mod.h, main.c: Remove lpOldTop variable.
It is no longer necessary (has not been for some time) and the
assignment in config_init_buffers() was wrong (screwed up fnodes,
so that buffers overlapped fnodes...).
* lol.h, config.c, fatfs.c, globals.h, kernel.asm, proto.h:
Made the main fnodes far so they can be in the HMA.
Internally the kernel uses two near fnodes though, to save on
codesize and fmemcpy's if necessary. Having memory management on
two fnodes is a little silly but I just want to make sure with
the panic message that we never accidentally try to use three near
fnodes at the same time (two are used at the same time by rename,
commit, and merge_file_changes). This can be cleaned up later.
* fatfs.c:
- Merge three almost identical pieces of code used to allocate a new
directory entry in creat, rename, and mkdir into alloc_find_free.
- Merge find_fat_free() and extend() -- they were almost
identical. Have a simplified clause for f_cluster ==
FREE. Set f_cluster = FREE in shrink_file if the file is set to
0 bytes; in that case we should set the current cluster to FREE
even if it is currently a LONG_LAST_CLUSTER.
* fnode.h, fatdir.c, fatfs.c, lfnapi.c:
- Eliminate f_back field. extend() now uses f_cluster instead of
f_back, while map_cluster makes sure it's not set to
LONG_LAST_CLUSTER (but to the cluster before it) when calling
extend(). extend() and first_fat() now return the new cluster
number or LONG_LAST_CLUSTER, just like find_fat_free().
- Eliminated f_sector and f_boff fields from fnodes.
- Avoid bitfields for fnodes, using flags instead. Replaced droot
field by checks for f_dirstart == 0.
- Make f_diroff an entry offset so it can be 16bits. Enforce the
65536 entry limit in dir_read(), except for root directories.
For root directories it's checked against a different limit
later. Saves 80 bytes or so + 2 bytes in every f_node.
* dsk.c, fatfs.c, memmgr.c: Remove add_far. adjust_far can do the job.
* chario.c: Echo input LF as CR-LF unless it's the first
character. Never store LF in the buffer.
* memmgr.c, task.c: Eliminated long2para and avoided use of "long"s
in DosExeLoader, using paragraphs to measure size instead. Saves
~130 bytes together.
* prf.c, asmsupt.asm: Saved ~75 bytes in printf and by elimination of
fstrlen. There's only one call; inlining doesn't increase the size.
* dosfns.c, int2f.asm, intr.asm, nls.c: Eliminate intr()
from resident code. Saves ~200 bytes of HMA resident code. Also
made the nls.c functions SS!=DS safe.
* init-mod.h, inthndlr.c, intr.asm, main.c, proto.h, task.c:
int21/ah=26: new_psp now copies the old psp and just sets a few
fields int21/ah=55: child_psp does the rest init code does the
init (fixed values are always copied now)
* dosfns.c: Commit each close, even if the ref count is > 0.
* prf.c: Borland C didn't like one pseudo register use.
* initdisk.c: Merge "suspect partition" copy/paste code into functions.
* asmsupt.asm: Save a couple bytes by moving the strncmp_retzero block.
* fcbfns.c, proto.h: Don't call truename from FcbNameInit(). It
was only necessary for "FcbRename", which can call it itself.
Fixes for FcbOpen/FcbFindFirstNext a consequence of
truename's funny behaviour: truename(c:nul) = c:/nul and
truename(c:/nul) = c:\nul. Fixes the EJECT problem from Lucho.
Remove unused variable lpFcb.
* portab.h, dsk.c, main.c, newstuff.c: Define I386 and I186 more
cleanly. Add (UWORD) casts to silence the compiler. Optimize
(head*sector) to secs_per_cyl. Add BORLANDC to compiler list
and simplify startup printf to one message.
#pragma enable_message(130) for Watcom C causes it to
behave a little more like Borland in terms of warnings.
* exeflat.c, fatfs.c, fattab.c, fcbfns.c, inthndlr.c,
memmgr.c, task.c, blockio.c, fatdir.c: Added explicit
(UWORD) type casts to avoid compiler warnings and sometimes save
a few bytes too. Also changed the FcbParseFname return value:
returns offset portion of pointer (SI) instead of the number of
bytes to be added to SI.
+ Changes Lucho
* task.c: fixes the CHKDSK I: "Invalid drive specification" bug
* mcb.h, inthndlr.c: save 33 bytes by eliminating a switch for
memory/UMB access modes.
* talloc.c: talloc won't work with MSC (no sbrk or brk available)
+ fix
* stacks.inc: smaller Protect/Restore 386 register macros.
* inthndlr.c: Code size reduction and dead code removal.
* dosnames.c: Remove wrong automatic "*.*" code from Lixing
Yuan -- return DE_PATHNOTFND or D_NFILES instead
* ioctl.c: move the lock/unlock simulation of success before the
device GENIOCTL check so that it applies to any device.
* filelist, dosnames.h, dosfns.c, dosnames.c, fatdir.c, fatfs.c,
globals.h, init-mod.h: (with Bart) -- remove the dosnames path
67 length check. Review the places where it really matters (chdir
and mkdir).
* init-mod.h, intr.asm, kernel.asm, main.c, procsupt.asm,
proto.h, task.c: enable interactive re-execution of the SHELL.
* nls.h, config.h, globals.h, init-mod.h: move NLS #defines to
nls.h. Move config structure to config.h. Some cosmetic changes.
* contrib.txt: From Lucho: update contributors list.
* config.c: From Lucho: fix EBDA problems with INSTALL. This
fixes the weird fmemcpy lockup; in reality kernel init code was
overwritten.
* asmsupt.asm, config.c, init-mod.h, inithma.c, main.c, makefile,
prf.c: Use asmsupt string and mem functions for the init code too.
+ Changes Arkady
* task.c: A few suggestions. Saves 5 bytes.
* inthndlr.c: Use AL, not AX, for int2f/ax=1213, as per RBIL
* inthndlr.c: Use xreg struct and macros to optimize the
int2f/12,4a handler a bit ~25 bytes
* config.c: Buffer config fixes.
* inthndlr.c, proto.h: Corrections to int2f/ax=4a01/2.
* blockio.c: buffer intersection check should use > instead
of >=. small optimization -- the segment in bp == firstbuf is
always the same so we just need to compare offsets.
AllocateHMASpace needs to check FP_SEG(firstbuf) for 0xffff,
since the buffers may not live in the HMA.
* *.bat, config.b, kernel/makefile, generic.mak: .BAT file and
makefile cleanups. Also Lucho reported that nmake/nologo doesn't
always work in 4dos, but nmake /nologo works.
2004 Jan 31 - Build 2033
-------- Bart Oldeman (bart@dosemu.org)
+ Changes Bart

View File

@ -49,6 +49,6 @@ static BYTE *date_hRcsId =
#define REVISION_MINOR 1
#define REVISION_SEQ 34
#define BUILD "2034"
#define SUB_BUILD "rc"
#define SUB_BUILD ""
#define KERNEL_VERSION_STRING "1.1.34" /*#REVISION_MAJOR "." #REVISION_MINOR "." #REVISION_SEQ */
#define KERNEL_BUILD_STRING "2034rc" /*#BUILD SUB_BUILD */
#define KERNEL_BUILD_STRING "2034" /*#BUILD SUB_BUILD */