📄 history.txt
字号:
2006 May 20 - Build 2036 cvs and 2037 test-------- Eric Auer (eric@coli.uni-sb.de)WARNING: This changelog entry is a draft! The cvs log contains data for both HEAD and UNSTABLE branch while a cvs checkout seems to return only the HEAD branch. This file history.txt should describe "2036 cvs" HEAD and "2037 test" UNSTABLE separately rather than in one merged changelog item.In addition, the "Changes Eric" items yet have to be ported to the UNSTABLE branch and the version.h for UNSTABLE should say "03 Mar 2006" "2037 test" (revision 37)...!Most recent changes to source code (see version.h) are: HEAD 9 Sep 2005 (not counting the Korean stub and execrh change by Eric, and not counting the version number change itself) UNSTABLE 3 Mar 2006 (includes SYS changes, more Win3 support, COM port output for debug print, the SHARE tool...) The head to unstable diff in general is quite large. As a rule of thumb, use UNSTABLE if you need NLSFUNC or Win3 386 mode or if you need a very new kernel, and use HEAD if you need stability.+ Changes Jeremy * build.bat, config.b: UPX and WIN3 build options, for BUILDALL * boot/oemboot.asm: set backup boot sector on FAT32, add update option, fix oemboot to work with msdos 7+, in UNSTABLE branch. * docs/bugs.txt: update Bugzilla URL * docs/config.txt: document SWITCHES, based on suggestions from Eric * docs/contrib.txt, docs/fdkernel.lsm: new email address * docs/sys.htm, docs/sys.txt: see oemboot.asm * docs/sys.txt: better check for valid backup boot sector # and add option to skip setting it * hdr/debug.h, kernel/prf.c: slight cleanup, send debug prints to COM port, allow printf to work correctly when SS!=DS, debug changes * hdr/device.h: add comments about what flags mean * hdr/portab.h: from dev: add MK_PTR and MK_SEG_PTR macros add/use halt() wrapper for issuing "hlt" asm instruction * hdr/version.h: update version to 2035b-cvs (= not a release yet) * kernel/config.c: fix read calls to detect error, from Eric / Brad * kernel/console.asm, newstuff.c, prf.c, task.c: compile time option to send debug output to COM port ("serial debugging console") * kernel/dosfns.c: do not compares filenames to name field in block devices, extra win3 support, misc debug output changes, IsDevice should not compare filenames against block device driver headers * kernel/dsk.c: works towards better SS!=DS support, centralized debug macros, some comments * kernel/entry.asm: more win3 support, debug output changes, comments * kernel/execrh.asm: protect 386 registers, using hdr/stacks.inc macros (Watcom: FS, GS Others: high 16 bits of EAX EDX, for MSCL8 also ECX, for BC5 also EBX), for ALL device driver calls. Without this, some versions of free-EMM386 crash 386 optimized kernels. See list archives 24 Jul 2005 and later. * kernel/fatfs.c: don't leave fd open when failing DIR bit check bug 1874 fix, do not consider setting DIR bit an error for int 21/4301=set attribute, if really is a directory Added some disabled debug messages, improved win3 support. * kernel/init-mod.h: allow printf to work correctly when SS!=DS * kernel/initdisk.h: insure bpb_huge is initialized (zeroed) [merge from dev kernel], fake floppy ddt so hd access works correctly on floppyless systems, based on suggested fix from Eric * kernel/int2f.asm kernel.asm main.c: initial BIOS disk int 13h wrapper, only passively detects and notes floppy disk change, more win3 support * kernel/inthndlr.c: potential fix for spurious near fnodes!=0 msg with shsufdrv and >2 near fnodes in use for bug 1879, use halt() wrapper, more win3 support, some debug output changes. * kernel/intwrap.asm: assembly glue to wrap misc interrupts with C handler, cleaner push immediate from Arkady and note big bug to be fixed, later moved to UNSTABLE branch (also affects makefile) * kernel/proto.h: fix prototype, add FAR allow printf to work correctly when SS!=DS * mkfiles/generic.mak: undo a local only change, build list option is proper way to do this. more win3 support, upx build option. * mkfiles/watcom.mak: allow printf to work correctly when SS!=DS * share/MAKEFILE, share/share.c, share/share.hlp: FreeDOS SHARE (initial revision, later moved to UNSTABLE branch) * sys/fdkrncfg.c: sync printf prototypes (uncorrupt executables) * sys/sys.c: sync printf prototypes (uncorrupt executables) better check for valid backup boot sector # and add option to skip setting it. set backup boot sector on FAT32, add update option, fix oemboot to work with msdos 7++ Changes Eric * kernel/globals.h changed the os_release version message to be "build 2036 cvs [version Sep 09 2005 compiled May 20 2006]" as opposed to the old "version 1.1.35 (Build 2035b-cvs) [Jul 23 2005 12:34:56]" -> removed the "1.1.35" and compile TIME, added SOURCE DATE * hdr/version.h removed some no longer used version defines Changed build to "2036 cvs" (revision 36) WARNING: Version should be "2037 test" (revision 37) for UNSTABLE! * docs/history.txt: summarized log -d '>Feb 25 2005' kernel for this WARNING: some of the described changes might be available only in the UNSTABLE cvs branch (like SYS OEMBOOT, Win3, COM port output for debug print, the SHARE tool, ...) * kernel/execrh.asm: removed the "protect 386 registers" patch again, a fixed version of free-EMM386 is available. This reduces device driver call overhead in terms of CPU and stack usage. Older EMM386 versions destroyed eax ebx ecx edi esi ebp fs gs, now go_driver_entry in emm386.asm saves those registers. Only the INIT was broken, but the execrh.asm patch protected ALL functions. * share/share.c: changes to reduce TSR memory footprint * kernel/inthndlr.c: added stub for function 0x6301/0x6302 Korean Hangul keyboard input methods (0x63xx is DBCS support related) * docs/intfns.txt: updated list of supported DOS functions. When DOSLFN is loaded for int 21.71, only remaining unsupported int 21 functions are 21.4b05 (set execution state), int 21.63xx (DBCS / Korean Hangul, see above) and int 21.5d01 - 21.5d05 (close files by name/computer/task, list open files, commit all) * made linebreaks in all batch files use CR LF, as Unix line breaks confuse command.com, leading to "early abort" or "endless loop"+ Changes Lucho * kernel/chario.c: Fix Ctrl-Z bug and retro-optimise a bit * kernel/config.c, sys/sys.c: Fix BC 3.1 CONFIG.C compile and SYS Abnormal Program Termination error for BC * sys/sys.c: fix update option (compared too many characters)+ Changes Eduardo * kernel/config.c: fix Spanish (34, not duplicate of 33) * kernel/inthndlr.c: add int 2f subfunc 122B and 122D+ Changes Jason * kernel/fatfs.c: extended DPBs and Set Extended Error function * kernel/inthndlr.c, kernel/proto.h: same+ Changes Arkady * kernel/inthndlr.c: use direct access instead of reading from copy made on stack * kernel/intwrap.asm, kernel/kernel.asm: cleaner push immediate from Arkady and note big bug to be fixed+ Changes Michael * share/share.c: bugfixes+ Changes Japheth * share/share.c: HXDOS related improvements+ Changes Bart * kernel/main.c: patch to make device=f:\foo.sys work. String printf optimisation2005 Feb 25 - Build 2035a-------- Jeremy Davis (jeremyd@computer.org)+ Changes Bart * int2f.asm: call_nls: DI register was not preserved (bug 1812)+ Changes Arkady * floppy.asm: fix epilog for FL_SETMEDIATYPE & FL_SETDISKTYPE to use 'ret' instead of 'ret 8'; improve comments * entry.asm: use unsigned comparision instead of signed+ Changes Lucho * dsk.c: text in play_dj * fatfs.c: - zero creation/access stamp on directory entry write as MS-DOS 7.10 - prevent removal or renaming of the current directory of that drive * ioctl.c: - r_si/r_di contents added as documented in PC-DOS Technical Update * inthndlr.c - fix: for INT21/5F07 and 5F08, before changing bit CDSPHYSDRV, MS-DOS checks if physical device associated with drive letter. Without this check MS-FORMAT under FreeDOS was destroys RAMDISK. - zero serial number of Int 21h/30h (else buggy 32RTM thrashed stack) [& Bart] - set AX = ES after Int 21h/4Ah (undocumented but expected by BRUN45) (the last 2 changes needed to fix bugs discovered by Michael Devore) - added Int 2Fh/2Fh processing to set DOS version as per MS-DOS 4.0+ Changes Eduardo * inthndlr.c: added Int 2Fh/26-29h processing for NLSFUNC (with Lucho)2004 May 30 - Build 2035-------- Bart Oldeman (bart@dosemu.org)+ Changes Lucho + Tom * config.c, fatfs.c, globals.h, init-mod.h: From Tom: must set r_bpfat for C_BLDBPB, otherwise USBASPI.SYS, DI1000DD.SYS won't like us. From Lucho: use DiskTransferBuffer for deblock_buf.+ Changes Lucho * docs/fdkernel.lsm, stacks.inc, version.h, entry.asm, inthndlr.c, io.asm, nlssupt.asm: no need to preserve high part of ecx for Borland, ebx for MSVC * device.h, dsk.c, init-mod.h, ioctl.c: MSC fixes and small cleanup * ioctl.c: Cache attr and control flow optimizations (~120 bytes) * device.h, dsk.c, ioctl.c: deal with the correct structure for generic and query ioctls. Fixes issues with 3rd party device drivers (or ones that use dsk.c) * dosfns.c, inthndlr.c, proto.h: Merge dosmkdir and dosrmdir * config.c: strcasecmp and set_strategy common code optimizations. * main.c: Add necessary cast for BC * portab.h: Avoid problem with BC declaring __emit__, en/disable twice. * dsk.c: DJ mechanism without memcpy. * newstuff.c: replace loops by fmemset/fmemcpy (43 bytes) * dosfns.c, fatdir.c, fcbfns.c, ioctl.c: Some small cleanups. * config.c: GetNumArg and misc other cleanups * time.h, fatfs.c: converted TM_ENCODE into a function. * inthndlr.c, proto.h, fatfs.c: Inlined dos_setdta. Various bug fixes and cleanups from Lucho and Arkady. * inithma.c: moved fmemcmp's into a checkHMA function. * inithma.c: HMAFree == 0xfff0 - bytesToAllocate is valid and may happen if the buffers occupy exactly all HMA space up to and including the last byte at ffff:ffff. Failing caused all buffers to go low ... * inthndlr.c: cleanups (merge common code into long_check and short_check). Made int21/3301,2e,54 consistent with MSDOS behaviour. * globals.h, task.c, main.c: Convert setvec into a function for the resident code+ Changes Arkady * initdisk.c: initdisk optimizations (65 bytes) and is_suspect fix. * config.c, init-mod.h, intr.asm: optimized allocmem() * fattab.c, kernel.asm: optimizations * main.c: Make signon one big printf function call. * ioctl.c: bugfix for INT21/440b (change NetRetry if DX is _non_zero). * inthndlr.c: cntry == 0 doesn't make sense for Set Country Information. Fix int21/5e02+ * sys/talloc.c: Turbo C really wants unsigned __brklvl. Only shows up if you enable stack checking.+ Changes Bart * memmgr.c, proto.h, inthndlr.c: DosUmbLink no longer tries to merge free blocks. Also cleaned up a bit. * inthndlr.c: Fix int21/3302 (the swap was wrong, Lucho & Bart) * config.c: Pointer-ise specificCountriesSupported accesses. * config.c: Reorganized GetBiosKey a bit -- inlining GetBiosTime saves a slight amount of code, converted timeout < 0 to a blocking read instead of polling. * config.c: Use strcaseequal instead of strcasecmp since we never care about order anyway. * chario.c: Fix problem with redirected input and int21/ah=0a (debug < foo.txt) -- could get you an invalid opcode! * console.asm, main.c, prf.c: Use int29 for kernel console output. Enables ansi escape sequences in config.sys once you load nansi.sys. It also saves a couple of bytes. * newstuff.c, proto.h: made dosmktmp to return a long: consistent with DosOpen et al and avoids the cast. * mkfiles/tc2.mak: Let TC2 warn for the utilities. * config.c: Disabled EBDA moves by default. Automatic EBDA moves now happen using switches=/e:-1 * config.c: Pointer-ize MenuStruct[MenuSelected]... (from Lucho). and InstallCommands[i]. (from Bart). Some other small optimizations. * memmgr.c: Some small optimizations (46 bytes) and dead code removal from Lucho and Bart * init-mod.h: Need to define strchr to init_strchr otherwise the wrong one may be called. * initdisk.c: Do a bit of printf merging. * filelist, drivers/makefile, init-mod.h, inthndlr.c, task.c, globals.h, main.c: Convert getvec into a C function. * int2f.asm: Clean up int2f assembly a bit (merge some common bits, clarify label names) * fatfs.c, fattab.c: fattab.c now remembers if the old FAT entry was free or not, so the free space adjustment could be moved back to fattab.c. * init-mod.h: Replaced setvec macro by a function. * entry.asm, inthndlr.c: Made int21/ah=25,35 reentrant. Solves problem with Intel PRO/1000 driver. * portab.h, globals.h, main.c: Initialise all int vectors except the ones at 70:xxxx using a table. Convert setvec into a function that disables/enables ints (init code only for now, resident code will follow later); cli/sti (disable/enable) are now macros (inlined). * fnode.h, fatdir.c, fatfs.c: dir_read() no longer updates the diroff counter. This eliminates the NEW field, simplifies remove_lfn_entries(), and avoids a bug if you delete the first entry in the root directory on FAT32. * fattab.c: Stop abusing "idx". The OW optimizer likes this better,too. * fattab.c: Clean up FAT12 handling -- there's a portable approach that's small too. * fattab.c: Inlined much of getFATblock() into link_fat.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -