From c42277d2598e1c2eb98c964e2cb8fb9e985e128f Mon Sep 17 00:00:00 2001 From: Bart Oldeman Date: Sat, 17 Apr 2004 19:13:20 +0000 Subject: [PATCH] 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 --- docs/fdkernel.lsm | 2 +- docs/history.txt | 200 ++++++++++++++++++++++++++++++++++++++++++++++ hdr/version.h | 4 +- 3 files changed, 203 insertions(+), 3 deletions(-) diff --git a/docs/fdkernel.lsm b/docs/fdkernel.lsm index 90a4af2..c3b0f54 100644 --- a/docs/fdkernel.lsm +++ b/docs/fdkernel.lsm @@ -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) diff --git a/docs/history.txt b/docs/history.txt index 77cf9e4..81f149a 100644 --- a/docs/history.txt +++ b/docs/history.txt @@ -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 diff --git a/hdr/version.h b/hdr/version.h index 6370da7..8199d9f 100644 --- a/hdr/version.h +++ b/hdr/version.h @@ -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 */