2004/03/07 ver 1.3.0 released From Clarence - etc/dosemu.conf, etc/global.conf, src/base/init/config.c, src/base/init/lexer.l.in, src/base/init/parser.y.in, src/env/video/X.c, src/include/emu.h: Add $_X_title_show_appname. From Stas - emu.c: Shut up annoying error. - src/base/dev/pic/pic.c: Limit the amount of error messages. - src/dosext/dpmi/: dpmi.c, dpmi.h, memory.h, msdos.c: * Added retf, iret and jmpf instructions handling in msdos.c. * Use a more consistent register translation technique. * First (yet mostly unsuccessfull) attempt on uncommitted memory support: - Virtual Support extension added - DPMI functions 0x506 and 0x507 added - All the necessary functions for memory requesting/mapping added - Functions for changing memory attributes added. Uncommited memory is being allocated with an anonymous mmap(), and therefore can not be aliased (not from SHM pool). "Uncommittness" is done via the PROT_NONE protection, which guarantees a page fault on access. But only a few programs are working properly with this implementation right now. It definitely requires more work. - emm.h, emu.h, dosemu.conf, global.conf, config.c, lexer.l.in, parser.y.in, emm.h, emm.c, xms.c, dpmi.c, dpmi.h, memory.h, msdos.c, msdos.h: * First step to Blinker extender support * The PM API translator now uses the EMS page frame to save 64K of conventional memory. * $_pm_dos_api option introduced which allows to disable the API translator to preserve the possibility of disabling EMS and getting extra UMB space without disabling also DPMI). * First step at solving bug #902742 (most is_dos_selector() checks removed, but not all). An exec'd DPMI program is now "forked" as a separate DPMI client. Memory structures were changed to allow sharing allocations between parent and child clients. - src/dosext/mfs/mfs.c: Dont use RPT_SYSCALL on readdir(3) - src/: include/serial.h, arch/linux/async/signal.c, base/dev/pic/pic.c, base/serial/ser_irq.c, base/serial/ser_ports.c, dosext/dpmi/dpmi.c, emu-i386/do_vm86.c, emu-i386/simx86/trees.c: Next round of serial low-latency work. * Remove serial_run() from everywhere, add it to the SIGALRM handler. With the async notifications, that should be enough. * Remove serial throttling hack: it doesn't play well with the async IO. * Make sure the ASYNC_LOW_LATENCY flag is set. - src/: arch/linux/mapping/mapping.c, include/mapping.h: Protect memory pages RW before releaseing to pool. This is to avoid page-faults on a newly allocated memory. - src/plugin/kbd_unicode/: keystate.h, serv_xlat.c: Arrange scancode translation rules as an array rather than as a linked list. From Bart - Remove mapself support - Remove old keyboard code - Remove coopthreads and comcom - src/env/video/X.c: Added dirty_all_vga_colors(); + related calls to resize_text_mapper(). This fixes the black screen problems with bitmap fonts. - Makefile.conf.in, mouse.c, mouseint.c, X.c, X.h, mouse.h, env_term.h, keyb_slang.c, mouse_gpm.c, mouse_xterm.c: Mouse cleanup: use a mouse client structure similar to the one used for the keyboard. 2004/03/06 merged with ver 1.2.1 release From Pete Cervasio - allow int 1A function 3 to set the emulated CMOS time of the day clock. From Clarence - Now, you can run your favourite DOS apps like this: xdosemu "/home/clarence/games/commander keen/keen1.exe" And it will automatically: 1. mount / if the specified program is not available from an already-redirected drive 2. "cd" to the correct directory 3. and execute the program automagically, all without _any_ typing in DOS (if "unix -e" or "unix -c" is put at the end of your autoexec.bat) "ported" over some more builtins i.e. I just cut and paste them (except for com_dossetcurrentdir()). cosmetic change to GetRedirectionRoot() in mfs.c - DAC fixes for vgaemu: * accesses to port 0x3C9 should not change the DAC state (as reported by a read to 0x3C7) * DOSEMU's 0x3C7 reads returned inverted bits! * If you write to 0x3C9 after writing to 0x3C7, the colour that actually gets set == + 1 (fixes Starcon2) From Stas - NULL pointer fixes: * Don't call keyb_server_reset() before keyboard client is initialized, as this causes a NULL ptr deref in keyb_client_set_leds() with the potential of calling realmode code * Avoid NULL ptr deref when SDA is not yet initialized (at DOS boot-up). - Certain mouse types (namely, MOUSE_GPM) must never be closed/re-opened. This makes the gpm mouse to survive the console switch, and quite accidentally also solves the obscure lock-ups of Volkov Commander after a console switch. - Fix sound for the game Screamer - Improved bpint dosdebug command. Works under DPMI now. - Clear AC in quite a few places to avoid recursion into an exception 0x11 handler. - Disallow exception 0x11. The reason is that AM bit of CR0 is supposed to be clear under DOS, but it is not under Linux. - Reduce memory consumption for builtins from 75K to 3K. From Bart - Allow fullscreen toggling using xmode. - Make "unix -e" a hybrid of the old "unix -e" and "unix -c": if the Linux path cannot be canonicalized it will be interpreted as a DOS command. This way "dosemu -E dir" continues to work. Introduced "unix -r" to get the old behaviour of -e for the purists. - Count number of times middle button is pressed even for 2 button mice (will be zero). Fixes bug #891650 - dpmi.c: dpmi.c, do_int31, case 0x0401: added a missing "break" causing this function to return rubbish as vendor name (suggested by japheth at users.sourceforge.net) - Block SIGALRM instead of turning of the itimer for the MFS. Also check if one is pending before calling handle_signals(). Without this change situations that spend lots of time in the MFS effectively could have SIGALRM disabled (showed up on SMP machines in a dir loop). - int.c: Execute dos_post_boot() (mouse_post_boot()) not only from int28 but also from int21/ah=4b. Fixes problem with wd from unix -e & mouse. - Repair the automatic exit for "unix -e" without -E argument. - Makefiles: Remove all SUBDIR=... defs. They are not necessary anymore and may produce the wrong .a file if you invoke make in the subdir. 2004/02/10 merged with ver 1.2.0.1 unofficial pre-release From Stas - Add support for MIDI input. - Fixed a couple of bugs in MPU401 code. - Alert if handle_signals() is re-entered (happens if, for example, RPT_SYSCALL is enabled in emu.h). - Remove glibc calls from SIGALRM and SIGIO handlers. - Remove (now unnecessary, since we know the reasons) deadlock "protection". - dosdebug: * Parse multiple commands properly * Stop trace loop in mhp_intercept() - Detection for the %esp CPU bug (see EMUFailure.txt). Recovery part is disabled for now. - Final (hopefully) pass on DPMI 1.0 compliant multiple client support. Now it works for something more than just building FreeDOS with bcc and nasm32. * System descriptor aliases are now per client and are either inherited or or recreated, depending on whether the IDT is inherited or not. * extender-specific structures are now per-client too. - DPMI: Avoid execution on .data From Bart - Add support for the GPM mouse on the console (with a little help from mc) and avoid conflicts with a serial mouse by moving internal mouse init before serial init. - mkbindist now creates the pcf fonts on the fly -- that will avoid problems with fonts in the binary tarball. - Add support for $_X_fullscreen and corresponding switch -w. - Add support for $_mouse_internal and corresponding switch -m to be able to switch off the DOSEMU internal mouse driver. - Move the "BUG: dosemu touched protected video mem" recover logic earlier in sigsegv.c and vgaemu.c (with Stas) - Mark critical global variables used in signal handlers as volatile to avoid gcc over-optimizations (hint from Stas) - Fix bug #866618 rows ower 80 char: a DOS text-mode program programmed the VGA controller to (logically) have more than 80 columns per line but vgaemu didn't pick it up. - Fixed page_size calculation: solved display problems with Duke Nukem 1 2004/01/18 merged with ver 1.2.0 release From Stas - updates to TUN/TAP README about bridging From Bart - mknewyear and adapt various other dates - miscellenous doc adjustments (README.txt, Novell-HOWTO with help from Stas and Peter Eckhard), announce with some help from Claudia Neumann, INSTALL, HOWTO) - Added $_xterm_title to dosemu.conf to configure or disable the xterm (or putty or ...) window title with running DOS program. - Friendlier message if no DOS is found. - Fix shift-3 (paragraph sign) on the German keyboard and add "last resort" keyboard translation from Unicode to < 0x20 values. 2004/01/14 merged with ver 1.2.0rc2 stable pre-release (aka 1.1.99.2) From Stas: - src/base/serial/: ser_defs.h, ser_init.c, ser_irq.c, ser_ports.c: * Switched serial to async IO * Use tcdrain() for non-FIFO data sends to minimize latencies * Some other small changes to reduce latencies. This allows to use dosemu's serial port emulation for time-sensitive tasks. - src/: dosext/sound/sound.c, include/sound.h: * Make SB to really produce the interrupts for MPU-401, not only to pretend to * Added some support for undocumented MPU-401 commands 0xAC and 0xAD (stolen from VDMSound) - src/arch/linux/dosext/sound/midid/timid.c: Really pass the sysexes to timidity, not only pretend to. - src/arch/linux/dosext/sound/linux_sound.c: Fix the OSS initialisation for SB direct DAC writes. Dont overflow the log with the "buffer overflow" messages. - src/: base/mouse/mouse.c, include/mouse.h, emu.c, Switch the mouse driver over to async IO, fixes bug #852077 - doc/EMUfailure.txt, src/doc/HOWTO/EMUfailure.sgml: updated to tell more about fundamental CPU problems - src/: arch/linux/async/signal.c, base/dev/pic/pic.c, env/video/miscemu.c: solve problem with miscemu.c wrongly setting pic_sys_time + some debug print improvements. - src/base/speaker/speaker.c: Allow disabling speaker - configure, configure.ac: Use have_x instead of no_x From Bart: - etc/dosemu.users.example: Comment everything out. - Makefile, README.bindist, dosemu.spec.in, dist/mkbindist, etc/global.conf, src/arch/linux/Makefile.main: * use a safer rm -rf ../tmp (fixes #851514 ; make install executes in src) * copy global.conf and dosemu.users to sysconfdir without example extensions * remove config.status call from the Makefile. It messes "prefix" up. * obsolete /etc/dosemu.conf (etc) unless sysconfdir=/etc; make install and the rpm install moves them now * use %config(noreplace) and add missing commands symlink to the rpm. - etc/: dosemu.conf, global.conf: Allow a completely free-from printer command (but for LPT1 only for now) - etc/global.conf: Fix problems with -F for global.conf - src/arch/linux/mapping/mapshm.c: Added mremap(.,0,..) check for the 2.6.1 kernel: we can only use mapfile and not mapshm - src/: arch/linux/async/signal.c, arch/linux/async/sigsegv.c, include/cpu.h: Restore fs and gs in all signal handlers. Fixes NPTL problems. - src/arch/linux/async/sigsegv.c: Don't always quit if DOSEMU itself touches protected video memory. Adjusting protection (as opposed to emulating) should be harmless -- perhaps a better way to solve this is to adjust all the memmoves, but on the other hand letting the CPU do the dirty work isn't all that bad of a concept. Fixes bug #817088 - src/env/video/vgaemu.c: Allow vgaemu_set_text_mode for graphics modes too. "orbits" needs this. - src/doc/tools/doSgmlTools.pl: Improve openjade detection - default-configure: Also use disable-aspi from default-configure. - configure, configure.ac, dosemu.spec.in, dist/dosemu, doc/dosemu-HOWTO.txt, src/arch/linux/Makefile.main, src/base/init/config.c, src/doc/HOWTO/dosemu-HOWTO.sgml: * Rename enable-aspi to disable-aspi (Clarence suggestion) * Added --with-slangdir=src/plugin/slang possibility to force use of the slang plugin without funny workarounds. * Clean up the rpm spec file in line with the above. * Set SUDO_UID/GID in the dosemu script to 0 to allow "sudo dosemu" with full root (unlike dosemu -s) * Fix secure_option_preparse for sudo runs (it was not secure). - README.bindist, dist/dosemu, etc/global.conf, man/dosemu.bin.1.in, src/base/init/config.c, src/base/init/parser.y.in: Add -n option to be able to completely bypass dosemu.conf and dosemu.users (unless suid). The $HOME tarball installation now uses this option by default. - dist/dosemu: Added some desperate attempts to really convince X to find the font. - src/: base/mouse/mouse.c, env/video/X.c, include/mouse.h: Fix mouse init problem. - README.bindist, etc/dosemu.conf, etc/global.conf: Add $_printer_command to be able to solve the CUPS problem without global.conf. - src/plugin/commands/builtins.c: Use a more helpful message (of course this is not always applicable but right now the most likely cause). - doc/NOVELL-HOWTO.txt: Correction about PDIPX/IPXPD. - doc/announce: Add a "what's new" section to the announce file. - src/plugin/term/keyb_slang.c: Update the special keys display at strategic places (where it was forgotten before); disable ESC-ESC (conflicts with alt-f1). - dist/dosemu, src/arch/linux/Makefile.main: Use sed+ls instead of readlink for non-system-wide; use dosemu.bin in the bindir instead of the first one in $PATH for system wide. - src/doc/README/config: Added note that mapself doesn't work on Linux kernel 2.2.24 and higher. - src/: dosext/dpmi/dpmi.h, emu-i386/cpu.c, include/cpu.h: Fix DPMI problems with 2.6.0test6 by no longer hard coding UCODESEL and UDATASEL -- they changed from 0x23/0x2b to 0x73/0x7b. - etc/global.conf: Change to stop DOSEMU complaining if the libdir doesn't exist. 2003/09/28 merged with ver 1.2.0rc1 stable pre-release (aka 1.1.99.1) From Stas: - src/: base/async/int.c, base/misc/disks.c, dosext/dpmi/dpmi.c, dosext/mfs/lfn.c, dosext/mfs/mangle.c, dosext/mfs/mfs.c, dosext/mfs/mfs.h, emu-i386/do_vm86.c, env/video/X.h, include/dos2linux.h, include/int.h: xtitle support (Bart: extended support to xterms) - dist/dosemu, src/arch/linux/async/sigsegv.c, signal.c, src/dosext/dpmi/dpmi.c, dpmi.h: Upon signal handler entry: Restore the eflags instead of explicitly clearing AC and ID. Also restore the %fs and %gs registers for compatibility with NPTL. Remove old LD_ASSUME_KERNEL workaround (Bart) - src/: dosext/dpmi/dpmi.c, include/pic.h: * Fixed some log output, adjusted some types. - src/dosext/dpmi/: dpmi.c, dpmi.h, msdos.c, memory.c: * Per-client IDT, as required by DPMI 1.0 spec. IDT is inherited from previous client if possible, to retain the compatibility with DPMI 0.9. Also added pm_block_root and realModeCallBack to the per-client structure. * Started consolidation of the per-client data into a single structure for the true multi-client support and better compatibility with DPMI 1.0. This patch consolidates DPMIclient_is_32 and dpmi_stack_frame, adding other units is in to-do. This patch allows building a FreeDOS kernel under a 16-bit BC-3.1 environment, while using a 32-bit nasm. * Check ss:sp=0 as per specs, sp=0 is not enough. * Recovery code for Windows which puts 0 into %ss on the exception stack frame. Escaping via a locked stack seems to help. * Improve DPMI debugging: - Properly debug the emulated instructions - force_early hack is no longer necessary - More debugging messages * Limits >1MB are page-granular. * ConvertSegmentToDescriptor() must look up segments also with the limit==0xff as this is the limit of PSP segments created at DPMI initialization. * Optimisation: READ_DS_COPIED can be #define instead of variable - src/base/serial/ser_init.c: Make sure the serial device is a tty. - src/base/: init/init.c, mouse/mouse.c: Init the mouse IRQ after the mouse client initialisation. Remove duplicate/unused includes. - src/: emu.c, base/init/init.c: Call hardware_setup() before device_init(). This fixes a numlock problem reported by Reinhard. - src/: arch/linux/async/sigsegv.c, include/emu.h, emu.c: Dont intercept leavedos() if it was called from within a signal context. TODO: Calling leavedos() from within a signal context should be deprecated and replaced with some more elegant solution that can work with dosdebug. - src/arch/linux/debugger/Makefile, dosdebug.c: Dont use -O2 for dosdebug, CFLAGS should be enough. Exit dosdebug if dosemu unexpectedly terminated. From Bart: - src/: emu-i386/cputime.c, base/async/int.c, base/bios/int10.c, base/misc/userhook.c, base/misc/utilities.c, base/mouse/mouse.c, env/video/X.c, env/video/X.h, include/video.h, plugin/commands/comcom.c, plugin/term/env_term.h, plugin/term/keyb_slang.c, plugin/term/terminal.c: Localized title support using a new Video function pointer. - configure, configure.ac: Fix PATCHLEVEL typo in configure.ac; remove help for enable-mitshm (disable-mitshm is enough) - src/arch/linux/debugger/mhpdbg.c: (with Stas) Fix -H1 (stop until dosdebug has connected) - src/base/async/int.c: Let int 11 and int 12 read their values from 40:xxx like real BIOSes do. - README.*, INSTALL, doc/, src/doc/: Documentation updates, regenerated DANG, add note about bison and yacc; remove note about static linking (no proofs seen). - src/doc/HOWTO/dosemu-HOWTO.sgml: Update the HOWTO -- in line with present DOSEMU, and delete obsolete sections, and merge formatting changes from Peter Jay Salzman - src/: arch/linux/async/signal.c, plugin/term/keyb_slang.c: Based on a patch from Märt Laak (martlaak@users.sourceforge.net) Turn off shiftstates for terminals later. Bart: do this from the sigalrm handler instead of for the next key. Also add some more escape sequences for xterm and putty. Add shift-tab to the xterm keys. - src/: include/mouse.h, base/mouse/mouse.c, base/mouse/mouseint.c, plugin/kbd_unicode/include/keyboard.h, plugin/term/keyb_slang.c: Originally by Mart Laak: xterm mouse support. Works in putty too. Changed by Bart to run automatically if TERM=xterm* and use the 1002/1003 modes so that not just button clicks but also drags can be detected. - src/: base/mouse/mouse.c, plugin/term/mouse_xterm.c: Delay xterm mouse init until the first int33 call, so that normal copy/paste works without shift until the first DOS app wants to use a mouse. Could be much cleaner -- leaving that for 1.3 - src/plugin/kbd_unicode/serv_xlat.c: Be more conservative in using approximations for the unicode keyboard. - src/plugin/kbd_unicode/keymaps.c: Use Unicode for the Turkish keyboard! - src/plugin/term/keyb_slang.c: Remove unnecessary (and wrong on some keyboards) translations of * and + - src/arch/linux/Makefile.main: We no longer need to create /var/lib/dosemu; also adjust a few symbolic links. - etc/global.conf: Wrap each "foreach" in if/endif blocks; otherwise the lexer may have problems and may not recognize $_vbootfloppy. I wasn't able to fix the lexer. - dist/dosemu: Remove automatic "enter" since FreeDOS supports switches=/f now - Makefile, configure, configure.ac, dosemu.spec.in, man/Makefile, man/dosemu.1, man/dosemu.1.in, man/dosemu.bin.1, man/dosemu.bin.1.in, man/ru/dosemu.1, man/ru/dosemu.1.in, man/ru/dosemu.bin.1, man/ru/dosemu.bin.1.in: Automatically put the right paths into the man pages. Add dosemu.spec.in for creating an rpm. - etc/dosemu.conf, etc/global.conf, src/base/init/Makefile: New clear layout of dosemu.conf. Document the fact that /etc/dosemu may be used as hdimage base. - src/base/misc/priv.c: Correct suid-root privilege problem wrt "mapself". - src/: env/video/X.c, plugin/kbd_unicode/keyb_clients.c: Fix copy/paste problems (delay from DOSEMU->xterm and LF->CR translation for smth->DOSEMU) 2003/08/22 ver 1.1.5.7 unofficial pre-release From Nerijus Baliunas (nerijus@users.sf.net): * doc/README-tech.txt, doc/README.txt, etc/dosemu.conf, src/doc/README/config, src/doc/README/config-tech, src/plugin/extra_charsets/cp773.c: This patch adds cp773 (called KBL in Lithuania) support. Although it is not an official standard, but is used more than any other DOS cp in Lithuania. From Clarence: * emu.c: don't print "funny" characters on the screen when speaker == NATIVE and video_config_init() aborts (due to e.g. an attempt to run with -X without $DISPLAY). leavedos() tries to turn off the speaker before the port server has been initialised (as extra_port_init() is not called before device_init()). * ports.c: check that the portserver is actually up before writing anything to the fd's. This should fix the "printing random garbage" bugs once and for all :) portserver_pid should be set to 0 in port_exit() so that if there are any accidental port accesses after port_exit(), error() will remind us to fix them. Also, the "if (port_fd_out[1])" check is not necessary anymore since portserver_pid is already tested for. * src/base/bios/int10.c: (and Bart) (1) int10 should not affect the carry flag at all (2) if int10/ah=3 is given a page past the last page, CX should still be set to the cursor and DX should be set to 0. From Stas: * src/dosext/dpmi/: dpmi.c, dpmi.h: Dont skip the extended access type byte for 16bit clients. This patch allows Windows (WinOS2) to work... problem: timer driver (advapi.386) fails to initialize. Therefore no movie playing :( Might be a problem with a hardware emulation Some cleanups and optimisations. Export selector checking functions. Allow 4G limits when converting segment to descriptor. (another part of bug #756570) Use mhp_intercept() to debug CPU exceptions in DPMI. * src/dosext/dpmi/msdos.c: - msdos_fault: Dont try to fix the selector if the program abuses a perfectly valid descriptor - this is not fixable on dosemu side and the attempt to only screws up the things even more making it unfixable also for the program itself. - msdos_fault: Do all the fixing on a temporary context struct and apply the fix to the real context only when we are sure the fix is valid. - msdos_fault: Allow using any realmode segments as a selectors, not only the special ones (part of bug #756570) - Some cleanup * src/: arch/linux/debugger/mhpdbg.c, dosext/dpmi/dpmi.c, include/mhpdbg.h: Introduce mhp_intercept_log() function that allows to redirect the log messages to a dosdebug terminal. * src/base/serial/ser_init.c: If opening serial port fails, remove the lock and dont try to open it again. * src/arch/linux/debugger/: dosdebug.c, mhpdbg.c: - Resume execution if dosdebug detached while in a stopped state. - Fix dosdebug detaching to make it possible to attach dosdebug again. * src/arch/linux/debugger/mhpdbg.c: Return to dosemu context before starting a dosdebug polling cycle. * src/: env/video/X.c, plugin/kbd_unicode/keymaps.c: Fix some annoying error messages. * src/: arch/linux/debugger/mhpdbg.c, include/mhpdbg.h: Introduce mhp_intercept(). When called, the control is transferred to dosdebug if it was attached. Kill 2 instances of allocating 64K on stack - this is too much and causes a memory corruptions for me (probably a gcc problem) From Bart: * src/env/video/attremu.c: Solve problem with attribute emulator introduced in 1.1.5.4 * src/dosext/mfs/: lfn.c, mangle.c, mangle.h, mfs.c, mfs.h: - implement LFN wildcard delete (int21/ax=7141/si=1) - check for invalid characters in LFN truename (int21/ax=7160) - no longer trust stat for vfat; there are some problems with question marks and characters such as é (\'e) - use underscores instead of ? for unconvertible unicode. Translate all ?'s to _'s for unix->DOS filename translation. * src/dosext/mfs/: lfn.c, mfs.c, mfs.h; src/plugin/translate/include/translate.h: MFS cleanups, including: - fix exists() and wildcard delete. - avoid use of some global variables and pass the drive number around as a parameter instead. Make findfirst on a single file more efficient again and get it to honour devices again. * src/: dosext/mfs/lfn.c, dosext/mfs/mangle.c, dosext/mfs/mangle.h, dosext/mfs/mfs.c, dosext/mfs/mfs.h, dosext/mfs/util.c, plugin/translate/translate_config.c, plugin/translate/config/plugin_parser, plugin/translate/include/translate.h: Add support (using the translate plugin) to the MFS to translate between the external and internal charset for filenames. Set $_external_charset (for all purposes except the display) to the current locale charset by default. * src/plugin/translate/keysym_approximations.c: Complete commented out approximations; this is necessary for upcasing filenames where an equivalent capital letter does not exist in the codepage. * src/arch/linux/Makefile.main: Fix problem with keymap/[a-z]* + CVS directories * configure, configure.ac, src/arch/linux/Makefile.main: Create src/lib upon make and remove it with "make distclean". Uncomment detection of INSTALL and AWK. * Makefile, Makefile.conf.in: Remove any autom4te*.cache varieties upon distclean. Set BINPATH at the right time (after THISVERSION). * Makefile, Makefile.conf.in, configure, configure.ac, src/{Makefile.common,arch/linux/Makefile.main,commands/Makefile}: Use simply expanded variables in several makefiles and avoid $(shell) (speeds up make, esp. when most is already built) * compiletime-settings, compiletime-settings.devel, compiletime-settings.help, configure, configure.ac, default-configure, setup/compiletime_setup.menu, setup/compiletime_setup.sh, setup/compiletime_setup.tk: Configure cleanups (with Stas and Clarence) - use $enable_xxx environment variables - use --disable-x instead of --enable-nox - use --with-x for libraries - remove "dodebug" 2003/07/20 ver 1.1.5.6 unofficial pre-release From Bart * src/plugin/: kbd_unicode/keymaps.c, keyboard/keymaps.c: Hungarian keyboard adjustments (anonymous contribution, see bug 687850) * src/dosext/mfs/: lfn.c, mfs.c, mfs.h: Fix LFN's for VFAT. Make use of the VFAT_IOCTL_READDIR_BOTH ioctl to obtain the short aliases for long filenames (Wine provided a good example). Remove unnecessary scan_dir usage on VFAT (because stat is already case-insensitive) * src/dosext/mfs/mfs.c: Fix problem with dir searches that should *not* find a volume label (such as the attribute 0x3f) * src/dosext/mfs/lfn.c: Fix problem with LFN "truename" (int21/ax=0x7160/cl=1), case insensitive open's and mkdir. * src/base/bios/int10.c: Fix compilation without X development libraries. From Stas: * configure, configure.ac: small configure adjustments. * src/dosext/sound/sound.c: Use only the current DMA channel on SB16. This allows the QV to work. QV is an MPEG4/DivX player for DOS! * src/base/mouse/mouse.c: Enable mouse at startup in case the program doesn't do that manually. * src/base/async/int.c: hogthreshold adjustment for the mouse code. * src/plugin/kbd_unicode/: Makefile, getfd.c, getfd.h, keymaps.c: Update the getfd() console detection code with the one from kbd 1.08 2003/07/15 ver 1.1.5.5 unofficial pre-release From Bart - Add support for the Long File Name (int21/ah=71) interface on redirected drives. For now it's off by default because it hasn't received much testing yet -- see $_lfn_support. From Stas - Fix DPMI to be able to revector interrupts that are called by DPMI clients (such as the above int21/ah=71). 2003/07/15 ver 1.1.5.4 unofficial pre-release From Eric Auer, Witold Filpczyk and Bart - use bitmap fonts by default, rather than X fonts. - Support 80x100 CGA "text graphics" with 8x2 font. - allow resizing of the text window. - VGA attribute emulator cleanups. - Make the 8x16 font in vgafonts.c equal to the one in vga.pcf. From Bart - miscemu.c: The retrace time is measured in microsecs, not ticks. 2003/07/15 ver 1.1.5.3 unofficial pre-release From Clarence - minor config tweaks $_X_backgroundfreeze -> $_X_background_pause, - set $_joy_latency to (1) by default. From Stas - add config options for OSS sound - disable auto-init DMA when speaker disabled From Stas and Bart - implement a lightweight coopthreads replacement and port all the builtins to it. From Bart - Small MFS optimization. - Some small documentation updates. - Kill the (bit-rotten) scroll queue. - Fix non-active setbuf(stdout, NULL) and $_console=(1) without graphics. - Use putchar instead of write since the buffered stdio problems were solved. - Avoid some dependencies on bash (export foo=bar, echo -e in configure) - Kill $_timint, and config.graphics. They were no longer really used anywhere. - Fix a problem with "-V" not implying "-c". - Fix "make install" if pesky CVS directories are present. - cheap workaround for NPTL: use export LD_ASSUME_KERNEL=2.2.5 in the dosemu script. - Support the VGA line compare register: this fixes one of the two reported problems for Jazz Jackrabbit - Fix colour problem in chain4 modes (second jazz jackrabbit issue) - Fix bug 753968: xdos handles mouse events without having a focus -- don't warp the mouse if the mouse left the window. - Small makefile fix to help partial builds. - Misc small configure and Makefile fixes. - Solve potential gcc problem with a wrong asm constraint: it needs to be "q" for registers with byte parts, not "r". This prevents gcc from using "%sil" as low part of %esi%. 2003/06/14 ver 1.1.5.2 unofficial pre-release From Bart - enable building in a separate object directory - enable small test sub-builds (e.g. "make" in src/env/video) - use relative paths if possible (so you can rename your build directory on the fly) - fix lexer.l.in to work with newer versions of flex. We can no longer fake flex by setting YY_NEVER_INTERACTIVE, but a workaround using "/dev/null" files was possible. - fix buglet in doscoopthreads com_dosrenamefile - remove obsolete file kversion.sh 2003/06/12 ver 1.1.5.1 unofficial pre-release From Ben Davis - Implemented SB16 support. - Fixed sevaral typos in the dcos :) From Stas - Leak-free DOS memory management for DPMI. Additionally the "Allocate DOS memory" routine was fixed to match the DPMI specs. - fix SB mixer rates - pic fix to get SC2000 running with SB16 - use exit()/config.exitearly=1 instead of leavedos() during init - don't leavedos (but let the BIOS set CF) if there is no disk - FCB fix for coopthreads From Manfred Scherer - use a per-PSP heap to watch for hlist overflow (and then delete the oldest list) in the MFS. From Bart - clean up MFS a little more; use arrays instead of linked lists for the hlists; this allows us to avoid duplicate hlists much more often than before, since the hlists can be walked though independently with random access. - fix a problem where the MFS chdir did not remove the trailing backslash - use sigaltstack(2) instead of sa_restorer if it is available - fix memory leaks in the parser and lexer (found by valgrind) - fix more typos 2003/06/07 ver 1.1.5 released From Bart: - documented TUN/TAP support and the port server. - adjusted man pages - set int 23 to iret at the right place in dpmi.c - unmap the first 1 MB of (DOS) memory in the port server. 2003/06/04 ver 1.1.4.16 unofficial pre-release From Stas: - midid update * Compatibility with the latest TiMidity++ (daily snapshot) * Moved forgotten bits from midid.h to device.h * Improved start/stop sequence * Re-including protection to all headers - fix the DPMI descriptor leaks in: 1. dpmi_init() - fix the environment translation for DPMI (bug #731906) - sleep in the dosdebug poll cycle - allow to configure the TAP device before starting DOSEMU - fix MFS bug for wildcard delete() (bug #732975) - MFS sigalrm cleanup - add hint to emumouse about the internal mouse driver config - adjust some defaults in dosemu.conf - vga.c: remove redundant ioperm - linux_sound.c: dont ioctl POST by default - ioctl.c: init the callback array - serial: Use TCADRAIN instead of TCSANOW where appropriate From Oleg Kuimov - wrong year in rtc emulation fix last two digits of the CMOS year that is emulated in rtc.c from tm->tm_year (which is possibly >= 100) to tm->tm_year%100 From Grigory Batalov - ignore a busy disk (don't abort DOSEMU) if it is a floppy. - corrected and added font descriptions in dosemu.alias From Ben Davis - Sound fixes in preparation for SB16 support. From Clarence - allow freezing of xdosemu in the background through dosemu.conf. From Andy Shevchenko - fix some problems with symbolic links and DESTDIR in Makefile.main From Bart - fix fullscreen X toggling when already in graphics mode - misc doc fixes (added INSTALL, README, stripped down QuickStart) (inspired by Ged Haywood's comments on linux-msdos) - removed some old cruft (keyboard.c.diff, DPR, gnats) - streamline "make" a little (removed the wait) - dosemu -install now asks for a boot directory location so it is easier to set up a different boot directory. - fix the dosnet init to be before the privilege drop - fix ugetcwd (it is a heap-eating builtin) - fix null pointer dereference in remap.c - replace the DJGPP hack by something a little less intrusive (an iret handler for int23 when dpmi is active) - int code cleanup: int routines now return 1 if they want to return, and 0 if they want to chain through to a real mode interrupt. The somewhat confusing default_interrupt() function is eliminated. - add --enable-debug as alias for --enable-dodebug as configure switch - fix gcc 3.3 builds (ELF detection was broken) and the new warnings it gives. 2003/03/15 ver 1.1.4.15 unofficial pre-release From Stas - fix race in do_irq(): see if the pic_ilevel is in sync with pic_isr and it appears that it is not. - cputime.c: correctly take idle periods into account for TSC. - Fix serial delayed-open. - Fix keyboard delay problem. - Don't read the mouse device in X. - (with Herbert Xu) enable use of a pseudo-tty as a serial device. - Rewrite bios part of the packet driver in C - Fix do_call_back() and get it to work for DPMI - VIP related: sigsegv.c: solve kryptegg lockups under X - Remove the ST3 hack since it doesn't help anymore. - Use async I/O: async I/O speeds up the I/O dramatically. Performance of the packet driver is doubled. This also removes the need for the plugin_ioselect hook since callbacks can be used instead now. - Fix SLang keyboard 8-bit handling (Russian capitals in xterm) From Grigory Batalov (with some help from Andy Shevchenko) - add Ukranian codepage support (cp1125.c, koi8-u.c, koi8-ru.c) - add codepage 1251 (cp1251.c) - adjustments to cp866.c and the Cyrillic BDF files. From Bart - (initially suggested by Stas) replace %Ld by the more standard %lld. - enable disabling of the X vidmode extension at compiletime - warn more prominently about a buggy system SLang library. 2003/03/15 ver 1.1.4.14 unofficial pre-release From Witold - fix configure.ac for people without X support (changed a little by Bart) From Stas - VIP fixes - sound code: make sure dsp is closed before detecting SB From Clarence - fix compilation problem if one disables CONFIG_X_SPEAKER - allow ctrl-alt-p to be used to freeze DOSEMU - always update real window's title instead of fullscreen one - reverse X title order - append "[Paused - ]" to the X title if DOSEMU is paused using a ctrl-alt-key combination From Bart - guard includes of env/video/X.h if X_SUPPORT isn't there - fix "make -jn" compilations - remove -Wpointer-arith from warnings -- some system headers don't like it. - configure.ac cleanups - fix compilation of the dosnet kernel module - dosemu script fixes: do not rely on the existence of ~/.dosemurc anymore. - (adjusted from Andy Shevchenko's patch) make install cleanups - (with Stas) more cpuemu stack protection and time system counter fixes to get cpuemu for vm86 working again. - fix long long cpu speed multiplication in config.c to fix a problem with > 2GHz CPUs. - fix /proc/meminfo parsing for 2.5 kernels: the "MemShared" part went away. - XMS "query free memory" needs to set _BL to 0 (success). 2003/02/10 ver 1.1.4.13 unofficial pre-release From Stas - fatfs: ignore 0 sized io.sys and ibmbio.com files. - add some ethernet frame debugging From Bart - fix mkpluginhooks to create config directories for plugins if they don't exist. - fix the ASCII-7 speaker bell beep 2003/02/09 ver 1.1.4.12 unofficial pre-release From Stas - $_pic_watchdog related PIC code adjustments. From Fran Sabolich - implement break handling in ser_ports.c (cleaned up by Stas) From Bart - Enable/disable all plugins via compiletime-settings. - By default, only use the supplied S-Lang library if the system supplied S-Lang library does not have the UTF-8 hack. - Simplify S-Lang configuration by using DOSEMU's config.h - Add 64-bit file locking support. - Add $_full_file_locks option to lock whole files instead of just one (for DOS invisible) byte. - Set $_pic_watchdog default to 50 (suggested by Stas). - Set $_hdimage default to "drives/*". - Use ~/.dosemu for the $_hdimage basedir, falling back to /var/lib/dosemu if necessary. - Use proper long X names for the VGA fonts. - Add ability to use a DOS command as a DOSEMU option (without -E). In that case "exitemu" happens automatically when the DOS command terminates. - (With help from Reinhard) only apply cleanup_child to the port server and not to any other children. - clean up dosdebug; use dynamic memory allocation, and remove the need for the ~/.dosemu/run/dosemu. files. - temp file cleanup: the "mapfile" mapping driver and printer now use tmpfile(3) to create the temporary file. That way the file is automatically deleted even if DOSEMU crashes, and noone else can open the file. Because of this, the printer code now uses a pipe to communicate with lpr. - DOSEMU is now quiet by default. It now doesn't say it's running in low feature mode, but instead tells you if it's running with root privileges. - (suggested by Stas) Use normal local variables instead of statics where possible for the serial code. - Fix bug "xms_EMB_info" in XMS code. - Set video_ints for vgaemu code, otherwise it will forget about the fonts later. - Applied some Debian tweaks from Herbert Xu * to have DOSEMU working out of the box even if the user doesn't have a private installation. * $_hdimage drives adjust according to the setting of DOSDRIVE_D. * change /etc/dosemu.conf to /etc/dosemu/dosemu.conf to match the default (we still support /etc/dosemu.conf however). - Script changes: * adjust to use ~/.dosemu/drives/* by default; ~/.dosemurc is no longer compulsary even for private installations. * do -home by default * only display "what DOSEMU does" once, be quiet afterwards. * apply the '\r' keystroke by default to boot DOS quicker. Just use -input without arguments if you want to use F5 or F8. * use -install without arguments to force a FreeDOS re-installation. 2003/02/04 ver 1.1.4.11 unofficial pre-release From Stas - prevent IRQ conflicts and fix double registrations of the keyboard IRQ in init.c and serv_8042.c. From Bart - (and Stas) fix comcom problem when environment segment == 0 - small Makefile cleanups; include only necessary dependency files - remove all traces of $_secure, $_odd_hosts and $_diskless_hosts since by default any remote hosts will get root privileges dropped and diskless host security can be managed via sudo. - re-add SLang library, but now updated to version 1.4.8, as a plugin, in stripped down source code form, to avoid problems with the utf-8 enabled default SLang library that various distributions ship. - adjustments to dosemu script: do not silently write to ~/.dosemurc, run with /bin/sh instead of /bin/bash and only write $_hdimage to ~/.dosemurc for system-wide installations. Also adjust "-install" to be able to take no parameters (which reinstalls FreeDOS). - quit DOSEMU (via the sigchld handler) if the port server is killed. - remove config.usesX setting and any usage of it. It was only set by the -Y and -Z options which seem to have been unused since 1995. - fix for current_iopl in priv.c (misbehaviour spotted by Reinhard Karcher) - don't open /dev/gpmdata-style mice in terminal mode. They don't work then. - Made the portserver synchronous for port writes -- DOSEMU waits for an acknowledgement. This already naturally happened for reads. - use the XFree86 video mode extension if available to switch resolutions for fullscreen X. - the X mouse cursor is now always invisible if mouse grab is active. - center text modes for fullscreen X. - (with help from Stas) don't pass the ctrl-alt-f keycode to DOS apps when fullscreen is toggled. Enable mouse grab automatically for fullscreen X in graphics mode if the X mouse cursor is invisible. Move fullscreen and mouse grab toggle code to seperate functions. 2003/02/01 ver 1.1.4.10 unofficial pre-release From Stas - pic_force_count->pic_watchdog correction - fix VIP/IF releated race in DPMI code. - allow DSP commands in high speed mode (fixed problem with Pinball Dreams 2) - fix for AltGr&new keyboard code if X_keycode = (1) From Stanislav Safronov - serial transmit fixes From Clarence - stop port server a little later. From Bart - moved all "extern" declarations to header files and added warnings for GCC to keep it that way. - (inspired by an old fix from jt@npdaxp.fuw.edu.pl): improve error codes for file region locking - more portable and reliable way for passing parameters in default-configure and dist/dosemu (thanks to Mozilla) - (reported by Esa Tikka) Glibc detection has to use -lt not -le. - reorganized plugins a little bit so that all header files are symlinked into src/plugin/include and the extern declarations go into plugin_config.h - (reported by Grigory Batalov) fix mkbindist and dosemu script for non-systemwide usage. - dosdebug now gets a map of DOSEMU symbols on the fly instead of relying on some dosemu.map file. Hence installing dosemu.map is no longer necessary. - added SIGCHLD signal handler to clean up the port server. - install most signal handlers after forking the port server and let it ignore VT acquire and release signals. - the mapself driver needs to open /proc/self/mem before dropping privileges. - (reported by Reinhard Karcher) only copy relevant things from 40:xxxx real memory area when $_vbios_post = (0). - reorganized port server so that it calls the normal port handlers, which in turn detect if iopl==3 so they can do in/out's directly. - (reported by Claudia Neumann, but not quite fixed for everyone though) fix Linux console terminal init if the external charset is "cp437". - added initial support for full-screen X. Use ctrl+alt+f to toggle (using the XF86 video mode extension will come later, so text may still be small and graphics somewhat slow). 2003/01/26 ver 1.1.4.9 unofficial pre-release From Bart - More makefile and autoconf fixes, cleanups and improvements: * use CPP and CPPFLAGS * check if dependency files are out of date * collect needed libraries in LIBS * use autoconf's X include/library findings instead of our own * fix problem with not defining ASPI_SUPPORT and WANT_WINDOWS (that broke some aspects of DPMI) * src/Makefile no longer includes Makefile.main, and Makefile.main no longer includes Makefile.common. That solved some problems with overlapping rules. * put "-D" variables in config.h to reduce the length of the gcc commands. Adjust some files so that they include "config.h". Compiletime paths are now stored in confpath.h. - add -Wstrict-prototypes to the CFLAGS and fixed all new warnings. Also removed some related "extern" prototypes in C source files. - clean up run_caller_func code so that it is as Eric intended it to be ;) Solve the problem with default_interrupt. - increase default DPMI memory limit to 20MB. - start the port server if the speaker is in native mode. From Clarence - some more preliminary comcom space corrections 2003/01/24 ver 1.1.4.8 unofficial pre-release From Bart - upgrade autoconf & friends + some top level makefile simplifications - remove leftover base-configure - fixed "tap" typo in global.conf - simplify dosemu.users parsing in parser.y.in and reintroduced "nosuidroot" (which now simply drops privileges) - mouse: open r/o if it's a FIFO (like /dev/gpmdata), a PS/2 mouse or a bus mouse. This solves a few permission problems. - replace bzero with memset - port server should always be started if config.pci = 1. - fix S3 graphics card driver high port problem reported by Reinhard Karcher - Fix coopthreads problem (inserted spaces too often) 2003/01/21 ver 1.1.4.7 unofficial pre-release From Andy Shevchenko and Grigory Batalov - Add Russian manual page translations. From Stas and Bart - rename "$_pic_force_count" to "$_pic_watchdog". From Bart - autoconf structure changes: * configure now calls default-configure, which calls configure (recursion is avoided using an environment variable). * use configure.ac instead of base-configure.in and acconfig.h * ./mkconfscript is obsolete: use "autoreconf" - security related changes: * dosemu.users is no longer mandatory for suid operation - by default a suid binary gives access to console graphics only and drops privileges immediately if it is not on the console. Restricting who is able to run DOSEMU with privileges is better done using sudo. * Mouse, serial, IPX and direct partition access are no longer enabled through suid-root privileges -- you have to change the permissions on the individual devices in /dev. * Remove all configuration classes which do not affect ports, hardware ram, direct IRQ's or raw network access. * added $_console_pci and $_console_ports settings to enable PCI and I/O port access only if DOSEMU is run on a Linux console. * move the initialization of the mapping drivers beyond the point where DOSEMU drops root privileges. * $_hdimage_r and $_secure are no longer relevant. * adjusted some of the documentation. - small coopthreads/comcom adjustment (cd. should work too). From Witold Filipczyk - Add $(DESTDIR) prefix to "make install" - Change "slang.h" to - add info about the Polish keyboard in dosemu.conf. 2003/01/19 ver 1.1.4.6 unofficial pre-release From Stas - enforces the PIC reentrancy protection and fix several related bugs. - add a mechanism to force a PIC reschedule, if the watchdog timer for pending interrupts is invoked n times. - fault handling fixes: check selectors before loading them into context. This hopefully removes the possibility of an unhandled segfault. - make POST for OSS drivers optional via a compile-time option From Clarence - Fix comcom problems: * a space is now inserted for cd\, dir/p etc so that they work. * check for things such as "..\ws". Comcom thought that this meant a file with extension \ws, rather then a file ws in the parent directory. From Bart - remove runasroot compile-time option. It is not relevant anymore now that DOSEMU drops root privileges. - add possibility to run DOSEMU through sudo while still dropping root privileges via the SUDO_UID and SUDO_GID environment variables. - remove restrictions on $_dpmi since DPMI is no longer inherently insecure. - adjust QuickStart and README.txt to the changed security situation. - added a "-s" option to the dosemu script to invoke dosemu.bin via sudo. - solve X mouse problem for certain window managers that invoke LeaveNotify and EnterNotify events whenever you click a mouse button and not only when the mouse leaves and enters the window. - introduce $_pic_force_count to allow runtime configuration of Stas' PIC hack. - reintroduce the ESP hack which was removed in 1.1.4.5. A "dir" in FreeDOS/comcom with a hogthreshold of 1 became much slower without this hack. 2003/01/17 ver 1.1.4.5 unofficial pre-release From Stas - remove $_toggle -- it is no longer needed. - fix for TUN/TAP vnet configuration. - implement POST less video init. - Don't sleep inside IRQ handlers or when there is some async stuff to handle. - Remove ESP and hogthreshold hack. From Bart - Drop root privileges just before booting and fork off a port server if necessary, that can handle the high port I/O using pipes. With this in effect, DPMI in suid-root DOSEMU should no longer be inherently insecure. - Fix for filename problems in the MFS if parts of the path were mangled (reported by Clarence). - Remove unused "$_videoportaccess", introduce "$_vbios_post". - Fix a few warnings. 2003/01/15 ver 1.1.4.4 unofficial pre-release From Stas - implement $_cli_timeout (an official hack that is necessary to get sound working in DOOM. - PrintScreen should print to LPT1 instead of LPT2. - (heavily modified by Bart) add missing instructions (REP MOVSD et al) to instremu.c and cleanup prefixes a little bit. From Bart - Remove precompiled S-Lang library -- please install slang-devel if you want to compile DOSEMU; new setting "slangdir" to specify the S-Lang directory. - Remove libc5 and gcc 2.7 support and associated headers that are no longer necessary. - ./mkpluginhooks can now be used to just update parser.y and lexer.l; this happens automatically for "make". - Some header/standards related cleanup: don't use , use instead of , use strerror() instead of str_errlist[], use (u)int*_t instead of __u*/__s*, avoid valloc(). - Move code from dosext/dpmi/msdos.h to dosext/dpmi/msdos.c. - Fix bug with nested findfirst()s in mfs.c - Fix paste bug for xdosemu (newlines were translated to '0's). - undo old temporary Insert key fix. - Fix lexer problem if dosemu.conf misses an EOL at EOF - parser: distinguish (on) from (1) by making (on) equivalent to (-2) - use -MMD instead of -MD: we should not explicitly depend on system header files. 2003/01/09 ver 1.1.4.3 unofficial pre-release From Bart - ./mknewyear 2003/01/09 ver 1.1.4.2 unofficial pre-release From Stas - A proper fix for the insert key. - Get the xkb switch working with X_keycode on. - Start deprecating dosnet. - Remove root check for IPX route setting. From Bart - Re-add $DOSEMU_VERSION setting to global.conf; autoexec.bat in dosemu-freedos-bin uses it. - Put coopthreads commands into commands/ together with the other ones at 'make' time. - Mouse: init mice->fd to -1 for X. Move mice into config.mouse. Use char *dev instead of dev[255] to avoid a potential buffer overflow. Try to move as much mouse handling as possible into mouse.c, instead of in files outside src/base/mouse. - Add if_tun.h because we don't want to depend on external kernel headers. 2003/01/08 ver 1.1.4.1 unofficial pre-release From Witold Filipczyk - Fix to get MFS to work more reliably with PTS-DOS (slightly adapted by Bart) - Hack to "add support" for Oacute in cp852 and Polish keyboard layout - small doc build fixes From Stas - fix for DOSEMU hanging the machine if used with -H0 on the graphics console; option to unfreeze DOSEMU from dosdebug. - IPX fixes: * RIP packets have type 1, not 4 (4 is SAP); * Setsockopt doesn't require root for setting the packet type when the proper Socket Level is used; * select() can alter its arguments, so they must be always re-inited; * Check if we really received a RIP packet and retry if we didn't, rather than fail. * remove enter_priv_on() where it is not necessary. - midid fixes: * Get rid of in_addr_t as it turned to be not present in some glibc * Shut up the misleading warnings * Stubs for all the System midi messages and the Real-Time midi messages; * "running status" must be reset by the System/Realtime messages; * Remove the hack that was used to make the game "stunts" happy in an absense of the above functionality. - TUN/TAP support. This is intended to substitute the dosnet module. dosnet requires root, while TAP doesn't. Note: set $_vnet=(2) to enable the TAP support. $_vnet=(1) (still) uses dosnet. From Jason Eckhardt - base/bios/int10.c (x_set_video_mode): Do not set INT 1F on a mode change. (adapted by Bart: initialize INT1F at DOSEMU startup) From Bart - disable unprivileged ttylocks changes in ~/.dosemurc. - ~/.dosemurc can now completely overwrite dosemu.conf for non-suid-root DOSEMU. - configuration simplification: DOSEMU now parses the default (as if it was uncommented) dosemu.conf internally before global.conf. This made it possible to greatly simplify global.conf again. Also the initialization in init.c is no longer necessary for the most part. - check for lex or flex - several small 'make install' tweaks - the dosemu script now does not complain if /proc/ksyms does not exist and can work without ~/.dosemurc. Also dosemu.bin is now exec'ed. Systemwide paths are substituted during "make" rather than "make install" so that a different prefix can be used for "make install". - make install_systemwide bare-bones (kept for backwards compatibility for now) - XMS cleanup and better error codes - MFS: solve problem with repeated FindFirsts without FindNexts; also use a circular buffer instead of a stack. - some cpuemu code needs to be guarded by #if X_GRAPHICS - adapted the manpages and "COPYING" a little bit to reflect that the fact that Hans no longer maintains 1.0.x 2002/12/17 ver 1.1.4 released From Bart - Fix X font handling and misc other things in the dosemu script and make install. - add vga11x19 font - some minor manpage and documentation fixes - fix Makefiles: data.c dependencies and src/tools/periph - verbose make install - debug output goes to ~/.dosemu/boot.log by default for dosemu.bin too - allow $_dosmem in ~/.dosemurc and warn if more than 640K is used for X or console graphics. - install midid by default - fix compiler warnings in msdos.h and comcom.c. From Stas - fix DOSEMU freeze (from ctrl+alt+pause) when $_rdtsc=(off) 2002/12/15 ver 1.1.3.9 unofficial pre-release From Stas - protect against stack overflows in dpmi.c. - improve the boot sector for mkfatimage[16]. - use ntohs() to correct packet driver debug messages. - keep track of subsystems and devices they used to avoid clashes. - implement the PSP and fix the DTA translation for src/dosext/dpmi/msdos.h - fix MPU-401 initialisation. - avoid pthreads DoS - adjust fatfs.c to support PC-DOS - dosdebug fix to make the "normal" trace mode to step the real mode in DPMI - limit transfer buffer for ASCIIZ strings in msdos.h. (Bart: use snprintf instead of strncpy). - do segment register translation only when necessary in msdos.h and dpmi.c -- the DOS DPMI client translator and not the server is supposed to be in charge of them. - don't allow HW interrupts in the dosdebug force trace mode. - config update for sound (Bart: organized a little differently). - Temporary fix for the Insert key (the real fix will be post 1.1.4) From Bart - Some more global.conf adjustments to get the terminal and keyboard working correctly by default. - Based on an idea of Clarence: use Ctrl+Alt+Pause to freeze and unfreeze xdosemu (he wanted it as a dosemu.conf option to always do it when switching to the background but I think a keystroke is more flexible) - remove llseek check: just use the libless one. From Reinhard Karcher - correct the German keyboard. From Clarence Dang - comcom fixes: * fix the < in "more < file" * fix buffer overrun if the history file is corrupted * fix buggy execution order (now: .com, .exe, .bat) * fix bug where it was impossible to overwrite a file with > because > actually appends (>>) instead of overwrites * fix bug where pressing DEL key at the end of the line deleted the character but did not update the display * fixed a little overrun in delete() * fix bug where scrolling to the right will scroll one too many characters * fix bug where inserting a character actually adds a character to the end of the string. * allow "DEL /P FILE", not just "DEL FILE /P" * also, print an error if the file to be deleted doesn't actually exist * fix bug where the prompt was shown even when ECHO_OFF * EXIT in the toplevel comcom.com calls leavedos() * implemented TRUENAME * partially implemented "template"-based command line completion keys such as F1 and F3 * print "Invalid drive specification" when changing to an invalid drive * allow redirection of PAUSE's output * DIR now looks like a Win98 DOS DIR (changed spacing, dirs do not have sizes in DOS, 12-hour times instead of 24-hour, comma-separated file sizes) * make TIME, DATE, kbdask() look more like they do in DOS * newline displayed after every command if ECHO_ON * make "echo. something" work * CHOICE is an external command in DOS so the reference to it has been removed - joystick fixes and cleanups * fix bug where joystick axis values from different points in time are returned, in a single joystick position query from a DOS app * introduces a "joy_latency" variable which substantially improves joystick performance by reading less often from linux; * fix some missing config stuff e.g. in config_defaults() * fix port word read/write behaviour, code cleanup and doc fixes - fix EMUVER="VERSION.1" problem - fix "ERROR: ERROR:" messages in src/base/misc/disks.c - allow emulated pc speaker sounds to go for longer than 990ms, but for 30s. - get freeze_dosemu to "pause" any pc speaker sounds - don't turn off the speaker in X before generating a new sound (unnecessary and causes "clickyness") - ViewDocs: get manpage help working (./man/dos.1 no longer exists) - Fixed some shell problems for make install. From Robert Komar and Stas - major midid update From Matthew Sullivan - Check for a tty before using virtual comports. 2002/12/14 ver 1.1.3.8 unofficial pre-release From Bart - revive "make install" - this uses a private boot directory setup using symlinks by default, but users can opt out using "none". - ~/.dosemurc now replaces the role of ~/dosemu/conf/dosemu.conf and ~/dosemu/conf/dosemurc - use ~/.dosemu/boot.log instead of ~/dosemu/boot.log to allow execution of the dosemu script without a boot directory under $HOME. - allow execution of the dosemu script for suid-root dosemu.bin (with the usual restrictions for ~/.dosemurc). - add compile-time paths to compiletime-settings; disable setup-dosemu for now since it cannot handle these. - allow all dosemu.conf settings to be optional where DOSEMU has built-in defaults; reflect this situation by commenting out everything by default - allow absolute paths in $_hdimage in dosemu.conf and ~/.dosemurc - remove "restricted" and "guest" restrictions when running DOSEMU non-suid-root. - allow change of $_rdtsc, $_hogthreshold, $_rawkeyboard and $_ttylocks in ~/.dosemurc by non-privileged suid-root users. - disallow change of $_ports in ~/.dosemurc. - removed $_keybint: it is no longer used anywhere. - hide pthreads support since it can be extremely unstable - fix typo in kbd_unicode keymaps.c so that the "auto" keyboard layout works again - first stage of removing externs - fix newline replacement in bisonpp.pl for compatibility with newer Bisons - remove "extern int errno" and use #include instead - move new keyboard documentation into the mainline. - removed old old keyboard documentation and some misc doc adjustments - add option to generate multiple HTML documents for use on dosemu.org - Use indirect file descriptors in the MFS to avoid the possibility that DOS programs can close or manipulate random file descriptors that are in use by DOSEMU. - MFS: FIND_FIRST should return NO_MORE_FILES and not FILE_NOT_FOUND if no file is found. From Emmanuel Jeandel - add %pure-parser to parser.y.in; else we get a crash with newer Bisons or gcc's - remove a strlower to fix an MFS bug for "lredir e: $HOME/Games" From Stas - update sound-usage documentation 2002/11/03 ver 1.1.3.7 unofficial pre-release From Stas - Change $_sound to on and $_mixer to "" by default (Bart: same thing in config.c). - vm86_GP_fault() is no longer a signal handler so the relevant code could be removed. - remove the LDT-mangling to allow expand-downs. This allows a lot of DPMI programs to run in DOSEMU that didn't before (such as X32 (Zortech/Symantec/Digital Mars) and some others). Note that "secure on" already disabled DPMI completely for suid-root DOSEMU. - Fix three bugs in dpmi.c: * access to dpmi_stack_frame[-1]; * save_rm_regs() without restore_rm_regs(); * use of the real mode interrupt stack as a general stack - ignore RIP advertisements from the local net for non-root IPX - move some DPMI structs back to private - Fix dosdebug to properly work with DPMI, even surviving RM->PM switches. - dosdebug fix for force trace mode - Remove old timer #if 0'ed code From Reinhard - Fix numlock switching on/off when switching vc's. From Bart (reported by Reinhard) - Don't initialize sound if $_sound=(off) (config.sb_irq == 0 is a signal for that) - Fix the Turkish keyboard lexer code in the right place now. - (edited from suggestion by Matthew Sullivan ): try rmdir before rm -rf when deleting the per process temp directory. 2002/11/02 ver 1.1.3.6 unofficial pre-release From Stas - Remove bogus check for ints >= 0xe0 in dpmi.c. - Extensively reworked the Sound Blaster Pro emulation code. From Michael and Reinhard Karcher - Add missing semicolon for newer yacc's in parser.y.in From Bart - Fix old keyboard code compilation and mkbindist (noted by Grigory Batalov) - Update sound documentation 2002/10/22 ver 1.1.3.5 unofficial pre-release From Baurjan Ismagulov and Sergey Suleymanov - Turkish keyboard layout From Sergey Suleymanov - fix KEY_LESSGREAT for non-US layouts From pesarif - corrected spelling mistakes in the documentation and various other tidbits. From Witold Filipczyk and Stas - Improved X detection From Bart and Stas - make global.conf part of the dosemu binary. Users can still use an external global.conf using a command line switch or by editing dosemu.users, but by default the builtin one is used. - improved emusys handling From Bart - removed emubat and explain the /K autoemu.bat command.com option. - added the /k switch to comcom. - various MFS fixes. - turn linkstatic off for development builds. - various docs fixes (for global.conf and netdev). - regenerated the docs and the DANG - turn dpmi on and set -D+cw by default From Stas - correct in_dpmi usages - add debug info on int return - use more verbose startup info - improve the hlt hack: the kernel always keeps the IF flag set so we have to set it in a hlt hack as well. - use proper (dpmi/non-dpmi) registers in dosdebug - corrected incorrect usage of in_dpmi at various places. - introduce a config_post_process() function that is called after parsing. Otherwise there is no good place for disabling DPMI if "secure on". Moved some related stuff from parser to post_process(). - remove asm run_irqs and other PIC cleanups. - add "if(REG(eflags) & AC) error()" to avoid a gcc problem. - Fix the DPMI mouse callback. This was necessary for the DPMI16 Borland C IDE. - Fix problem with ints 0x1c, 0x23, 0x24 for DPMI - introduce a $_netdev option, because the packet driver can operate outside vnet mode too. It is not necessary to set up dosnet anymore if you just need the packet driver to talk to, say, eth0. - Fault handling fixes for DPMI and instremu. - release key on losing focus - changed restore_pm_regs() to not require an extra copy_context() after it (it does it itself now). - leavedos() if DPMI stack structures are overflowed. - a port logging printf fix 2002/09/15 ver 1.1.3.4 unofficial pre-release From Eric - better fix for Ins key From Stas and Bart - fix bug in mouse fn 0x0020 (enable mouse driver) - clear AC upon an INT instruction (software and hardware ints). From Stas and Grigory - parse /proc/net/ipx_route for existing IPX routes (without requiring root) From Stas - disable AC|ID clearance (leaving it only for the dosemu flags) at other places. - ignore bootoff when the real floppy is not accessible - convert the packet driver callbacks to be DPMI-safe - add option $_pktdriver to disable/enable the packet driver (int 0x60) for vnet - dosnet fix for broadcast (so ping works between two DOSEMU sessions) - get the Pause key working under DPMI - disable PCI if there are no root privileges - Unconfuse more serial error message like ERROR: \n DOSEMU: cannot... - use a wider range of ports for IO-tracing (the "T" debug flag) - fix buffer overflow in mfs.c - fix a client's protected mode stack corruption under high IRQ pressure and in some other cases (notably since 1.1.3) - use sb_dsp for sound in global.conf From Bart - remove the old int code. - add some version guards to global.conf. - remove plugin_configure warning. 2002/09/12 ver 1.1.3.3 unofficial pre-release From Stas and Bart - fix several potential t_dif (vs. hitimer_t) overflows in the keyboard code and vgaemu code. The vgaemu overflow caused problems after ~half an hour of inactivity in some DOS programs. - fix problem where Esc needed to be pressed twice. From Stas - remove special modifier handling for Ins: Ins is not special like CapsLock is from the BIOS point of view; now Ins does not trigger twice (annihilating itself) anymore when you press the key. - ignore keys that are already handled by DOSEMU. - treat the case base==0 correctly for unicode_to_long() in src/plugin/translate/unicode_utils.c. - resurrection of DPMI->PIC interaction: add overall stability for DPMI apps. Also fixes a number of related bugs for v86 mode. - Make IPX callbacks DPMI-safe, taking an advantage of the PIC enchancements (that were integrated into dosemu-1.1.3.2). - Memory allocation (pagemalloc.c, used by DPMI) fix: some DOS extenders expect that newly allocated memory is zeroed! - Only open the serial port on demand, not as soon as DOSEMU is started. - Allow IPX without root privs unless you are going to use RIP which is trying to add a route and fails. - preserve flags (pushf/popf) on "Pause". - select the 386 by default for future unknown CPUs (to avoid part of the P4 problem - we now have a basic backup). - dosdebug fixes: one makes dosdebug to correctly destinguish between real and protected mode, second makes it to correctly disassemble pushfd, popfd and iretd. From Bart - MFS fixes: Try to improve the file locking behaviour - see the table in mfs.c for differences between real DOS handling according to RBIL and our handling. Determine whether a file a special (a device) or not by walking the DOS device driver chain instead of comparing a fixed list of names. Also open/"create" the device driver when appropriate in the same way as DOS does it. Misc cleanups: add "const" at various places; use memcpy() and memset() instead of strncpy(). Fixed a bug where the hlists were not freed when findfirst was called for volume labels. For efficiency: find first without wildcards uses findfile() instead of needing to build an hlist. - sleep when dosdebug is in a "stop" state. - fixed a few trivial compiler warnings. From Clarence - conveniently allow DOSEMU to display the name of the currently running program in the X Window Title (like Win98 does), if the user is running COMCOM.COM From Sergey - set "access denied" if locking a region of a file is impossible. From Per Jessen - add a new dos helper: 0x82: returns PID and PPID in ax and bx. 2002/06/16 ver 1.1.3.2 unofficial pre-release From Stas - enhancements to PIC and mouse driver. This is intended to fix crashes (esp. under X) related to mouse moving. - make hogthreshold *value* to matter, not only the fact that it is >0. - Unconfuse serial error message like ERROR: \n DOSEMU: cannot... It's more clear to merge the two lines. - enable IPX code to work with doom's ipxsetup: return status of send_packet in AL (else doom fails) abort loops on error to not deadlock correct and more verbose debug messages - two small fixes to the new keyboard code From Clarence Dang - new and working joystick support. Everything is detected at runtime, except for pthreads: the joystick works a little faster with pthreads support, but DPMI can become unstable if you enable pthreads, and hence it is disabled by default for now. From Bart - did the autoconf and dosemu.conf bit for the joystick support. - enabled stripping of a trailing dot for mfs (bug report from Johan Gill) - corrected off-by-one error for mfs environment variables. - made new keyboard code the default in compiletime-settings From Grigory Batalov - remove perl dependence from DOSEMU - unset DOSEMU_STDIN_IS_CONSOLE if "-X" is used From Sergey Suleymanov - added fonts.alias - Cyrillic support: this introduces a Russian keyboard layout as well as a keyboard layouts switch. It works with both the unicode and the non-unicode keyboard code. 2002/05/26 ver 1.1.3.1 unofficial pre-release From Eric and Stas - pic.c: C run IRQs; bitops.h: find_bit clean-up. From Stas - ignore SIGPIPE - make sure to always clear the AC and ID flags, when returning from V86 mode and do not log that action by default - for dosdebug: we want to trace the program, not the HW int handlers - pagemalloc.c: collect garbage when freeing memory (makes sure that DPMI memory is in a clean state when DPMI is entered, among other things); extra NULL check; refuse realloc with newsize==0. - pci.c: check each priv_iopl() for failure - leaving DOS before booting calls exit(), not leavedos(), to prevent a SIGSEGV - circular log buffer of 50 MB - instead of leavedos() it truncates and rewrites from the start when the log is full - initialize mouse speed correctly (modified from Manfred Scherer) - ports.c - make sure to handle dword ports similarly to word and byte ports - without this suid-root DOSEMU has full access to all hardware ports using ind/outd! Another reminder that you should not let use suid-root DOSEMU if local security is important. From Manfred Scherer - do not center mouse cursor when changing graphic modes From Sergey Suleymanov - int10-bell: return from function when beeping. Otherwise the screen scrolls up. - MFS fixes: Do not permit file deletion for read-only files. prevent an hlist stack overload with big directories. return NO_MORE_FILES if FIND_FIRST does not find a file. extend file if zero bytes are written past EOF (all slightly edited -- Bart) From Witold Filipczyk - new Polish keyboard layout (now also applied to the new keyboard code) From Bart - MFS: remove trailing spaces in filenames and extensions in the Unix paths. ANSIfied mfs.c function definitions. - enable raw keyboard for non-privileged DOSEMU - int16: handle ascii 0xe0 and small Cyrillic er correctly. - comcom.c: "errorlevel" applies to external commands only. - use Autoconf 2.52 and check to see whether we should link in libdl for libX11 2002/03/19 ver 1.1.3 released From Stas - We must not sleep() immediately after mouse event happened, we have to let the program to handle the event (src/base/async/int.c). - src/command detect.h adjustment and assemble tools which are not produced for coopthreads by default (isemu.com, mgarrot.com and fossil.com) (adjusted by Bart) - remove wrong check for sb for dma_run in dpmi.c, use pic_run macro in pic.c From Eric - keyboard fix for int16.c From Bart - re-enable KEYBUF_HACK while taking care of pause key. - regenerated documentation/DANG - moved some of the more extensive unicode keyboard debug output to a higher level - made compilation with gcc 2.7.2 possible for simx86 2002/03/10 ver 1.1.2.9 unofficial pre-release From Stas - fix for incorrect Wolfenstein 3D Adlib detection - DMA indent patch to prepare for sound - support for pause key - add a little sleep to int16/ah=1,11 - this makes your current setting of hogthreshold feel differently, however programs polling the keyboard behave much nicer now - new serial fixes From Stas and Bart - MFS DOS path buffer overflow checks and fixes - Fix buffer overflow in int10.c for the screen. This caused a page fault for terminals > 132x60. Enlarged this limit to 255x128 and enforced it. From Etienne Lorrain (etienne@masroudeau.com) - Subject: RBIL problem INT10/AH=0x1B table 00040 offset 22h off-by-one error: this should report the number of rows (not rows-1). From Emmanuel Jeandel - Patch for Lemmings : Lemmings is 16 color, but uses 4 planes mode (very unusual). It suffices to add few lines in X.c to treat it. From Daniel Morris - changed MFS to return FILE_NOT_FOUND instead of PATH_NOT_FOUND for FIND_FIRST (this isn't always the proper solution but that would involve more reorganization of mfs.c - Bart) From Miloslav Trmac - Disabled signals in the redirector to avoid problems with smbfs. From Manfred Scherer - fixed memory leak in mfs.c, enlarged DOS path to 66 characters max. From Hartmut Richter - fix to avoid that serial input is lost in special situation (improved by Stas) From Herbert Xu - fix to avoid division by zero for "0 MHz" cpu's - apparently there are some broken /proc/cpuinfo's out there. From Witold Filipczyk - Keyboard ALT 224; Polish_keyboard.patch (only applied to old keyboard code) From Bart - moved int16 code to monitor space, except for a wait-for-key loop for ah=0,10. - fixed xms.c to only return BL=0 for successful A20 query: all others should not touch BL if "success" (referring to XMS spec) - (with help from Alistair) doSgmlTools.pl adjustment but it still does not generate the right thing - fixed all compiler warnings from gcc 2.95.x and gcc 3.0.x 2002/01/23 ver 1.1.2.8 unofficial pre-release From Bart - The addresses in crtcemu need to be shifted by the current value of vga.crtc.addr_mode. Also enabled hardware scrolling for textmodes. This enables some games and 8086-Minix to display properly. - make .sys files (not created from coopthreads) also by default, not just with make dosbin. From Stas - as pit[0].time.td is initialized with GETtickTIME, we have to initialize tp.td with GETtickTIME also, else time_curr contains garbage and sometimes goes beyond zero. - update dosemu flags on popf under CPUemu This allows doom to work with sound. - Don't allow direct access to speaker's ports when $_speaker is not "native" This breaks some kernel stuff (pc-speaker driver in particular) and we have an emulated PIT anyway. Eric confirmed that this doesn't break his Matrox. - pic_untrigger() implemented. This is for SB detection. - PrintScreen implemented. I hope this is now what Eric wanted it to be. - Fixes for ecpuon, ecpuoff and system commands From Eric - Add cp858 support cp850 + EURO - Add koi8-r support for the russion hackers - Fix comment in keyb_raw.c - keymaps.c Corrected $_layout="auto" rename this to $_layout="kernel" - terminal.c Improve handling of charcter sets that use 0x80 - 0x9f - Fix incorrect initial numlock state with new keyboard code 2002/01/12 ver 1.1.2.7 unofficial pre-release From Stas - set VIP on pic_request() to activate the int ASAP. Without this, some games fail to detect SoundBlaster IRQ under DPMI. - DPMI: always return to dosemu code for handling signals. IF is not set by popf and dosemu has to do some background job (like DMA transfer) regardless whether IF is set or not. - Fix cmdline.c. - remove clear_console_video() from old keyboard code. also remove scr_state.current init (Bart) From Bart - leave interrupts >= 0xc0 untouched. int 0x7a special cased by other means. Do not special case 0x45-0x5f any more in bios.S (from Stas) Make slave irq behaviour equal to master irq (iret, not lret 2). - documentation generation: sgmltools needs --jade-opt not -jade-opt - remove HACK in vgaemu.c. - add missing files from keyboard plugin. - Eric's new keyboard plugin is still disabled by default for non-devel builds, so relevant plugin_enables should be set to no. - ./mknewyear - remove Athlon detection from /proc/cpuinfo in base-configure.in: use ./default-configure --target=athlon-pc-linux-gnu if you want Athlon optimizations for now. 2002/01/06 ver 1.1.2.6 unofficial pre-release From Eric - Enable new keyboard code in compiletime-settings.devel - Clean up the kernel revector bug work around. - removed dead code in int05 left over from when it was called with REVECT From Bart (reported by Reinhard Karcher, help from Stas) - don't zero out int 7a entry (int.c) , unhack and comment out official JES hack (bios.S) - remove kernel < 2.0.30 code and adjust requirements From Stas - serial code irq fixes From Thomas Langhammer - dosemu fossil driver enhancement: support the GetDriverInfo function (1Bh) without specifying an existing port number From Emmanuel Jeandel (adjusted: Bart) - CRT scan_len adjustments and related fixes to get some Mode-X modes (eg. 360x480) working correctly. You can see the difference with games like Battle Isle 2 or Scorched Earth (the latter is a shareware). 2002/01/06 ver 1.1.2.5 unofficial pre-release From Eric - compiletime-settings, compiletime-settings.devel - explictly enables/disables the plugins - dosemu.conf Added $_external_char_set & $_internal_char_set - global.conf Added code for $_external_char_set & $_internal_char_set - wyse60-pckb Added terminfo entry example that uses scancodes - mouse.c Made mouse_keyboard() update conditional on HAVE_UNICODE_KEYB - X.c - Added tests for the XKB extension. - Made new translation code conditional on HAVE_UNICODE_TRANSLATION - emu.h Changed HAVE_KBD_UNICODE -> HAVE_UNICODE_KEYB - video.c Move the remaining video init & cleanup calls from keyb_raw.c here. 2002/01/06 ver 1.1.2.4 unofficial pre-release From Eric - Makefile.main Always link in all of the dosemu .o files - default-configure - parses options of the form plugin_ [on|off] and explictly enables or disables them. - mkpluginhooks Removed plugin_override code, added plugin configure plugin configure scripts plugin enable/disable from default-configure - mkpluginhooks Removed plugin_override code, added plugin configure plugin configure scripts plugin enable/disable from default-configure - dosemu_config.h - config.c - Added for the config_scrub callbacks - Added config scrub callbacks so we can make certain the config options are sane, even from plugins. - Further killed keybint - dev_list.c, iodev.h - Updated to allow registering io_devices 2002/01/06 ver 1.1.2.3 unofficial pre-release From Eric - dosemu_debug.h Rework to for the debug print statement rewrite - Rewrote the debug print statements to allow plugin to define their own types. - serv_xlat.c - Modify Albertos Ctrl-Alt-PgDn hook to work with the new debug message style. - init.h - Added so we can have initialization function in plugins that don't need a call chain. 2002/01/06 ver 1.1.2.2 unofficial pre-release From Eric - mkconfscript: - Remove base-configure before overwriting it, this solves with developing with hard links... - base-configure.in: - Clean up cpu optimization rules - Run configure scripts in plugins 2001/11/07 ver. 1.1.2.1 unofficial pre-release From Alberto - made it compile with gcc-3.0 under Mandrake 8.0. You should _not_ use -fschedule-insns2, it makes dosemu crash. - Reorganized the simx86 directory. Implemented a 'full-emulation' mode, totally in C like Twin (R.I.P.). This C-emulator is now working fine, FP is not yet finished but (apart the abominable speed) it does all what the JIT version does. - Prepared simx86 for optimizer by clearly separating the Gen() function, which generates an intermediate representation into the IMeta structures, from the actual code generator backend. - This release is tested on an Athlon 800; there are timing problems with "slow" (<400MHz) machines. - There are still some problems with Windows 3.1 and the segment linker. - Corrected xms.c: do not touch BH, else Win98 boot failure - Corrected dpmi.c: WARNING - realmode flags can contain the dreadful NT flag which will produce an exception 10 as soon as we return from the callback! - so it's explicitly switched off now. From Bart - added warning about prefetch instruction which does not exist on i586 or lower (including AMD K6). This should probably be converted into a compile-time option - otherwise cpuemu crashes on these CPUs. 2001/11/04 ver. 1.1.2 released From Hans - get 'make dosbin' working - "su -" for nobody and space fixes in dist/dosemu - adjusted COPYING to the current maintainer situation From Bart - fix compiler warnings in src/emu.c, src/emu-i386/simx86/protmode.h, src/base/init/lexer.in - fix for gcc-3.0 in base-configure.in; let the target_cpu decide which gcc options to use instead of the host_cpu - removed restriction to have to run (suid)-root in serial.c for creating the lock file From Stas - remove emusys disabling for lredir'ed drives: at least DRDOS and FreeDOS already switch from fatfs to lredir before opening config.sys - graciously terminate on unhandled bound exceptions (int5) - prevent segfault when DOSEMU_OPTIONS is an empty string, but not NULL - SIG_init() must be called *after* sighandler for SIGIO is set, or dosemu is killed by unhandled SIGIO on startup and you have to reboot your computer (emu.c, signal.c). 2001/10/28 ver. 1.1.1.11 unofficial pre-release From Jeff Beardsley - changes to global.conf to allow com3/4 work on other the irq12 (this turns out to be the fix for more than 2 serial ports) Just have a $_com3 = "/dev/ttyS2 irq 5" in dosemu.conf From Stas - fixed bug in DPMI prevent calling int > 0xe0 in case of function 0x0300 (not for 0x0301/0x0302) - setting unused intvectors to NULL instead iret From Bart - fix bug in INT 13 AH=8 altering BL wrongly for harddisks (base/misc/disks.c) - updated doc/dosemu.lsm to reflect new maintainer status ;-) From Steffen - fix to global.conf: one /var/lib/dosemu forgotten to be replaced by $DOSEMU_HDIMAGE_DIR From Steffen + Hans - fixed bug not booting on Pentium IV (base/init/config.c) From Hans - some fixes/enhancements to the dosemu wrapper script - added '-input' and '-quiet' option - tweaked args passing to dosemu.bin - allowed running _as_ root (not suid), if configfiles are protected - adapted the man page - disabled obsolete 'root not secure' check in coothreads.h - fix (again) to VERSION setup in ./baseconfigure (hopefully this was the last one ;-) From Eric + Bart - fix gas -oformat switch: must be --oformat 2001/10/28 ver. 1.1.1.10 unofficial pre-release From Stas Sergeev - fixes to xms.c (umb_alloc) to match the LIM's specs. - make cdrom.S' config.sys line parsable by PC-DOS 7.0 (patch modied by Hans) From Bart & Alistair - fixes in the docs of my bad english;-) (I'm sure there still are some 'bugs' left) From Hans - comcom.c: using INT21,AH=7 instead of INT16,AH=0 for kbd reads - comcom.c: fixed version number printing - comcom: command 'cls' was missing - comcom: command 'break' switched inverse - further docs updates - recompiled docs 2001/10/28 ver. 1.1.1.9 unofficial pre-release From Bart - fixed a bug in X-speaker code (pitch is short int instead of int) (src/base/speaker/X_speaker.c) - fixed crashing DOSEMU if compiled with glibc (close() on already closed file simply gives error normally, but on glibc it will crash due to implicit free()). Involved file: plugin/commands/comcom.c From Hans - fixed bug in comcom's commandline editor - fixed bug in comcom's 'DIR' command (reported by Bart) - disabled use of (real) yacc in base-configure, yacc won't work any more, we need bison. - new long options to bypass dosemu.user checks for non-suid runs: --Flibdir to define DOSEMU_LIB_DIR directly (this also sets DOSEMU_USERS_FILE=none in which case the config dir moves from /etc to DOSEMU_LIB_DIR). --Fimagedir to define a boot path that may differ from libdir - exporting DOSEMU_HDIMAGE_DIR directly to global.conf - 'dos' became 'dosemu.bin' to avoid nameclash with win4lin. there is a symlink ->dos in ./bin, however, distributors should install the 'dosemu' script as a wrapper which then calls dosemu.bin - moved generation of the dosemu part of the bindist into the source distribution: - ./dist is the directory to contains this stuff - global.conf and dosemu.conf are common for both, global (/etc) and private ($HOME) configurations. - wrote ./dist/mkbindist, which generates dosemu--bin.tgz - wrote ./install_systemwide script, which creates the systemwide installation into a configurable directory (root prefix possible to ease packaging). It accept the following options, which all may be omitted: -fd FD_tarball Tarball containing FreeDos part, if omitted we assume it already to be inplace. -r root optional prefix for 'instpath' and 'binpath' -i instpath directory where the systemwide installation templates reside (default is /opt/dosemu) -b binpath path where symlinks of the binaries under 'instpath' have to be placed (default /usr/bin) If the user accepts the defaults, ./install_systemwide will just 'update' an existing systemwide installation and all users on that system will untill than work with the new binaries while keeping their existing configuration/installation. - rewrote [x]dosemu script (of bindist) to become the _only_ executable to start dosemu. On a systemwide install it resides in 'instpath' (see ./install_systemwide) and is accessed via a symlink in the private installation (though, because of 'binpath' also available via $PATH). [x]dosemu will detect when the user has no private installation yet and will unpack from the templates in 'instpath', the latter is substituted into the script itself at time of ./install_systemwide. If the script stemms from unpacking the original DOSEMU binary distribution of dosemu.org, the script will know and not try to fiddle with an eventually existing systemwide install. The file ~/.dosemu/bindist_path is maintained to find the last private dosemu directory, even if [x]dosemu is called from elsewhere. If, however, the user does cd into the private installed directory and calls the script from there, bindist_path is changed to this one. This allows switching between different private installations. In addition, on a systemwide install, the script accepts the option '-install ', where 'mydos' is the basename of a bootdir, that the user has to supply. In this case freedos will not installed and can be replaced by any proprietary DOS, which is bootable via fatfs (bootdir). - updated README.distributors - renamed ./man/dos.1 to ./man/dosemu.bin.1 and updated it - wrote new ./man/dosemu.1 - updated set-permissions - updated README*.txt, recompiled docs 2001/10/28 ver. 1.1.1.8 unofficial pre-release From Bart & Eric - final mouse fix for applications, which do 'mousing' only by reading mickeys and drawing their own cursors (WP Office). (replacing 'temp fix' of 1.0.1.5) From Bart - fixes to vgaemu: putpixel and hardware cursor - fixes for dosnet not working under linux-2.4.x From Hans - fixed some strange behave when video{none} together with -o/-O is set ((FILE *)stdout clobbered). In fact this is a workaround, the real reason is unknown until now. Involved file: bios/int10.c - a lot of fixes and further enhancements to comcom, such as implementing missing copy/which command, commandline editor with history (will be saved/loaded to/from ~/.dosemu/comcom.history), compatibility should be much better. e.t.c. ... - updates to README.bindist - prepared doc/announce for 1.0.2 - wrote README.distributors - disabled systemwide installation in Makefiles, no longer supported. - removed non-monoton timing stuff, obsolete now, tmonoton has stabilized 2001/10/28 ver. 1.1.1.7 unofficial pre-release From Hans - introduced coopthreads plugin, which supplies non-scheduled (active) 'task' switching between plain green threads (no new process created). This has the advantage that _none_ resource locking is needed, minimal systemoverhead happens and neither DOSEMU nor libc have to be thread aware. On init the DOSEMU mainloop becomes 'thread0' with enough stack (1M) to run as usual. Child-threads are created (256K stack) by stub .com files from within DOS, have their code in 32-bit DOSEMU and can (recursively) call DOS and BIOS functions themselves. Even hooking of interrupt handler (such as INT23/24) is possible and on start of a stub .com in fact INT23/24 are directed to own default handlers. NOTE that except the new doshelper function DOS_HELPER_COOP (0xc0) there is _no_ hook within the main code, all is handled within the plugins themselves and you may just copy the plugin directories to any DOSEMU > 1.0.1 to take over this new code. Involved files: src/plugin/coopthreads/* - Ported most of the src/commands/* DOS support programs to coopthreads, which are: bootoff/on, cmdline, dosdbg, ecpuoff/on, eject, emumouse, exitemu, lredir, speed, system, uchdir, ugetcwd, unix, vgaoff/on, xmode. Involved files: src/plugin/commands/* - Wrote (from scratch) a DOSEMU built-in COMMAND.COM using coopthreads. Involved file: src/plugin/comcom.com ;-) This COMCOM only needs 2K lowmem per instance (plus env, of course) and claims to be as compatible as reasonable, but some incompatibilities still exist (though I don't think they hurt). The following DOS internal commands are implemented: cd, chdir, goto, echo, @echo, pause, rem, if, for, shift, call, type, del, erase, set, path, prompt, break, mkdir, md, rmdir, rd, verify, ver, ren, date, time, dir. "copy" and "choice" are not implemented, because those exist as external freedos commands. The following DOSEMU support programs are being invoked internally (if not present in the PATH), so they are always available: exitemu, speed, bootoff, booton, ecpuoff, ecpuon, eject, emumouse, ugetcwd, vgaoff, vgaon. The following ones eat additional lowmem heap, so its better to leave them external: lredir, unix, dosdbg, xmode, system, uchdir. Of course COMCOM has a builtin commandline editor with history buffer, else who of us would like to work the stupid old DOS way;-) - updated README.bindist and src/docs/README/config to reflect the latest changes - recompiled docs 2001/10/28 ver. 1.1.1.6 unofficial pre-release From Stas Sergeev - fix for emusys/emubat/emuini file extension substitution not working correctly for redirector/PC-DOS (modified by Hans). Note: the DCONFIG.SYS part is disabled because it can't be handled consistently in fatfs.c. Involved files: utilities.[ch], async/int.c - fix for DPMI: run_dpmi() must not be called from timer_int_engine() (just delay ints until the timer routine is finished) From Bart - small fix for mfs to get DRDOS use 'con' without error - vgaemu_put_pixel patch (int 10h, function 0ch and 0dh) - temp fix for mouse in applications, which do 'mousing' only by reading mickeys and drawing their own cursors (WP Office): In mouse.c, 'mouse_setpos()' disabled for X without mouse grab. From Hans - ./mknewyear ;-) - fixed typo in global.conf, $__debug --> $_debug - fixed bug in mfs for special devices given as full path by by FDkernel. Involved files: src/dosext/mfs/{mfs,mangle}.c - fixed small bug in mappingdriver detection (mapping.c) - fixed src/base/misc/fatfs.c so 'emusys' and 'emubat' are handled (emuini isn't needed here, because at that time we are lredir'ed) - reduced signon banner to be less verbose (+292 ./src/base/async/int.c) - implemented A20 handling in 8042 emulation, needed for WinME involved file: src/base/keyboard/serv_8042.c - removed binary stuff, we have it now in dosemu--bin.tgz or drop it. Involved files/directories: dexe, etc/{config.test,hddummy}, setup-bootdir, setup-hdimage, first-test, dosemu.spec, src/doc/README/{dexe,oldboot}, src/tools/{mkbindist,Mkbindist,QuickStart.bindist}, contrib/dosC, src/commands/precompiled/*.{com,exe,sys,doc} - adapted the Makefile to reflect the binary remove - the commands dir now is only compiled on demand, target: dosbin - adapted the docs to reflect the binary remove - added a short description about the binary distribution to doc/README.txt, Quickstart and a larger one in README.bindist - adapted Quickstart 2001/10/28 ver. 1.1.1.5 unofficial pre-release From Hans - fixed typo in emm.c, error code wrongly went into BH instead AH - changed forgotten vger.rutgers.edu to vger.kernel.org in async/int.c - introduced --Fusers option to bypass /etc/dosemu.users in case the binary is _not_ suid-root. This allows to distribute isolated packages (other then DEXE), which have their completely own configuration. - introduced arg-list preparsing. As some options are dangerous when parsed too late, those are done in the special function secure_option_preparse(), which discards all options known to be dangerous from the arg list (currently only --Fusers). 2001/10/28 ver. 1.1.1.4 unofficial pre-release From Herbert Xu - fixed typo in mfs mangling, src/dosext/mfs/util.c - changed /dev/cuaX to /dev/ttySX in etc/dosemu.conf - Fixed incorrect partition type sensing (setup-{hdimage,bootdir}) - glibc-2.2.2 needs (additionally) included in dosdebug.c From DJ Delorie - fixed DPMI memory available (dpmi.c) From Bernd Schueler - allow file names, which have a DOS reserved basename together with an extension (e.g. LPTx.PRN as used by CLIPPER programs for internal spooling purposes). Involved file: mangle.c From Rob Clark - fix for mfs.c and mangle.c to proper detect reserved DOS file names, even if prefixed by full pathes. (patch rework by Hans) From Bart - lpt.c printer security patch - lredir enhancement to "reredirect a drive', such that an existing redirection is replaced with the new one instead of returning an error. - adapt dosnet.c to linux 2.4.x - fix for internal mouse driver on the console in graphics mode: sometimes the mouse cursor left a trace behind. Involved file: src/base/mouse/gcursor.c From Hans - removed obsolete (old parser style) etc/config.dist - fixed dexe/check-mtools to detect version correctly - adapted dexe/myxcopy to newer mtools (modified fix from Herbert Xu) - fixed compiler warning in keyb_X_keycode.c (unused variable), which stemms from the Xu caps/num lock fix - 'tuned' ./rebuild for my convenience;-) - removed suid-bit from default install, involved file: src/arch/linux/Makefile.main - recompiled lredir.exe due to Bart's "reredirect" patch. 2001/02/25 ver. 1.1.1.3 unofficial pre-release From Adam J. Richter - some glibc-2.2.2 fix (to include time.h instead of sys/time.h) involved file: mfs.c From Alberto - fixes for gcc >= 2.96 (the '##' macro thing) involved files: data.c, msdos.h, cpu.h, mhpdbg.h - other warning fixes related to gcc >= 2.96 involved files: pci_bios.c, pic.c, lexer.l, memcheck.c, parser.y, keymaps.c, prestroke.c, fossil.c, dpmi.c, xms.c, detach.c, remap.c, screen.c, port.h, dexeconfig.c From Hans - fix to gas detection, file '--' was generated instead of just outputting to stdout. Using 'dummy' and deleting later. (gas doesn't accept stdout; /dev/null won't work as gas will make a regular file of it when running as root) - general 'linux' header rework (this could no longer be avoided) because we can't rely any longer on proper headers in the system. - changed all and to "Linux/*" and "Asm/*" in order to make obvious, that we are including private headers - included standard headers from instead of where ever possible possible - the rest of headers is made 'privat', copied from a linux-2.0.38 tree and cut down to our needs - v-net/dosnet.c still contains references to kernel header files, because this is a kernel module. Compile this one with care and verify that /usr/include/linux is in fact a symlink to the kernel source. - made generation of GLIBC_VERSION_CODE (hopefully) foolproof ;-) 2001/02/09 ver. 1.1.1.2 unofficial pre-release From Bart - Converted all as86 code to gas using .code16 Now we just need binutils > 2.9.1.0.25 and now as86 anymore From Hans - made mkpluginhooks restoring the previous status of plugin_enable if plugin_override took effect and the overriding plugin is disabled afterwards - plugin_override now can take a list of overridable plugins. - updated README.plugin - better read_file in bisonpp.pl (never stop learning perl;-) - some further work on Bart's gas stuff to make it better portable between different binutils and removed warnings for older binutils. 2000/12/02 ver. 1.1.1.1 unofficial pre-release From Bart - fix for base-configure.in w.r.t. glibc 2.2: the awk script got confused between the definitions From Eric - remove/disable keyb-nonint mode (eb1.4) - Modified the parser&lexer to handle shift-alt, ctrl, and ctrl-alt shiftstates. (eb1.11) - Now pass the raw scancode to get_bios_key, this is needed for correct handling of a few rare cases in keyboard_u stuff. - fix for linux-2.4.0-test11 "features" of /proc/cpuinfo From Hans (in preparation for Eric's keyboard stuff) - removed USE_OLD_SLANG_KBD - added new features to plugin handling (mkpluginhooks) - config/plugin_override can contain name of plugin which _this_ plugin replaces (plugin_enable of the other will be set to 'no') - config/plugin_incdirs (same structure as plugin_dirs) will add directories to the include path. - config/plugin_config.h is included by src/include/config.h to give plugins a chance for compile time configuration - added bison/lexer preprocessor bisonpp.pl (yes, it needs perl) to add generic hooks into the parser. Moved parser.y parser.y.in and lexer.l to lexer.l.in. mkpluginhooks will generate the proper parser.y and lexer.l using bisonpp.pl and merge files found in config/plugin_{parser,lexer}. - updated src/plugin/README.plugin to reflect the changes - added parser stuff to plugin/demo - added VERSION_OF and IS_DEVEL_RELEASE macro to configure to ease checking of DOSEMU_VERSION_CODE such as #if DOSEMU_VERSION_CODE < VERSION_OF(1,1,0,5) #if IS_DEVEL_RELEASE - fixed bug in base-configure not parsing the version numbers correctly (kludge failed when VERSION was equal PATCHLEVEL_, e.g. 1.x.x.1, 2.x.x.2 e.t.c) - moved/changed src/base/keyboard to become src/plugin/keyboard involved file: src/base/keyboard/*, src/include/key*, src/arch/linux/Makfile.main, src/plugin/keyboard/config/* src/env/video/terminal.[ch] - parser.y, shifted outcommented rules down to avoid comments within rule label such as 'term_flag /*...*/ :' (problems with bison preprocessor) - prepared parser keyboard stuff for Eric's stuff (eb1.11) Some parser stuff went into src/plugin/keyboard/config/plugin_parser and plugin_lexer respectively 2000/11/10 ver. 1.1.1 released From Urban Widmark - support for mice using the IMPS/2 protocol (dosemu.conf key word 'imps2') From Alberto - cpuemu stuff: keyboard was broken with some programs; fixed flags handling when entering e_vm86. - ecpuoff: LDT was deallocated but not zeroed: fixed. - memory write protection routines moved to new file memory.c; a bitmap keeps track of the protected pages. Removed previous hack which used /proc/self/maps. - runtime checksum (again) on compiled blocks. Every time a write fault hits a page, the code in that page is now no more unconditionally deleted; instead, it is marked as "suspect". When looking for a node, if a "suspect" one is found a checksum is performed on it and, if nothing has changed, the "suspect" flag is removed. Doing a checksum on a few bytes is faster than removing a node and MUCH faster than reparsing it. - still more macros to speed up compilation - and that's all for 1.1.1, I would say. - bug fixes: memory write protection and "suspect" node handling From Hans - removed never used USE_INT_QUEUE stuff in order to avoid future problems with do_call_back(). - fixed Changelog entry of 1.1.0.2 (Eric's patches were hidden in Alberto ones) 2000/10/15 ver. 1.1.0.5 unofficial pre-release From Alberto - cpuemu stuff: continued moving code generator sequences into macros, and making speed improvements to the code generator - made jump optimizations dynamic in an attempt to solve some self-modifying code sequences (ndiags) - currently compiled sequence, not yet in the tree, was not invalidated by write faults; fixed. - compiled jumps out of sequences can now go also backwards - added missing decode in vgaemu stuff (bgidemo) From Hans - fixed my own stupidness from 1.1.0.4 in base-configure :-( 2000/10/14 ver. 1.1.0.4 unofficial pre-release From Bart - svgalib support, needs svgalib >= 1.4.2, for switching between VCs (saving/restoring of card status) when running console graphics. From Hans - made Bart's svgalib stuff configurable via compiletime-settings - renamed vga_screenon(), vga_screenoff(), mouse_close(), mouse_init(), vga_setpalvec(), vga_getpalvec() to dosemu_xxxx(). This was needed due to name clashes with svgalib. Though you get some (maybe) correct linkage with shared libs, linkage abandoned if linking static. - fixed compiler warning from 1.1.0.1 in keyb_X_keycode.c (unused variable i) 2000/10/13 ver. 1.1.0.3 unofficial pre-release From Alberto - cpuemu stuff: started moving some often used code generator sequences into macros - ecpuoff did not restore memory protections and did not reinitialise the cpuemu; corrected. - new cached search in the node tree; every node now stores information about the next one in execution order. This drastically cuts down search time. - several speed improvements to the code generator - src/base/keyboard/serv_xlat.c: missing spaces in a case range, gcc 2.96 will not like it. 2000/10/06 ver. 1.1.0.2 unofficial pre-release From Alberto - cpuemu stuff: reworked the tree structures to use an AVL tree (with code from libavl-1.4.0 (C) 1998,1999 FSF) - self-modifying code is now handled via segfaults on write-protected memory pages. Not perfect but faster than checksumming or rebuilding a whole tree. Every time code is generated, it protects its own page; every time we get a fault, all code on that page is marked as dirty and the page is unprotected. - memory overwrites coming from disk also remove any nodes from the tree over the affected pages. There is currently only one hook in mfs.c to do that, hoping that there aren't other ways to overwrite memory... - added fault handling in cpuemu for div by zero, page and I/O faults. - hooks for VGAemu to make the whole thing working under X, replacing Bart's instremu. - rewritten comments in code generator in a more consistent way (gcc-like) - fixed bugs in POP SP and STOSb instructions - moved some defines from dpmi.c to dpmi.h for use by cpuemu From Eric - Simplified dosemu_debug.h so changes don't need to change as many lines. - show_regs in dump.c could segfault (it now avoids bad addresses) From Hans - small fixes to compile simx86 on other than Alberto's systems;) - changed 'sigcontext' to 'sigcontext_struct' in simx86/cpu-emu.c 2000/10/05 ver. 1.1.0.1 unofficial pre-release From Herbert Xu - fix for not working caps/num lock with X_keycode (src/base/keyboard/keyb_X_keycode.c) From Bart - added vbioscheck program to get proper $_vbios_seg,$_vbios_size (src/tools/periph/vbioscheck.c) - added builtin vbios autodetection to init/parser.y Any non legal value (e.g. 0) to $_vbios_s* forces autotetection (patch slightly changed by Hans) From Hans - forbidd redistribution of re-packaged DOSEMU distribution (involved file: COPYING) Reason: checking the integrity of a DOSEMU distribution must be possible without (re-)download simply by comparing the md5sum published at dosemu.org. - fixed bug for compiling static under glibc: PORTABLE_BINARY had no effect (Makefile.conf.in, base-configure*) - added printing kernel version on runtime option -h - fixed printing of mapping driver type on runtime option -h - fixed wrong behave, when a not working mapping driver was configured (defaulted to mapfile always). 2000/07/09 ver. 1.1.0 released, starting new development tree From Alberto - new cpuemu stuff: new name: simx86 (for more details see preliminary src/docs/README/simx86) - ZeroBaseTime is now in cycles instead of us - SIGTIME has been un-macroed to its standard value of SIGALRM - SIGPROF to be reserved/used in the future for cpuemu From Hans - small fixes to compile simx86 on other than Alberto's systems;) - moved changes from config.in to acconfig.h, where they belong. and rerun ./mkconfscript. - put missing '#ifdef X86_EMULATOR' around '#include "cpu-emu.h"' - added macro offsetof() in emu-i386/simx86/syncpu.h - changed 'sigcontext' to 'sigcontext_struct' in simx86/cpu-emu.c - adapted dosemu.spec 2000/07/08 ver. 1.0.1.1 unofficial pre-release, development fork From Hans - added missing parts of 1.0.0.2 vmodem (doors) patch. (somehow did patch in a broken way at that time) 2000/07/03 ver. 1.0.1 released From Hans - fixed a diabolic bug in mapping/mapfile.c (s/\|/,/) :-( - made sure we realy have root-only access on the mapfile when running suid root. On NFS mounted $HOME we will come into trouble, when we have no root_squash. For security reasons we cannot allow suid-root DOSEMUs publish its mapped executable space on a NFS mounted volume, that isn't trusted enough to have root_squash. - removed contrib/twin (forgotten in 1.0.0) - updated dosemu.spec for 1.0.1 2000/07/02 ver. 1.0.0.11 unofficial pre-release From Alistair - new doc stuff, now using DocBook. For good results you need atleast OpenJade-1.3, SGMLtools-2.0.2, HTML Stylesheets 1.27 Lynx >= 2.8 - feed in delayed docs from Eric and Bart From Hans - docs recompile - adapted setup-dosemu's help to reflect the new docs format 2000/06/17 ver. 1.0.0.10 unofficial pre-release From Eric - changed Mailaddress (but not in src/doc/*, Alistair will do) - changes to src/commands/emumouse.c (new options -Mx -My) From Eric, Alistair & Hans - fixed global.conf to take care of GNU sh-utils > 1.16 ( default behaviour of 'who' isn't backward compatible anymore) From TWISTI (what ever real name he/she has ;-) - changes to base-configure.in to reflect glibc-2.2 changes From Alistair - fixed DEXE for newer FD kernels, that have no IPL.SYS From Alistair & Hans - prepare src/base/misc/disks.c for linux-2.4.x (BLKGETSIZE no long defineable via ) From Hans - cleaned up run_vm86() loop for do_call_back, now the same as the main loop. 2000/06/05 ver. 1.0.0.9 unofficial pre-release From Bart - patch to make SiS chipset card run on console - cleaned up bankswitching in env/video/vga.c - fix for mouse.c, save/restore bug - fix for mouse.c (SimCity virtual resolution of 2560x1920) no restricting the virtual mins and maxes. From Hans - made FD kernel 1.1.20 (Build 2020) bootable via the bootdir stuff (just needs kernel.sys within the boot directory, bootsector is generated on-the-fly) BTW: still needing Pat's command.com, the FD one still is buggy and doesn't allow you write/create files within the redirected drive(s). - removed forgotten '#if 1' for Bart's XWarpPointer improvement;-) 2000/06/01 ver. 1.0.0.8 unofficial pre-release From Eric (with hints from Bart) - mouse fixes along latest xmouse dicussions - hide the mouse in X when the mouse grab is active. - made set_curpos work for X From Bart - (hopefully) last fixes/enhancements to PL4 stuff - updated DANG and comments in the source (no src/docs/* yet) - mouse: trying to minimize the amount of XWarpPointer calls. From Hans - fixed above mouse changes, which broke 'autohiding' the X cursor while DOSapps drawing the cursor itself in graphics (win31,fs5...) (broke old and new stuff introduced in 1.0.0.4). - removed 'X_mouse_cursor' (hand), this irritates more than it serves. We aren't 'DOS compatible' here anyway, so stick on 'X_standard_cursor' (arrow). - set COUNT to 150 in instremu.c, 1000 was way to high for 'animated' graphics ;-) 2000/05/27 ver. 1.0.0.7 unofficial pre-release From Eric - patch to limit PL4 emuluation via signals happening instead of MASTERCOUNT - support for setting the vertical & horizontal display resolution for PL4 modes From Bart - further speed improvement for instremu.c - fixed a few bugs: zero/parity/sign flag updates with shift, some string insruction bugs. From Hans - fixed Bart's 'less portable' asm inlines ;-) (wasn't compilable with < gcc-2.9x) 2000/05/26 ver. 1.0.0.6 unofficial pre-release From Eric - patch to src/env/video/remap.c to make bpp24 work From Hans - freezing dosemu completely when on console and switched away while still handling async stuff (e.g. handle signals). involved files: dpmi.c, do_vm86.c, cputime.c, vc.c, timers.h 2000/05/25 ver. 1.0.0.5 unofficial pre-release From Bart - fix to do_vm86.c (vm86_GP_fault()) to simulate INT codes correctly - make 32-bit code run in instremu.c From Hans - re-activated mouse snapping in X.c (no dependency on PL4 modes) 2000/05/23 ver. 1.0.0.4 unofficial pre-release From Bart - further work on PL4 stuff - speeded up Logical_VGA_Write/Read - font correction - fixes for 5 bugs in instremu.c From Steffen - Mode X fixes (with hints from Eric) - remap.c fixes From Hans - 'autohiding' of mouse cursor und X graphics mode (relying on the application calling INT33 function 1, when it doesn't display the cursor itself) 2000/05/19 ver. 1.0.0.3 unofficial pre-release From David Pinson From David Hindman From Bart Oldeman's From Steffen - joint effort to make vga PL4/Pl2/Pl1 mode work under X (This stuff really works, good job guys ;-) Though this changlog entry is small, the patch is big and there need not any special usage description, just run Borlands bgidemo under X. 2000/05/19 ver. 1.0.0.2 unofficial pre-release From Julia A. Case - virtual modem support (socalled vmodem or "doors" patch) See src/doc/README/vmodem for Details (no Alistair, didn't fiddle with sgml yet;-) From Steffen - fix to dosdebug wrongly taking the mafile as pidfile in ~/.dosemu/run From Stas Sergeev - further fix to dosdebug printing a 'smiley' (0x1) and waiting for the next command instead of terminating on 'kill'. From Hans - further kludge for mapself mappingdrive (/proc/self/mem) 2000/03/19 ver. 1.0.0.1 unofficial pre-release From Alberto (...and Hans) - fixed gcc-2.95 miscompile (optimized away our code templates in env/video/remap.c) - fixed bug in env/video/matrox.c (introduced by mapping rework) From Hans - made sure we pass a NULL pointer to mmap() when not mapping fixed. Though it doesn't hurt to pass -1, the kernel may need some additional work while searching for a free address. - Put '#ifndef' around definitions of PAGE_SIZE, reason: glibc-2.1 is defining PAGE_SIZE in . - fixed base/init/memcheck.c, which uses the term 'PAGE_SIZE' with a value of 1024 while actually meaning granularity. Now we use GRAN_SIZE for this. - fixed problem with libslang and glibc-2.1 not exporting _IO_std*, when compiling static and 'slangforce on'. Now linkable in libc5 as well as glibc (recompiled slang-1.2.2 on libc5 with patch in contrib/slang/slang-1.2.2-dosemu.patch) - better comment on 'REQUIREMENTS for DOSEMU' in Makefile.main 2000/03/05 ver. 1.0.0 released ... tadaaa After a long time (8 years), and many many headache DOSEMU finaly leaves ALPHA/BETA stage and is ready for production. We could not realize all wishes, but the stuff which is in should be as stable as it can be with DOS in the background :-) Thanks to all people who helped to get this baby on its way, especially to all the former co-ordinators befor me: - Matthias Lautner, started the DOSEMU project 1992 - Robert Sanders, took over government 1993 - James B. MacLean, who was the longest staying on this project: 1994 .. 1996 Since 1997 being the co-ordinator of this exiting project, I'm happy that it finally reaches its aim. -- Hans Lermen, 2000/03/05 From Hans - removed experimental cpu-emu stuff - adapted configure stuff 2000/03/01 ver. 0.99.14 FORK-POINT released NOTE: This is the 1.0/1.1 forkpoint 1.1 will continue unchanged to form the new Hacker version. 1.0, the stable version, will be 1.1 with the experimental stuff removed. From Alistair - some fixing soundpatches (mainly DMA stuff, as of 0.98) From Hans - wrote new setup-bootdir (should replace setup-hdimage) (taken from 0.98) - udated src/tools/mkbindist (taken from 0.98) - removed obsolete old vm86 interface stuff and the configuration option 'novm86plus'. Also deleted src/doc/README/vm86plus. - checked and fixed some compiler warnings - docs: removed (broken and/or obsolete) video ibmset loglevel - docs: SECURITY, unix.com and system.com are no longer dangerous - docs: X, removed obsolete 'todo' list. - docs: commands, updated to reflect current state - docs: config, added description of the new mapping stuff - docs: dexe, binfmt_misc now is in every kernel. - docs: priv, fixed formatting error at section start - docs: configuration.sgml, TclTk is the only 'dialog' tool currently. - docs: DANG, removed threads and DANG recompile - docs: removed doc/Known-Bugs (was state 0.53pl58). We _have_ still bugs, but not those mentioned ;-) - docs: removed man/xtermdos.1 and updated dos.1 (xtermdos is broken, docs removed but script kept for compatibility) - docs: added help entry for $_mapping in runtime_setup.help.patterns - did docs recompile - did run mknewyear to update copyright header 2000/02/28 ver. 0.99.13.3 unofficial pre-release From Hans - removed threads code (definitively), because no one made real use of it and we would have to adapt to kernel changes anyway. (its not worth this work) - removed NetBSD code (definitively), because it was _totally_ broken since long time and no one of the NetBSD people bothered to fix it (now we have a cleaner source and more space). - prepared some docs for upcoming 1.0 release: doc/announce, dosemu.spec, dosemu-HOWTO.sgml, README/header*, dos.1, precompiled/autoexec.bat, 2000/02/26 ver. 0.99.13.2 unofficial pre-release From Hans - fixed bug in close_mapping() giving SIGNAL11 on -h option (thanks to Eric, who pointed it out) - fixed DPMImallocFixed for the mapself mapping driver driver. - disabled DPMImallocFixed (dpmi/memory.c) for the mapfile and mapshm mapping drivers because it makes trouble. As a DPMI host is not forced to fullfill a function 0x504 request for a fixed mapping, this seems not to hurt, atleast with the apps I tested. - variable order in which the mapping drivers will probe. It turns out, that binaries produced by gcc > 2.7.x and/or those linked against glibc are prone to break our /proc/self/mem kludge while gcc-2.7.2/libc5 binaries work fine in all cases. For this reason, depending on GCC_VERSION_CODE/GLIBC_VERSION_CODE, the mapfile or the mapself driver is prefered. - new dosemu.conf variable: $_mapping, which hold the prefered mapping driver (dosemu.conf, global.conf) - updated setup/* to reflect $_mapping (setup/parser/parser.y, setup/runtime_setup-new.menu) - added -fno-strict-aliasing in case of gcc-2.95 (base-configure.in) - (finally) changed /dev/cua to /dev/ttyS (base/serial/ser_init.c) - change Larry's address to jlarry@delanet.com - dosemu-HOWTO.sgml: changed all 'blabla' to `blabla' to avoid broken formatting (however, no docs recompile yet). - added 'liability disclaimer' prompt to avoid problems with laws in some countries. This was pointed out by a british journalist: "The problem arises from tort, or the ability the sue someone for negligence. Such liability can be overcome by making it clear that the software is used at the users own risk... ...The problem with this for Linux packaging systems is that the user must be warned of this disclaimer before they install the software." As I could verify, the journalist is right, so we print the disclaimer, ask for confirmation and save the disclaimer (including the confirmation) to ~/.dosemu/disclaimer. If that file exists, we won't prompt any more. From Eric and Michael (both found the same bug synchronously;-) - fix for mmap_mapping(MAPPING_SHM) in mapself.c not turning on privs before shmat(). From Arne - fix bug in DPMI when using a mov sreg,reg in 32-bit operand mode (0x40 as sreg doesn't matter in 16 bit, but does in 32 bit, now the test is correct) - fix typo in DPMI (FS was popped instad of GS) From Andris Pavenis - GNU Pascal (DJGPP port) needs a higher number of DPMI clients, DPMI_MAX_CLIENTS set to 32 From Antonio - addition to user_hook 'lredir' request to get the linux 'mountpoint' of a DOS drive redirection. From Frank - fixes to internal packet driver, involved files: bios.S, pktnew.c (good spotting, --Hans) 2000/02/11 ver. 0.99.13.1 unofficial pre-release From Hans - added INT15,AX=e801 support (get extended mem >64Mb) - Reworked the mapping stuff completely in order to make DOSEMU run on kernels >=2.3.27 (mmap(/proc/self/mem) has gone). - Implemented a generic mapping driver interface, which autodetects the needed mapping strategie. arch/linux/mapping/* and include/mapping.h - wrote three drivers to support the following startegie: - /proc/self/mem and IPC shm, exactly same behave as before. - using _one_ big IPC shm segment and mremap(addr, 0 ...) (Linus agreed on keeping shmat()+mremap(,0,..) functionality) - using file mapping (no IPC at all), if else fails. - These drivers also fix an existing (not yet known) security problem when running suid as user (_any_ user could read DOSEMU's IPC shm areas, IPC perms where set to 0755). - changed all instances of any kind of mapping (mmap,shmat) to use the above driver interface. Involved files are: base/misc/{dosio,shared,init}.c, dosext/misc/emm.c, dosext/dpmi/memory.c, env/video/{video,vc,hgc,dualmon,vgaemu,matrox}.c - Disabled or deleted mapping stuff, that we in principal do not need any further. Involved files: signal.c,dosio.c, shared.c,ioctl.c,dos.c,dpmi/memory.c,emm.c,vc.c - Introduced a new debug flag (Q) for the mapping interface. put a comment in on how to add further flags;-) - New parser command to specify a discrete mapping driver. Usage: dos ... -I 'mappingdriver mapfile'. Known keywords for drivers are: mapself, mapshm, mapfile. - updated man/dos.1 to reflect -D+Q (debugging the mapping stuff) 99/07/09 ver. 0.99.13 released From Egbert Eich - implemented PCI-BIOS support (PCI Cfg Type 1 + 2) All functions are implemented except 'special cycle support', 'get irq routing options' and 'set pci irq' (don't believe the missing ones are important for DOSEMU;-). ( good work, Egbert! --Hans) From Hans - changed man/dos.1 to reflect the new -D+Z (PCI) flag. - DANG recompile - docs recompile 99/07/07 ver. 0.99.12.3 unofficial pre-release From Alberto - dosdebug.c: Add segment to XLAT. Correct order of src/dest for SHLD/SHRD. - several assembler fixes (warnings from newest as in binutils 2.9.4). The first one in vesabios_pm.S was probably a bug too. - cpuemu bugfixes: SLHD,SHRD were wrong in 16-bit modes. Also jumps in REP from/to 16_16/32_32 could cause an infinite loop. Adjust reserved bits in flag word in the case of PUSH. 99/07/03 ver. 0.99.12.2 unofficial pre-release From Steffen - workaround for egcs bug (at least up to egcs-2.91.66). - bootdir stuff abandoning 'lredir', when running under DosC (can't redirect anyway) - adapted bootdir for PC/DR/NOVELL-DOS - allow wildcards (e.g. $_hdimage = "drives/*") in global.conf Look at src/doc/README/config for details. - implemented autotetection of used keyboard layout This involves 2 parts: 1. $_X_keycode = (auto) 2. $_layout = "auto" (independent from (1.) For details see src/doc/README/config. - adapted setup-dosemu to support keyboard 'auto' - fixed an 'access bug' in X.c. XOpenDisplay uses access(2) to check the rights of ~/.Xauthority and access(2) uses the _real_ uid, hence we need to do enter_priv_on(). Doing this is no security whole, because access(2) is suid-root aware and XOpenDisplay doesn't open any other files then ~/.Xauthority. ... and, if you want a secure DOSEMU you must not run it suid-root anyway. From Steffen and Benjamin C. W. Sittler - work around Linux-2.2.x's NFS locking problems (in fact ignoring locks on NFS) From Alberto - cmos 'BCD' fix (involved files src/base/dev/misc/{cmos,rtc}.c) From Hans - fix for multiple IRQs not going through in global.conf - docs for 'auto' and 'drives/*' as Steffen was too lazy ;-) - ./first-test now is executing a bootdir, changes in arch/linux/Makefile.main, tools/periph/Makefile, etc/config.test No etc/hdimage.test generated anymore. - fixed '$_vbootfloppy / bootoff' not working (errm, global.conf used the wrong parser command to set this). - the 'bootoff' fix leaded to fix an other longstanding bug: there now is no collision with defining vboot together with more then one floppy (of course), hence the check is moved out of the vboot part. - removed the restriction to define $_hdimage when $_vbootfloppy was given (was an older security restriction, which now is obsolete. Atleast this is what I think it was for;-). - additional note: when $_vbootfloppy is defined, bootA is default (can be overridden by -C commandline option) else bootC is default (can be overridden by -A and a real floppy). 99/07/01 ver. 0.99.12.1 unofficial pre-release From Hans - first steps to DOSEMU<->DosC cooperation code - INTe6 helper 0xdc used for DosC (DOS_HELPER_DOSC) - DOSEMU is now aware if running DosC and gets its version to check for compatibility. - DosC now is reporting, when it runs under DOSEMU - fixed bug in DosC (wrong pointer declaration (SDA)) - fixed bug in DosC (wrong handling of INT21, AH=30) - hook in DosC (kernel/inthndlr.c) to support INT21,AH=0x5f, but just to catch it in DOSEMU and print a debug log message. (will only work after the redirector is implemented in DosC) - workaround in MFS to fake DOS-4.1 SDA data layout, when Dosc is running (DosC has 4.1 SDA data layout, but reports DOS-3.1) - changed lredir.exe such that it prints a message and exits when DosC isn't capable of redirection - changed lredir.exe to print DOS errors in clear text. - new contrib/dosC/dist/kernel.exe, patch relativ to dosc10b2 put into contrib/dosC/dosc10b2-1.patch and contrib/dosC/readme.dosemu updated. 99/05/22 ver. 0.99.12 released From David Hodges - reworked dosemu HOWTO From Hans - changed Steffen's E-mail address in all sources - DANG recompile - docs recompile 99/05/21 ver. 0.99.11.2 unofficial pre-release From Alberto - Make several int15 functions that deal with protected mode dependent on config.dpmi. int.c (INT15) - avoid reentrancy in log_printf (coming from async signals) - removed 'void*' from address comparison in mouse.c - print 'secure off' warning to DOS console instead to Dprintf() (writing DOS console additionally to the logs), dpmi.c - return to dosemu_code dependent on IF in dpmi_eflags; this was the original way. Assuming that 'it helps returning anyway' implies 'in winos2', added test to do it. I have seen no side effects, and this helps the mouse under cpuemu. - make leavedos really leave also when called recursively. - lot of cpuemu changes, involved files: base/async/int.c, emu-i386/intp32/{cpu-emu.c,emu-ldt.c,Makefile} emu-i386/intp32/twin/intp32/{emu-utils.c,fp87.c,hsw_interp.h, internal.h,interp_16_32.c,interp_32_16.c,interp_32_32.c, interp_main.c,interp_modrm.c}, emu.c, include/cpu-emu.h - some typo/syntax fixes (pic/pic.c, dpmi/dpmi.h, do_vm86.c tools/tools86.c) 99/05/21 ver. 0.99.11.1 unofficial pre-release From Alberto - fixed bug in mouse.c checking linaddr instaed of DOSish address (run_pm_int never was called). src/base/mouse/mouse.c - Some missing 0x before hex constants in print_ldt() - EMU_GLOBAL_VAR had no benefit, removed - (again) some header fiddling for glibc (src/tools/periph/dosctrl.c) - fixed bug in src/dosext/dpmi/msdos.h, which became obvious after correction of INT15,AH=C0 (see patch from Jiuming Luo) From Grant R. Guenther - added -T debuglog trace for 'rep' IO (src/emu-i386/ports.c) From Nick Duffek - fix for mfs.c and INT21 function 3CH together with SHARE.EXE succeeding though it should not (MS-DOS INT21/3CH would fail if the file exists and is currently opened by another program). The fix is: replace "open(O_TRUNC)" with "open(); check sharing; ftruncate()" From Dave Coffin - y2k fix for CMOS byte 0x32 to report the correct century ( src/base/dev/misc/{cmos,rtc}.c ) From Michael Klein - An other y2k bug fix (in mfs.c), though it will hurt us only after 2012, we have to be correct. ( I bet there will by some oldfashioned poeple like me in 2012, who would complain otherwise --Hans ;-) From Hans - fixed bug in src/base/misc/utilities.c malloc'ing wrong size and not checking for valid function pointer. - fixed (again) a bug in the famous sigalarm_onoff() of utilities.c (dos -A wasn't working). Hopefully this was the last one :-( 99/04/22 ver. 0.99.11 released From Alberto - major cpuemu cleanup, bugfixes From Hans - docs recompile 99/04/21 ver. 0.99.10.3 unofficial pre-release From Marcus (bug report from gvz@pop.de) - fix (errm, workaround) for the 57 characters path limit in MFS (buffer overflow in cds_record). We block access to directories, that would exceed that limit. Blocked directories are returned as zero-sized files; we do this do prevent the user to create a directory with the same name. (hack, hack ... but it should avoid crashes atleast;-) From Wojtek Pilorz - changed dosdebug such that it can (re)read a valid dosemu.map (type 'rmapfile /anywhere/dosemu.map' at dosdebug prompt) From Josef Pavlik - added czech keyboard support: cz-qwerty, cz-qwertz, both are CP852. 99/04/20 ver. 0.99.10.2 unofficial pre-release From Josef Pavlik - fix for MFS creating new files with wrong ownership (mfs.c) From Wojtek Pilorz - fix for dosnet having problems to insmod properly (removed -DMODVERSIONS from src/dosext/net/v-net/Makefile) From Cyril Slobin - fix for MFS: under DOS (other then under Unix) renaming to an existing file must result in ACCESS_DENIED (INT21,AH=56). From Jiuming Luo - fix for INT15,AH=C0 returning the status in the wrong register (must be AH, not AL), src/base/async/int.c. From Levente Csiszar - creating directories in MFS did set the group readonly. e.g. DOSEMU running as user on the group 'dosemu' would not be able to work on these directories. Changed perms from 755 to 775 From Kyle Fortin - fix for mouse_event() not detecting a mouse handler when CS:IP has CS or IP = 0. (src/base/mouse/mouse.c) From Alistair - remove USE_SLCURSES from setup/demudialog/Makefile (this fixes the socalled 'submit-bug-report bug' ;-) From Hans - changed demudialog back to color mode 99/03/26 ver. 0.99.10.1 unofficial pre-release From Hans - further kludges to /proc/self/mem mmap kernel bug, making the address space EMM_PAGE_SIZE big solve the problem in some other special cases (/src/dosext/misc/emm.c). - fix for hang on floppy access (was a bug in utilities.c, sigalarm_onoff() ) - another security fix: userhook opened with root privs :-( (src/base/misc/userhook.c) - introduced do_call_back(), which makes it possible to call vm86 code from within the dosemu 32bit code and return to that place afterwards. In volved files: bios.S, misc/ioctl.c do_vm86.c, emu.h, memory.h. - new plugin hook 'plugin_ioselect', which hooks into io_select Updated src/plugin/demo to give an example on how to use it an the do_call_back() function. - new doshelper: DOS_HELPER_GET_TERM_TYPE. This allows dosemu aware DOS applications to adapt to the terminal type (async/int.c, doshelpers.h). Look at doshelpers.h for details. - added plugin_poll, this hooks into run_vm86() and run_dpmi() Involved files: src/plugin/{README.plugin,demo/*),do_vm86.c, dpmi.c,mkpluginhooks - close possible security implication: forbidding partition access when $_hdimage set by .dosemurc _and_ running suid-root. Those who need it (and have _realy_ thought about alternatives) have to specify it in /etc/dosemu.conf. - fixed bug in ./setup-hdimage not doing chmod/chown correctly - took over doc changes from 0.98.6 (no doc compile yet) - docs: hint for 2.2.x kernels & nfs mounts (option nolock needed) (src/doc/README/lredir) 99/02/26 ver. 0.99.10 released From Hans - introducing 'plug-ins', though the name may not be exactly appropriate;-) It means to insert whole trees of code under the directory src/plugin and configuring them automatically into DOSEMU at compiletime. Those trees could be distributed separately, not necessary by DOSEMU itself. For more details look at src/plugin/README.plugin 99/03/11 ver. 0.99.9.1 unofficial pre-release From Dima - fix for MFS (SEEK_FROM_EOF) assembling a wrong offset From Alberto Olindo - makeing numpad keys work for 'keystroke' From Steffen - fix for emulated FAT hidding some entries - fix for emulated FAT not updateing the CDS correctly From Marcus - typo fixed in peripher/dosctrl.c From Andris Pavenis - fix for peripher/dosctrl.c (including bits/time.h for glibc2.1) From Vladimir Kondratiev - fix for peripher/dosctrl.c, including features.h to define __GLIBC__. Now, we won the first price: 3 contributors for 4 lines of code;-) From Vincent Labie - fixed a whole bunch of typos/bugs in sigsegv.c,cpu-emu.c,emu-ldt.c (_very_ small part of a 24806 lines patch, which (sorry) can't go in as _one_ piece. Waiting for Vincent cutting it into handy chunks. --Hans) From Alberto - typo fixed in userhooks.c From Hans - better check for 'being on console', involved files: global.conf config.c, utilities.c, utilities.h. Function is_console() uses ioctl() on a FD to detect wether it's a console. This solves some problems when starting DOSEMU from an _other_ terminal, but redirecting stdin/out to /dev/ttyX. - now returning exitcode 123 on Ctrl+ALT+PgDn, this enables wrapper scripts to detect this case and restart dosemu (speudo-reboot) - new DOS_HELPER_GET_CPU_SPEED. - fixed a typo in sigalarm_onoff() (utilities.c) 99/02/26 ver. 0.99.9 released From Antonio & Steffen - preparation for 'kdos' DOSEMU frontend (src/env/video/X.c) Stay tuned for what will come soon ;-) From bwallac1@san.rr.com (sorry, he didn't mail his name) - fix bug when running dosemu in background and having to tty (getting ENOTTY as opposed to expected EINVAL) Involved file: src/base/keyboard/keyb_slang.c From Hans - korrected the -D+T such that it does (mostly) the same now as under the (former) old ports stuff. As we handle port dispatching differently, we needed to have a 'trace ports {...}' statement to restrict logging to a given class of ports. This has the advantage, that we now also can uses -D+T for software debugging. (involved files ports.c, config.c, parser.y, lexer.l) - changed all T_printf, that do not print 'IO-trace' information to i_printf, which is the proper flag for IO debugging. - disabled SHOW_TIME for production releases (utilities.c), this is only usefull for development and otherwise breaks -D+T. - fix bug in src/tools/mkbindist substituting $variables instead of taking them verbatim. (tricky bash-ism;-) - for now disabling sigalarm_onoff() in uhook_config(), is freezing dos for some seconds. We have to find an other workaraound:-( 99/02/25 ver. 0.99.8.2 unofficial pre-release From Steffen - for userhook: CancelDiskRedirection (disk.c) From Antonio Larrosa - included '' in dosctrl when glibc used. From Hans - built CancelDiskRedirection into userhook.c, such that now also 'lredir del d:' works from 'outside'. - fixed double // in uhook_lredir. - added 'config' uhook command (changes in init/config.c, userhook.c) This prints the contents of the config.* structure. - added 'SYN: command' to be outputed before any uhook command in case 'ack on' is set. This makes handshaking easier. ( Needed by Antonio to better parse the results ) - fixed reading from the uhook inpipe, more than one command in the buffer was ignored. - fixed strange sig11 while in leavedos(), the bad guy was run_unix_command() which was used to do 'rm -rf' on exit while the assumed context was already destroyed :-( Using privdrop() and system() now because we don't need to regain root privs here anymore. - moved sigalarm_onoff() from disks.c to utilities.c (needing it elsewere too). 99/02/21 ver. 0.99.8.1 unofficial pre-release From Steffen - some fixes to the emulated FAT stuff (fatfs.c, disks.c) From Hans - fix for bug introduced in 0.99.6.1 which breaks INT10,AX=1130 (trashing BP in bios.S). Using ESP instead to access the stack. - introducing 'user hooks', which supply a facility to control DOSEMU (via -U command line option) from a foreign process, e.g. a graphical frontend. Look at ./man/dos.1 for more. Involved files: man/dos.1, mhpdbgc.c, config.c, ioctl.c, base/misc/userhook.c, utilities.c, dpmi.c, do_vm86.c, emu.c, emu.h, mhpdbg.h, utilities.h, tools/periph/dosctrl.c - moved some code mhpdbgc.c to utilities.c in order to use them also for userhook.c - fixed append_pre_strokes() such that it can work also _after_ the first initial use (needed by userhook.c) 99/02/12 ver. 0.99.8 released From Markus Kossmann - missing in utilities.c made compile fail for glibc From Hans - fix to type_in_pre_strokes() (keyboard/prestroke.c) not doing 'keystroke "\Fx;"' - removed HOGTHRESHOLD from README.txt (hopelessly outdated) - wrote some minimum docs for Steffens 'bootdir' stuff. - Stated in the docs, that DosC can't cope with lredir (hope this stops the questions on linux-msdos). - docs recompile (including DANG) 99/02/11 ver. 0.99.7.1 unofficial pre-release From Steffen - introduced booting _directly_ from a (lredir'ed) Linux directory. No hdimage needed (this one was missing --Hans ;-). Involved files: src/base/misc/{disks.c,fatfs.c,fatfs.h,fatfs_boot.S} etc/global.conf, async/int.c, init/config.c, init/parser.y mfs/mfs.c, include/{disks.h,int.h} How it works: - in $_hdimage a directory can be given containing atleast IO.SYS, MSDOS.SYS (or what the appropriate DOS has as system files). It also may (but need not) conatin a non-standard bootsector file (name: boot.blk). - This directory is partially converted (on-the-fly) to a FAT type emulated disk (no data, only the directory enrties). A default bootsector also is faked, and if boot.blk exists this one is taken. From this emulated disk a boot attempt is done. When the first _file_ access happens, the redirector is called and from this point on (if the DOS supports a redirector) it becomes an lredir'ed drive. - In principal the emulated drive also works with the DosC kernel (which not yet has a redirector), but the emulated FAT-FS remains active and is readonly (writes are ignored). From Hans - fix for dosemu crashing on floppy access with no disk inserted and not able to read writeprotected floppies. 99/01/28 ver. 0.99.7 released From Steffen - hercules emulation in vgaemu only when dualmon not set - further reworks on vgaemu - changes in mapping strategie. - vesa_emu_fault in vesa.c removed, now vesa.c is completely replaced and doesn't contain any old code piece. From Florian La Roche - further adaption to newer egcs versions :-( (src/include/dosemu_select.h) From Hans - trying to solve the midnight flag thing correctly (base/async/int.c, INT1A,AH0), ... though, I may be wrong. Lets see if it solves the problem. - removed SMP check from base-configure, obsolete nowerdays and gets wrong under linux-2.2 99/01/09 ver. 0.99.6.1 unofficial pre-release From Alberto - further cpuemu patches (sync with dose9961.dff) - further cpuemu patches (sync with h1toh2.dff) - new README.cpuemu From Hans - preset the config structure with zero at the very startup. (suspecting accesses to uninitialized data, but I'm not sure) - Oops the 99/01/08 version was wrong :-( corrected 0.99.5 -> 0.99.6 - fixed global.conf not passing $_cpu = "emulated" correctly. - fixed rdtsc setting in global.conf (no hidden default any more) - made $_rdtsc = (on) the default again (wish from Alberto) - kludge: restricted asm contraints in PACK32_16 (intp32/hsw_interp.h) to avoid gcc bug in 2.7.2.x and egcs <= 2.91 (signal 11 on cc1) - put USE_GLOBAL_EBP into cpu-emu.h as a configure option for cpuemu and made it default (realy increases emulation speed a lot). 99/01/08 ver. 0.99.6 released From Hans - new script 'mknewyear' - executed 'mknewyear' ;-) 99/01/07 ver. 0.99.5.6 unofficial pre-release From Alberto - second round cpuemu patches (changes in the TWIN part) (Note from Hans: this is not yet working yet, some changes did not went in or were changed and have to be reworked by Alberto. This was just a too big patch;-) 99/01/07 ver. 0.99.5.5 unofficial pre-release From Alberto - first round cpuemu patches (changes in common parts) 99/01/07 ver. 0.99.5.4 unofficial pre-release From Alberto - decide for INT06-handling by redirection of INT06 and not by opcode 0f (sigsegv.c) - removed wrong "we shouldn't be here" in case of newint code (async/int.c) - fixed a bug in PIT2 (timers.c) always returning the state of the output pin instead of the count. - moved DPMI_show_state to dump.c - uninlined set_ldt_entry, checking only bit 2 of ss in ldt (dpmi.c) - introduced 'quiet' mode in cputime.c - when config.vga is defined, don't try to set a wrong entry in the port table (port.c) - further fixes on sig11 recovery (emu.c, emu.h) - introduced GETTSC() to read the TSC counter (timers.h) (modified it to be optimized by using "=A" constraint --Hans) 99/01/06 ver. 0.99.5.3 unofficial pre-release From Marcus - fix for misc/136 dosnet bug report (e.g. put back old loopback.c code for kernel 2.0.36) From A.R.Adams - fixes for src/arch/linux/debugger/dis8086.c From Wojtek Pilorz - fix for dosdebug not finding the pipes, when pid was given explicitely, but $HOME/.dosemu/run contains other running pids. - fix for do_mtools not taking filesnames containing whitespaces into account From Mislav Korona - added support for croatian keyboard ('hr' comes from 'Hrvatska'), iso8859-2 (hr-latin2) and cp852 (hr-cp852) From Hans - upgraded to slang-1.2.2 because of buffer overrun exploits in 1.0.3. Verified, that _both_ exploits are fixed. - fixed (now) possible buffer overrun in verror (utilities.c), because slang-1.2.2 fixed its exploit by passing the involved printout via (*SLang_Exit_Error_Hook)() to _our_ hooking routine. (well, so we now have it ;-) 99/01/06 ver. 0.99.5.2 unofficial pre-release From Steffen - Further work on VGAEMU, involved files: int10.c, timers.c mousevid.c, xmode.c, dpmi.c, ports.c, video/*, vgaemu.h New files: video/{gfxemu.c,hercemu.c,miscemu.c} - all standard VGA registers now are correctly initialized - monochrom textmode (0x07) functional, correct grayscales - support for HCG graphics mode (though, this was a jumper setable feature on old VGA cards, needs to be dosemu.conf option --Hans) - magicaly some display errors of doom have vanished - xmode.exe has a new option '-mode n' to set the desired graphic mode - some general cleanups - integrated Josef Pavlik's patches 99/01/05 ver. 0.99.5.1 unofficial pre-release From Pat - new DosC kernel, version 1.0 Beta2, built 1937 (however, still not supporting redirector) From Alberto - FreeDescriptor (dpmi.c) should sync with the real LDT not only with the LDT cache. From Hans - introduced a facility for temporary config options called 'features'. The purpose of these parameters is to switch between code or code pieces that in principal do the same, but for some unknown reasons behave different between machines. If a 'features' becomes obsolete (problem solved) it will remain dummy for a while before re-used. NOTE: 'features' are not subject to permanent documentation! They should be considered 'temporary hacks' A feature can be set (or given a value) such as 'feature {0 = 1}' (in global.conf) or via /etc/dosemu.conf such as $_features="0:1" $_features can hold a list of multiple 'n:value' pairs. NOTE: $_features currently isn't used by 0.99, but we need to to have it here for compatibility with dosemu.conf used by 0.98. - fixed a bug in global.conf ($_X_winsize parsed wrongly) - fixed typo in config.c: LX_KERNEL_VERSION 201126 -> 2001126 - disabled '#define asmlinkage' in memory.h, because its not used when not also is included, where it finaly is defined. 98/12/04 ver. 0.99.5 released From Manuel Villegas Marin - Support for up to 4 cdrom drives. You need to load the cdrom.sys with different args for each drive you want, such as device=cdrom.sys device=cdrom.sys 2 The DOS device names then are MSCD0001, MSCD0002, ... The preconfigured devices are /dev/cdrom, /dev/cdrom2 ... From Hans - updated the parser to reflext Manuel's changes: Just do cdrom { /dev/xxx } multiple times for each device, First one means MSCD0001, the second MSCD0002 e.t.c. - wrote some tiny documentation to reflect the cdrom.sys changes. - changed the semantic of the 'fast' attribute for ports{} slighly, The problem was that it was cleared strangely within ports{..}, such that ports{ fast 0x11 0x22 0x33 range 0x44 0c66 0x66} put the fast attrib on all above ports except 0x66, because only after 'range' portspeed was cleared. Now it needs a 'fast' again in front of 'range' to make the 'range' fast. 98/12/02 ver. 0.99.4.2 unofficial pre-release From Hans - re-applied the old slangcode :-( As it turned out people have difficulties with the new slangcode and some _real_ terminals seem not to be handled as in 0.66.7. As long as those problems aren't solved (or we have a good doc helping those people to use the new code) it will remain in as a compilation option. If I get more complains, the old code will be turned on as default. - fix for console not proper switching when doing graphics but not using raw keyboard. Many kudos to Andrea Omodeo who tracked this down. 98/12/01 ver. 0.99.4.1 unofficial pre-release From Alberto - fix for TASMX not running (wrong handling of selectors in INT21,fn38). Good work Alberto! From Hans - first temp fix to 8-char-limit-pasting in Slang terminal (found during IRC by Eric, Alistair and me) - introduced PORTABLE_BINARY compile condition together with -static - workaraund for glibc static binaries running on libc5 systems (parsing /etc/passwd ourselves when /etc/nsswitch.conf not existing), enabled via PORTABLE_BINARY in base/misc/utilities.c - some dualmon fixes (global.conf, video/dualmon.c) - made 2.1.126 timerstuff _run_time instead of compiletime dependend (init/config.c, emu-i386/cputime.c) - use --host=i386-any-linux for the binary distribution 98/11/21 ver. 0.99.4 released From Alberto - changed all his mail addresses From Hans - DANG remake - Docs recompile (including version update in heeder and header-tech) 98/11/21 ver. 0.99.3.5 unofficial pre-release From Florian La Roche - changes/fixes to make DOSEMU compile under all currently available gcc/egcs/glibc combinations (hopefully). (This was working 981112, hence what status we have 981113 isn't predictable --Hans :-)) From Zoltan Boszormenyi - patches, which touched the same issue as that of Florian, Zoltan's additional fixes were worked in by Florian. From Karl Kiniger - using pusha/popa instead of pushal/popal (dpmi.c), else recent binutils would complain. - fix for llseek, when glibc headers don't define them From Hans - changes in base-configure - generate unique version codes for gcc and glibc: GCC_VERSION_CODE and GLIBC_VERSION_CODE. Major/minor is represented as (major * 1000) + minor. - Also introduced 'ASM_PEDANTIC', which is set when a compiler would silently produce wrong code on overlapping clobbered registers in the asm constraints (which worked fine for gcc-2.7.1). - using -fno-gcse for egcs, because otherwise some realy strange things happen (last seen in config.c) All the above are propagated through CFLAGS and are available in the Makefiles. - checking for llseek prototype on glibc, defining NEED_LLSEEK_PROTOTYPE in config.h when needed. - Adapted Florians Patches to reflect the base-configure changes. - Adapted remaining GLIBC/GNUC #if's to *_VERSION_CODE. - removed some gcc/egcs warnings - removed EXPERIMENTAL from ASPI - made ASPI default in compiletime-settings - final finetuning on glibc-2.0.7pre6 stuff 98/11/21 ver. 0.99.3.4 unofficial pre-release From Shawn Pringle - small fix to global.conf ($_X_winsize typo) From Fabrice Bellet - small fix to global.conf (/dev/sda1 matching /dev/sda11) From Alistair - fix for gnats (gnats/get-email.sh, setup/parse-menu-sh) - better doc for _usage_ of sound within DOSEMU (doc/sound-usage.txt) From Hans - tried to fix a problem with base-configure not setting proper X11 libpath under certain conditions. - added some missing chipsets to the docs and setup-dosemu - some fixes to dosemu.spec (copied keymap twice to rpm) 98/11/20 ver. 0.99.3.3 unofficial pre-release From Alberto - added floppy parameter table to the BIOS, just for compatibility - added the 'atapi' keyword to floppy config. This is because current code assumes anything different from /dev/fd{01} is not removable, and dosemu crashes. Modified disks.c accordingly. - add a disk sector dump for debug purposes. - small fix for patch from Michael (forgotten to update struct printer lpt in base/dev/misc/lpt.c) - Enable 'cpu MHz' check in /proc/cpuinfo for kernels >=2.1.127 - mfs.c: wrong offset calculation prevented IDA from working - do_vm86.c: better debug messages around DO_VM86() - emu.c: found a way to exit dosemu when it gets a signal 11. As {_}exit() doesn't work in this case, we need to tell the kernel to kill ourselves. Added a setjmp/longjmp for this emergency case. Modified the driver closing order in leavedos, to have keyboard and video removed first. - added brackets around SETIVEC for safety - removed unused 2-letter variables in emu.h - retrace trick in timers.c. Please check if your system has better timing with games under X, this can avoid part of the 'too slow' or 'too fast' cases. - changes to attremu.c: removed (stupid) HAVE_GETTIMEOFDAY check, make it compile without X, export t_vretrace, moved old CGA snow code from ports.c and make it slightly better (1 VR every 256 HR, instead of 1:1) - the 'emuretrace' patch properly (== emulate video retrace also in console mode). To be checked, some games can run better. From Rob Clark - removed X_GRAPHICS definition from ports.c (CGA snow bugfix) From Hans - changed global.conf such that (optionally) a device can be given: $_floppy_a = "threeinch:/dev/fd0" - splitted ChangeLog into 'ChangeLog' and 'ChangeLog.ancient' (wish from Alistair for better parsing it) - changed src/tools/mkbindist to reflect ChangeLog splitting - disabled CPUSPEED in parser.y, we don't need it anymore, but we leave it in for a while for dosemu.conf compatibility. 98/11/06 ver. 0.99.3.2 unofficial pre-release From Steffen - implemented the some missing video modes: 1 & 2 bit CGA/VGA 98/11/06 ver. 0.99.3.1 unofficial pre-release From Michael - small 'more then one' printer fix (lpt.c) - fix for memory leak in lpt.c From Hans - fixed bug in aspi.c: did malloc() one entry too few - removed not needed '#include in both scsicheck.c and aspi.c - copied a cutdown version of linux/include/scsi/sg.h into our src/include/scsi/*. Now ASPI should compile regardless wether /usr/include/scsi is missing (glibc?). - added "host/channel/ID/LUN" construct to search for the right sgX device (aspi.c, scsicheck) - fix (in fact a kludge) for dosemu not running in a cronjob (base/keyboard/keyb_slang.c). In case of not being able to tcgetattr() we examine TERM for 'dumb', 'none' or 'config.cardtype==CARD_NONE'. In this case we set TERM and TERMCAP and ignore the rest. - updated doc/README/batch to reflect the 'cron kludge'. 98/10/31 ver. 0.99.3 released From Alberto - pentium timing: rdtsc is now off by default - timers and PIC: introduced 64-bit variables, Add return values to pic_request. Added DEBUG_PIT macro. Removed obsolete definition of pic_creq. - int1a: corrected backward time jumps (30 minutes bug) and midnight transition. - fixes to (wrongly) zeroed BIOS font tables. Mainly the wrong placed bios_f000_end label (bios.S). Moved bios_f000_* definitions into bios.h and deleted them at all other places. - fixed pic_sys_time calibration - some optimizations in msdos.h From Arne - implemeted int 10h, ah=1bh (src/base/bios/int10.c) - fix for wrong PIT latch command in src/base/dev/misc/timers.c 98/10/30 ver. 0.99.2.3 unofficial pre-release From Steffen - faster palette updates - VGA compliant treatment of palette registers - correct implementation of the Attribute Controller interface - PEL-mask support - simplification of DAC emulator interface 98/10/30 ver. 0.99.2.2 unofficial pre-release ( syncing changes from 0.98 to 0.99 ) From Hans - (problem reported by Wojtek Pilorz) Though protected by '$_secure="ngd"', the system.com command was a permanent security risc when people switched 'secure off' for some other reasons. Now I made system.com secure, even when 'secure' is switched off. This may change the expected behave for some braindammaged usage, but I won't reverse it any more ;-) - fix for $_X_font in global.conf (was not proper working) - replaced annoying error() with W_printf() in src/base/misc/disks.c on writeprotect. - small doc fixes Quickstart - added RPM spec file - changed setup-hdimage to set group 'dosemu' if possible - disabled parsing of old .dosrc 98/10/25 ver. 0.99.2.1 unofficial pre-release ( ... well, this is the ASPI release ;-) From Karl Kiniger - ASPI driver for DOSEMU, consists of a DOS stubb aspi.sys and dosemu builtin ASPI helper. Works on any /dev/sgX. The code was originally taken out of the Wine project but is wildly hacked to fit our purposes. ( Many kodos to Karl, who did a good job ;-) From Hans - introduced A debugflag for ASPI - changed Karl's solution such that ASPI doesn't need any special kernel patch. The only remaining 'patch' for the kernel should be a bigger SG_BIG_BUF in include/scsi/sg.h if needed (Karl's CD-burner needed atleast 64k and I for my scanner have #define SG_BIG_BUFF (128*1024-512) in my kernel). - changed aspy.sys such that it doesn't load, when no SCSI is available or not configured. - made ASPI configurable, we only allow those /dev/sgX, which are explicitely configured (anything else is inherently dangerous for naiv users;-). Look at src/doc/README/config for details. In compile-time-settings its 'aspi on/off' _and_ currently its protected via 'experimental'. - tested the ASPI with my JAZ drive, works flawless;-) - updated src/doc/README/config to reflect the ASPI driver - updated setup-dosemu stuff to reflect the ASPI driver - uodated DANG, but did not (yet) recompile the docs (avoiding the patch becoming too big) - added src/tools/peripher/scsicheck, which prints /proc/scsi/scsi showing the needed $_aspi entries for /etc/dosemu.conf - replaced error() print with d_printf() in src/base/misc/disks.c as it turns out some DOS-apps are doing installation checks by just calling their (normally hooked) int13 functions and just expect CARRY if not installed. - made show_regs dummy, when d.general (g debugflag) isn't set. (in src/base/misc/dump.c). It turns out, we don't print anything anyway in this case. - fixed a bug in the parser's 'foreach': on stacked foreach loops, the first run of the loop body was skipped (src/base/init/parser.y). 98/10/04 ver. 0.99.2 released From Rob Clark - fixed src/base/speaker/Makefile such that is compiles with X off even when no X-headers available. From Hans - docs recompile using sgmltool-1.0.7 (oh dear, the patch will be big) 98/10/03 ver. 0.99.1.3 unofficial pre-release From Oleg V. Zhirov - (partial) NLS support for MFS see src/doc/README/mfsnsl for details From Hans - converted Oleg's docs to sgml (no docs recompile yet) 98/10/03 ver. 0.99.1.2 unofficial pre-release From Alexander R.Adams - Changes to 80x86 disassembler (src/arch/linux/debugger/dis8086.c) - more (full?) 32 bit support - lots more fpu ops and a couple of cpu ops - better readable output 98/09/25 ver. 0.99.1.1 unofficial pre-release From Alberto - fix for >=linux-2.1.121 not having inux/head.h From Han Holl - 'nolinks' isn't supported by bash-2 anymore, replaced all instances in the Makefiles with 'pwd -P' From Steffen - Continued work on color allocation. - source cleanup of X.c & friends - support for 16 color X servers (e.g. XF86_VGA16) - textmode on all X servers, including 16 color & mono servers. - implemented int10 - palette functions. - (mostly) correct processing of palette registers - Removed quite a lot of DAC/color init code. From Hans - forced make to use SHELL=/bin/bash, else 'pwd -P' won't work. 98/09/12 ver. 0.99.1 released From Hans - fixed the severe security hole introduced in 0.97.9.2 (And yes, it was me who produced this glitch) 98/09/07 ver. 0.99.0 FORK-POINT released NOTE: This is the 0.98/0.99 forkpoint 0.99 will continue unchanged to form the new Hacker version. 0.98, the stable version, will be 0.99 with the experimental stuff removed. From Hans - removed old X-mouse stuff - removed old CMOS stuff - removed old Slang code - fixed mkbindist - removed creation of /var/run for 'make install' - fixed some tool scripts ("~/" wasn't expanded because quoted) - fixed src/tools/mkbindist - more precisely copyright definition (prefix to COPYING) Prefixed all source files with the proper copyright notice. (copyright laws are requiring this) - finally made referred to dosemu.org (docs udapted) 98/09/06 ver. 0.97.10.6 unofficial pre-release From Daniel Skarda <0rfelyus@atrey.karlin.mff.cuni.cz> - use of XSetWMProperties() instead of XSetClassHint() in X.c to properly set WMHints for window managers. From Hans - removed old port code - reworked docs to prepare vor 0.98 98/09/05 ver. 0.97.10.5 unofficial pre-release From Maxim Ruchko *McSim* - fix for cursor hidding on console (FoxPro), cursor is positioned _past_ right bottom corner. Dosemu did not handle this. - small fix to previous mfs patch. From Pablo Saratxaga - support for code pages 850, 852, 437 conversion to iso-8859-1, iso-8859-2 and viceversa. Code page selection via 'charset XXX', where XXX is one of ibm, latin, latin1, latin2. - fixed belgian and hungarian keyboard - added polish keyboard From Hans - modified 'code page selection' from Maxim such that it became a separate overall selection for all types of logins: moved it out of the 'terminal' statement (though its still tholerated within for back compatibility) - Updated the docs and setup-dosemu to reflect the change. ( within setup-dosemu its now part of the keyboard menu ). - fixed dead circumflex in de-latin1 map. - new script to automatically generate ./etc/keymap/* ... and used it to bring the table uptodate;-) - docs recompile 98/08/24 ver. 0.97.10.4 unofficial pre-release From Robert Rendell - fix for rep_outb in n_ports.c (wrong while loop) From Hans - fixed all similar instances of Robert's fix (above) in n_ports.c. What do we learn from this? Never put more then one statement (following a conditional) into one line ;-) - fixed -I 'keyload "keymap/xxx"', which was broken since 0.97.8.2 - added com3/com3 and ttylocks to {global,dosemu}.conf; updated setup-dosemu to reflect this addition. - default lock dir now is /var/lock. - moved all remaining 'hardcoded' paths (hope I found them all) into acconfig.h (config,h.in) making them runtime configurable. - made /var/lib/dosemu movable to ~/.dosemu/lib on a per user basis. made /var/lib/dosemu (systemwide) changable via dosemu.users ('default_lib_dir='). With this change only dosemu.users remains hardcoded (though, look next item). - Now checking for /etc/dosemu.users, if this doesn't exist, check if /etc/dosemu/dosemu.users does exist (this makes people happy, who like to have a dosemu directory in /etc). - moved /var/run/dosemu-midi to ~/.dosemu/run/dosemu-midi. - removed /etc/dosemu.loglevel, setting of log level now is done in dosemu.users ('log_level=2'). - removed src/dosconfig.c (way too old and obsolete) - fixed some more compiler warnings. - removed old 'rcs-IDs' - updated docs (but did not recompile, have to check my SGML tools). 98/08/23 ver. 0.97.10.3 unofficial pre-release From Alexander V. Lukyanov - fix for S3-Trio not saving/restoring all extra regs. From Klaus Reimann - better 'odd textutils' detection (gnats misc-120) From Maxim Ruchko *McSim* - Patches to the mfs code: - FoxPro now should work better - increase dosemu SHARE compatibility. 98/08/22 ver. 0.97.10.2 unofficial pre-release From Josef Pavlik (gnats misc-122,123) - fix for possible too small malloc (src/env/video/video.c) - fix for Text-refresh on non standard TEXT modes (src/env/video/X.c) From Hans - removed x2dos, nobody is using it anymore (functionality was longtime ago replaced by dualmon) - fixed (possible) /tmp-exploits (in scripts as well as in C-code), now DOSEMU uses _always_ $HOME/.dosemu/tmp, when needing tempfiles. All those local ~/.dosemu directories will be created silently, when not existing. - Moved /var/run/* usage to $HOME/.dosemu/run/*, regardless wether running suid-root or not. - Removed old tempdir stuff and the -T commandline option, which related to that, because we force our own temps below $HOME/.dosemu/* (see above). - Made base/misc/shared.c to create its tempfile 0600 and switched to priv_off, as we now don't use /var/run/* anymore. - removed some obsolete '#if 0' stuff - made 'distclean' and 'mrproper' an alias for 'make pristine' (some people not reading docs seem to expect it ;-) - use of autoconf version 2.12 instead of 2.10 leaded to a slightly different base-configure and include/config.h.in 98/08/05 ver. 0.97.10.1 unofficial pre-release From Eric - some X-mouse changes from 0.97.8.x4, which seem to solve the >25 row problem (BC in 43 line mode) and some games were the mouse couldn't pass below the middle of the screen. - fixes to x4 concerning w31 mousesnapping - mouse fixes along ideas/reports of Josef Pavlik (gnats misc 121) From Markus & Michael - fix for pdether From Tamminen Eero - small fix for ./ViewDocs From Hans - made newint the default 98/06/27 ver. 0.97.10 released From George K.Bronnikov - First step for 'DOSEMU in batch mode', atleast the output side. When setting 'video {none}' DOSEMU can run without any terminal and writes the DOS-stdout to Linux-stdout. You may play with it such as: dos -I 'video {none} keystroke "dir\rexitdos\r"' (for stdin we haven't yet a reasonable solution} Note: When 'video {none}' isn't given, the code is absolutely disabled. From Hans - fixed src/tools/mkbindist ( was out of sync ) 98/06/26 ver. 0.97.9.3 unofficial pre-release From Andreas Kirschbaum - fix for Borland-C (4.0) tlib not running - some wrong debug prints. From rwfries+bobf@dreamscape.com (gnats misc/104) - fix segfaults when dosdebug+xdos used together with /usr/include/gnu/types.h of glibc-devel-2.0.6-9 ( bug doesn't appear on libc-5, but the fix is correct, --Hans ) From Karl-Max Wagner - support for japanese jp106 keyboard (and before you ask why someone with a typical german name can do that: yes he can because he speaks Japanese and runs DOSEMU on a japanese machine;-) From Marcus - fixes to the dosnet stuff, now support new-int (lucky Eric;-) - Randomized dosnet ID, no clashes when running from the same tty. - moved srand() out of midid/oss.c to a more global place: emu.c (Alistair has to verify, --Hans) From Alistair - update to debug menu for setu-dosemu From Hans - adapted setup-dosemu to know about jp106 - docs update and recompile 98/06/26 ver. 0.97.9.2 unofficial pre-release From Hans - Second round of security fixes: got non-suid-root DOSEMU running. However, this has reduced features: no port access, no hardware access e.t.c, on console only pure terminal (Slang, no raw kbd). On X it does a lot more: I was even able to run win31 (hence, DPMI is secure now with the s-bit off). - Moved parse_dosemu_users again, this time _directly_ behind priv_init at top of main(). This allows checking, wether this user is allowed to run a suid binary. In /etc/dosemu.users there is a new keyword ('nosuidroot') which only allows to run non-suid root (copies of) DOSEMU. - In case of non-suid root we now use a ~/.dosemu/* directory (will create it if missing) for the stuff, we usually have in /var/run/*. Dosdebug was adapted to support that. - updated the docs to reflect the above changes. 98/06/24 ver. 0.97.9.1 unofficial pre-release From Alberto - fix a 'diabolic' missing '*/' in src/base/async/int.c - some changes to make egcs happy From Eric - removed unneeded int10 label/jump in bios.S From Hans - removed mailing to root (as it turned out to be a bad idea) Sysadm can check the logfiles instead. - moved parse_dosemu_users into init/config.c _before_ any parsing of commandline arguments. Should be quite securer. - fixed possible bufferflow in resolve_exec_path (parser.y) 98/06/15 ver. 0.97.9 released From Markus - cleanup to dosnet code, involved files: bios.S, pktnew.c and doc/README/dosnet. Note: this code needs the the old int code. - removed dosext/net/net/select_packet and its entry in set-permission, dosext/net/v-net/{dosnet.h,dosnet.c.kernel-2.1.x} (remark) From Hans - I too had a second patch from Markus, but this one changed too much and in addition broke our (just gotten working) setup stuff. So this has to be delay until after 1.0 However, I expect to get atleast a patch from Markus such that the cleaned up dosnet can run together with the new int code. (... if not, well then the old int code will be the default for 1.0) 98/06/14 ver. 0.97.8.2 unofficial pre-release From Eric - x1: quicken mouse fix - fix a little piece of code without a sanity check (src/base/mouse/gcursor.c ) - Added code to correct textmodes, mousevid.c (get_current_video_mode) - async/int.c: Readded old call to SETIVEC, mouse_post_boot, dos_post_boot, moved code to dos_post_boot, and mouse_post_boot - x2: fixes to keyb_slang.c - x3: further fixes to EMS&X bug - x5: emulated speaker fix, base/dev/misc/timers.c - x6: enhancing X color palette handling, video/X.c, dacemu.c (but sorry, the palette in 4-bit ega mode is still wrong, --Hans) - x9: fixed bugs in global.conf - fixed line counting and error reporting in lexer.l, parser.y - x10: readed old new_set_video_mode for 0.97.4, broke non-X compiles From Hans - renamed new_set_video_mode to X_set_video_mode to avoid further confusion. - some small 'adjustments' to x1,x6,x9 from Eric. 98/06/13 ver. 0.97.8.1 unofficial pre-release From Alistair - Tcl/Tk adaption for compiletime stuff in setup-dosemu From Hans - fixed .dosemurc stuff/changes in runtime_setup.tk not being relative to global settings (yes Alistair, it was me who messed it up ;-) Also, when resulting in an empty .dosemurc, we delete it (else src/base/init/parser.y can't cope with it) - changed setup/parser/parser.y such that it can cope with non-existing/empty files. - temp. disabled 'Debugging' submenu until it realy works - added browser.tk, which is sourced by both, compiletime & runtime This contains functions to popup a brows window and to show Help. - wrote the Tk wrapper menu (setup-dosemu can only handle dialog) - added Help to runtime-setu via viewing the appropriate part of chapter 2 of README.txt - fix a bug in compiletime_setup.tk not using the proper file for default-configure (configure went berserk) - added to compiletime_setup.tk: - forced 'make pristine' before doing configure, if Makefile.conf exists (too dangerous to change settings without it) - display of ./configure results in a window - asking for 'compile' and running make, result in a window too - help is now working - Changed 'DOSEmu' to 'DOSEMU', as this (all capitals) is the official form of writing it ;-) 98/05/31 ver. 0.97.8 released From Alistair (+ Hans) - new Tcl/Tk based runtime setup. We cuurently only support that and have disabled the dialog based stuff until we get that fixed/ported. Maybe we leave it in this state for 1.0. The main ./setup-dosemu wrapper will only start the Tcl/Tk stuff when available, else an informative message will be printed. From Hans - added dos.1 to ViewDocs 98/05/28 ver. 0.97.7.1 unofficial pre-release From Eric - Fixed Ctrl-Alt-Fn for 'video {vga}' and raw keyboard. (wrong initialization order ) - Fix for strange EMS bug under X, changed 'xresize' made the bug disappear, but even the gurus don't know why :-( From Hans - fixed bug in mhpdbg.c not setting ownership of debugger pipes ( running as user wasn't able to use dosdebug ) - added a script 'ViewDocs' for users, that don't know 'less' ;-) 98/05/03 ver. 0.97.7 released From Micheal (via Alistair;-) - newest sound patches 98/05/03 ver. 0.97.6.1 unofficial pre-release From Eric - fix for the 'beep' in INT10 AH=13: speaker_on(125, 0x637); From Arne - fix for video.c not setting screen_adr From Hans - fix for global.conf not correctly detecting an old style dosemu.conf ( to make Alistair happy ;-) - first step to remove 'fix pathes' (for config stuff) 98/04/25 ver. 0.97.6 released From Steffen - rework of set_video_mode (int10.c) - using backing store now in text modes (n_X.c, X_USE_BACKING_STORE) From Hans - removed old X stuff (no NEW_X_CODE defines any more) - docs recompile (including DANG) 98/04/24 ver. 0.97.5.1 unofficial pre-release From Toshio Sengoku - fixes to INT10 AH=13 (write string). Now properly handles ^M, ^J and backspace. From Eric - fix for typo (/x instead of /dev/null) in base-configure.in From Hans - temporary disabled use of setup-dosemu, because our users get confused and _are_ using it though it doesn't work correctly. ( we _really_ need to fix that ) - disabled bug-reporting, when the user missed to give a description ( realy ugly hack ;-) - removed trailing ^M^J in src/commands/precompiled/autoexec.bat ( bogus 'command not found' on startup ). Well, now we have the problem with diff/patch due to the missing \n :-( - made 'newport on' the default again (seems to be stable enough) 98/02/29 ver. 0.97.5 released From Hans - upgraded to Slang-1.0.3, as we need _this_ version for demudialog I made 'slangforce on' the default. From Alistair - changes to make demudialog compile with Slang (slcurses) (colors are odd due to bugs in SLang, so BW is the default) 98/03/20 ver. 0.97.4.5 unofficial pre-release From Steffen - fix to global.conf not setting mitshm - fixed/removed RESIZE_KLUDGE - fix for mousecursor in graphics (was defined on _each_ X-event) - reworked X-colormanagement: - not crash any more when out of colors - switch to private colormap, if the global one gets exausted sideffect: some colors may be missing in textmode (become black) ... fix for this is 'in progress' ;-) 98/03/20 ver. 0.97.4.4 unofficial pre-release From Alistair - This patch contains (unfortunately) too many changes for me to remember them all. The main parts are Michaels patches to limit the size of transfers (and other fixes) and Kenneths patches to clean up the code, fix some small bugs and make the debug code more flexible. I have (as usual) hacked about and probably broken large chunks of it. From Hans - some small fixes to global.conf (checked for version) - Again a _desperate_ try to avoid people using configure directly. ( a user 'just saw configure.in and executed autoconf' ) Why the hell do we have a Quickstart ???!!! Moved configure.in to base-configure.in and changed mkconfscript accordingly. ... hope this helps :-( 98/03/20 ver. 0.97.4.3 unofficial pre-release From Hans - introduced .dosemurc (this replaces .dosrc). If this is found, the new style is used and this file is included by global.conf under 'user scope' (hint from Eric). This means it has all c_* classes undefined and can only change enviromnent variables in its own isolated name space (prefixed with 'dosemu_'). Look at global.conf for details. - changed -f option to replace .dosemurc (instead of .dosrc). As the -f option is quite new anyway, it should not be a compatibility problem. - realized partition access via dosemu.conf - suffix " +hd" to $_vbootfloppy allows virtual floppy + $_hdimage - $_printer is now a _list_ of printer names (LPT1 .. LPT3) - fixed ./first-test (etc/config.test) - renamed KERNEL_VERSION to LX_KERNEL_VERSION to avoid name clash with (new) 2.1.x kernels headers. - udated and recompiled the docs 98/03/12 ver. 0.97.4.2 unofficial pre-release From Steffen - fix for NEW_X_MOUSE not snapping win31 mouse - fix for not handling repnz (f2 prefix) in do_vm86.c, dpmi.c - new DOSHELPER: DOS_HELPER_XCONFIG. This takes input from the new xmode.exe to set X configuration from within the DOS session. (hope Steffen also writes the docs for it ;-) - hiding the main Xwindow (text) via env.variable DOSEMU_HIDE_WINDOW ( may need to be moved to some config.* variable) Purpose: when starting an graphics application as the only app for this session (maybe via DEXE), only the graphics window shows up, hiding the fact that it is run under dosemu ;-) From Hans - make xmode.c 'norm-conform' ;-) and re-compiled it - adapted and cleaned up src/commands/Makefile - made 'newxmouse on' default in both compiletime-settings 98/03/01 ver. 0.97.4.1 unofficial pre-release From Alistair - fix for send-pr reporting wrong version when running under buggy bash2 From Albert K T Hui - more glibc fixes - make use of __USE_* defines (moved by Hans into configure) (__USE_GNU for MREMAP_MAYMOVE and CRTSCTS, __USE_UNIX98 for XCASE) - moved stdout inside main() in mkfatimage16.c to make glibc2 happy From Hans - fixed bug in configure.in not detecting missing as86/ld86 correctly - fixed bug in global.conf not setting X when TERM != xterm - installed glibc check in configure.in and then globally define __USE_* (from Albert's patch) - changed yyerror to yywarn for when a macro isn't found on macro expansion. This may be empty anyway. (in lexer.l) 98/02/28 ver. 0.97.4 released From Kenneth - fixed diabolic 'usedoptions[]' in src/base/init/config.c From Steffen - patches to mouse support under X-grafic - new feature: mgrap_key, defines a Keysymbol (after Ctrl+Alt) to use when giving xdos _exclusively_ the mouse (make playing games easier). Can be set via $_X_mgrep_key. Default (empty) is off, A good value is "Home". From Hans - did what Steffen missed: building X_mgrep_key into the parser adapted global.conf and changed the docs ;-) - made Steffen's mouse patches a compiletime config option because it breaks win31 mouse completely (newxmouse on|off) - reworked ./default-configure a bit: - compiletime-settings now can be multi line. - './default-configure -d' uses 'development settings' from file 'compiletime-settings.devel' - compiletime-settings.stable became compiletime-settings - fixed the 'old port code'. Why? Well this _was_ intended to be removed completely, however, seeing the latest strangeness in dosemu behave, we have to test, wether this may come out of some things we did not do correctly in new code (this applies to _all_ new code, not the port one alone). So, when having problems, first try to isolate by configuring some old code. 98/02/27 ver. 0.97.3.3 unofficial pre-release From Steffen - fix for doom not restoring video mode (BIOS_VIDEO_MODE not set correctly, src/base/bios/int10.c) From Marcus - fixes for libpacket.c, pktnew.c, dosnet.c (... removal of some 'facelifting' hunks by Hans;-) From Eric - trying to work around glibc2 header 'philosopy' (again): libpacket.c, ipxglt.c, ipx.c From Kenneth - enhancements to dump_config_status (printers, debug_flags) From Hans - made GetDebugFlagsHelper usable for general purpose and used it for Kenneth's 'debug_flags' ouput. - fixed '-D+a' also setting CpuEmu's 'e' flag, even when not configured in. 98/02/27 ver. 0.97.3.2 unofficial pre-release From Eric - udaptation to Slang-1.0 - 'error' from utilities.c now goes over 'verror' to simplify passing of arglists. (used by sl_exit_error); - made more room for INT16 code in bios.S (now starts at 0x3500 behind the IPX code). - fix for new do_int together with dpmi (src/base/async/int.c) - fixed a stupid bug in signal handling, (sigaddset expects _one_ SIG to be added, not a bitmask of signals). - fixed compiling without X support. From Eric & Reinhard - divers fixes to (hopefully) get extended keybord keys right 98/02/15 ver. 0.97.3.1 unofficial pre-release From Eric - fix for kernels < 2.0.32 not having ENOMEDIUM in errno.h (cdrom.c) From Kenneth - enhancement to INT8-serializer-hack of DPMI (in_dpmi_pm_int==8) involved files: dpmi.[ch], dev/misc/timers.c - fixed bug in init/config.c: missplaced brackets for if-clause From Klaus Reimann - fix for global.conf (missing bracket) From Hans - made dosdebug to capture _any_ leavedos(!=0), normally exceptions were captured before anyway. - fixed a small buglet in the recent debugger enhancements - fixed -D+D debugflag, such that it now _realy_ prints int21 events (needs setting int21 redirection for that) - fixed mixed misuse of d.dos (ds_printf) in other places: 'd.dos' for DOS-ints and 'd.defint' (di_printf) for 'all other' ints. ... obviously - put in Pat's recent kernel 1933+, now can handle more then one drives (which means the '+' above ;-) 98/02/08 ver. 0.97.3 released From Alberto - fix for cdrom errors on startup (only kernels 2.1.x) - added $_hardware_ram to dosemu.conf From "Alexander V. Lukyanov" - some mods to make 0.97.2 compile on RedHat-5.0 From Steffen - closing a security hole together with 'shell' command in /var/lib/dosemu/global.conf From Hans - cleaned those files in src/doc/README that confused 'patch' because of missing new line at EOF 98/02/07 ver. 0.97.2.1 unofficial pre-release From Hans - some bug fixes to setup-hdimage (those bugs are in 0.66.7 too) - mkdexe know will accept '/' as target name. I found '/', then 'dirname path' replaces '/var/lib/dosemu' - put in Pats new Dosc (Beta1 build 1931) for testing - made some enhancements to dosdebug to easy further debugging of DosC: - with option -H1 dosemu now will wait for the dosdebug terminal to come up and then goes into 'stop' mode. This allows debugging from the point were we jump into the bootsector (7c00). - dosdebug command 'e' enhanced, now accepts a list of values of different type and lengh. 'ed' defaults to decimal input and registernames can be used as values. When the ADDR is a '-', the last used address is take (writing in consecutive locations - mhp_pars now handles quoting correctly ("aa bb" will go into _one_ arg) - logging can now redirected to the dosdebug terminal (command: 'log on' and 'log off' respectively. - introduced 'log break points', which listen on the debuglog output stream and put the emulation into 'stop state' when when a reg.expression matches (commands: 'bplog ' and 'bclog ') - break point settings are now refused when not in 'stopped' state because this leads to problems (was always so). - fixed some logprints, which did print notprintable characters ( mainly in src/base/keyboard/keyb_slang.c ) We have now the helpers 'strprintable()' and 'chrprintable()' in utilities.c. - docs update are recompile (fixed some sgml typo's too) 98/02/02 ver. 0.97.2 released From Hans - Due to arguments from Steffen, decided to rearange dosemu.conf again. Now dosemu.conf just contains the GLOBAL_SETTINGS part. The 'script' part is moved to /var/lib/dosemu/global.conf. Hope this makes it more easy for our (normal) users to fiddle with the configuration. - fixed $$_speaker bug in global.conf (dosemu.conf of 0.97.1) - (fixed) $_secure such that 'secure off' can be set. - added $_rdtsc, $_cpuspeed, $_pci to dosemu.conf - fixed cpuspeed setting in parser.y (now 'cpuspeed 166.666' works) - added some missing printouts for -h opion (config.c) - updated the docs - chapter 2 of README.txt -> chapter 2 README-tech.txt - new chapter 2 of README.txt describes new dosemu.conf - updated Quickstart and man/dos.1 98/01/30 ver. 0.97.1.2 unofficial pre-release From Alberto - the RTC/CMOS/int1a patches (tested with ndiags). - removed egcs warnings ('ambiguous else' and 'default to int') - enhancements to the disassembler - new way of turning off debug log after console switch - fixed bug in the definition of CONF_NLPT 98/01/30 ver. 0.97.1.1 unofficial pre-release From Marcus - rest of dosnet rework From Sergey Suleimanov - fix for FoxPro "Record not available" bug in conjuctions with lredir'ed drives (mfs.c) From Kenneth - fix: Print Shop Delux not recognizing 'printer online'. From Reinhard - (first) patch to get the keypad-Ctrl (E0) stuff better. ( well, atleast this one should be in so we don't forget it, looking forward to get the rest from Eric ) From Hans - docs recompile 98/01/15 ver. 0.97.1 unofficial pre-release From Marcus Better - First round of a libpacket / dosnet rework (needed for 2.1.x) ( note: the chances to dosnet aren't yet in, have to consult Marcus again ) 98/01/15 ver. 0.97.0.3 unofficial pre-release From Pasi - fixed 'missing KeyRelease' when out of window focus in keyb_X.c ( thanks Pasi, that also fixes 'arrgh, hit wrong Alt-Fx' probl. :-) From Eric - no-cursor-bug-fix (console), int10.c, console.c (x26) From Alberto - adapt /proc/cpuinfo scanning to kernels 2.1.x From Hans - introduced 'runtime' kernel version checking: kernel_version_code. 98/01/15 ver. 0.97.0.2 unofficial pre-release From Eric - Changed ubyte_t to Bit8u (in video.h, bios.h ) (x10) - Changed include of to "bitops.h" ( in mhpdbg.c mhpdbgc.c, interp_32_16.c, interp_main.c, ports.c ) (x11) - Updates the cursor in grahics mode now too, mouse/mouse.c (x14) - Allow threads to compile with glibc (include/lt-threads.h) (x20) - removed __u*: include/cpu.h (glibc2 problem) (x21) - further glibc fixes, include/types.h (x22,23) - docs for Priv-usage (x24) From Arne de Bruijn don't set video bios variables for native VBIOS, video.c From Hans - 'desperate' try to disable direct execution of ./base-configure ( '#! /bin/bash' and x-bit removed ) - fixed console detection in etc/dosemu.conf 98/01/14 ver. 0.97.0.1 unofficial pre-release From Kenneth Corbin - fix for >16bit portnumbers in src/emu-i386/n_ports.c From Pasi Eronen - fix typo in vga_emu_init(), in src/env/video/vgaemu.c From Arne de Bruijn - fix for seek_from_eof fails on lredir'd drives (mfs.c) From Hans - small optimization to power_of_2_sqrt. (removed silly compares) - fixed (longstanding) typo in parser.y: CARD_EGA was treated as CGA - fixed too late initialization of 'mem_names' in src/base/init/memcheck.c - enhancements to parser.y /lexer.l. After long thinking and hesitating I decided to use real number during startup /configuration. We won't use math support later but I verified, it doesn't do any harm during start up. Hence for future configuration stuff, we can avoid such tricks as 'cpuspeed 500 3' and can have 'cpuspeed 166.666'. - full expressions evaluation, automatic real/integer evaluation. - string expressions - using environment variables ($XXX) in (string) expressions - setting environment variables possible - preset some environment variables before running the parser (KERNEL_VERSION_CODE, DOSEMU_VERSION_CODE, DOSEMU_EUID, DOSEMU_UID, DOSEMU_USER, DOSEMU_REAL_USER, DOSEMU_HOST) - new: 'if ()' statement - new: 'while () ... done' statement - new: 'foreach $xxx () ... done' statement - new: shell() statement - new: macro expansion ($$xxx) - ... and lot more, have a look at README.txt - ./etc/config.dist became ./etc/dosemu.conf ( rewrote the whole stuff, now checks for a lot more and sets configuration more correctly in the first place ) - updated the docs accordingly - new commandline option to aid debugging of configuration: dos -h[0-2] -O 2>&1 prints all usefull configuration data and exits. - new commandline option: '-f dosrcfile', which overwrites reading of ~/.dosrc - fixed _some_ (not all) sgml2tex errors in src/doc/README ( man, are those '...' a mess, difficult to find anyway ) because they were 'hiding' a lot of valuable info. 97/12/13 ver. 0.97.0 unofficial pre-release, VERSION BUMP From Pasi - patch for color allocation problems with -bpp 8 in src/env/video/X.c ( tries to use existing colors if they're close enough, and even if allocation fails, some reasonable colors are chosen). From Hans - made simple integer_sqrt() to avoid FPU usage in Pasi's patch ( simple power of 2 iteration algorithme, if some skilled mathematician can make it better, I wouldn't be angry ;-) Anyway, for the above purpose it takes max 9 iterations. NOTE: This is the release that prepares for the 'fork point' to 0.98/0.99. If 0.97 has stabilized it'll become (unchanged) 0.99, and minus some to-back-out-stuff it'll become 0.98. 97/12/12 ver. 0.67.16.8 unofficial pre-release From Robert de Bath - new enhanced Slangterminal code (src/base/keyboard/keyb_slang.c, src/env/video/terminal.c) From Eric - some fixes to Robert's code From Hans - cleaned up Roberts code such that a diff between the old and the new code is better readable. - made compilation of the old Slang code a configure option (--enable-old-slangcode) and moved the old code to o_keyb_slang.c - docs recompile 97/12/10 ver. 0.67.16.7 unofficial pre-release From Karl Kiniger ( ... ASPI-Karl ;-) - fix for src/dosext/misc/emm.c returning wrong error code on 'get handle by name'. From Eric - patch to make the enter/leav_priv* stuff working with threads (see README.txt, chapter 'Priveleges and Running as User') From Hans - small changes to Eric's patch such that it checks the depth. - adapted the the newer 0.67.16.x stuff to the new priv stuff - docs recompile 97/12/07 ver. 0.67.16.6 unofficial pre-release From Xavier Perramon - fix to make creation of SOCK_PACKET possible for a user in src/dosext/net/net/libpacket.c*. From Hans - restrictet the above patch for Xavier Perramon to be legal only, when 'secure' is off. - new tools in src/base/misc/utilities.c to handle /proc scanning - changed cpu/rdtsc detection to above scan tools and realized check for cpuflag 'tsc' to allow use of the cycle counter. (in src/base/init/config.c) - '#if 0'ed prep for the a possible Ctrl-PgUp fix ??? (src/base/keyboard/serv_backend.c). Reinhard promised to to fix this better ;-) 97/12/06 ver. 0.67.16.5 unofficial pre-release From Eric - new interrupt handling stuff (do_int patch). - do_int changed such that caller_function is called only if an interrupt vector is not revectored. - run_int now handles calls pic_cli() - In do_irq 'do_int' is called instead of run_int. - Added a function 'run_caller_func'. - int08, int09, int_a_b_c_d_e_f, int_16 removed. - Disabled redirection of the default case for int1c. - Updated mouse code to use the proper address for redirection the first time. - int33: Replied to question about post_interrupt handlers. - src/emu-i386/do_vm86.c (run_vm86): Sync IF, VIF and the pic_state immediately after returning from the kernel. Removed bogus IF/VIF handling in vm86_GP_fault.. - src/dosext/dpmi/dpmi.c (run_pm_int): Never call run_int now, always use do_int instead. Moved dpmi_cli out of vm86 path. do_int handles that chore on the vm86 path and doesn't always clear the interrupt flag. - src/base/mouse/mouse.c: Disabled unused support for int 0x74 - src/base/dev/pic/pic.c (do_irq): do_irq noe calls do_int. Removed the unnecessary run_int sanity check. Removed pic_cli, on the way to call do_int as do_int will not call that itself it needed. - src/base/bios/bios.S: Slightly modified the default interrupt 0x42 entry point so that it works in the new scheme. Modified the entry point of int1c to call into dosemu. From Hans - due to some problems with X refresh (why?) made the do_int patch a compile time option (--enable-new-intcode). I don't expect this problem to stay for ever, so its only put in base-configure. ( './default-configure --enable-new-intcode; make' ) - run_int became 'real_run_int' and, depending on new or old int code, a macro 'run_int' is pointing to 'real_run_int' or 'do_int'. 97/12/05 ver. 0.67.16.4 unofficial pre-release From Eric - bug fixer for the disk code, sometimes disk_close_all called before disk_init and closing stdin. (src/base/misc/disks.c) - If the hogthreshold code is disabled _don't_ sleep. (src/base/async/int.c) - Fix to make pic_sti and pic_cli more robust. (src/include/pic.h) - Modifications to cpu.h in preperation for the do_int patch From "Robert de Bath" - fix to allow Ctrl-Alt-Fx keys to be pressed on the Slang & the X keyboards, don't eat them. (base/keyboard/serv_xlat.c) From Pasi Eronen (note his new E-mail address!) - fix for serial stuff in ser_irq.c - changed E-mail address 97/12/04 ver. 0.67.16.3 unofficial pre-release From Hans - further working on keyboard cleanup. In principal no functionality change was done (except keytable loading), the keyboard code behaves exactly as before. - moved all key map related config.xxx stuff into one pointer config.keytable, which is a struct, that holds all needed information. The keymaps.c has a list those struct for keytable aivalable (keytable_list[]), such that this list is searched in parser.c to set the appropriate config.keytable. - this new struct also contains 'flags' for special handling currently it only hold KT_USES_ALTMAP, which know is used to determin wether the R_ALT handling should be done (former check against KEYB_US) - cleaned up the various DEAD_* references, know all is defined in keymaps.h - removed double definitions of KEYB_* in emu.h, keymaps.h - introduced a new kbd layout: 'keyb-user', this one is identical to 'us', but is intended to hold complete user defined keymaps. Its know the default, when nothing is specified, so the US table won't be overwritten, when doing a keytable load. - new dosemu.conf statement: 'keytable', for more see README.txt It makes it possible to either change an existing key map or to replace (load) it completely. It is also possible to dump all keytables to a (asscii) file, the format is suitable fo direct include into dosemu.conf. - deleted - discrete "dumped" keytables now in ./etc/keymap, which will be copied on install to /var/lib/dosemu/keymap. Here the user may change them to fit his/her needs and load them such as -I 'include "keymap/de-latin1"' - some cleanup in the lexer.l rules. To avoid clashes between the special characters "|{}=," and the _not_ quoted strings. Now you need to quote a string, when it contains those characters, e.g. file,xxx or file+xxx.c has to become "file,xxx" and "file+xxx.c" respectively. - the keymap 'no' now is named 'keyb-no' to avoid name clash with the boolean 'no'. (in lexer.l) 97/11/30 ver. 0.67.16.2 unofficial pre-release From Eric - back ported keycodes stuff to new kbd ( ...thanks, that makes it possible to delete the old kbd code ) From Hans - removed old kbd code and renamed src/base/keyboard/n_* to * - include/speaker.h missed a '#include "types.h"', it compiled ok in the past, because NEW_KBD wasn't defined (even when) because also config.h wasn't included ;-( 97/11/29 ver. 0.67.16.1 unofficial pre-release From From Ulrich Weigand - (gnats report files/70) fix for wrong open mode handling in MULTIPURPOSE_OPEN of mfs.c From Hans - fixed misplaced 'free()' in src/base/init/parser.y - fixed not correctly working '-I keystroke' stuff for new keyb. (recode(), type_in_pre_strokes() in src/base/keyboard/prestroke.c) - forceing KEYB_US when in X _and_ not X_keycodes also for new kbd. ( prep for Eric's keycodes backport and fix for '-I keystroke') - further rework of commands stuff, reworked commands/detect.h. NOTE: No longer using '-a' flag of as86 because it results in strange compilation (call far ptr * does generate a near call). Changed all *.S which relied on the 'asld' syntax. - changed macros86.h to use 'br' for JMPL, well it turns out that this (non-Intel) as86-memnonic _does_ in fact generate a near jump. ( no docs are telling this:-( ). - rewrote the simple C files to as86 such that we clean up the 'precompiled' directory. - converted dumpconf.asm (MASM) to dumpconf.S, know having dumpconf.sys instead of precompiled/dumpconf.exe - converted mgarrot.a86 to mgarrot.S. - renamed 'chdir.com,getcwd.com' to 'uchdir,ugetcwd' respectivly (the 'u' stands for Unix) the old names were misleading as the directories involved _are_ Unix ones (not DOS). - fixed a bug concerning (u)getcwd, the old code used AX to pass the size of the buffer to the doshelper, but AX is used to pass the function code for the helper. Now using CX for size. - removed all _AX _BX .. usage in command/*.c (too dangerous) and replaced geninterrupt() with intr(); - made the (hidden) 'unix -s XXX' working (using msetenv), so you know may 'transport' Unix-env.variables to DOS. - 'unix -e' (without further param now will be quiet, so you may have it in your autoexec.bat to be prepared for something like 'dos -D-a -E dosapp'. This as an alternative to '-I keystroke' to launch DOS-applications from the linux commandline. - changed src/commands/Makefile such that it can compile precompile/*.exe on demand. Need an already installed DOSEMU and Turbo-C though;-) 97/11/22 ver. 0.67.16 released From Eric - found and fixed a diabolic memory overwriting bug ( src/base/dev/dma/dma.c, loop limit was 5 instead of 4) From Hans - new DOSEMU detection stuff (without even trying to INTE6) (all *.S -> *.com converted to that) ... to be continued - to reduce confusion: ./configure becomes ./base-configure - new script 'mkconfscript', which is used to build proper configure scripts (runs autoconf, autoheader and replaces /bin/sh with /bin/bash) 97/11/20 ver. 0.67.15.1 unofficial pre-release From Marcus Better - INT13-Support for more than 1024 cylinders (bit6..7 of DH building 12 bit cylinder number) - INT13 IBM/MS Extensions, AH=41h-44h and 47h-48h. This uses 64-bit logical block numbers. It's documented in the R.Browns Interrupt List. From Hans - Making Marcus' INT13-4096 cylinder mode a dosemu.conf option, such that nothing old could break. Flag for the disk statement: diskcyl4096 - docs rebuild 97/11/07 ver. 0.67.15 released From Alberto - replace all error("ERROR...) with error("...), because ERROR is already prefixed in function error(). From Hans - fixed 'error()' such that 'error("@xyz...")' will print _without_ prefixing 'ERROR:'. (print_exception_info() was printing wrong). 97/11/07 ver. 0.67.14.2 unofficial pre-release From Alberto - make USING_NET a configuration option - fixes to lt-threads (atomic_* name clashes, locking stuff) - make some compiler warnings go away From Hans - small fix for configure.in not detecting correctly broken textutils. - introduced --enable-experimental to avoid playing JoeUser with not yet working stuff. - syncing lt-threads with my and Albertos changes (and vice versa) Version now 0.4.2 - DANG and docs recompile 97/11/01 ver. 0.67.14.1 unofficial pre-release From Alberto - BIG patch to introduce the willows twin based cpu emulator ( too much to describe the details here, have a look at src/doc/README/cpuemu). Alberto did a great job in porting the twin cpu emulator to DOSEMU! We hope that one day (a) DOSEMU can run on machines other then the Intel and (b) we can use the emulator to simulate ring0 protected mode (win95;-). However, currently its _very_ experimental and only few programms run, hence it is disabled by default. As it now is in the distribution we can make efforts to get this baby on its way;-) - cleanup for the old X86_EMULATOR define (now using it for cpuemu) - small initial documentation From Hans - doing the 'slave work' of integrating Alberto's patch ;-) ( including copyright verification with Willows ) - new dosemu.conf options: 'cpu emulated' and 'logfilesize xxx' - reworked log_printf and 'error', now both are functions and call 'vlog_printf'. This avoids recursive macro expansion, when redirecting 'fprintf' to 'error' in the twin code. - making dosdebug to tell us wether we are on a simulated cpu. 97/10/24 ver. 0.67.14 released From Alberto - prep for cpuemu in src/arch/linux/debugger/{dis8086.c,mhpdbgc.c} - isolated log-printf stuff in headers to avoid name clashes for cpuemu: new file src/include/dosemu_debug.h - fixed bug/typo in src/include/vgaemu.h: vga_emu_fault was passing wrong arg. From Hans - adapted DANG_CONF, DANG and docs recompile 97/10/23 ver. 0.67.13.2 unofficial pre-release From Alberto - fix for Matrox _and_ 'speaker non-native', lots of port61 fixes. - fixed bugs in dpmi.c (LWORD was used instead of _LWORD) - replaced [rep]{in,out}s{bwd} in vm86.c and dpmi.c with calls to a common set of functions in n_ports.c. - completed prefix handling for ports stuff, all combinations now are considered. - aligned some (lot of) code to the Bitxxx type convention. 97/10/22 ver. 0.67.13.1 unofficial pre-release From Alberto - rest of ioport_t fixes. - typedefs in src/include/types.h now based on - more opcodes 0F fixes in src/emu-i386/cpu.c. - cleaned a lot of print format errors. (%lx versus %x) From Hans - fixed '<>|' keyboard bug. It turned out MSDOS-6.2 was destroying the CARRY in its INT15 AH=4F hook. The fix was not to rely on CARRY=1 when called (forcing it to 1) in src/base/async/int.c - removed confusion '0.49' out of src/tools/peripher/hdinfo.c 97/10/11 ver. 0.67.13 released From Eric - some keyboard fixes to solve problems with the sticky shifts. - corrected some funny typo's ;-) 97/10/10 ver. 0.67.12.2 unofficial pre-release From Alberto - enabled 'new' port code, moved new code (from portss.c) to n_ports.c and integrated code that ist used by the old code into ports.c. portss.c is no longer used. The new code can be enabled via ./configure (--enable-new-port). - Now ioport_t (from types.h) is used all over the code. However, for compatibility changed to unsigned int. - PCI code is now fully enabled. From Hans - DANG/README update/recompile 97/10/10 ver. 0.67.12.1 unofficial pre-release From Alberto - fixes to CDrom driver (undocumented bit 10 in CD status) look at the comments in src/dosext/drivers/cdrom.c. - new config variable 'cdrom' added for more than 1 CDrom From Hans - (instead of Alberto;-) did update the README/config to reflect the above config variable 'cdrom'. 97/09/26 ver. 0.67.12 released From Eric - new speaker code. Changes against old code: Xsupport, variable sound duration (limited to 990ms), turn-off on leavedos. From Hans - DANG update/recompile 97/09/23 ver. 0.67.11.2 unofficial pre-release From Alberto, - final fixes for CPU detection, SMP now switches off RDTSC timing. - final AC-flags fixes (make the FoxPro fix obsolete) From Hans - disabled FoxPro fix from 0.67.11.1. - cleared up usage() in config.c. - max cardtype now in src/include/video.h (MAX_CARDTYPE), so no need to take care of the constant in config.c ;-) - DANG recompile 97/09/21 ver. 0.67.11.1 unofficial pre-release From Alberto - fix (workaround) for FoxPro clearing AC flag in dpmi.c (when trapno = 17) From Hans - 'cleaned' misleading usage of config.cpu_type and config.realcpu cpu_type is what we show to DOS, realcpu is the CPU dosemu works on Hence -3..-6 do _not_ change realcpu and can't be used to disable the pentium timer. For this config.rdtsc should be used. - updated src/doc/README/config to reflect the latest changes. 97/09/20 ver. 0.67.11 released From Michael Karcher - fixed bug in src/dosext/misc/xms.c allocating unlimited memory. From Reinhard Karcher - fixed bug in n_serv_xlat.c concerning numerical ASCII input over ALT-keypad. A variable sometimes wasn't initialized. From Eric - fixed possibe make recursion in Makefile.main, which happens to occure with some newer make versions. (looks like the order of making differs between versions). From Hans - made Eric happy ;-) 'cd src; make' now works again as expected. - temporary disabled Alberto's (0.67.10.3) pentium timer until he/we find the bug which breaks FoxPro (when it uses XMS/EMS memory, which it does by default) :-( To re-enable it uncomment TEMP_DISABLED in the top Makefile. - Updated DANG_CONF such that it now collects all files, which contain usefull DANG/SIDOC statements. Look at doc/DANG.txt ;-) 97/09/19 ver. 0.67.10.3 unofficial pre-release From Alberto final (except for bug fixing) part of timer patches: - revision of some comments - speed detection and override: new param config.realcpu taken out of /proc/cpuinfo, -3, -4 e.t.c. can only downgrade this value. - CPU speed rounding to multiples of 30 and 33.3 in the range 60 to 300MHz (is it enough? maybe 500...) - replaced all gettimeofdays in timers.c and pic.c with the new interface. Some needed gettimeofdays() are left though. - Deleted CLOCK_TICK_RATE because it were same value as PIT_TICK_RATE. - new code in cpu.c to reasonably emulate 'MOV to/from CRx' (0f xx xx) The previous code (do_vm86.c, msdos.h) was incomplete. - using call to int0x06 instead of 'leavedos' in sigsegv.c making happy CPU detection programs. 97/09/16 ver. 0.67.10.2 unofficial pre-release From Alberto first part of timer patches: - the timer driver itself and the new cpu/speed configuration: emu-i386/cputime.c, include/timers.h, base/init/config.c etc. - replacement of the delay loops with the new interface: keyboard, serial, sound (all the loops using RELATIVE timing). - documentation (refers to the final timer package) - timers and PIC have NOT been changed, they still use gettimeofday. If this patch doesn't break anything, the round uses the real stuff. 97/09/16 ver. 0.67.10.1 unofficial pre-release From Uwe - fixing ./configure VERSION problem with textutils < 1.19 - 'nicer' warning in Top-Makefile ;-) From Eric, Larry, Alberto (all agree with this ;-) - disable 'could be dangerous' run_irqs() in base/dev/misc/timers.c From Alberto - Makefile.main: 'base/' missing before a 'data.o - speed up compilation of debugger/dis8086.c by uninlining a function - fix internaldriver for MouseSystems mouse. - parser.y: if user says '/dev/mouse', trust him and set the mouse flag - added pci driver, keyword PCI in /etc/dosemu.conf - changes to 32-bit port access. - Matrox driver updates - WDvga(Paradise) support - updates to vc.c for Matrox and WDvga 97/09/12 ver. 0.67.10 released From ramon@juguete.quim.ucm.es - gnats report misc/58, fixing: 'Dosemu cannot boot DOS from a partition at an origin > 2Gb' From David Bourgin - changes to ./setup-hdimage: - Use /sbin/fdisk, when /sbin not in the path. - Offer non-bootable partitions too. - Move -C option of mdexe to the end of the command to avoid a shell misunderstanding. From Hans - get rid of some '#ifdef __linux__' concerning 'loff_t' in disk.* - small fix for DANG_c.pl not having the right version after the configure changes. 97/09/09 ver. 0.67.9.1 unofficial pre-release From Hans - reworked the ./configure and Makefiles such that now there are no Makefile*.in anymore except Makefile.conf.in, which gets substituted by ./configure and holds all needed configuration variables for the Makefiles. Makefile.conf gets included only in the top Makefile and exports all variables to the slave-Makefiles. - a simple 'make' runs ./default-configure if needed. ( the user can't forget to run ./configure ) - no path substitution any more in the Makefiles, hence you now can rename the directory (or copy it) and 'make' can run. - The version has been moved into the file VERSION, which is parsed by ./configure and the top-Makefile, hence I need only to change this one file ... and ./configure* is untouched. - Some not used checks in ./configure have been disabled, hence ./configure runs faster. 97/07/25 ver. 0.67.9 released From Alistair - fixed Makefile.main not to compile threads when not configured. - tests for the presence of 'libgus' in ./configure (SBEMU on). If it's found then 'midid' will be compiled with that support, otherwise it doesn't. - update to sound docs. From Hans - full docs recompile (DANG also) - mtools version check in setup-hdimage - some minor changes to mkbindist - introduced compiletime-settings.stable for making stable releases out of 0.67 for 'joe user'. (0.66 is freezed now) 97/07/25 ver. 0.67.8.2 unofficial pre-release From Michael Karcher & Alistair - second round sound&dma patches SB: reworked asynchronous handler ('run_sb') added 'run_sb' into DPMI loop added support for MIDI & 16-bit IRQs added missing function _call_ to sb_mixer_data_read added extra SB16 Mixer commands added SB16 DAC & ADC (stub) added driver call 'play_buffer' [linux] updated 'write_silence' to use 'play_buffer' updated 0x1C DSP handling (for broken software) added 'sb_set_rate' (some lengths are HI/LO, others LO/HI) added automatic downgrade to SB-PRO DMA: fixed FF clear (now does!) fixed Hi/Lo Byte swap (result of previous FF bug) uses '|' instead of '+' where possible (quicker ?) added 'dma_transfer_size' to alter handler's blocksize added underflow checking to transfers 97/07/24 ver. 0.67.8.1 unofficial pre-release From Alistair - first round sound&dma&timer patches From Jan van.de.Werken - little bug fix for fossil.c From Alberto - small fix for n_X.c to compile without mitshm. From Hans - fixed the 'Linux-4.0.0' bug in lt-threads ;-) - corrected src/doc/README/batch, chapter 13 of README.txt was garbage. - made config.X_mitshm = 0 default again. When Steffen fixed the problems with X-color allocation, we'll re-change it. 97/07/19 ver. 0.67.8 released From Hans - lot of work on DANG (hey Alistair, hope you don't mind) - made the keywords also accept 'SIDOC' instead of 'DANG, because else I would have to maintain two versions of the threads package (which I mainly use at office). Yeah, using the DANG compiler now for my work at office ;-) - Added some new features to DANG (have a look at chapter 12 and 13 of DANG.txt) - edited _all_ DANG_*_MODULE entries such that now the contents _really_ will appear in the 'Infomation' sections of DANG.txt. (before all those valuable comments were ignored :-() - new threads version: 0.4 97/07/18 ver. 0.67.7.1 unofficial pre-release From Steffen - new (nearly) full implementation of vesa-2.0 - real true color support for DOS-applications (note: not to confuse with emulation of 8bpp on a truecolor X-server) - LFB support. implemented special DPMI 0x0800 function (map physical) to fake our virtual LFB. (this need more work, too dangerous, --Hans) - new dosemu.conf option for X {}: lfb on/off, pm_interface on/off, defining new VESA modes. look at doc/README.txt chapter 2.2.8. - made 'X {mitshm}' default on, but can be switched off via 'X {mitshm off}'. - gammcorrection now uses _only_ integer, no FPU usage any more. - integrated old vgaemu_inside.h and vesa.h into vgaemu.h - fixed a bug in arch/linux/async/signal.c, wrong activation of resize in text mode. - updated README/X.sgml and README/config to reflect all recent X changes. From Hans - fixed Makefiles for odd behave on as86 generated objects: bios.s, vesabios.o (tmp files dependencies went berserk) - fixed README/Makefile so sgml2tex won't screw up your screen;-) - changed docs to reflect the fact, that we now need libc-5.4.7 at minimum (due to mremap) 97/07/05 ver. 0.67.7 released From Alberto - fix for n_serv_xlat.c, grey +/- on num keypad. - fix for mhpdbgc.c, adjust segment limit value following the granularity when disassembling. From Marty - some fixes to ./configure so it doesn't generate '-I' and and barf the compiles. From Hans - kludge in src/dosext/misc/emm.c to work around kernel bug (/proc/self/mem mapping again) 97/07/03 ver. 0.67.6.1 unofficial pre-release From Alistair - big docs rebuild. Nearly all README.s are now 'sgml' and the source is in ./src/dos/README. In the ./doc directory there these appear (compiled) as README.txt and README-tech.txt. From Hans - udapted the remaining docs, Makfiles and ./configure to reflecting Alistairs changes. 97/06/29 ver. 0.67.6 released From Hans - fixes to EMM code (these bugs were long time in :-( ) The bug was introduced as HJ Lu recommended to use valloc() instead of malloc() because of the page alignment of the malloc request. So far so good, but we forgot that we do a realloc() and even a free() on these allocations, ... and this _not_ complient with the GNU specs of valloc(). In the old libc though it nevertheless seemed to work, but not together with newer libc: The 0.66.6 binary distribution _is_ compiled against libc-5.4.23 and with this the old EMM-test program that I once got from Jim is crashing. In addition I also saw, that we did no proper handling for cases when the new size for realloc() was ZERO. The realloc() returned pointer isn't pagealigned (I even guess that realloc() should not given a new zero size). As a fix we now are using mmapp() (/dev/null) and mremap() also for EMM. Though I could not test it under all conditions it atleast fixed the bug for me. ... and it should be faster anyway. 97/06/28 ver. 0.67.5.1 unofficial pre-release From Michael an Reinhard Karcher - fix for extended key-code (E0) in new and old kbd code. - fix for mfs.c: a DOS app that wants to read a newly created file without reopen failed. Fix was to set the openflags in the SFT to read/write instead of writeonly. ( same open mode mode as for the linux file). From Alberto - fixed typo in bios.S (wrong SIM_INT(15) instead of SIM_INT(0x15)) From Hans - some fixes to lt-threads - kernel version dependent include of - fixed misaligned force_stack_expand, when using -malign-double ( ... guess who jumped into this trap and found out what was wrong? Alberto! ;-) - changed SIG_ACQUIRE to SIGUSR2 (src/include/emu.h) because the SIGUSR1 collides with SIG_SUSPEND_WAKEUP in lt-threads. - made new kbd the default again (in-out-in ... what comes next?;-) - in src/dosext/dpmi/memory.c DPMIrealloc() use mremap() instead of mmap()/memmove()/munmap(). Should be faster. 97/06/21 ver. 0.67.5 released From Hans - introducing threading into DOSEMU using Linux-clone :-) Currently its only used for fixing the floppy ioctl that will return with -EINTR (we normally switch off SIGALRM). The main reason I put that stuff in is to show the team _how_ it can be used within dosemu. So, Alistair its your turn now to make the DMA stuff using it. And Steffen also may look how we can make the X-update a thread. And of course Alberto now has a base for his new PIC stuff. Conclusion: Currently it should be considered as an example and if we later come to the decision, thats not enhancing DOSEMU enough, we may back out it. BTW: its only activated by --enable-threads. - Made the old kbd again the default, because it breaks some of the older DOS apps (extended code E0 again, forgot that we didn't fix that yet, will come next). 97/06/19 ver. 0.67.4.3 unofficial pre-release From Alberto - Support for Matrox-Millenium ( video { ... chipset matrox } ) From Hans - setting new kbd to default for default-configure 97/06/19 ver. 0.67.4.2 unofficial pre-release From Steffen - new X-update code - gamma correction ( X {gamma 100 } ) - virtual memsize for vgaemu configurable ( X {vgaemu_memsize 1024} ) - updating DANG for X and vgaemu From (multiple sources on linux-msdos ;-) - fix typo in src/include/linux/vm86.h (missing #endif) 97/06/15 ver. 0.67.4.1 unofficial pre-release From Steffen - fix for mitshm autodetect (src/env/video/X.c, .../n_X.c) From Michael Guennewig - fixing invalid disk-geometry-information for drives tracks > 256 - fixing invalid hdimage's for images with more than 65535 sectors or (>=32MB) in mkfatimage16.c From Michael Harnois - some more work to make DOSEMU compile under glibc From Eric - fix for the (infamous) have-to-type-ESC-twice bug in the new kbd, as it turned out, we forgot switch stdin into O_NONBLOCK mode. (many kudos to Eric;-) From Hans - make target 'bindist', so I'll never forget the right params for mkbindist (especially /usr/doc/dosemu ;-) - further enhancements to mkfatimage16.c (in addition to Michael's) It turned out, that the hdimage was too inflexible for bigger sizes and made a lot of trouble. - new option -k: give size of hdimage in Kbytes. This adapts the geometrie automatically to what is needed for the size. ( heads, sectors_per_track are adjusted ) - new option -f: give the filename of the hdimage instead of writing all to stdout. - new option -p: when option -f also is given, pad the hdimage with zero up to the exact filesize. This is required for mtools-3.6 and when mounting the hdimage via /dev/lo. The actual disk usage will be lower, because padding is realized by makeing a big hole at the end. - updated the man page - fix for IPX (gnats bug report files/46 from kees@schoen.nl) setsockopt(sock, SOL_SOCKET, IPX_TYPE, ...) wrongly using SOL_SOCKET instead of SOL_IPX in src/dosext/net/net/ipx.c - fixed mkdexe so it can cope with DOSAPP not beeing an absolute path - fixed INT15-AH=4F not spawning a hooked TSR (src/base/bios/bios.S, src/include/macros86.h), and backing out the incomplete fix of 0.67.4. 97/05/31 ver. 0.67.4 released From Alberto - disable ctrl-alt-del. (as its broken, better disable it) - deleted (unused) dos_ctrlc() From Ulrich Weigand - Several bugfixes to new keyboard code - Raw client: ALT+Letter - Translation on non-US keyboards - X client: didn't set AltGr flag in BIOS shiftstate (non-US) - All clients: cursor block keys should yield ascii code 0xE0 - Hooking INT 15 AH=4F did not work 97/05/31 ver. 0.67.3.4 unofficial pre-release ( taking over stuff from final 0.66.5 ) From Hans - untill we can detect the availability of static libs, we re-disable static linkage. ('linkstatic off') From Michael an Reinhard Karcher - fix for wrongly placed leave_priv_setting() in ipxglt.c From Christian Kumpf - fixed bug in dexe/mkdexe not proper handling option -d From Hans - changed mkdexe to accept *.tgz - LDFLAGS now '-Wl,-warn-common' to see were we have name clashes - repaired the linker warnings resulting from -warn-common by - properly useing EXTERN in vga.h, serial.h - removed multiple definitions of 'serial_t com[MAX_SER];' - removed overriding 'struct debug_flags d' definition in config.c - fixed IPX not closing sockets on leavedos() ( gnats report misc/39 from Kees ) - adapted /proc/meminfo (dpmi/meminfo.c) scanning to Linux-2.1.41 97/05/24 ver. 0.67.3.3 unofficial pre-release From Alberto - timers.c: reorganized pit_latch - simplified access to pit[latch] with a pointer - changed mode test from a switch{} to an if..else - merged code for modes 2 and 3 - implemented output pin (status bit 7). A request for status calls pit_latch with mode flag 0x40; the output pin status is recalculated and the mode flag changed to 0x80. The following read will get the complete status byte, then the mode flag will be reset from inside pit_inp. - this patch also corrects a bug, ndiags now runs fine. From Hans - made 'linkstatic' and 'tmonoton' default (static binaries have better performance and less timer problems) 97/05/23 ver. 0.67.3.2 unofficial pre-release From Alberto - timers.c, pit.c: use NEVER instead of -1 in monoton timing - timers.c: removed duplicate calc of 'ticks' - timers.c (pit_inp): avoid changing read_state for the special latch status command; otherwise next read will get MSB instead of LSB. - cdrom.c: avoid binary sector dumps into log file, use ASCII reworked debug messages a bit - patch to serial code to activate transmit FIFO From Hans - fixed bug in src/dosext/drivers/cdrom.c (ebx twice set), that Alberto pointed out (aaah, these eagle eyes ;-) 97/05/23 ver. 0.67.3.1 unofficial pre-release From Gloriano Frisoni - patch to make winsocket stuff work under win31 Using trumpet winsock, netscape, eudora, mirc, free agent e.t.c now run under dosemu. For more read doc/README.Winnet 97/05/19 ver. 0.67.3 released From Alberto - some more comments on DIRECT_DPMI_CONTEXT_SWITCH - removed bogus RCS printout in src/dosext/misc/xms.c - some remaining fixes on USE_INT_QUEUE - some fixes in DPMI - low 12 bits in limit > 1M was not checked - forgotten 'volatile' in do_LAR - logging of ingnored 0x0506-0x0508,0x0700,0x0702,0x0703 DPMI-functions - asm code for copy_context under DIRECT_DPMI_CONTEXT_SWITCH - DPMI page fault should do leavedos() - dead loop detection for 'cli' in dpmi_fault() From Steffen - (some) fix to cut&paste in src/env/video/n_X.c From Eric - src/base/keyboard/n_keyb_X.c: Added some missing key definitions. Needed to get the keypad keys working in X when numlock is off. 97/05/19 ver. 0.67.2.1 unofficial pre-release ( taking over stuff from pre-0.66.5 ) From Alberto - fixed bug for DIRECT_DPMI_CONTEXT_SWITCH, copy_context was forgotten at some places. (src/dosext/dpmi/dpmi.c) From Ingo Brueckl - bugfix for 'make install' not installing man/*dos*.1 From Michael an Reinhard Karcher - fixed bug for DPMI src/base/async/int.c, INT2f AX=1686 not correctly reporting CPU status. From Hans - fixes and enhancement for bootable hdimage generation - dexe/extract-dos can detect DOS types. - setup-hdimage makes use of DOS type detection. The following DOSes now can be made bootable for DOSEMU via setup-hdimage: PCDOS, NWDOS, MSDOS, WIN95, FreeDos - fixed extract-dos to take windows/command.com when WIN95 - new option for mkdexe: '-C comcom', here you can define an other command.com (e.g.4dos). - introduced 'write permissions' in DEXE files so that the DOS-app can (isolated) write to files within the DEXE, even if the file permissions don't allow that. This is a workaround for a general problem with DEXEs, look at ./doc/README.dexe for more details. For this, dexeconfig has a new option -p {w|W} - new config option for DEXE: xdosonly. When set it terminates dosemu, when no X available, else it forces xdos. - bug fix for 'forcexdos' - force a BootC unconditionally for DEXE - increased number of allowed disks to 16 (there was report of a user who had 11 disks ;-) - fixed a bug in the 'class' stuff (could not access within scope of /etc/dosemu.conf) - fixed parser not aborting, when parserror in -I or DEXE. - added (implicit) setting of configuration variable h_ This can be checked in /etc/dosemu.conf to restrict access for given diskless machines, that mount a dosemu containing FS. - added two new dosemu.conf statements: - abort which prints message to stderr and leaves dos. - warn which just prints a message into the logfiles using c_printf. - added the tiny 'ezedit' editor to src/commands/precompiled - Updating the docs _a lot_ ;-) - added doc/README.lredir - added man/mkfatimage16 - reworked Quickstart to reflect setup-hdimage, moved description of the old method to doc/README.oldboot - removed etc/BOGUS-Notes (was quite bogus;-) - added a src/tools/QuickStart.bindist, which will be used for making the binary distribution (see below) - e.t.c - reworked ./etc/config.dist again and added a bit more comments ;-) - we now have the following examples: ./etc/config.dist ./etc/dosemu.users.easy ./etc/dosemu.users.secure - config.dist is generic, i.e. it checks for config variables set in dosemu.user such as guest secure vbootfloppy - fixed a bug (report: Hans-Joachim Baader ) in src/base/init/parser.y, parsing dosemu.users crashed on empty lines. - Finally assembled a binary distribution. Put all stuff needed for that in to src/tools. In principal you just have to execute ./src/tools/mkbindist -m -s -d usr/doc and after this will have a complete tree in /tmp/dosemu- that only needs to be tar'ed. - changed Makefile.main.in such that you now can specify a directory into which the installation will be done (needed that for mkbindist). Example: 'make "INSTROOT=/tmp/dosemu-bin" install' - changed default-configure so that it accepts further ./configure options such as './default-configure --host=i386-unknown-linux' 97/05/10 ver. 0.67.2 released From Eric - Fixed a bug where shift number pad key only worked if _both_ left and right shifts were pressed (src/base/keyboard/n_serv_xlat.c) 97/05/10 ver. 0.67.1.3 unofficial pre-release From Alberto - isolate and undefine unused code: hlt and int_queue - missing flush_log() in src/emu.c 97/05/05 ver. 0.67.1.2 unofficial pre-release From Alberto - fix for inconsistent (EMU_)MAX_IO_DEVICES - Microsoft mouse protocol fixes. It was erroneously merged with the MouseMan 3-4 byte variable length protocol, while Microsoft has a 3-byte fixed protocol (A.Rubini confirmed). - some comments & small fixes (continued) 97/05/05 ver. 0.67.1.1 unofficial pre-release From Alberto - fixes for typos - some comments added - cleaned extra dependencies in makefile, removed pic include dir - very small bug fixes: - exception 16 feed to IRQ13, src/arch/linux/async/sigsegv.c - usleep for hogthreshold changed to INT28_IDLE_USECS - added INT10 AH=CC (for NC 5.0) in src/base/bios/int10.c -From Eric fixed trashing AL in src/base/bios/bios.S (INT09_dummy_start) 97/05/03 ver. 0.67.1 released From Steffen - cool new X-stuff: - X mode support (doom now displays right) - first simple 4plane mode (very slow) - 24/32 bpp possible - linear/bilinear interpolation for bpp >15 - resizing of graphics windows now possible - DAC-updates also in textmode possible - a lot of new config options (see ./doc/README.config) From Hans - made the new X-code a configure option (--enable-new-X), because Steffen apparently optimized it for 'games' ;-) (which indeed run faster), but the new stuff (atleast for win31) has performance problems with 'normal' graphics applications. ... still searching what's causing this trouble :-( - some small fixes and 'compatibility adjusts' to Steffens patch ;-) (the new X-code should now work atleast as stable as the old one) - INT10 now handles AX=1015 and AX=1017 (these missing ones broke Steffens new DAC-update in X-textmode) 97/05/03 ver. 0.67.0.3 unofficial pre-release From Doug Dougherty, Chicago, IL - cmdline DOS tool to feed in info from the commandline into the DOS-environement. (see src/command/README) From Eric - Enabled the speaker/timer code of the NEW_KBD_CODE in src/emu-i386/ports.c (inb) (outb) - Unconditionally remove the original copy of dos before relinking. in src/arch/linux/Makefile.main.in (dossubdirs) From Hans ( ... and some ideas from Alistair ;-) - new cool configuration stuff. Dosemu.conf can now parse conditionally and include files. - In dosemu.users variables can be set, which you later can test in dosemu.conf. For more see ./doc/README.config. - can define a variable also on the commandline (option -u). You then may check it in dosemu.conf and behave differently. - removed all comments in etc/config.dist and moved the information into ./doc/README.config. 97/05/02 ver. 0.67.0.2 unofficial pre-release From Alistair - fixes and enhancements to gnats/send-pr From Bart - fix for a multicasting bug in dosnet.c - warning in libpacket.c.multi, when insufficient privilege From Karl Kiniger - some more enter_priv* brackets within src/dosext/net/net/ipx.c and src/dosext/net/net/ipxglt.c From Uwe - some 'secure on' warning, and a errorcode return fix (DPMI) - (needed tools for developing win31 mouse.drv) some doshelper changes: - overall symbolic names now - new DOS_HELPER_DOSEMU_CHECK checks wether running under X - new DOS_HELPER_PRINT_STRING lets DOSapp print a string into our logfile. From Hans - first round to make a binary distribution (static). A complete tree gets generated via ./src/tools/mkbindist. We choose statically linked binaries, because of the many different libc versions floating around. Not all of them are down/upward compatible and some even aren't useable for dosemu. ( ... and surpise, the static binary runs a bit faster ) - new ./configure option: --enable-linkstatic 97/04/30 ver. 0.67.0.1 unofficial pre-release From Hans - further enhancements to DEXE stuff - hdimages containing DEXE get a magic "\x0eDEXE" - configuration is now (hidden from file access) put into cylinder 0 (behind the MBR) - dosemu now handles DEXE loading itself ( option -L) a 'dosexec' sym-linked dos sets -L option (like xdos does -X) - a DEXEs hdimage is always drive C, if not explicitle allowed via 'dexe { allowdisk }', no other disk will be available even if defined in /etc/dosemu.conf - Option -F is forbidden for DEXE, so the security settings in /etc/dosemu.conf can't be disabled. - 'secure on' can be forced in /etc/dosemu.conf for DEXE, even if 'off' otherwise. - 'dexe { forcexdos }' forces xdos, when DEXE is run on X. This can be included in DEXE-configurations, when the application requires graphics and would bomb on Slang otherwise. - New tool: src/tools/periph/dexeconfig, which inserts/extracts the configuration file from a DEXE - updated dexe/mkdexe to reflect the changes 97/04/20 ver. 0.67.0 released From Hans - Opening the new development phase - no further changes except the version number increase 97/04/20 ver. 0.66.3 released From Hans - new hdimage generation stuff, need mtools-3.6: ./setup-hdimage makes a bootable hdimage from the DOS the user has already installed under native DOS I tried this with the following OSes: FreeDos, MSDOS-6.2, WINDOWS'95. Other DOSes should also work, when the names of the system files are given on prompt. (Next step will be to automatically transform the config.sys and autoexec.bat ;-) ./dexe/mkdexe generates a direct executable DOS-app (hdimage containing just one app). The extension is *.dexe ./dexe/dosexec executes a *.dexe ./dexe/do_mtools symplifies the access to a hdimage ./dexe/extract-dos takes the bootsector and the system files out of a dos partition or a hdimage All this stuff is described in ./doc/README.dexe and the Quickstart. 97/04/17 ver. 0.66.2.2 unofficial pre-release From Alberto - fix for INT8 rescheduled to fast in DPMI From Hans - new dosdebug commands: 'log' and 'dump' With 'log' you can change/display the debug-logging flags such as 'log +M-k' on the fly within dosdebug. With 'dump' you may write any piece of allowed dosemu mem to a file, such as 'dump cs:100 1234 /dosc/xxx.com' (wishes from Grant R. Guenther, the great parallel ZIP hacker ;-) 97/04/16 ver. 0.66.2.1 unofficial pre-release From Hans - 'keystroke' feature now also available for new-kbd From Alberto - fix for src/base/misc/priv.c (forgotten return) 97/04/12 ver. 0.66.2 released From Alberto - minimal patch needed to fix the mode-0 timer bug for MONOTON_MICRO_TIMING From Hans - added direct bootable 'tiny' FreeDos etc/hdimage.test. This can be started via ./first-test. For more have a look at ./Quickstart and ./contrib/dosC/readme.dosemu. - Added option -b to src/tools/periph/mkfatimage16.c in order to allow inserting the FreeDos bootsector. - fixed a remaining security hole: 'secure' was off by default and when a user uses -F it was left 'off' :-( - udapted docs. 97/04/09 ver. 0.66.1.5 unofficial pre-release From Hans - added 'keystroke' feature, you may now feed DOSEMU with key strokes, that are automagically typed in as if from the keyboard. dos -D-a -I 'keystroke "\F8;\p200;6" Will press F8, then wait 2 seconds, then type 6. For more details see etc/config.dist and doc//README.batch From Marty - use gawk instead of awk in setup stuff, else 'next' isn't supported. ( gnats report misc/13 ) 97/04/04 ver. 0.66.1.4 unofficial pre-release From Hans - complete rework of the privs stuff, now we _really_ can run as user, and this is now the default! (note: run as user means that dosemu mostly has user privs) For more details see ./doc/README.runasuser and src/base/misc/README.privs - updated the docs concernig 'run as user' and new privs stuff - Fixed some warnings in lexer.l and parser.y 97/04/04 ver. 0.66.1.3 unofficial pre-release From Alberto - (hopefully) final fix for >2G over mfs. From Marty - search for slang.h in /usr/local/include From Hans - fixed gnats report memory/10 (rep. by David E. Kingsley ) set XMS_DRIVER_VERSION to 0x0301 97/04/04 ver. 0.66.1.2 unofficial pre-release From Uwe - cleaned up keyb_layout presetting in src/base/init/parser.y - defaulting to KEYB_US now, when under X and _no_ X_keycode From Marky (hi;-) - changed his non-working mail addresses 97/04/04 ver. 0.66.1.1 unofficial pre-release From Hans - added a DOSEMU-special MBR to hdimage. This is the world premiere of MBR running in 32-bit protected mode;-) ( no need to use 'fdisk /MBR' any more ) 97/03/28 ver. 0.66.1 released From Hans - added a new commandline option: -I Wow, is that powerfull!! ;-) It makes a lot of people happy that complained about inflexible configuration (for a more detailed description read man/dos.1). It makes the following (and much more) possible: dos ... -I 'video { mda }' dos ... -I "`cat my_other_dosemu.conf`" dos ... -I "`my_special_config_script.sh`" hmm... waiting for people reporting it has security issues ;-) (but you before report them: -I runs under the same secure level as .dosrc) - fixed a security hole: user could disable 'secure on' :-( - updated the docs From Alistair - fixed gnats report misc/9 (rep. by mharris@blackwidow.saultc.on.ca) (error while running setup-dosemu) 97/03/27 ver. 0.66.0.4 unofficial pre-release From Alistair - made sound a disable option in /etc/dosemu.conf ('sound_emu off') (else it may clobber an IRQ, if configured but not used) From Philip.Blundell@pobox.com - some compile fixes for glibc 97/03/27 ver. 0.66.0.3 unofficial pre-release From Bart Hartgers - Made dosnet.c running under 2.0.x kernel (was broken) From Hans - again fixes to ./configure & slang.h :( 97/03/26 ver. 0.66.0.2 unofficial pre-release From Soos Peter - added support for hungarian keyboard From Hans - fixed gnats report misc/8 (rep. by Ambrose Li) In configure, if 'no X' the XINCLUDES was preset with a comment (what joker invented that?) such as "# no special path needed". This made the following -I...slang.h invisible in INCDIR. 97/03/26 ver. 0.66.0.1 unofficial pre-release From Hans Zoebelein - fix for error printout, when reading a write protected floppy. From Steffen - fix typo in priv_drop() From Andries.Brouwer@cwi.nl - fix for ./configure to detect slang.h correctly - making rm -f `find ...` not complaining, when nothing found - small 'warning avoid' in src/emu-i386/portss.c From Hans - fix for gnats report misc/4 When no XINCLUDES is set, it left a stale '-I' - fix wrong gcc check in ./configure (reported by Jeff Epler) checking now for $GCC=yes 97/03/21 ver. 0.66.0 released From Hans - fix to ./configure, -without-x gots messed up in 0.65.99.23 - Docs update -------- 97/03/20 ver. 0.65.99.26 unofficial pre-release From Alistair - DANG cleanup, added DANG-compiler - recompiled DANG.sgml --> DANG.txt (-- Hans) 97/03/20 ver. 0.65.99.25 unofficial pre-release From Alistair & Rutger - For 0.66 we have updated many areas and re-organised others to make it easier to maintain. Many thanks to David Brauman for finding so many bugs - new sound stuff. 'midid' reworked, goes into directory src/arch/linux/dosext/sound/midid Compile it with 'make midid' - Added in support for the handler to reject the completion. 97/03/19 ver. 0.65.99.24 unofficial pre-release From Alberto - fix for 'partitions >500M' part 2 (wrong sector rounding) - Fixes and correcter calculations for config.freq, which can be set in dosemu.conf to adjust what dosemu takes for a second. (units in DOS timer clocks, 18 make one second). TIMER_DIVISOR is the constant (6) to make one Unix-tick (at 100Hz) out of the DOS-ticker. 97/03/17 ver. 0.65.99.23 unofficial pre-release From Hans - new targets in main Makfile: docs, docsinstall, docsclean From Pavel Kankovsky - fixes for X-detection From Steffen (realized by Hans;) - emulate a down counting 'diskette motor timeout' old games seem to rely on that. From Alberto: - small mouse fix (320x200) - discovered that int2f,ax=110c fails for partitions >500M, because it can't set cluster size>8. Here is my fix, which should also avoid overflows on >2G disks. 97/03/16 ver. 0.65.99.22 unofficial pre-release From Hans - docs move around: all doc source go into src/doc/DANG, src/doc/HOWTO made Makfiles to generate 'nice' docs. You have to 'cd src/doc' then do 'make' To install the *.txt into ./doc type 'make install' NOTE: the patch to this release is a patch-*.tgz, what means, you have have to un-tar it into the ./dosmemu directory and then type 'sh tmp/do_patch'. This will _first_ move the files, and then apply the patch. 97/03/15 ver. 0.65.99.21 unofficial pre-release From Uwe - take version date out of ./Changelog From Alberto - 'make pristine' removes 'gen.log' From Alstair and Rutger - new sound stuff 97/03/14 ver. 0.65.99.20 unofficial pre-release === CLEANUP-Release === From Hans - first round 'JES --> Hans' doc changes - new README.batch - preparation for 0.66 (version changes in docs) - check DPR a bit, but the rest is to Alistair ;-) - removed all RCS headers (not using any more) - well, and found that compiling without VM86PLUS was broken, fixed it in parser.y From Alberto - lots of typos fixed (collected cleanups) - some more debug prints in pic.c 97/03/14 ver. 0.65.99.19 unofficial pre-release From Alberto - 1st arg of log_printf becomes 'int' - (some) fix for the inte6 problem (80x50) - missing HLT_OFF in DPMI 'free realmode call back address' (0x0304) - Without this CDs can't be changed: force media_changed, when ejecting (src/dosext/drivers/cdrom.c), _realy_ do CDROMRESET in cdrom_reset() 97/03/12 ver. 0.65.99.18 unofficial pre-release From Alistair - Further gnats enhancements From Hans - Because 'midi' always was created in the default directory (which also is the name of the 'midi' executable ;-) ), I renamed the 'midi' file to /var/run/dosemu-midi, removed the 'create' on open and checked for 'is open' when writeing to it. Updated README.sound accordingly. From Uwe - second try (;-) to make compiling on NFS mounted directory possible 97/03/11 ver. 0.65.99.17 unofficial pre-release From Alberto - deleted 'rm modules' in src/arch/linux/Makefile.main.in (obsolete) - fixed 'regs' parsing in dosdebugger. - banner now prints correct time - fixed relocation of INT42 (must be a copy of INT10) - call setmode() of video driver only if pointer valid (int10.c) - disable -Y -Z, when X not configured. - some 'close mouse' fixes - temp fix to dpmi.c int31 just to avoid hard reboots - fix for auto-mitshm-disable stuff in X.c - corrected wrong (port,value) parameters in s3.c - do not debug while VC is not active (in src/env/video/vc.c) - removed some stale files - avoid pktdrvr.h to be multiple included From Hans - removed stale references to emusys.h - elaborated the description of the 'ttylocks {}' option in etc/config.dist. 97/03/08 ver. 0.65.99.16 unofficial pre-release From Steffen - Added code to turn off MIT-SHM for network connections. From Uwe - small additional debug out for DPMI 97/03/07 ver. 0.65.99.15 unofficial pre-release From Alberto - cleanup for CFLAGS in configure(.in) - corrections in etc/config.dist - missing exception 16 handling in src/arch/linux/async/sigsegv.c - various fixes in src/base/async/int.c, temp fix for Ctrl-C bug in Djgpp (int 23 revectored and caputered). - changed 0/1 to REVECT/NO_REVECT - cleanup of usage message in src/base/init/config.c and fix wrong cardtype number - fixes to buffered debug out (log_printf). - mouse fix (serial/int14.c) - fixed 'hlt' optimization in run_dpmi() - cleaned up 'case 1..2:' to 'case 1: case 2:' in various places - in_dos_21 warnings fixed - some mfs fixes. From Thomas Winder - struct sigaction fixes for glibc-2 in src/arch/linux/async/signal.c From Hans - fix for default-configure - made 'irqpassing' a synonym for 'sillyint', because users apparently get confused. Also adapted config.dist 97/03/07 ver. 0.65.99.14 unofficial pre-release From Alberto - Fix for the mouse garrot helper: using INT28_IDLE_USECS - fix for non compileing new kbd (unintentionally reverse patch at state of 0.65.99.4 in conjunction with priv_* cleanup) - remove src/dosext/dpmi/kernel.diffs (obsolete) - remove src/Configure (broken, obsoleted by Alistairs stuff) - added rebuild script From Hans - added ./set-permissions, which sets all exec-bits for all scripts (so when upgrading per patch, this scripts gets it right) - added ./default-configure, this script should be used instead of ./configure, because it interpretes the compiletime-settings which can be changed by Alistairs setup-dosemu stuff. - changed setup/compiletime_setup.sh so it uses ./default-configure to interprete the various menu variables (have now only one place to take care of it;-) 97/03/07 ver. 0.65.99.13 unofficial pre-release From Alistair - fixes for setup & gnats (Yeah, now it works fine; and Alistair has time for his sound ;-) From Hans - send-pr gets dosemu-version out of ./configure.in - stole lxdialog, named it 'demudialog' and adapted setup gnats to use that. (normal dialog shows a strange handling, when used for Alistairs stuff) I hope Alistair will enhance 'demudialog' to fit our needs again better ;-) 97/02/29 ver. 0.65.99.12 unofficial pre-release From Alistair - setup stuff from 0.65 - gnats stuff from 0.65 From Uwe - New dosemu-HOWTO.*, EMUfailure.txt (deleted EMUsuccess.txt) 97/02/29 ver. 0.65.99.11 unofficial pre-release From Alberto - Fixes for 'unix.com' - little PIC fix: maybe it is better not to blindly decrement timer values if they are set to NEVER. 97/02/28 ver. 0.65.99.10 unofficial pre-release From Alberto - Use a big buffer for debug messages, this doesn't slow down dosemu, when debugging. From Hans - Made the above 'big buffer' an item in /etc/dosemu.conf: 'logbufsize ', default is _no_ buffering. - Fixed ./configure.in, so it now doesn't use -fomit-frame-pointer when configured for debugging. 97/02/27 ver. 0.65.99.9 unofficial pre-release From Adrian Sun - Make dosemu compile under glibc 2.0.1 - Small IPX bug fix: have the initfile.c functions return on a failed open. Workaround for missing IPX_TYPE = 1 in glibc headers. - convert a missed SignalHander -> __sighandler_t 97/02/27 ver. 0.65.99.8 unofficial pre-release From Uwe: - base/misc/disks.c, include/disks.h, tools/periph/hdinfo.c Use llseek on Linux to allow access on Files greater 2.1 GBytes - made 'make install' on NFS mounted FS possible (compiling as user, installing as root) 97/02/27 ver. 0.65.99.7 unofficial pre-release From Alberto - Fix for debugger, recent 'nm' has 16 hexdigits for addesses From Hans - made the path of dosemu.map defineable in /etc/dosemu.conf: 'dosemumap ' 97/02/25 ver. 0.65.99.6 unofficial pre-release From Alberto & Hans - workaround for bug in kernel vm86plus that Alberto found (fixing kernel patch did reach Linus already;-) We will remove the workaround when time goes by - added runtime kernel version check ( currently only used by the above workaround) 97/02/23 ver. 0.65.99.5 unofficial pre-release From Alistair & Rutger - Updated SB DSP code and fixed some bugs in detection - Alistair - Re-hacked ports.c so the DMA code works again. GRRRRR - Alistair - Added first pass at MPU-401 code - Rutger 97/02/22 ver. 0.65.99.4 unofficial pre-release From Eric Biederman - priv_on/off/default cleanup 97/02/21 ver. 0.65.99.3 unofficial pre-release From Alberto - Support for CIRRUS chipsets (some code comon with S3: v_8514) From Hans - fixed typos (mine) for ATI: in Makefile.in and lexer.l 97/02/20 ver. 0.65.99.2 unofficial pre-release From Josef Pavlik - Added ATI support (untested --Hans) This patch is for VGA ATI Mach 64 (probably will work with Mach8 and Mach32 too). Set "video { vga console graphics chipset ati }" in dosemu.conf. Resolves problem with ioports >0x3ff and saves registers which contains clock speed. Without this patch dosemu changes clock speed of VGA. 97/02/20 ver. 0.65.99.1 unofficial pre-release From Alberto - Fix PIC bug (replacment for old ALBERTO_KLUDGE) From Hans - fixed a small typo (yes, it was mine), ( did use close(f) instead of fclose(f) :(( ) 97/02/17 ver. 0.65.99 unofficial pre-release, first round targeting 0.66, 0.67 From Hans - Collected the keyboard patches from 0.63.1.56 .. 0.63.1.98 ( from Rainer Zimmermann ) and adapted them on top of 0.64.4. Fixed some bugs (which very likely also bothered 0.65.0), added the recent Slang and codetable changes, restored the original filenames for the old files (patch now readable), and got it finaly working. The old keyboard stuff remains active per default. The new stuff (--enable-new-kbd) also runs fine (atleast on the 3 machines I have tested), except that ESC on Slangkeyboard has to be typed twiced (result of 'dead keys for accents' ?). -------------- 97/02/04 ver. 0.64.4 released From Hans - Adapted Steffen Winterfeld's (graphics) true color patch from 0.63.1.98 (not his newest from .65) to 0.64.x. The code now looks a bit kludgy, because it was written for .98, but works great. Scaling (x2) is set for 320x200, so you may miss the 'mini window' ;-) also win31 is happy. - Added optimized XModeRemap functions for 15/16 bit true color. - Upgraded to Slang0.99-38 and fix the odd situation when the system supplied libslang was included, but the headerfiles were taken from dosemu (showing the wrong slang version). Now it uses _completely_ the dosemu or the system supplied files. There is a new ./configure option to force use of the dosemu supplied slanglib: --enable-force-slang BTW: slang.h is now in src/include/slang/* - Removed and disabled use of a.out (deleted slang-a.out-lib) for arch-linux. - fixed compile warning keyboard-client.c. and changed some 'error()' to 'v_printf()' in int10.c - made the 'unexpected CPU exception 0x06' error show the correct registers. - Fixed the wrong prefix handling in dpmi.c (dpmi_fault), Thanks to Alberto who pointed this out. - Added 'secure' option in /etc/dosemu.conf, which disables generation of 'whole userspace' descriptors. A DPMI client otherwise can modify (a suid root running) dosemu, such that it may execute arbitrary commands. This option also disables the use of the 'unix' and 'system' commands (dos-helper functions 0x50...0x53). From John Davis - Slang needs -lm with newer libc. - If the function and arrow key definitions are in the terminfo library, it will use those - Lower the TIMEOUT value for the ESC character from 3/4 of a second to 1/4 of a seconds. From Andreas Arens - New support for Avance Logic VGA cards, needs this in dosemu.conf: video { vga console graphics chipset avance } From Alberto - Patch for makeing debug print checks faster (ifprintf -> log_printf) - Makefile.main patch to fix odds in newer binutils. 97/01/22 ver. 0.64.3.1 released From Hans (final fixes) - Removed rest of 'history' in include/vm86plus - reinstalled include/linux/vm86.h (to avoid compile errors when using libc < 5.4.7) - corrected VM86P* typo - fixed wrong message on 'make install' - made Bernd's timer patch a configure option, because apparently some games don't like it. (--enable-monoton-timing) 97/01/19 ver. 0.64.3 released From Hans - removed emumodule (don't need it any more;-) - cleaned up kernel dependencies - adapted ./configure and Makefiles - Made mouse functionable for win31-in-xdos (hiding X-cursor, calibrating win31 cursor) - little fix for xtermdos - Updated the docs From JES - basic mouse functionality for win31-in-xdos From Herbert Xu - additions to man/dos.1, man/xtermdos.1 96/12/30 ver. 0.64.2.2 released From Erik Mouw - sequencer emulator for VGAemu (compatible with Trident 8900) This lets WIN31 run in xdos :-), ... but without mouse :-( 96/12/30 ver. 0.64.2.1 released From Hans - Finaly got expand-down-fake in DPMI work, so older DJGPP work again. ( and maybe some games too ) - Additional checks in ./configure for debian inconsistencies, Forcing to ELF, if no GCC specs file available. - ... and this time did not forget to increase the version ;-) From Erik Mow - Additional checks in ./configure for bison installed From Grant R. Guenther ( hey, Grant is the man who hacked the ZIP and other drives using dosemu, so he then could write the Linux drivers ;-) - "T" debug flag and LOG_IO macro From Bernd Paysan - fixed the keycodes for AccelX - fix for micro timing problems, timer now strictly monotonous ( Bernd's fix _really_ works great, Hans:-) 96/12/07 ver. 0.64.2 released From Hans: - vm86plus (2nd version) now is in the kernels >= 2.1.15 ( it took long, but we finaly succeeded, thanks Linus :-) - small adaptation and cleanup (docs, configure) - minor fixes for clean compile under various compile options - key-board fix for french keyboards (from Alain Knaff) 96/12/07 ver. 0.64.2-pre5 (privat release for JES only) From Hans: - vm86plus (emumodule), third round ( Linus requested to put our stuff into a separate syscall ) kernel patches now for 2.0.27, 2.1.14 - small fix for -F bug. - DPMI: tried to work around illegitime expand-down segments 96/11/15 ver. 0.64.1 From Hans: - vm86plus (emumodule), second round kernel patches 2.0.25, 2.1.8 (fits also in 2.1.10) see doc/README.kernel - REQUIRES_EMUMODULE has become REQUIRES_VM86PLUS and now is independed from emumodule (can also be supported by kernel patch) - new ./configure options: --enable-kernelvm86plus, --enable-novm86plus deleted ./configure options: --enable-noemumod - insmod-2.1.8-HACKER_TOOL - 'dos -F myconfig' checked under priv_off() (closing security hole) From JES: - kill_time (select replacement) for int15