96/11/09 ver. 0.64.0.4 - EMM fix (Hans) - first round vm86plus (emumodule) (Hans) 96/10/20 ver. 0.64.0.3 - Priv off/on patches - mfs.c patch to allow PRN called from mfs drives - mouse.c modifed calls that reflect mouse visibility and changed vectoring mouse interrupts to the actual interrupt (thanks to Josef Pavlik) - X.c added back mouse mickeys - WP5.1 mouse works now using internal driver, but not WPs ROF. Also forced mouse reset on DOSEmu boot if internal mouse being used. (thanks to Bernd Paysan ) - Alberto's patches to configure scripts for SBEMU. - Hans' patches for running on Linux 2.1.5+ 96/09/24 ver. 0.64.0.2 - From Hans, SMP, emumodule, insmod and some minor DPMI-stuff 96/09/23 ver. 0.64.0.1 - JES took over some valuable patches from 0.63 96/09/18 23:06:34 From : JES - Allow compiling without X support --without-x 96/08/30 01:21:30 From: Eric -- Some more Bugfixes, and a little video cleanup practice 96/08/07 13:56:38 From : Rainer - Video / Keyboard / Misc cleanup * added runtime MITSHM detection * fixed a problem with mouse initalisation * mfs.c: fixed find_first error code if directory doesn't exist 96/08/02 18:45:49 From Alberto - Fix PIC bug even w/o emumodule & leave for vacations 96/08/01 22:39:10 From : JES - Minor changes to pic.[ch] - Not sure if these make a difference, but since I'm no C guru, it looked like some variable (pic_sys_time) were defined twice? At least it still works looking this way ;). 96/07/31 19:57:40 From Alberto - Make debug flag working again & other fixes 96/07/31 18:29:09 From : JES - More IPX fixing and a Video WorkAround - After all I went through to learn _not_ to call IPX functions directly... I turn around and do it again ;-(. Always call IPXCallRel(). 96/07/31 13:57:15 From : JES - Fix IPX again ;( 96/07/31 12:03:14 From : JES - The Real Patch(tm) to bring IPX watchdog into DOSEmu - With many thanks to Tim Bird and JL, here is a patch to get asynchronos events happening under DOSEmu. This will make DOSEmu nolonger dependent on the wdogfix.com TSR. The problem before was making a stack returnable via retf. Also added is an ESR callback which may give slight IPX speed inprovements (may not), but prepares DOSEmu for more IPX development ;). 96/07/29 21:33:55 From Alberto - Fixed sig11 in leavedos() and cleaned some warnings 96/09/15 ******** Release 0.64.0 - Made from 0.63.50 96/07/21 09:08:21 From Alberto - patches to serial code & various stuff 96/07/21 00:51:37 From Alberto - patches to serial code to avoid reentrancy problems - Changes to tracing code in ports.c and dpmi.c - Some spelling and small bug fixes 96/07/19 22:34:50 From : kan@dcit.cz - Fixes to parsing and Dr? regs. 1) parse_config() used to check the wrong id in order to find out whether the user is allowed to have dangerous options in the configfile. Hum.. it looks like my own bug... (someone already fixed the same thing in parse_dosemu_users()) 2) At least one program (I think it was a game--Winter Olympic Games perhaps) plays with dr? registers (trying to avoid being debugged?). This problem made me add some handling for mov dr??, ?? to vm86_GP_fault and make the type of org_eip correct (actually, I did it in the opposite order ) 96/07/10 11:26:50 From Hans: Dosdebug goes DPMI (+some minor DPMI-fixes) 96/07/07 16:13:11 From : JES - Allow stdin to be non-tty - NO this is not the do-all-end-all to allow remote control access of DOSEmu. It is only a stop gap to allow some next steps in testing. 96/07/07 13:27:10 From : JES - Replacment to WatchDog.com TSR for IPX 96/07/07 13:20:14 Cleanup and doc updates 96/07/06 14:19:39 From : John Davis - Proper changes to SLang 96/07/06 11:54:06 From : Peter Wainwright (prw@wainpr.demon.co.uk) - Fix init of IPXOpenSocket 96/07/04 22:03:59 From : Kang-Lee - Misc. patches to dosemu/src/commands After much effort and many thanks to Kang-Lee I can understand him when he says: "Well, this patch really deserves the award of most_complicated_patch_story. :-)" Thanks Kang-Lee ;-) 96/07/04 21:56:58 From Alberto: some goodies for DPMI, DJGPP, GUSPNP, port fixes, e.t.c. 96/07/04 08:26:55 From Hans: upgrade to Linux-2.0.1, fixing LAR 96/07/02 22:08:27 Patches to DOSEmu 96/07/02 12:57:14 From Hans: 1st round towards 2.1.x (DPMI, LDT, emumodule, insmod) 96/06/30 12:45:11 From : Eric W. Biederman - fixups to video, etc... 96/06/29 18:47:14 From Heiko : Reduce compiler warnings 96/06/21 13:41:27 From : Johann Friedrich Heinrichmeyer - Update SLANG Thu Jun 27 20:11:35 1996 Eric W. Biederman * Cleaned up mainy tiny things regarding font loading, screen resizing, and updating bios variables. Now everything under X should work under X except font loading and it punts that. * Fixed a tiny bug where in emu-i386 where EIP was stored in a character. Only important to dosdebug All fixes against 0.63.36 96/06/20 22:26:21 From : Markus Kossmann - Fix to configure.in 96/06/18 19:25:53 From : JES - Allow DOSEmu to compile without EMUmod support 96/06/18 09:17:36 From Marc Nijweide (M.Nijweide@et.tudelft.nl): empty ports should return 0xff 96/06/09 15:08:29 From : Uwe - A little bit more security with port access doc/README.port-io: New file src/base/init/parser.y, etc/config.dist : New port option "device" src/emu-i386/cpu.c, src/emu.c, src/include/emu.h : Try to block multiple access to registered ports 96/06/08 16:43:13 From : JES - Allow DOSEmu to compile when no X available 96/06/08 12:28:52 From Uwe : Port Access for (L)Users Hallo, the patch I posted yesterday was "cut and dropped" in my editor. That way, parts get mangled. And I didn't apply it to a clean tree, so an error slipped by. Here is the patch against 0.63.1.30: 96/06/07 20:12:36 From JES : Reduce HMASIZE by 16 bytes as suggested by HJ 96/06/07 17:11:37 From Hans: emumodule & restore_i387; patches from Bernd From Bernd Paysan : - The timer initialization in src/base/init/init.c reduced to stay in 32 bit integer arithmetic. - The mouse handler fakes an interrupt and pusha on the real mode stack, regardless if the program is in rm or pm. I added a fake_pm_int(). - The X_SELECTION isn't well separated from X_MOUSE. I tried to do it (src/env/video/X.c). 96/06/03 12:39:57 From Hans: Fix silly vm86.h include loop (oh yeah, it was my fault). 96/06/02 15:58:42 From Hans: more LDT-access rights if running root, back out old, vm86.h hack 96/05/28 21:33:31 From Hans: forbid kerneld to unload emumodule, vm86.h missing fix. 96/05/25 15:14:02 From : JES - Fix mispatch to X.c 96/05/25 14:40:32 From : Various - Many subtle patches to X-mouse, mfs, ipx ... 96/05/25 13:16:30 From : Max H. Parke - Add LDT to mhpdbgc.c 96/05/25 12:05:59 From : JES - Remove need to patch kernel includes 96/05/24 10:35:16 From : Hans - Patch to get floppies active again 96/05/22 18:20:52 From : Adam - Fixes to VGA Emulation et al 96/05/20 05:23:46 From Adam & Erik: new VGAemu patches 96/05/14 07:17:18 From Erik: New EMUsuccess.txt 96/05/13 07:33:39 From Erik: little patch to compile again with Linux >= 1.3.100 96/05/07 08:35:06 From Erik & Adam: Enhanced configure, Makefiles and VGAemu 96/05/02 07:21:58 From Adam Moss & Erik Mouw: MITSHM and little fixes for VGAemu 96/04/29 19:52:08 From: Alistair - Make SB (& DMA) code work 96/04/27 21:02:23 From: Alistair - SB reorganisation, DMA+SB update 96/04/26 17:11:28 From : Avery Pennarun - dosemu 0.63.1.8 X bugs (and fix) Avery Pennarun It changes env/video/X.c to use unsigned chars instead of chars for screen cells. Due to certain tests in the code, any character >128 (such as line-drawing characters) would _always_ act as if that line had changed since the last refresh. So, in full-screen applications like Borland C++, the flicker (and related CPU usage) was horrible. BTW, why on earth is the "byte" typedef a signed char? Have fun. Avery 96/04/24 19:18:40 From : Jon Tombs - Allow modules to be made independently 96/04/22 11:40:02 From Hans: fix stupid typo in emumodule 96/04/21 17:07:29 From : UWE - emm.c switch code fix 96/04/17 20:07:22 From Mike Castle : fix for insmod + binutils 2.6.0.12 96/04/16 20:50:15 From : Hans - FIX for dosdebug, small -Wall cleanup 96/04/16 19:04:11 From : Hans - As promised: FIX for vgaemu, and new patch for EMS 96/04/09 06:29:47 From Hans: invalidate => flush_tlb (adapt emumodule to Linux-1.3.83) 96/04/08 22:45:19 From : JES - Recovering RDDC from HD Crash 96/04/08 0x:2x:xx TESTING RDDC 96/03/25 05:26:56 From Hans: closeing 'expand down seg' security hole in ldt.c 96/03/18 06:43:03 From Erik: extra manpages & sigsegv enhancement 96/03/16 16:14:36 From : JES - temporarily turn of port array call of portss.c - From some timing investigations it has been discovered that the portss.c array calling code seems to be considerable slower in it's present state. To that end as an interim measure, we will turn it off and use the older single case statement. 96/03/13 19:50:26 From : Alberto Vignani - Change non-existant port read to 0xff again 96/03/13 18:35:53 From : Michael Leodolter - DPMI work - With this stack nested PM programs like DJ200's make/compiler work fine (maybe Borkland's protected mode make/compiler too). 96/03/11 18:59:26 From : alberto.vignani@torino.alpcom.it (Alberto Vignani) - LDFAGS fix 96/03/11 18:30:52 From JES/Uwe - Config fixes and more vga_emu_fault stuff 96/03/11 17:59:51 From JES, John - Add in VGA_EMU_FAULT() function 96/03/10 19:46:58 From : JES - Get Xdos with graphics working again - Thanks to Uwe for pointing to a problem with Xdos not getting configured with the latest X_GRAPHICS in config.h - If 0'd out the VGA_EMU_FAULT() because it is not defined 96/03/07 23:39:37 From: John Kohl: turn on X_GRAPHICS for NetBSD - turn on X_GRAPHICS support for NetBSD, it seems to work well enough 96/03/07 21:00:17 From : JES - Creating proper behavior in dpmi.c KERNEL_LDTALIAS - with these diffs, Windows runs again. Need that DPMI guru :-) 96/03/07 20:13:38 From : JES - Supply new configure.in against John's diffs 96/03/07 19:10:38 From : John Kohl - NetBSD diffs for 0.63.1.2 From: John Kohl - Anyway, there's a system bug tickled by these changes on NetBSD but it pretty much works. - I haven't tried X graphics support yet, but I made it easy to configure in or out now. - I think I found a bug with KERNEL_LDTALIAS in the dpmi code, plus a questionable missing () stuff there. Look inside dpmi.c Thanks! ==John 96/03/05 22:20:22 From : JES - Up version to 0.63.1.2 96/03/05 22:02:23 From : (Alberto) a.vignani@crf.it - Change cpu.c ports to size short I was tracing a DOS program accessing a peripheral card and found dosemu tried to access ports > 64k. After looking at the generated assembly, I changed 'int' to 'short' for all port addresses in cpu.c. Alberto 96/03/04 20:56:24 From: Hans, adapt insmod-HACKER_TOOL to modules-1.3.69 96/03/04 18:16:54 From : JES - Add config.h to emu.h to force its inclusion 96/03/03 17:34:02 From : Uwe - Add debug to dpmi.c 96/03/03 17:04:31 From : Alberto Vignani - LDFAGS -> LDFLAGS in Makefiles 96/03/03 17:02:58 From : Alberto Vignani - Timers TYPO 40 -> 0x40 96/03/03 16:31:25 From : Uwe - Remove more -Wall warnings 96/03/03 14:16:52 From : JES - Get USE_MHPDBG back into emumodule.o - Make emumodule.o only included USE_MHPDBG if make from emumod subdir. 96/03/03 09:09:49 From : JES - Fix FNX calls in timers.c - Due to the new ports calling convention, these had to be modified. 96/03/03 08:40:51 From : JES - Get IPX working again (and pktdrvr?) - USING_NET was NOT being carried through all Makes 96/03/02 21:39:20 From : JES - Fix Makefile.main 96/03/02 18:11:46 From : JES - Add X_SUPPORT to mouse subdir 96/03/02 15:14:17 From : JES - Allow make in src subdirectory to _not_ wait for keypress 96/03/02 14:26:47 From : JES - Begin adding Scott's port access methods 96/03/02 12:02:46 From : Erik - Update dos.1 man page 96/03/01 22:13:18 From Hans: adapt emumod to 1.3.70, fix for xdos 96/02/29 18:52:50 From : JES - Bring back Xdos 96/02/29 17:58:19 From : Uwe - Add emumodule loading to QuickStart 96/02/28 20:23:42 from : JES - Fixes to inital ./configure with Uwe's help. 96/02/25 14:07:34 From : JES - Remove async Makefile dup 96/02/25 13:29:08 From : JES - Make MAKE work from each subdir using configure 96/02/24 18:37:17 JES - Add ./configure to DOSEmu via autoconf 96/02/21 13:37:32 From : JES - Correct typdef in cpu.c 96/02/21 11:05:06 From : JES - Remove RCS logs, remove unused, clients, and ipxutils 96/02/20 18:29:33 From Erik: securety fix & logging facilities 96/02/11 12:48:28 From JES - Backout typedefs (thanks Hans) and remove changelog in emu.c 96/02/08 21:52:43 From JES - Update the Release Patchlevel to 0.63.1.1 96/02/08 21:45:43 From JES - Make Xdos and Windows run again :-( 96/02/07 21:04:26 From JES : New typedefs for emu.c and dos.c 96/02/07 20:43:27 From : JES - Adjust types.h and cpu.h to new layout 96/02/05 21:37:47 From : JES - Documentation from Hans for VM86 flag usage 96/02/04 20:03:25 From Alistair: DANG cleanups ... Thu Jan 25 1996 - From Henrik Storner Fix for malloc/valloc-bug, happens together with libc-5.3.0 - From Hans Fix for syscallmgr, NR_xxx wrong together with newer shared libs ( found this thanks to Ronald Wahl , who posted it on de.comp.os.linux ) Tue Jan 23 1996 - Release of dosemu-0.63.0.1 xxx Dec 30 1996 - Release of dosemu-0.63.0 Sat Nov 25 1995 - From Michael Beck : Fix to debugger D command Tue Nov 21 1995 - From whraven@njackn.com : Small fixes to Handle Novell programs - From Uwe : Updates to README.X Sat Nov 18 1995 - From JES : Close /dev/zero after mmap (DPMI), Fix compile without X Fri Nov 10 1995 - From Hans Lermen (and Kevin Buhr): Fix for timerlock-bug This includes the patch from Kevin Buhr (good work), plus some fixes to make hardware-IRQs work (Sillyint), plus some other pic fixes (correct now, but wasn't the reason for the lock) plus THE (one line) fix for the _real_ bug: Once again we messed up with VIF flag, hence letting ints pass through. even if CLI was active. This apparently was one 'bug-catcher' we left back during the the great hunt for 'the bug of bugs' some month ago. (Hmm... I say 'we', but very well may be that it was 'me') I also introduced a #define USE_UNIX_TIME_FOR_INT1A_AH0 which should be defined at top of dosemu/int.c to get the 'old' code, which does not use the BIOS 40:6c timer, but got the time from Linux and overwrites 40:6c. Currently it is not defined, so INT1A AH=0 gets time from 40:6c, however, if somone gets 'timerlocks' again (which I don't hope), then try witch defineing USE_UNIX_TIME_FOR_INT1A_AH0 and report to the team. - removed timerlock-Workaround patch (was added Nov 01) - added upgrade for Linux-1.3.38 (emumodule, syscallmgr, net/libpacket.c) Wed Nov 06 1995 - From Michael Beck : Patches to SBEmu Mon Nov 06 1995 - From Michael Beck : Enhancements to SB and DMA emulation Sun Nov 05 1995 - Removed priv_on/off patches from Yanming (were added Oct 29 ) (inhibited port-IO) Sat Nov 04 1995 - From Kang-Jin Lee: Mods to better detect DOSEmu - From Kevin Buhr : Interim fix to timer stopping. (removed the same day because of hardware-IRQ conflicts) Fri Nov 03 1995 - X-char patch to cast display to correct sizes Wed Nov 01 1995 - Workaround for boot-up-timer-lock-BUG. (Hans) Sun Oct 29 1995 - From Yanming , fix iopl/ioperm permission bug: - remove some wrong priv_on()/priv_off() calls. - Add 2 parameters to priv_on()/priv_off() calls. - Minor fix to compile without REQUIRES_EMUMODULE. Sat Oct 28 1995 - *** pre-release pre0.60.4.4 uploaded from rddc to tsx-11 *** Sun Oct 22 22:32:45 1995 John Kohl * Update emm.c to avoid release string-induced problems on NetBSD. Sun Oct 22 22:32:45 1995 John Kohl * Update emm.c to avoid release string-induced problems on NetBSD. sat Oct 22 1995 - From Hans, Upadates to go elf - From Purtill , joystick patches to use module. - Libelf-a added to dist. Wed Oct 04 1995 - Worked a bit with Uwe's discovery of type conversion char <-> unsigned int - Added release-keycode to slang. This may cause problems? - From WE Metzenthen Hi, Having some dos stuff which I wanted to run, I decided that it was time to update my dosemu. Unfortunately, I still only run a mono HGA card so dosemu-0.60.3 was not a stunning success. Anyway, I dug into the sources to the extent which was necessary to get it to work with my HGA card and the resulting patches are attached to the end of this message. The patches also improve the functionality in that dosemu now does something more sensible with the cursor. Not having followed the development of dosemu closely, I don't claim that these patches represent the correct way to solve the problems, only that they work for me under admittedly limited testing. The patches also apply cleanly to dosemu-0.60.4.3 (apart from a trivial Makefile change) and seem to compile o.k., but I haven't checked the result because I don't want to bother with modules yet. --Bill Tue Oct 03 1995 - From: "Pavel Kankovsky" These my patches are against 0.60.3 (but they seem to still be usable in 0.61.00 from what I have seen at the first glance). Here is some description only (usable as ChangeLog entries, I hope), diffs themselves are enclosed as attached files (dosemu[0-3].diff). Patch 0 fixes 3 things in mfs.c: - Mktime() uses tm_isdst value (unlike stated in the original source code) leaving it unset causes random mtime shifts by one hour and has funny effects esp. when running make, value -1 (which meaning is "figure out the proper value yourself" :> ) seems to be the best one for me. - Hlist stack management was quite 'kludge-o-matic' in the original code and caused problems with Quattro Pro 5.0 installation program which starts a directory search, does NOT finish it and spawns unzip program that starts another directory search, and upon unzip's exit, both lists were popped, making the installation die eventually. I rewrote findfirst/next and hlist_push/pop to allow this case and do it all in a bit cleaner way. - Findfirst returns FILE_NOT_FOUND no more because original Dos returns this value only for EMPTY directories (even no ., .., volume label!), so NO_MORE_FILES is more convenient in most cases (esp. for Volkov Commander -- Norton Cmdr. alike -- that used to complain "Can't read volume in drive X:" every time it got FILE_NOT_FOUND for findfirst) Patch 1 brings some improvement I made in dosdbg.c and its counterpart dyndeb.c to help myself when examining PIC working. The original code does not accept debug levels (as Dosemu command line options do). Now you can do something like "dosdbg 3r" when Dos boots and reduce the debugging log by cca 300 kilobytes. :-) Patch 2 makes Dosemu safer as it does not allow ordinary users to do "dos -F ..." with dangerous (e.g. direct disk access) settings in their configfiles. Patch 3 modifies keyboard driver finalization so as to let keyboard leds follow in-kernel num/caps/scroll-lock flags again. (I was trying to make it save led-function setting and restore it later but the kernel does not seem to provide a straight-forward way of doing it. Bad luck.) I hope it will help make Dosemu better Dos than Dos! :-) Yours Sincerely, +----------------------------------------- | DCIT s.r.o., CDMS, J. Martiho 2/407 Pavel Kankovsky aka PeaK | 160 41 Praha 6 - Veleslavin, Czech Rep. | phone/fax: (42 2) 316 42 78 | web: http://www.dcit.cz/ Mon Oct 02 1995 - Patches to XMS for better himem compatibility Wed Oct 11 22:28:05 1995 John Kohl * Update for latest NetBSD stuff Wed Sep 27 1995 - Included many patches to get NetBSD back on track. - Added in 2 patches for debugger and other en-Hans-ments :-) Tue Sep 12 1995 - Added first layer of DMA and SoundBlaster code oringinally contributed by Joel Weber (age 15), then put into the distribution by Alistair. Sat Sep 09 1995 - Added FOSSIL internal support by pasi@forum.nullnet.fi (Pasi Eronen) - Added X enhancments and -O option by Uwe Bonnes bon@elektron.ikp.physik.th-darmstadt.de and Pasi. - Hans' latest syscallmgr updates. Thu Jul 28 1995 - Release DOSEMU-0.60.4.tgz - Hans' patch to dpmi.c - Added CLTS from rde@tadpole.co.uk (Richard Evans) - Added .ini extensions from Jon - From Snow Cat 2) pic/pic.c has some assembler code that doesn't work with -O3 because it's using global labels that get expanded more than once. Fixing it to use local labels solves the problem. 3) mfs/mfs.c doesn't handle "commit file" and "flush all disk buffers". It causes AH=68H/int 21H to return an error code that confuses database programs. I changed COMMIT_FILE to do fsync() and FLUSH_ALL_BUFFERS to do nothing and return success (because sync()ing every time DOS wants to flush buffers makes too much noise). .... and some other patches too. - Mfs patch from Andi. - Mouse patches from beck@informatik.hu-berlin.de (Michael Beck) - Patches for UID settings by Steven P. Crain Wed Jun 28 1995 - Release DOSEMU-0.60.3.tgz From Hans : This is a summary of my changes since dosemu0.60.2: - Upgraded syscallmgr/insmod to modutils-1.2.8 (full insmod-tree is in insmod-1.2.8-HACKER_TOOL.tar.gz) Now can (mix) load a.out- or ELF- modules into a.out- or ELF- kernels. - New LDT support for emumodule, now can access the *real* LDT from dosemu user space. How it works can be seen in ldttest.c - Made emumod ELF compilable ( patch from Rick Sladkey ) - Took over some changes to vm86() from Linux 1.2.11 and 1.3.3 into emumodule. Also now doing full verify_area on all accessed user space in emumodules' vm86() (USE_VM86_STACKVERIFY). This fixes some odd DOS register messups. - Fixed wrong flag handling in bios.S for INT10 .. INT1B (some of them should IRET). - Improved return to DOS-space from dosemu redirected INTs int dosemu/int.c function do_int(). (did respawn to dosemu immediately, so leaving the DOSapp no chance to react). - Fixed interruption of DOS space when interrupts were disabled. ( check for VIF at entry of pic's run_irqs() ). This fixes the main trouble together with sillyint (exception 6 bug). JES did the rest by finding this damned WRITE_FLAGS bug and fixing various VIF/IF handling. - Now dosemu will do register dump if -g debugflag is set and if killed via SIGHUP. So we can see were the DOSapp is hanging. - Varous fixing for sillyint (SIG), so it now complies with the new pic-handling. - Fix startup recognition of loaded emumodule. Now it will exit with error if no module is loaded and REQUIRES_EMUMODULE is set. - Made dosemu/sigsegv.c real-mode-386-compatible and fixed wrong prefix handling (ES,DS,GS,FS,REP). Moved some remaining 'fprintf(stderr)' to 'i_printf()' - Fixed overload condition resulting in DOS internal stack overflow. ( bug while using SLANG terminal). This is done by monitoring the difference between pic_sys_time and pic_dos_time and avoiding vm86() respawning to fast when OVERLOAD_THRESHOULD is reached. This way DOS has a better chance to catch up some additional CPU time in order to be in schedule with pic_sys_time. - Fixed dualmon messup (didn't work a lot of last releases). So long, Hans Fri Jun 22 1995 - Patches to emumod/vm86.c by Hans to fix some real odd register bugs. - Update to READ/WRITE_FLAGS to remove bug of VIF being cleared when CARRY/NOCARRY used. - Patches to pic.c from JL. - Mods to the mfs.c code in an effort to get FCB callouts working again. - File locking implemented in mfs.c thanks to Jack. - Allow booting from a sector image file Wed May 31 1995 - Mouse patches from Alan Hourihane - Made priv_on/off into functions. - CDrom addition for Aztech/Orchid/Okano/Wearnes by Werner Zimmermann (zimmerma@rz.fht-esslingen.de) Mon May 29 1995 - JL's latest PIC overflow patch - Kang-Jin Lee's latest help Sat May 27 1995 - PIC enhancements. - More support for CD-ROMs - Dong's DPMI enhancements - Change mouse.com to emumouse.com - Mods to mfs.c for Novell compatibility - Mods to emumodule by Hans Fri May 12 1995 - RELEASE of DOSEMU0.60.2. - Xkeyb.c -> More patches. - Xkeyb.c changes mostly from Ross Becker (many thanks for following up on this). - Hans' latest for SIG and Emumod - JL's PIC enhancements - Dong's Mods for Pharlap extender capability which includes an additional patch in ./dpmi/kernel.diff. This patch (./dpmi/kernel.diff) will bomb on kernels > 1.2.7 as Linus has included part of it (the last patch - to vm86.c) into 1.2.8. Having said that, please choose to either : 1) Use emumodule which makes this all redundant 2) Use this full patch to kernels < 1.2.8 3) Remove the last part of this patch to vm86.c if you are running a kernel > 1.2.7 Sat Apr 22 1995 - Changed disk_init() in ./dosemu/disks.c to allow 'hdimage' being opened readonly. - Added Dong's DPMI patches. - Small patch to mouse.c for non-X compiles Fri Apr 14 1995 - RELEASE of DOSEMU0.60.1. - Patches to internal mouse. - Patches to serial. - Patches to PIC. - Set X_keycode back to 0. This will require setting keycode in your /etc/dosemu.conf for all folks who didn't need it before. Sat Apr 08 1995 - OFFICIAL RELEASE of DOSEMU0.60.0. - Last minute cleanup by Lutz. - Last minute bugfixes by Dong - Some additions to some docs. Tue Apr 04 1995 - Upadate to config.dist by Don Parsons - Speed.com for changing HogThreshold on the fly by Tim Van der Linden - Patches to mouse for logitech/mm from David Sun Apr 02 1995 - Release pl58 - John's cleanup of SLANG including screen size fix. - Preparing for the onslaught of user E-mail from above, I added the file name being parsed to yyerror(). - JL's PIC patch for serial, etc... - Hans' latest. It removes the KERNEL_VERSION hack too :-). - Dong's DPMI patches to get the BCC IDE going. Also includes small patch to serial.c to dissallow mice from being initialized if not at the console. Thu Mar 30 1995 - Release pl57 - Scott's timer patches for speaker emulation - Hans' patches to bring emumodule to 1.2.2 - More cleanup+ by Kang-Jin Lee lee@tengu.in-berlin.de - Added hack for KERNEL_VERSION to lower E-mail :-) - Rod May's dummy HDiamge (hddummy) Tue Mar 28 1995 - Release pl56 - Kang-Jin Lee lee@tengu.in-berlin.de patches to lredir.c, unix.c, mouse.c, etc... - Addition of tty_locks { } from: Matthew Grant Mon Mar 27 1995 - John's patches to add priv_on() and priv_off(). - Dong's latest DPMI enhancements - Scott's latest timer code to remove the need for speaker access to port 0x42 - Hans' syscallmgr/emumodule combo so now we will not require kernel patches to run DOSEMU with the extra DPMI support. There are 2 scripts load_module.sh and unload_module.sh to make the module stuff easier for newbies. You'll need to modify the Makefile if you chose to go with emumodule support for this release. Sat Mar 25 1995 - Release pl55. - Patches by Rod May: I've got patch for you that will check that partitions specified for DPA are not already mounted. As it stands you get an error if the fs is mounted read-write, and DPA read-only is *not* specified. You get a warning if one is read-write and the other read-only. Both read-only is accepted. - Hans' latest patches to bring the syscallmgr compliment up to 1.2.0. - Various patches by Marty Wed Mar 22 1995 - Release pl54 - Got TankWars going. Did so by removing section of bios/bios.S that starts at orig 0xfff0. Put that back into init/init.c as *ptr += code :-(. Now... Why did this cause this problem? - Latest and greatest serial patches from Mark. Should allow DPMI good access to serial interrupts as well as better throughput for transfers. - Dong's latest DPMI series. - Dong's shift to readonly bios parts. Sun Mar 19 1995 - Release pre0.53.53 - Latest DPMI from Dong - Locking serial ttys from: Matthew Grant - Little work on ctrl-alt-del rebooting, but no success. Fri Mar 17 1995 - Release pre0.53.52 - Larry's mods to use HLT code for IRETS - Markky's code to make the timer faster - Scott's latest PIT additions (some probs here) - Added Dong's kernel patch to ./dpmi/kernel.diff - Added back in network code :-( - David's updates for LPT to ./examples/config.dist - Put the internal mouse call on IRQ12. - Some of this and a little of that. Thr Mar 16 1995 - Release pre0.53.51 - Minor updates to DANG - lee@tengu.in-berlin.de (Kang-Jin Lee) submitted new isemu.c/com, dosdbg.c/com, config cleanups. - Andrew's latest mfs patches to hide hidden files. - David Hansen patches to add lpt port configuration to the conf file. - Marty added chdir, system and getcmd commands. Wed Mar 15 1995 - Added "Andrew.Tridgell" 's name mangling patch to mfs.c. Too bad Andrew had to see his previos work in such a hacked state :-(. - Dong's latest DPMI patches. Tue Mar 14 1995 - Changed Makefile to make;make install - Replaced 2>debug with -o debug - New libslang.a (also on tsx.../Incoming) - Patches from Lutz. At this time we'll leave it at that :-) - Changes from Marty - JL's latest PIC enhancements. Sun Mar 11 1995 - 2 patches from Lutz - John's latest SLANG. Now does ctrl-alt-del :-) - Moved to keyboard-{server/client}.c - Added Daniel's redirection via -o patches. Thr Mar 08 1995 - Added keyboard fix. Much more to go :-( - Added Scott's timer fix. - Added more timer code from Scott and Mark. Tue Mar 06 1995 - Release pl48 - Latest from Marty (need to test serial) - Scott adds new timer code - Latest DPMI - Latest Slang, uses ^^ instead of ^@. - Beginning of keyboard split. - Alistairs UNIX power additions: OK - This version of unix.exe allows you to interrogate UNIX environment variables and then execute a program contained within AND you can now pass programs to DOSEMU to execute. Basics: Passing a command to DOSEMU: ============================ dos -E "command to be passed to DOSEMU" .... .... C:\> unix.exe -e >> RUNS command to be passed to DOSEMU << Executing the contents of an UNIX Environment Variable: ======================================================= C:\> unix.exe -e ENV_VAR_NAME >> RUNS COMMAND NAMED IN env_var_name << NB ENV_VAR_NAME will probably need to be in CAPITALS ! Running a UNIX Command: ======================= (As Before...) C:\ unix.exe ls -l /dev >> RUNS "ls -l /dev" under Linux .... << ---------- Alistair Fri Mar 03 1995 - Release pl47. - Small EMS fix. Wed Mar 01 1995 - Add break to -v cmdline option :-(. - Added new slang code from John. Includes: 1. Online help "^@?" 2. Sticky modifier keys. 3. Easy terminal independent way of simulating function keys, e.g., ^@5 is F5. 4. Mechanism for panning screen for terminals with less than 25 lines. 5. Redraw - Dong/Lutz latest DPMI - Kevin's latest BOCHS changes. Sat Feb 25 1995 - Released pl46. - Added -v[1-4] option for John to configure cardtype at DOSEMU boot time. (1=VGA, 2=EGA, 3=CGA, 4=MDA) - Added in JL's latest keyboard PIC fixes. - Added in Marty's humungous set of patches. Inncludes changes to PIC layout. - Subset of mouse patches sent in and filtered via Alan. Thr Feb 16 1995 - Release pl45 - Lutz et Dongs latest - Hacked ipxutils to compile again. Sun Feb 12 1995 - Added ipx.h to ./init/init.c - Fixed VC hangs due to GP on memcpy in vc.c - Added back in ctrl-G beep in init10.c - Added some code to get keyboard working in non-keybint mode. Fri Feb 10 1995 - Release pl44 - Added Lutz/Dong's latest patches. Includes another possible fix to the PIC keyboard problem. - Added Alan's latest mouse patches. - Added rebuilt run_unix_command(). See ./dosemu/int.c for details. - Added Scott's latest cleanup patches. Sun Feb 6 1995 - release pl43 - Added Dong/Lutz patch for pic_cli(); - Set (hardcoded) X window to 80x25. Sun Feb 5 1995 - Added latest DPMI patches. - Patched in Scott's latest dosemu cleaning up. Also from Scott: James, Well, I restarted the patch work that I sent to you some time ago. I haven't gotten all the way through it yet (sadly), but here goes: I propose a naming convention for the initialization procedures: xxxx_init() for something that only gets called once xxxx_setup() for something that gets called at each 'reboot' (e.g. internal reboot -- the code that doesn't work) - Dualmon patches from (mouw@morra.et.tudelft.nl> (Erik Mouw) - Rewritten unix.c to compile under various DOS C-compilers. Mon Jan 30 1995 - Must mention that JL has added an interrupt watchdog timer so that the keyboard behind problem may be resolved. - Backed out Marty's exchange_uids() as they were slightly incomplete and causing video switching (etc) problems. - #if 0'ed Marty's dbg_fd changes until this is complete. This has caused some problems for folks trying to boot DOSEMU. - Added 2 sets of Lutz's DPMI patches. - Added Ed's mouse garrot enhancements (inc mgarrot.com) to reduce DOSEMU CPU time even more during mouse activity. - Dissallowed video segment IPC attachment when Xdos is used. Fri Jan 27 1995 - Another week, and quite a few goodies. IPX updates from Greg Page. Many mouse updates from Alan. Some DPMI changes from Dong so that jed386 will run. - Renamed termio.* to keyboard.c. Attempted to move all keyboard functions into the keyboard subdir. - Well, for better or worse, watch out world, I've started back again on some of the client/server aspect. Remeber that :-)? At this time, dosemu now creates a file: /tmp/dosemu. with basic info and SHM id's. To see how amazing this is (pun is intended!), cd clients and make. Then you'll have 2 programs: video - To just dump the dos processes 80x25 video screen (Must NOT be in graphics or console mode) keyboard - To dump what is in the DOSEMU keyboard buffer. (NOT the DOS 40:?? buffer) Both programs require a pid as parrameter 1. Fri Jan 20 1995 - Additions by Denis Julitovto make ctrl-alt-del stuff work. Fri Jan 16 1995 - Release pl40 - Upsetting the DPMI apple cart during testing of timer.exe. Now the following rules have been applied with hacking : 1) calls to realmode procedures do NOT run handle_signals() so that DPMI properly deals with them upon return. 2) hardware int's are first reflected to the possible protected mode interrupt handle, which may (and usually does) reflect them back to the realmode handler. Fri Jan 13 1995 - Added Alan's mouse patches - Added Scotts big patch to make int.c and move signals into signal.c - Small patch to bios_emm.c so that seg -> phy requests are properly handled. Mon Jan 9 1995 - Small change to EMS so that Allocate pages allows allocation of 0 pages. This allows Windows 3.0 to run small EMS frame. - Scott has brought garrot into DOSEMU :). - Got Hans's ./tools/sh.kversion to work. sorry Hans. - beck@informatik.hu-berlin.de Michael Beck Here it comes. The patch is very stupid, and add the classname XDosEmu when dosemu runs with X-Support. Use fvwm's ICON "XDosEmu" to get the icon. BTW, perhaps someone should change the config-parsing, so instead of the Iconname the user can set the classname. ALSO: > > And last: I have converted a lot of fonts for DosEmu from > > MS Wind**s FON files and some other sources (CPI and FEDIT files). > > Sorryly The FON files are copyrighted, so I think I cannot distribute > > them. However, perhaps I can distribute the converter, so at > > least the millions of millions Wind**s owners can convert them ;-). > > Mail me if you are interested. > > Yes, always interested. This means that vga.pcf would not be alone? I > could just add it into the dosemu directory on tsx-11. > I send you the package, but my english is very bad, so perhaps someone check it and rewrote my readme (sorry for that, but my time is limited now, the hollidays are over :-( Sun Jan 8 1995 - Released pre0.53_39 - All Hans' patches to get a working kversion.h system in place. Finally we can easily(?) keep dosemu working with various releases. - From Alan: Hi James, I saw in the code you've been doing a bit of hacking with 2/3 button mice. Well I modified a bit of the code and hope this helps a little. What I've done is provided switchable PC Mouse/Microsoft mice modes within DOSEMU. I've re-written mouse.S to become mouse.asm (Sorry, I couldn't suss out gas to compile dos progs, so I had to use a86). Anyway I've also provided the NEW ! raw mouse.com at the end of this message in uuencoded format. There have been a few more subtle changes to the code that you'll probably notice too. One of the more obvious, is that the internaldriver now can have 3 button emulation on 2 button mice. Anyway MOUSE.COM now takes some arguments... r - resets the iret. Put "mouse r" in your autoexec now.. i - inquire current configuration of mouse driver. p - Set PC Mouse mode (3 buttons) m - Set Microsoft mode (2 buttons) I'll be implementing more as we go along... Some of the PS/2 Mouse BIOS routines have been deleted/re-written, as the existing code was wrong. Alan. Hi again. Some more fixes. Apparently according to my documentation there are some wrong doings in the show/hide stuff. There should be a counter which if 0 the cursor shows, but it is possible to do ... hide(), hide() which will make the counter -2, then doing a show() with put the counter at -1, but will still not show the cursor. Doing another show() will make the cursor appear. - Alan's patches to get Hans' emumod system compiling again. - Added new lredir.exe and lredir.c from Tim Josling : The problems fixed are: Doesn't check that argv[2] exists before using it, causing a loop in some cases. Function that returns nothing is specified to return some type of int, causing compiler complaints. Drive mounted read-only is reported as read-write. I tested the fixes pretty thoroughly so they shoudl be OK. I compiled with Turbo C++ 3.0 when I tested them. The file below is the full source in dos format (with ^M's). I tried to generate a diff file but this didn't work as the original file didn't have the ^M's on many lines so as my editer put them on every line I ended up with many spurious diff's. The version of lredir was the one from 0.53pl37. Regards, Tim Josling - Added Lutz's latest DPMI patches. GO32 now runs and shows memory. Some go32 DPMI programs are running. Yah Lutz. Wed Jan 4 1995 - Released pre0.53_38. Happy New Year. - Added Marty's next set of patches. - Moved Hans' enhancements form 'make doeverything' to 'make itall' so that as kernels change, make doeverything remains OK. - Jiggled around where ioctl's to acquire_vt were in vc.c in an effort to stop more of the VC switch hanging bug. Tue Jan 3 1995 - Added Marty's Unix.exe to send unix commands from DOSEMU. To use, just ln files to a unix.exe that you wish to run. I.E: ln ./commands/unix.exe ls.exe from within dosemu, just enter ls and the ls command is executed. - Added two parms to call to show_reg( __FILE__, __LINE__) to track down where show_regs() are being called from. Sun Jan 1 1995 - Added return to getKey() function in ./keyboard/termio.c when screen is not current. Fixed screen lockups here. - Removed (added #if 0) code setting bs_pos to -1 for root dir deletes Mon Dec 19 1994 - Added Marty's latest Makefile enhancements. This included 2 new files (data.c extern.h) and including int.h inside of emu.c. Marty promises emu.c will get smaller :-) - Added Lutz's latest DPMI enhancements. Sun Dec 11 1994 - Changed check for mouse in graphics mode by using video regs. - Latest updates from BOCHS project. - Modified MICKEY concept in mouse.c so that WordPerfect now works with internal mouse. Doing this blind folks. Anxiously waiting for Alan's next set of mouse enhancements. Tue Jan 3 09:49:22 1995 Jochen Hein (Hein@Informatik.TU-Clausthal.de) * keyboard layout gr renamed to de, like keyboard-utils. Fri Dec 9 1994 - Release pl37 - Added garrot02 to dosemu. I think it should be separate on tsx? Sat Dec 3 1994 - Update to add different X fonts : Hi! I just added support to change the font used with XDOS. There is a new keyword, "font", in the X-section of the config file which allows you to specify the font to be used. If the font is not a monospaced font (or can't be found) "vga" is still the default. There is no translation done, i.e. the font has to be an IBM font! So, if someone wants to create a smaller font... BTW, the include file "linux/segment.h" changed to "asm/segment.h" somewhere around linux 1.1.67 (it is used in dpmi.c). The diffs are against pre0.53pl36. CU Heiko Email: | Snail-mail: | Heiko Schroeder heiko@pool.informatik.rwth-aachen.de | Lerchenweg 120 | 52223 Stolberg | GERMANY - Modified to check for VGA, then warn and check for 9x16, then fail. Fri Dec 2 1994 - Release pl36. Mon Nov 28 1994 - Added -D__ASSEMBLY__ to get emumodule.o going again in later kernels :-). - Some problem in RPT_SYSCALL, so went back to SA_RESTART and set RPT_SYSCALL to return. - Added mouse.com which causes int33 to be redirected away from an iret. Now Foxpro mouse works in X, but still no WPO :(. Sun Nov 27 1994 - Major -(Thats MAJOR)- restructure of the directories and dosemu files. Marty is a busy man. - Got Han's latest bios.S working with Hans help :). - EMS patches from JL. - Made Novell access single mode again for default. - Verified alt keys are working well, as well as alternate slang keys. - Latest memory access for cross-platform development thanks to Kevin for the Bochs team. Tue Nov 21 1994 - Added RPT_SYSCALL's to some writes. Kinda kludgy for know :-( - Latest SLANG enhancements: Hi, I added the ability to access ALT, SHIFT, and CONTROL keys for remote terminals. For example, one can now use alt function keys as well as Ctrl-Backspace, Shift-tab to get the backtab, Ctrl-Arrow, etc.... Below, you will find a uuencoded file called `files.tar.gz'. After unpacking it, you will see: termio.c, slang-termio.c, and terminal.c.slang. The latter files should go in the `video' subdir and the other two go in the `keyboard' subdir. `termio.c' is exactly like the one already there. The changes are marked by `#ifdef USE_SLANG' stuff. Note that in slang-termio.c, you will find 3 global variables: static char *Alt_Shiftkey = "^@A"; static char *Ctrl_Shiftkey = "^@C"; static char *Shift_Shiftkey = "^@S"; These should be initialized by the user by whatever mechanism you prefer. They represent the keysequence that invokes the appropriate modifier key, e.g., to get the next key ALT, press `Ctrl-@ A'. Perhaps, it might be easier to simply use `Ctrl-A' but I wanted to demonstrate that one can use a multiple character key sequence. When one of these keys are pressed, an indicator will appear at the bottom of the screen indicating this. (The new terminal.c.slang does this). I had a terrible time getting the ESC key timout to work properly at 2400 baud. As a result, I have eliminated the ESC timeout from the slang version. If you want to send an ESC, hit it twice. The alternative simply does not work and hitting it twice when an escape is needed is alot less painful. One can always rebind the escape key on the terminal emulator to send two escapes. Obviously, we will want to add some mechanism to rebind keys. I do not believe that relying on the keys as defined in termcap is adequate. For example, one might want to rebind Ctrl-E to escape for a DOS program that uses the ESC alot. --John - Added ctrl-enter to Xkeyb thanks to Veijo Vilva Sat Nov 19 1994 - Latest terminal.c from John Davis. Fri Nov 18 1994 - Patch for PS/2 mice from Keith Parks . - Slang code replacement in test. Set USE_SLANG in Makefile. Slang is a faster terminal control library than ncurses. Requires slang (amy.tch.harvard.edu in pub/slang , or tsx in the dosemu Development subdir). Many thanks to John Davis (davis@amy.tch.harvard.edu) for trying to win us over. - Patches to /init/parser.y for /etc/dosemu.users. Wed Nov 16 1994 - Rod May has noted that due to race conditions in the kernel during partition access in kernels in the 1.1.51 - 1.1.61 and I believe 1.1.63. Don't have his E-mail here, but it DOES CAUSE CORRUPTION and therefore BEWARE of using PARTITION ACCESS in these kernels! - First steps towards making DOSEMU platform independant by the Boch's project, Kevin P. Lawton" . - JL's latest bios.S. Cleaned up and documented. - Latest Makefile, DPMI, etc cleanups. Moving towards a Makefile.common system. Sat Nov 12 1994 - Release pre0.53_33. - Han's latest, now he has a self-contained emumodule that includes SIG and really gives DOSEMU the power it has desired for quite some time to make use of the kernel. You will need to set the #if 0 to 1 in emu.h as well as: /* From Hans: If you you need the emumodules special features * You also must load the modules as follows: * login in as root * cd /usr/src/dosemuXXX/syscallmgr * ./insmod syscallmgr.o * ./insmod -m ../emumod/emumodule.o */ More background: Hi Jim As you didn't show up at IRC, I send you some explanations about the new emumodule stuff and inbedded sillyint. I established two interfaces to the emumodule, which I think can be expanded for all other features, that we need in the future: 1. A standard Linux systemcall (over syscallmgr) for all functions that needs the kernel support functions (like printk). During within this syscall, the scheduler and/or an interrupt may take away control from dosemu. The calling convention of this syscal is defined in ./include/emusys.h as extern inline int emusyscall(int mode, int params) and can be called at this time as result = emusyscall(EMUSYS_GETVERSION,0); result = emusyscall(EMUSYS_GETSUPPORT,0); result = emusyscall(EMUSYS_REQUEST_IRQ,irqnum); result = emusyscall(EMUSYS_FREE_IRQ,irqnum); 2. I implemented a so called fast syscall via an INT 0xe6 to Linux (not to DOS). This syscall has not the great overhead that the standard syscall has and can't be interrupted by Linux's scheduler or interrupts. With this we can access kernel space much faster then with kmem or other techniques and also we can set some bits of emumodules variable. We can check some status, and after return from fastsyscall we are shure that the status is what it says. Its also possible to realized some of the DPMI functions with this kind of syscall. But, this syscall must run with interrupts disabled, and also can only use some the kernels macros, but not the support functions which leads to rescheduling e.t.c. I used this type of syscall to get and reset the IRQ-bits of sillyint. Also the fastsys calls are defined in ./include/emusys.h and currently there exists: extern inline int fastsyscall(int mode) /* generic call */ extern inline int get_and_reset_irq(int irqnum) extern inline int get_and_set_irq(int irqnum) extern inline int get_irq_bits(void) To enable dosemu to use the new features there must be REQUIRES_EMUMODULE defined in emu.h (see at the comments at top of this file). If it is not defined, sillyint is used as usual. One thing at last: I always are on war with "make", so please check and change the Makefiles, that they do compile emumod/ and syscallmkgr/ if REQUIRES_EMUMODULE is set. I was to silly to do so. I also would like to do make from the subdirectories directly during devellopment phase. ...Ah, and the patch fits into 0.53.32 with dualmon.patch already in. So long Hans - Small patch to ./mouse/mouse.c which resets the initiated mouse subroutine on calls to fnx 0x21. This previously wasn't reset and caused future programs to crash DOSEMU when they loaded over that space. Now to see why some programs (Foxpro/Word Perfect Office) don't recognize the internal mouse driver :-(. Wed Nov 9 1994 - Various patches from lee@tengu.in-berlin.de (Kang-Jin Lee) to makefiles. - From Hans : # - If you have a dual-monitor configuration (e.g. MDA as second display), # you then may run CAD programs on 2 displays or let play your debugger # on the MDA while debugging a graphics program on the VGA (e.g TD -do ). # You also may switch to the MDA display by using the DOS command # mode mono (mode co80 returns to your normal display). # This feature can be enabled by the switch "dualmon" like this: # video { vga console graphics dualmon } # and can be used on a xterm and the console, but of course not, if you # have the MDA as your primary display. # You also must set USE_DUALMON 1 in include/video.h. # NOTE: Make shure no more then one process is using this feature ! # ( you will get funny garbage on your MDA display. ) # Also, you must NOT have the dualmon-patches for kernel applied # ( having the MDA as Linux console ) # Tue Nov 8 1994 - Small fix to mouse.c Tue Nov 8 1994 - pre0.53pl32 released - Fix for Xdos dealing with missing link options with many Thanks to heiko@POOL.Informatik.RWTH-Aachen.DE. - From Rob May: Hi James! yep, this is an interesting point. It's not just lilo that will have problems, some other boot sector programs (which rewrite the MBR) will need this "workaround" and therefore won't work with this patch. (I would recommend using one of the newer boot sector programs as they are better than lilo, but this is a different point). Unfortunately this "workaround" is a very poor long term solution, as using the current part-table is the only safe option. This only affects people who boot using DPA with lilo up their MBR, but... Since we are basically hacking the part-table to only one valid bootable partition, a solution is to cut out the middle-man and boot the partition directly, this way we get the current part-table and whatever boot sector code you have is irrelevant. Patch to emu.c follows.... Any Comments? Ciao, Rod May. Sun Nov 6 1994 - Various PIC patches from JL, also left PIC disabled. - Changed some of the automatic X11 code thanks to Jochen. Thu Nov 3 1994 - Released pred0.53_30. - Fixed Serial (removed r=0 setting at the end of inb() in ports.h) - Removed SA_RESTART for some functions (atleast temporarily) Wed Nov 2 23:04:02 1994 Jochen Hein (Hein@Student.TU-Clausthal.de) * [Makefile] guessing in X installation * [keyboard/*] moved all keyboard-related file there, addes a Makefile termio.h moved to :/include * [*/Makefile] Cleanup in clean targets, CFLAGS simplified * [commands/isemu.asm] New file, disassembled isemu.com Tue Nov 01 1994 JES - Released pred0.53_29. - Tested that Helppc ran. - Added STI to keyboard int16 of bios.S. One fix for PIC, for now :-). - Changed && -> & in pic_request() if pic_iret(). Wed Oct 25 1994 JES - Latest v-net app from Vinod + ipxbridges. From: Rod May Hi there, here's a patch (to pl28) which makes the use of "mkpartition" unnecessary for direct partition access. Also the partition number is no longer required. i.e. instead of specifying: disk { partition "/dev/hda3" 3 } and running "mkpartition", you only have to specify: disk { partition "/dev/hda3" } The MBR is read from the appropriate hard drive during start-up. Not only does this simplyfy things but stops potential mistakes including: out of date MBRs, specifying hda instead of hda3 etc. These were not flagged before and could lead to "interesting" results. Using the old format will get you a config warning but otherwise the partition number will just be ignored, Ciao, Rod May, stoke@melbourne.dialix.oz.au Hope this patch is useful, next effort might be read_sectors() which needs a bit of work! bye for now, Rod. Sat Oct 22 1994 JES - More xinstallvgafont.sh fixups with thanks to : > Kang-Jin Lee > lee@tengu.in-berlin.de - Makefile enhancements from Marty. - Detach updates by n1046128@student.fit.qut.edu.au (WAYNE P MEISSNER) - Modified ports.h by Markky Wed Oct 19 1994 JES - Release pre53_28.tgz - From JL: From popserver Thu Oct 19 14:23:31 GMT 1994 Received: from marlin.ssnet.com (ssnet.com [165.113.8.3]) by Fox.nstn.ns.ca (8.6.8.1/8.6.6) with SMTP id KAA03316 for ; Wed, 19 Oct 1994 10:40:18 -0300 Received: by marlin.ssnet.com (4.1/SMI-4.1) id AA21140; Wed, 19 Oct 94 09:39:00 EDT From: jlarry@marlin.ssnet.com (J. Lawrence Stephan) Message-Id: <9410191339.AA21140@marlin.ssnet.com> Subject: pic announcement To: macleajb@ednet.ns.ca (James MacLean) Date: Wed, 19 Oct 1994 09:38:57 -0400 (EDT) X-Mailer: ELM [version 2.4 PL20] Content-Type: text Content-Length: 2237 Status: RO Hi Jes - Here is the new pic code. It is implemented as contidional code, so you'll have to un-comment a line in the Makefile if you want to try it. Look for the string NEW_PIC in the Makefile; the instructions are right before it. Because the serial.c pic mods don't work very well yet, I have provided two options: The firstone only implements pic for keyboard and timer code. This stuff is pretty solid, and I would appreciate bug reports, etc. The second option implements pic for timer, keyboard, and serial interrupts. The serial code is knows to have bugs, although it is useable. PLEASE, if all you know is that the serial code doesn't work right, DON'T send a bug report. I already know that much :-). On the other hand, if you have a fix, or even just a partial one, please let me know. The serial bug shows as an extermely low send rate; only half as fast as whennot using pic. I would appreciate any bug reports on the keyboard and timer code. They are not complete, but I believe this code to be bug-free. And now, a (very) little technical information for the curious: There are two big differences when using pic. First, interrupts are not queued beyond a depth of 1 for each interrupt. It is up to the interrupt code to detect that further interrupts are required and reschedule itself. Second, interrupt handlers are designated at dosemu initialization time. Triggering them involves merely specifying the appropriate irq. Since timer interrupts are always spaced apart, the lack of queueing has no effect on them. The keyboard interrupts are re-scheduled if there is anything in the scan_queue. The keyboard pseudo-input register, *LASTSCAN_ADD, is set to 1 (an otherwise unused value) to indicate that it has been read, and can therefore be re-filled. Both the keyboard and timer bios routines now have outb 0x20 to signal the EOI. The OUTB_ADDR is no longer used. This has been slow in coming, I know; and it will be a while before it gets fully utilized. But, at least when the serial code gets done, it should help get dpmi on its way. I'll keep working on this; I think it has a lot of potential to help organize the code. Good luck with it to all, and thanks in advance for any comments. - Mods to Makefile, xinstallvgafont, xterm - pktnew.c uses run_int() instead of do_hard_int() - Various Makefile mods - Latest syscallmgr and emumodule from Hans. Remember the insmod -m switch - dosnet subdir now v-net. Hey, why not :-). - Added 'make optionalsubdirs' to keep new test stuff out of make most. - Patches received to allow logical partitions to work with partition access. All that is required is to have partition parm to disk statement be higher than 4. Tue Oct 18 1994 JES - Added config.pd and -D+P debug switch for packet driver debugging Sun Oct 16 1994 JES Hi there! Here's my patch for allowing DPA access to specific logical partitions under dosemu. It applies to the patch level 27 code of disks.[ch]. Access to specfic logical partitions, rather than entire extended partitions, is a great idea for the same reason that partition access is better than wholedisk access: one day a poor linux partition will suffer. Its used by specifying a part number greater than 4 e.g.: disk { partition "/dev/hda5" 5 } the number itself does mot matter (as long as its greater than 4) as it is the device name that's used to derive the part table entry info. The only query is that I raised the MAX_HDISKS in disk.h from 4 to 8, (I'm using 7 at the moment with no probems). Also I wasn't sure of the number to pass to leavedos for the BLKGETSIZE error, is there a convention for this? This should never never happen though (famous last words). Hope this is useful to others, email me with any questions, Ciao, Rod May. stoke@melbourne.dialix.oz.au Fri Oct 14 1994 JES - From Marty : - Added realclean to Makefile - Changed if STATIC to ifdef STATIC - #if 0'ed Warnings for running static in dos.c Fri Oct 14 1994 JES - Release pre53_27.tgz - Small patch to int10.c so that recursive calls to char_out() for tab's doesn't become and endless loop :-( - Patch from Dino Dini to get that -F option working again. - Patch to emu.c to make clean compiles without X. - Added adder var to timer code so that 2 reads don't return the same number. - More I'm sure... But I forget :-(. Mon Oct 10 1994 JES - vinod@cse.iitb.ernet.in (Vinod G Kulkarni) has added multiple protocal/sessions under DOSEMU via dosnet (dsn0) device. Requires reading of ./dosnet/dosnet.README, loading the dosnet.o module, ifconfig'ing it with a new IP, and running ipxbridge (ipxbridge0.1). Sat Oct 07 1994 JES - andi@andiunx.m.isar.de (Andreas Kies) added the catch for keystate to HogThreshold. Seems to be a great help for keeping CPU usage down. Fri Oct 07 1994 JES - Removed SIGIO for PS2 and busmice. Wed Oct 05 1994 JES - Even better Configure script from Jan. - Diffs from Martin. - Changed Extended Move Block call in xms.c to not move outside (from/to) of valid memory. Tue Oct 04 1994 JES - pre53_26 released. - Added in some timer code from MACH for Scott to play with. NOTE ****** This is scary stuff so beware of this release as the code WILL get direct access of certain ports :-(. You may wish to hold off until pre53_27. - Latest Configure script from Jan. Keeps getting better, and funner too :-). - Added Hans latest SIG enhancements. Mon Oct 03 1994 Lutz - Placed back DPMI sigio/sigalrm signal calls to the old one ;-( - Removed dpmi/call.S - now using a task switch via hlt-instruction - Fixed some small DPMI bugs Sun Oct 02 1994 Jmaclean - Released pre53_25. - Added 10 bytes to the malloc for 1 dir_ent struct, as the dir_emt size seems too small. This fixes some bad mfs.c bugs. - Added a nonl() by request of Fons Botman . Fri Sep 30 1994 Jmaclean - Released pre53_24. - Added Scott's patch to fix EMS attempting to access invalid memory. Fastest fix for a bug I've seen :-). - Modified CHECK_HANDLE to deal with non-active handles as it was previously just checking for ranges. This fixes Hans finding of mem/d giving extraneous info. - Moved Lutz's DPMI signal calls to within the signals for Hans. Wed Sep 28 1994 Jmaclean - Fixed one definite place for Divide/Stack Overflow to occur in int.h. Problem occured when a default interrupt was called by a redirected interrupt. This caused a recursion to the never lands. Tue Sep 27 1994 Jmaclean - Released pre53_23.tgz in diff form only. - Added Jan's latest Configure script with X support. Modified it to cp with backups /etc/dosemu.conf to /etc/dosemu.conf.backup. - Remade first part of convascii of termio.c where esc seq's are translated. Involved working around select getting interrupted. - Fixs to serial woes added in termio.c - keyboard_init(). Moral of this story? A baud rate of 0 (B0) is equivalent to sending the process -SIGHUP. Real fix added to ./video/terminal.c by moving raw() statement to AFTER initscr() as spec'd in ncurses. - Fixed to memory access errors in vga.c. Funny they seem to have been OK when handled in a signal?. Now folks should be able to resume switching VC's :-). Mon Sep 26 1994 Jmaclean - Pre53_22.tgz released. - Added isemu.com from dan@fch.wimsey.bc.ca (Dan Fandrich) to give a return code for testing if DOSEMU is running. - Added MDA as valid card selection in dosemu.conf (=MGA) - Some goodies from Hans Lerman: Well, here now is the summery of things that are in my patches which I have tested under Linux-1.1.50. ( the patches come in a separate mail, because my mailer cannot handle too large mails ) 1. Loadable driver sillyint.o It is compiled via a normal "make doeverything" and put into the directory /boot/modules. I changed the sig/Makefile, it also needs to know where the kernel sources are (USRSRCDIR). The source needs a -DMAKE_LOADABLE_DRIVER to compile sillyint.o The same source can be used (without the -DMAKE..) to compile the kernel linked in driver. I changed the sig/HowTo. The device major is put into an global variable SIG_MAJOR, so it can be changed on loadtime by insmod /boot/modules SIG_MAJOR=31 2. Multiple SIG IRQ's can be defined in /etc/dosemu.conf and also wether to use SIGIO or not. (see examples/config.dist) Because of "sillint off", there is no need to disable SIG via compile time option SIG. I recommend to let it be #define SIG 1. I did not succeed with setting up a test for two IRQs at the same time, so me and other people have to test it in the future. 3. Mapping of hardware ram is configurable via hardware_ram { 0xc8000 } # one 4K page mapped or hardware_ram { 0xc8000 range 0xcc000 0xcffff } # multiple mapped pages I added an overlap test to avoid wrong mapping, it is done after configuration is finished, so it should catch all errors. It relates to EMS, VBIOS and HARDWARE_RAM. 4. EMS-frame is now movable (needed for ram conflicts). The ems keyword is expanded as follows: ems { 1024 ems_frame 0xe000} or ems { ems_size 1024 } # defaults to old size of 0x10000 But the old syntax is valid too. 5. Size of VBIOS now configurable (most BIOSes at 0xc0000 have only 32K so I can gain some space for hardware ram and/or UMBs). /etc/dosemu.conf line: added flag "vbios_size" 6. I corrected a situation (not a bug) concerning the "c" debug flag. If "c" was switched off in /etc/dosemu.conf, you could not get the config printout via dos -D+c Now this is possible. That's all for now, ...so long, Hans Sat Sep 24 1994 Jmaclean - Messed more with timer interrupt so that setting date backwards doesn't cause divide overflow. Seems to fix it for going ahead and back through time. Only problem is that when DOS sees it's past 24hrs, it always moves its date ahead a day :-(. - Changed config.graphics to config.vga in emu.c to control setting allowvideoportaccess to 0. - Added vc switching (set_process_control) to new signal_queue. From conversation with JL I'm not sure this is gonna be solid since now the signal_queue being run to switch VC's will rely on returns from vm86(). Still doesn't fix bad crashing when running Windows3.0 which takes down my whole UNIX box :-(. - Stopped DOSEMU from exiting when no diskette in drive. - Added note to add users to /etc/dosemu.users in QuickStart. - Fixed parsing of -C option to NOT expect arguements. Thr Sep 22 1994 Jmaclean - PRE53_21 Released. - Messed with timer code. Changed tick setting to different method and relied on time() to give acurate time. Found what seems to be the 24 hour bug and inilated it!!!!!! With many thanks to Corey. - Added backspace/delete patch to Xkeyb.c. Thanks to Scott and Mark. - Hacked up HogThreshold again. Rule: Closer you set to 0, the lower the CPU usage. At 0 though, hogThreshold is turned off, and int16/int2a are run full open. - Added HogThreshold to int2a. - Added patches to bring -F config file option back to life thanks to Dino Dini . - Added patches to ./video/X.c for better color reps thanks to Mark. - Prepared to move vc_acquire/release under new signal handling... but failed miserably :-(. - Makefile additions by Mark. Tue Sep 20 1994 Jmaclean - Removed most coding from SIGIO and SIGALRM signals in an effort to remove race conditions. Now these signals just mark that they've occured, save their context, and continue. Lutz's DPMI will suffer :-(. Probably best to go through DANG to get an idea of what's going on :-). Mon Sep 19 1994 Jmaclean - Wrapped lpt opens in exchange_uids() to allow "lpr" to run at user level. - Modified Makefile to create libdosemu$(EMUVER)pl$(PATCHL) and link libdosemu to it. Now folks can compare releases just by changing symlinks. Probably not what was wanted, but a close facsimile :-). - Added SIG mods by Hans Lermen (lermen@elserv.ffm.fgan.de). More to come. - Cleaned up boot() in emu.c to just boot. Added memory_init() for all specific memory setups for proper i86 boots. - Added portuguese keyboard map. Sun Sep 18 1994 Jmaclean - Removed ioc_fd and replaced all occurances with kbd_fd. - Started DANGing :-). fri Sep 16 1994 Jmaclean - Another change to the readonly open error - Fix to mfs.c for return values for readonly mfs drives. Sat Sep 10 1994 Jmaclean - Added new dialog script from Jan Vandenburge. - Fixed internal Mouse driver not setting up for new SIGIO calls. Thanks to Alan for providing a fix... But I did it ... my way :-). Hope you don't mind Alan. - Fixed SERIAL not working. Martin's code was returning in outb before anything was done :-(. - And now a little from Alan...: Hi James.. Not my usual stuff but I had to fix it. The parser seemed to be screwed up for me, in that it parsed two files, both the local .dosrc and the /etc/dosemu.conf, this resulted in the first linux drive becoming f:. All because the system though I had two hard disks and one floppy image due to the parsing twice of the configs. Anyway attached is a fix so that it parses the local .dosrc first... If it doesn't find one it takes the /etc/dosemu.conf. Secondly, I've implemented an /etc/dosemu.users file, similar to minicom's way of working. This allows only selected users to execute dosemu. Create the /etc/dosemu.users file with, on each line, the name of the user allowed to execute DOSEMU. This approach could be later expanded to specifying devices in the dosemu.users file, so that only selected users are able to open specific devices. Thirdly, I had to fix up the Makefile a little for ease of use. Notice I've defined an X11LIBDIR now too. Cheers. Alan. - Also: James, For some reason the gfx_cursor for the mouse was commented out. I checked the docs and someone commented it out because it was crashing the X stuff. Well, This fix should get rid of that. As it only call mouse_do_cur() if we are not running X. Before it was trying to mmap even when X was running. Bad idea ..... Tue Sep 06 1994 Jmaclean - Added sig subdir with Silly Interrupt Generator in toe. Did some preliminary testing with SIG to get it working with 1.1.x kernels. Mon Sep 05 1994 Jmaclean - From Rain: I guess I let this stuff rust on my harddisk long enough, so here's another patch ;) It includes: - support for 28/43/50 line modes - make xdos exit properly when it fails to open the X server (!includes a change to the printer code!) - a color (xpm) icon :-) - auto-detection of readonly floppies, which newer kernels require. It also includes my attempts to make bios scrolls scroll the X window directly, in the hope that it would make things faster. However, I found that it's at least as often slower as it's faster... I disabled the code and left it in just because Mark might be interested to use it for the terminal modes. bye, Rainer - From Martin Ludwig : Hello James! Here is my diff of dosemu pre53_12 to use a second (HGA) monitor for dosemu while using X. I hope it will patch against pre53_15, too. Changes against pre53_12: * new switches -Y and -Z: giving the names of the keyboard and mouse pipe * keyboard input from pipe instead of STDIN * mouse input from pipe instead of asking a mouse port * doesn't install video-bios, uses int10.h instead * watches port I/O of HGA-card and remapps video-memory if the second page is used * uses an own cursor position routine (the one in dosemu 0.52 was removed...) * new X-prog (xdos) which sends mouse and keyboard events from X to dosemu, emulating a raw keyboard Bugs: * no semaphore for the HGA-memory * no mouse in graphics mode * no test if HGA-card is there * it leaves rxvt or xterm disturbed if started from there * problems with msherc-programs and the second page * large xdos-window * some others, I think Future plans: * remove the bugs * data exchange with X-progs * perhaps an CGA or EGA emulator for HGA Copyright: * the same conditions as for dosemu I hope that's all, here is the diff Martin Martin.Ludwig@ruba.rz.ruhr-uni-bochum.de Tue Aug 30 1994 Jmaclean - Added dosconfig script by Jan Vandenberghe. Requires DIALOG. I like it :-). - Included patches from Heiko for X and timer. - Fixed emubat config thanks to Scottb. - Modified io_select() calls to start dividing into 2 camps, those that use sigio and those that don't. - Added SIGIO ability to internal mouse driver. Fri Aug 26 1994 Jmaclean - Fix that HJ already sent in and I missed :-( for the -T arguement of ld from flebbe@tat.physik.uni-tuebingen.de. Wed Aug 24 1994 Jmaclean - Added Enhancements to CDROM driver by Karsten Rucker. - Added Lutz's STI patches and kernel patch sti.pat in .kernel Fri Aug 19 1994 Jmaclean - Changed OpenKeyboard to keyboard_init and closeKeyboard to keyboard_close. Moved these out of video init procs and into there own separate calls. This was causing problems in video_config_init() as it would map in video bios illegally :-(. - Added Conditional for SIG in sigalrm to help io_select() Wed Aug 17 1994 Jmaclean - Added scan to charcode returned in Xkeyb.c by put_key() - Tried to get lexer.l back up :-( Tue Aug 16 1994 Jmaclean - Messed around with Rain's patches until all modes started to work. Mostly order of routines during initialization that had minor problems. Now for example, telnet works again. Sun Aug 14 1994 Jmaclean - Removed SOME __inline__'s from mfs.c, still memory pig :-(. - Rain's latest patches. - Minor fixups to various files. - New Makefile from Mark. Sat Aug 12 1994 Jmaclean - Added Rain's massive cleanups and X mouse support. This is NOT tested and will need some time to smoothen out. - Added keymaps fixes for sg-latin1 from : pingu@satu.baboon.ch (Ruedi Kneubuehler). Fri Aug 12 1994 Jmaclean - Added Scottb's patches to bios_emm.c and lexer.l - Added lsm to ./doc subdir Thr Aug 11 1994 Jmaclean - Fixed keyboard latin1 statement and latin1 codes for better emualtion thanks to vilva@xiron.pc.helsinki.fi (Veijo Vilva). Wed Aug 10 1994 Jmaclean - Added back some termio ioctl's to set ISTRIP,IGNBRK,OPOST and such. Seems to remove backspace in non-rawkeyboard mode. - Added -lfl to toplevel makefile for fixing new parser not resolving required libs. - Added check to NOT add release key for ascii's with high byte 0x00. Mon Aug 08 1994 Jmaclean - Thanks to Rob for pointing out the NCURSES raw() command interference by way of his messages, the ICRNL thing should be dispersed, and replaced with possible new bugs :-). - CD-ROM extensions for DOSEMU with thanks to Karsten Rucker (rucker@astro.uni-bonn.de). - Parser additions from Scottb. We are back to the NEW parser. Developer/Tester beware :-). - DOSEMU-HOWTO updates from Mike. Fri Aug 05 1994 Jmaclean - Added kludge to keyboard so that keypresses in non-console keyboard mode send keypress then keyrelease sequences. This seems to fix atleast WordPerfect double chars. Doesn't seem to help German aumlets though :-(. - Scottb's latest parser patches adding back emu(sys/bat) and a debug { X on } option. Thu Aug 04 1994 Lutz - dpmi/call.S is now totally rewritten to fix a problem with returning to DOS code (stack problem). - CallToInit() deleted - more dpmi cleaning/preparing Wed Aug 03 1994 Jmaclean - Added patches from Tomi, Scottb to new parse generator... but put back in old parse generator fot this release. Well step back to this one hopefully in the next release. - Added Rain's Xdos patches. Folks, we're well on our way :-). Please read README.X and thank Rain for getting everything on it's way. Mon Aug 01 1994 Jmaclean - Added new parser combo lexer.l/parser.y from Scott for all to play with. A bit rough but Scott would enjoy feedback :-). - Fix for bug in cursor positioning that causes garbage sometimes This can be a MAJOR improvement to some people because it's appliation- specific. - Invisible cursor support in console mode. More visually pleasing. - Cursor in ANSI and NCURSES is now put at position 0,0 whenever the cursor is invisible or off-screen. - Improvements to character blinking disable/enable code (this stops the annoying blinking when you run PCTools over a telnet line) - Note from Markkk about new ansi_xterm : "ANSI Xterm 2.0 is a specially modified Xterm that is compatible with DOSEMU and to enable the use of all 16 colors, and the entire PC character set. This makes DOSEMU just like xdos in this area! Furthermore, just follow the instructions included with ANSI Xterm 2.0 for an easy compile. Then all you need to do is type "xdosemu" to bring up an Xwindow running DOSEMU. The xdosemu command automatically detects for the existence of ansi_xterm. If it does not exist, it detects for a regular xterm and rxvt next. Try it, and let Mark Rejhon know at mdrejhon@csclub.uwaterloo.ca as he is responsible for this." Mon Aug 01 1994 Jmaclean - Markks latest and greatest additions to the Xterm capabilities of DOSEMU. Best to get ansi_xterm from a site at this time :-). - Detach capability added, thanks to Karl Hakimian. Now with the optional -d parm, a new VT will be switched to for starting and running DOSEMU. - Added __map_page() to fix EMS error caused by remap() calling __unamp_page() first. FoxPro is running again. Fri Jul 29 1994 Jmaclean - By Jon's request, set '_''s to '-' in keyboard parms in examples/config.dist - By Jon's request, added 'make most' option which does NOT make the doc subdir. Tue Jul 26 1994 Jmaclean - Thanks to Scottb which fixed the DOSEMU memory problems with pointing out that mmap annonymous needed PRIVATE and not SHARED to work :-) We're back on the road again . Sat Jul 23 1994 Rain * Largely reworked {re}{un}map_page, removed v_mmap. COPY/MMAP/IPC_EMS conditionals are now in map_page and friends. Fixed MMAP_EMS: mmap() mapped the wrong way around (-: Still doesn't work, mmap() patch is broken :-( * EMS_IPC is completely screwed up and probably not easy to make work. The problem is that one cannot do partial mappings of shared memory regions. Left it in, though. * added COPY_EMS conditional (for the standard 'mapping' method) * added UNMAP_BEFORE_MAP conditional to leave out unmapping of old mappings in map_page for MMAP_EMS. Shouldn't be necessary because the kernel'll do this for us. * made some calls to re{un}map_page dependent on COPY_EMS because they are only there to update the logical memory * restore_handle_state: unmap pages which were previously unmapped * reallocate_pages: reunmap only pages belonging to the current handle. Fixed a bug: pages above newcount were left mapped. * some minor optimizations, fixes and cleanups... Thr Jul 21 1994 JES - Patches from Rainer Zimmermann (zimmerm@Mathematik.UNi-Marburg.DE) for time-problems with mfs.c - Added procedure to make dosemu.map which is usefull for finding where DOSEMU bombs, like kernel. Thanks Daniel :-) Sat Jul 14 1994 JES - Latest enhancements from Markkk. Sat Jul 11 1994 JES - Latest termio.c with keyboard enhancements from Markkk - Added SIGIO conditional on uname(). Sun Jul 10 09:38:23 1994 Jochen Hein (jochen@No-MS-DOS) * added setlocale-call to dos.c * reformatted highscan[] in termio.c Sat Jul 09 1994 JES - DPMI patches from Lutz - Pktdriver enhancements by Rob - Mouse patch from Douglas Gleichman p86884@tcville.ES.hac.com - Changed install dos as per Jochen - Windows 3.0 mouse is back. - I added insert esc-seq to gettermcap of termio.c Tue Jul 05 1994 JES - Finally... Markkk succeeds where so many of us have failed. NCURSES support is here, and I believe to stay :-). It's still a bit rough, but it IS. You should truly think about getting ncurses-1.8.5.tgz from: netcom.com:pub/zmbenhal/ncurses/1.8.5.tgz This of course brings color to serial lines and preps for many more. I couldn't activate it on a telnet or rlogin connect yet. Thanks Markkk, from many of us :-). Sat Jul 02 1994 JES - Finally... interrupt routines are called by functions of an array. I'm certain that someone can come up with a better method as I'm using 0x100 pointers in interrupt_function(). Tue Jun 28 1994 JES - Markkk brings actuall character set to DOSEMU when in non-graphics mode ... Yaaa :-). Pease read README.ibmset - Patch to modify timers done in SIGALRM. Fri Jun 24 1994 JES - Markks console cursor patches, and more speed increses to serial stuff. - Small change to mfs.c to correct wrong return codes for findfirst. Seems t speed up directory searches, but may just be my imagination :-). - Messed around with SIGILL a bit to try and track down reported problem starting DOSEMU for some that causes SIGILL with instr of 2e:f7 (cs:div?). No solution yet. - Hacked ./init/parse.c a bit to exchange_uids when running overide config files. Now /etc/dosemu.conf always runs, then overrides can be speced in optional config files. Doesn't work yet :-( Tue Jun 14 1994 JES - Next set of patches from Markkk. Major overhaul started that is really improving termcap. Way to go Markkk! - Alistair has completed in no time flat his automoted DANG application. At this time I have NOT included his perl script, but hope to soon. Look in ../doc/DANG[.sgml]. - Michael provides us with an updated DOSEMU-HOWTO in .txt,.ps, and .sgml format. - Alan has another few patches bringing mice support along even further. - Tim's IPX patches for 1.1.14 kernels +. Mon Jun 13 1994 JES - First set of termcap patches from Markkk Sat Jun 11 1994 JES - Latest additions from Alan for busmice. - Put CNTRx counters to -= 2. - Clean up for Thursday release started. Fri Jun 10 1994 JES - Latest additions from Alan for busmice. - UMB fixes by Scott. Sun Jun 05 1994 JES - Alan's latest patches for busmice with a start for graphics support. - Alessandro Rubini (rubini@ipvvis.UNIPV.IT) patches to make Makefiles inherit important common include directory paths. - By suggestion from Jon Tombs, make default inb return 0xff and the creation of tempdir be strdup'ed incase it's freed by a config request. - Changed CNTR timers to count UP by 0x2221 instead of down. - Changed a compare in xms.c according to Scott Buchholz. Thu Jun 02 1994 JES - Patches from Rob including updates to s3 code. - Daniels idea about malloc problem worked into emu.c by moving where scrbuf is allocated. Wonder why it was allocated where it was. Sun May 29 1994 JES - Stuck in a fix for DIR a: error. It's a KLUDGE for now, but I hope it will show where the error is. Thr May 26 1994 JES - More mods to int_queue_run(). Changed where set_leds() is called. - Moved int.h and int10.h to emu.c as that is where do_int() is called mostly now. - Scott's latest patches against 1.0.x & 1.1.x - Rob's patches to remove linpkt from DOSEMU tree. Sat May 21 1994 JES - Lutz's latest patches cleaning up DPMI, etc... Thr May 19 1994 JES - Added Scotts proc/self/map kernel-diffs to ./kernel and added his patches to bios_emm.c. Bios_emm.c is NOT using these by default (See MMAP_EMS in bios_emm.c). - Changed run_vm86() use of int_queue_running to *OUTB_ADD. - Added extra sti to int10 bios handler. - Added Jochen's patches to Makefile. Wed May 18 1994 JES - Added EMS patch from Scott - Added diffs from Jochen. - Started work on keyboard simplifying. Made lastscan into *LASTSCAN a bios area variable. Mon May 17 1994 Jochen - Changed int 8&9 to use a memory location in bios for outb(0x20). This nolonger needs to back off to DOSEMU from an outb20. This caused vm86() not to return enough to run it's int8's, so sigalrm has been modified to be called more often. At the same time I now have the pit controllers decremented. Not sure if this will be of any use or not. For fun just change the TIMER_DIVISOR define at the top of emu.c (Hopefully I'll do this for int9 scancodes next) - Fixed bug in EMS coded Sunday that stopped Windows 3.0 from properly launching programs. - Makefile fixed to distribute ./ipxutils. Thanks Jochen. Mon May 16 1994 Jochen * [ doc/dos.1 ] Updating the manpage to 0.52, current changes * [ init/parse.c ] Cleanup * [ emu.c ] Cleanup: Prototypes, parsing options, usage Mon 16 May 1994 JES - Added conditional to outb20 so that pktdrvr does not require outb20 call. (As should only hard int's) - Added Lutz's fix for Sigsegv()'s. Sun 15 May 1994 JES - To EMS added Alternate Map Register Set, OS/E Function Set. Windows 3.0 now boots without EMS error(All necessary FNX's are supported). Some other cleanup's to EMS including Handle Naming. Thr 13 May 1994 JES - Totally changed int_queue_run(). Now only int's requiring callback will be forced to. Wed 11 May 1994 JES - Markkk's latest serial. - Made ipxutils subdir optionally compile Tue 10 May 1994 JES - Made int08 inline, still need 0x1c to be inline too. - Added back outb20 check to fix stacking of interrupts which included int08 stacking. - Floppy drive sticking has mysteriously vanished. Mon 9 May 1994 JES - IPX updates by Tim Bird. Please look in ./ipxutils for more info. - Addition of -n pktdrvr option by Rob. Look in ./examples/config.dist. Sat 7 May 1994 Jochen * [disk.c disk.h] creating the name for the partition-decsription-file moved to parse.c, because we need to check the existance of this file there. without this file is running further useless. dosemu may hang silently. * [emu.c] use config.exitearly instead of exitearly and stop dosemu earlier when set. * [parse.c config.dist include/mouse.h mouse/*] attempt to use cleardtr for some mousesystem/microsoft compatible mice. mostly unsuccesful. * [init/Makefile init/parse.c] more compiler warnings removed. Error-checking implemented. May 4, 1994 JES - Jochen moves files around to conform to standards. Please take care that your config is in the correct /etc/dosemu.conf place. - Alan improves on the internal mouse driver to include other mice. - Lutz includes patch against 1.1.11. May 2, 1994 JES - Jochen latest. Makes video bios memory area configurable at boot time. Brought int10 inline. - Narrow allowed ports when videoportaccess on, hopefully stop problem of serial port being touched inadvertantly :-( - pktnew/libpacket patches from Rob. May 3, 1994 Jochen - Files installed in places where they may match the FSSTND April 29, 1994 JES - Lutz's Latest kernel diff's. Now just 1 small one against 1.1.10 and 1 for the 1.0.x kernels. This has fixed the EmuBat/Sys boot option problem. - First attempt to move net stuff into net subdir and create 1 ../net.o object for linking. April 27, 1994 JES - If your kernel is of the 1.0.x nature, patch with kernel.1.0.x.diff. If your kernel is 1.1.x where x is less than 9, patch with kernel.1.1.9.diff. If your kernel is 1.1.9 patch with kernel.post.1.1.9.diff. Have fun :-) - Make keyboard stop dupping. Poor kludge until JLarry's PIC code. - Jochen's continuing cleanup code. - Lutz's Patches to allow DOSEMU to run in 1.1.9. April 23, 1994 JES - modified code in DOSEMU to prevent errors due to stack over/underflow when computations are done on offsets. - Lutz's latest kernel diffs to avoid under/overflow in stack computations - Rob Janssen patches to fix int2f returns and understand deskview giveup timeslices. April 19, 1994 JES - Rob's pktdrvr enhancements. Ready for testing. rnzll3!pe1chl!rob@relay.NL.net. Should be possible to run different stacks on this one. Doesnot require loading linpkt. - Lutz's latest kernel.diff + patches. - Lutz's changed inline code back to assembler that's copied in. - Only do set_leds() when in RawKeybaord. - Moved DPR, DANG, EMUSuccess.txt to ./doc April 17, 1994 Hein@Student.TU-Clausthal.De (Jochen Hein) - Cleanup continues * [Makefile] -ansi -pedantic as a comment :-( Updated depend-target. Should be done for clients/dpmi also * [cpu.c termio.c video.c] removed unused include linux/mm.h * [emu.c video/terminal.c video/Makefile] moved terminal-video-functions to video/terminal.c * [emu.h] removed warnings for keyboard-layout-pointers. added some external variables, should be moved later * [include/video.h video/video.c emu.c] moved the installation of the inline int10-handler from emu.c to video.c * [mouse.h mouse.c] moved mouse-cursor-define from .h to .c * [emu.c video/vga.c] moved some more vga-functions to video/vga.c April 16, 1993 JES - First draft of JLarry's timer/PIC code. See ./timer/README.pic April 14, 1993 Hein@Student.TU-Clausthal.De (Jochen Hein) - Major cleanup in video.c * [Makefile] changed to reflect other changes, removed unnessecary comments and other old stuff. added ./include to the list of include-paths and subdirectories. added the ./video subdirectory * [include/* video/*] created subdirectories for better code-structure. * [include/port.h] moved inline-port-function from emu.h (smaller emu.h) * [video.c video.h s3.c modes.h] moved to include and video. * [cpu.c] added port.h to the include-files * [cpu.h] made it compile with -ansi -pedantic * [emu.h] made it compile with -ansi -pedantic moved port funtions to ./include/port.h * [emu.c] keep up with emu.h * [machcompat.h] made it compile with -ansi -pedantic * [modes.h] removed; content moved into video/vga.c * [periph/mkpartition] better error checking and messages. * [sigsegv.c] moved port funtions to ./include/port.h * [termio.h] made it compile with -ansi -pedantic * [include/Makefile] Makefile to do a make dist. All new files compile clean with -ansi -pedantic, old files not. * [include/keymaps.h] New file: Prototypes for keyboard layouts * [include/port.h] New file: inline-port-functions moved from emu.h made them compile with -ansi -pedantic * [include/video.h] moved from ./video.h, modified to fit in and compile with -ansi * [video/Makefile] Makefile to do a make dist. All new files compile clean with -ansi -pedantic, old files not. * [s3.c, s3.h] moved to video/, slightly modified. * [video/et4000.[ch] video/trident.[ch] video/vga.[ch] video/console.c] New files, extracted from video.c and modified to compile with -ansi -pedantic. * [video/video.c] remainder of splitting video.c, didn't compile with -ansi :-( Thu Apr 14 1994, Jochen Hein (Hein@Student.TU-Clausthal.de * [periph/mkpartition] added error-checking and some help-messages. April 12, 1994 macleajb@ednet.ns.ca - Lutz kernel patches to make ROCKET DOS :-) - Mark's serial code almost better than the real thing. - Jochen's 4 miles of patches :-). - debug is configurable using meaningfull words - keyboard is configured in /etc/dosemu/config - work on making more than the first partition accessable using partition access. Look in examples/config.dist April 07, 1994 macleajb@ednet.ns.ca - Minor updates to bios_emm.c - Modified HMA_MAP to use IPC so that proper mapping takes place - Marks latest serial. - Modified OUTBUFSIZE to 80 thanks to Vinod. - Modified CHOUT thanks to Vinod. - Fixed 'stick-ctrl-key' after VC switches April 06, 1994 macleajb@ednet.ns.ca - Added niemann@swt.ruhr-uni-bochum.de S3 code update and fix to Errors beeping to stdout, not stderr. - Added Marks latest serial changes. Now we can properly define particular COM ports and more. Read examples/config.dist for details. - Latest enhancements from Lutz. - Added Spanish keyboard support by jon@gtex02.us.es (Jon Tombs) April 04, 1994 macleajb@ednet.ns.ca - Added Bill's changes for better MDA support - Added Alan Hourihane's patches for PS/2 mice, now for describing mice in /etc/dosemu/config, first spec the port serial { device /dev/cua0 } then describe the mouse, mouse { device /dev/cua0 microsoft }. - Added latest serial from Mark, he's approaching true 16550 :-). - Added check for video mapped when emulating ports. - Added more specific checks for allowvideoportaccess. March 26, 1994 macleajb@ednet.ns.ca - Latest serial from Mark. - Added Belgium Keyboard thanks to : jvdbergh@wins.uia.ac.be (Jan.Vandenberghe) March 24, 1994 macleajb@ednet.ns.ca - Concluded that E000 video bios'es are now working, many thanks to danpop@cernapo.cern.ch (Dan Pop) - Broke sigsegv() out of cpu.c into just sigsegv.c as to compile do_int(), inb/outb(), et al inline now needs a 6meg swap on my 4 meg system at work :-( March 23, 1994 macleajb@ednet.ns.ca - Added #def's for E000 video bios testing. - Added more DPMI from Lutz. - Added new mouse.c from Alan Hourihane, this should become very usefull in NCURSES mouse Client implementation. - Seperated emu.c -> emu.c,ports.c,int.c and moved int.h & ports.h into cpu.c in first attempt at bringing do_int and inb/outb inline. March 12, 1994 macleajb@ednet.ns.ca - S3 video code started by niemann@swt.ruhr-uni-bochum.de (Christoph Niemann) - More DPMI thanks to LUTZ. - Serial INT14 updated thanks to Mark Rejhon. - Modest changes in code to continue clean up. March 12, 1994 macleajb@ednet.ns.ca - More DPMI thanks to LUTZ. - Serial INT14 updated thanks to Mark Rejhon. - Fixed (kludged) bugs in VC switching, Added -Wall to start cleaning up code. Changed do_int to inline, no benefit. March 9, 1994 macleajb@ednet.ns.ca - DOSEMU becomes one again (one process) March 4, 1994 macleajb@ednet.ns.ca - VC switching in RAW mode now uses CTRL-ALT-x. - Ronnies serial patches to allow more mice to roam and modems to run faster/better. ronnie@epact.se - Jochen's patches to straighten up video support and remove unused DISKS statements. In keeping with the FSSTND-draft our lib has been moved to /usr/lib. Thanks hein@centeotl.in.tu-clausthal.de - Alanh patches to allow switching between linpkt and IPX on the fly with the "ipxsupport" option. alanh@metro.co.uk - Koenig@nova.tat.physik.uni-tuebingen.de (Harald Koenig) patch to show last 10 characters of path on volume requests on the redirected drives in place of LINUX.1, LINUX.2, etc... - Lutz Molgedey has been making great advances in DPMI and although not ready for household use, is included. molgedey@theo-physik.uni-kiel.de. February 20, 1994 macleajb@ednet.ns.ca - Wordperfect HOME key stopped working :-( why ????? February 17, 1994 macleajb@ednet.ns.ca - Fixed function 0x23 in mfs.c redirector February 9, 1994 macleajb@ednet.ns.ca - Added config option dosbanner to optionally stop DOSEMU messages at startup. - Added allowvideoportaccess config option to give video card bios routines access to ports. - Fixing Keyboard int15 4f to return AH=0x86. This fixes WordPerfect HOME key problem, and nothing else :-(. February 1, 1994 macleajb@ednet.ns.ca - First layer of terminfo patches in from Corey (corey@amiganet.chi.il.us) - Mouse now closes/opens on VC switches. I can now use X and a mouse in DOSEMU. Serial is still buggy though. - gorden@jegnixa.hsc.missouri.edu only came on stream less than a month ago and has already added a pktdriver interface. Could we have another Robert S. here? - dos_helper() int 0xe5 changed to 0xe6 to allow my FCB program Direct Access to work. - FCB callouts added to redirector. Lahey Fortran now works, as dos Direct Access. - Tim_R_Bird@Novell.COM IPX has been added to dosemu. What's Tim's next surprise? - Tim fixed LREDIR.EXE so that emufs.sys no longer has to be loaded once at boot. - Tim fixed an error in SIGSTACK. - Int15 0xc0 callout has been modified to deal with DOS programs wishing to override scan codes going into the KBD buffer. Still needs work. - Allow USAGE to display before default stderr redirection. - Made dos auto-redirect to stderr if no redirection given on command line. - Added simple saytime() function to display message and CLOCK time. - Modified hard_int routine many times to try and make int 9, as well as other ints stay serial and yet nt have to wait for program to return to return_address. - Added Corey@amiganet.chi.il.us patches to exchange stderr <-> stdout. This is to prepare for terminfo. - Indented all source code according to INDENT.PRO. - Deleted int16 function. - Added dpmi/dpmi.h include for interrupts. - Added code to allow int09 (keyboard) to allow another interrupt by using outb(20) called by dos programs. - Modified inline int09 to pass ALL keys to int15-4f function. - Added a far return for DPMI call to go protected. - Removed old int16 function. - Changed int08 inside of do_int() to return after being called. - EMS is very close to full 4.0 specs. I've taken the need for patching the kernel out at this time so that more folks will test EMS. Unfortunately it is horribly slow. Many thanks to mikebat@netcom.com (Mike Batchelor). - (Theadore Ts'o's)tytso@ATHENA.MIT.EDU created the booton bootoff patch. Now a user can boot from a bootdisk a:, type diskimage, and then return control of a: to /dev/fd0. Alright :-). - Added routine to allow Diamond Card to go graphics. - Much effort has been put into keyboard enhancements, which have not been that fruitful. Need to have numlock off to cut & paste within MSDOS edit, and WordPerfect 5.1 's home key does not work as expected. - Keyboard kinda does a REAL int9. - Fixed UMB size 0, and move XMS edx:ebx problem. - Added more SS overflow checks. - Added call in SIGILL to check if illegal op-code is just another hard interrupt ending. It calls int_queue_run() and sees if such was the case. - Added WORD macro in push/pop functions. - Added check for DPMI far call. - Small ET4000 updates from info from Robert Saunders. Thanks. Needs more testing. - Redirector now truncates files properly (with fingers crossed) Calls to create_truncate existant files is closer to correctly being handled. - Modified findfirst/findnext routine. - Added 0x80 flag to tell DOS it's not lanman redirector. - Poor excuse for an update to work with ../NUL device. Also added code to allow mfs.c properly deal the GetRedirection with Novell-Lite Printers. - Added lredir using environment vars by coosman@asterix.uni-muenster.de Wed Dec 28 00:00:00 1993 jmaclean - Problem with multiple instances of emufs.sys has been destroyed I believe. - tytso@ATHENA.MIT.EDU (Theodore Ts'o) has added the ability to boot off a bootimage file as drive a:, then release drive a: back to dosemu as the actual /dev/fd0 via booton/bootoff in autoexec.bat. See ./examples/config.dist for parameters. - As usual the keyboard routines have been dug up more. Still MSDOS edit.com needs numlock off to cut&paste. ARG! Someone could really make my day if they pointed out what I'm doing wrong. - Added video option chipset for diamond for some diamond cards, specifically Diamond Speedstar 24x with a Paradise/Western Digital chipset. Many thanks to patrickm@gas.uug.arizona for putting up with me. This does no more than allow 'graphics' for this card type. - Overhauled EMS to allow it to work with programs that I use. It nolonger requires the mmap.diff patch, so please don't use it. I'm just carrying it along because the way Robert did EMS mapping was better, and I hope to move back to that after folks start beating this version around a bit. - Debugged XMS a bit more to work with UMB's and passing the correct XMS address for XMS moves. - Some more messing with ET4000, thanks to Robert alias Nils Rennebarth for the ET4000 stuff. Unfortunately I am in need of another tester to start relaying bugs. Any takers? - Diffed in patch[1-3]_against_pl3.dif applied: - First patch fixed a timer problem mainly. - Second patch limited VC switching to left alt key. - Third patch almost finishes my changes in keyboard routines. - coosman@asterix.uni-muenster.de submitted patches to mfs.c which allow lredir to access environment variables like are now used in emufs.sys. - coosman@asterix.uni-muenster.de fixed the 15 character limit on keybaords, some keyboard extenders should now work, yes :-). - coosman@asterix.uni-muenster.de also submitted dumpconf.asm to try and fix the multiple emufs.sys instance problem. Still unsuccessful, any takers? - Changed dosvga.h to video.h - tytso@ATHENA.MIT.EDU (Theodore Ts'o) aided in getting mfs.c to do the ftruncate thing more like DOS. Still not sure if it's up to the full 100%. Mon Nov 29 00:00:00 1993 jmaclean * Another update of multiple bugfixes :-). - Keyboard internals have been really rearranged. I'm not sure I'm keeping them this way, but now cut&paste problems should hopefully go away. Also any program that looked at the bios memory for checking ctrl-alt-shift statuses have a better chance of operating. Still seems to be some lagging (somewhere). - German keyboard patches thanks to hein@tlaloc.in.tu-clausthal.de (Jochen Hein) which should fix that multiple alt key problem a couple people have asked about, as well as some incorrect mappings. - As always mfs.c has been updated again to react to another funny one on DOS's part. If a file was open write, and actually written to, it should be O_TRUNC first. If its just opened for writing, and not actually written to, the file should exist as was when closed. ARG! The fix is a kludge, and needs some work! - Ross Biro gives us some more fixes for the redirector, and includes a new toy/option for emufs.sys. Now in you config.sys you can add a device statement like: - device=c:\emufs.sys \${HOME}/dosstuff which will allow you to use your home directory as part of the path. Any environment variable can be used. - alan@spri.levels.unisa.edu.au (Alan Modra) fixed some flag setting problems in the emulated int13 code. - bde@kralizec.zeta.org.au (Bruce Evans) noticed some initilization problems as did - - alan@spri.levels.unisa.edu.au (Alan Modra), so we have changes to the registers at boot time, good for some disks that need everything just right :-). - And not to forget fin!chip@dg-rtp.dg.com (Chip Salzenberg) who got rid of those annoying errors when bison was running. - Makefile has been altered hopefully to cleanup those 'separator missing messages'. - parse/parse.c will not be contained in the distribution and should limit that parse.tab.h not found error. * From announce0.49pl2 - This release has some important changes, actually bug fixes, and some new functionality to emufs.sys. (The hardrive redirector) It allows us to redirect the redirected drives using a DOS program LREDIR after booting, thanks to Tim Bird (Tim_R_Bird@Novell.COM) . - Video switching is still growing, and has had some fixes for Trident cards, as well as changing routines for saving and restoring video memory above the first bank. ET4000 code is still giving some problems so be aware. - Keyboard control has been enhanced using a real time int16 interrupt. Thanks Tim. This is important for WordPerfect users, Dosshell, Qbasic, and many other problems that have been attributed to keyboard problems. This has not been proved to fix the 1 key behind problem yet.:-( - Sdh@po.cwru.edu (Scott D. Heavner) has allowed us to specify an alternate config file using dos -F'filename' etc with his patches. - A problem writing files in WordPerfect on emufs.sys drives has been irraticated. - Dir listings that included the volume label attribute were only returning the volume label, and no dir listing. Fixed. Thanks to karel@obelix.icce.rug.nl. - Finally the keyboard problem has had another important fix thanks to ronnie@lysator.liu.se (ronnie s.) via Robert (gt8134b@prism.gatech.edu) that should fix the keyboard behind by 1 problem. Tue Jul 13 19:54:13 1993 rsanders * Makefile: cleanups... Tue Jul 13 19:24:54 1993 root * cpu.c, cpu.h, emu.c: changes for using the new (0.99pl10) signal stacks Wed Jul 7 21:44:51 1993 root * emu.c: hook for parse_config(name); * parse.c: added support for ~/.dosrc and parse_config() now takes a filename argument to override .dosrc check. Mon Jun 7 20:26:09 1993 (root@hrothgar) * emu.c (char_out): more BIOS-like handling of int 0x29...character attributes are now reserved, and scrollup now uses the attribute from the previous char (needs more work). Fri Jun 4 01:43:39 1993 (root@hrothgar) * cpu.c (find_port): added Andrew's patches diff1-6, which include the maskable port I/O. Began fixes to allow ports beyond 0x3ff. Thu Jun 3 23:05:26 1993 (root@hrothgar) * emu.c (ms_dos): fixed up the EmuSys and EmuBat directives. They now take string arguments. Thu May 27 21:38:08 1993 (root@hrothgar) * bios_emm.c (bios_emm_init): moved into dosipc.c: memory_setup(). Now checks that /proc/self/mem is mmap()able, and turns off EMS support if it isn't. Wed May 26 01:09:23 1993 (root at hrothgar) * moved 0xE000 segment routines to 0xF000. also changed reboot code to use inte5, ax=0xffff Tue May 25 01:41:53 1993 (root at hrothgar) * added early support for the EmuSys and EmuBat directives, which remap CONFIG.SYS to CONFIG.EMU and AUTOEXEC.BAT to AUTOEXEC.EMU. This works now, but I'm not sure when I should disable it. Mon May 24 21:50:33 1993 (root at hrothgar) * added CMOS checksum. * dosemu 0.49 released! Fri May 14 00:41:08 1993 (root at hrothgar) * cleaned up the int10h ah=9/0xA calls...they now work correctly except for possible bounds checking. * made floppies safe, but slow...work on this. Wed May 5 02:18:23 1993 (root at hrothgar) * added mouse support and console switching even in graphics mode. Tue Apr 20 00:49:07 1993 (root at hrothgar) * added DMSG_PAUSE for pausing the parent... * fixed a lot of int10() problems, including cursor positioning and int10h 0xa/0x9. Fri Apr 16 08:58:43 1993 (root at hrothgar) * added VGA BIOS support...user vgaon.com to allow it, vgaoff.com to stop it. Wed Apr 14 03:44:36 1993 (root at hrothgar) * now have mfs.c updated all the way to diff9, which has multiple drive support...(not my doing!). also translated linux.asm into emufs.S. Mon Apr 12 22:08:39 1993 (root at hrothgar) * added the 1-second tick in dosipc.c. the child gets a SIGALRM every second, which child_tick() handles. currently only calls print_tick(). Tue Apr 6 00:20:05 1993 (root at hrothgar) * stold the Mach DOS emulator's UMB routines. PCShell no longer crashes, PKZIP now uses it. PKZIP 2.04e won't use EMS :-( and neither will debug. * ported bios_emm.c (EMS emulation) from the Mach DOS emulator. It relies on my kernel hack of mmap(/dev/selfmem). Works pretty well, emulates EMS version 3.2. * applied diff1,diff2,and diff3 from Andrew Tridgell. MFS works better, faster. MFS also adjusts for being run suid root. The default interrupt (0xfe) conflicts with Turbo Debugger. I suggest a change to 0xe5. Thu Apr 1 03:08:22 1993 (root at hrothgar) * translated the bootsect.S code for as86. This is nice for general interest, and for the distribution hdimage (which requires fdisk /mbr to fix it, by the way). Wed Mar 31 01:00:37 1993 (root at hrothgar) * integrated Andrew Tridgell's port of the Mach mfs redirector. Seems to work okay, if not blazingly fast. Sure beats linux.exe. * changed VIRT_SCREEN_BASE and INIT_VIDEO_MODE for MDA to actually show MDA mode 7 and base of 0xb0000. * added PARTITION type. only works with /dev/hd?1. relies upon the file "/etc/dosemu/partition" to be the first sector (Master Boot Record) of /dev/hd?. Tue Mar 30 02:51:33 1993 (root at hrothgar) * changed disks.c a lot, added the IMAGE file header code (to auto-detect geometry from an image file). Mon Mar 29 00:47:41 1993 (root at hrothgar) * added the int 0x2f, ax=0x1680 "give up time slice" function. does a usleep()...is this best? thanks to Andrew Tridgell. * changed disks.c to simply accept FLOPPY_A as defined * changed -f option to take an argument Sun Mar 28 02:07:50 1993 (root at hrothgar) * wrote dosconfig.c to replace dosconfig.sh. * changed the int16h ah=0x55 to return eax=0 for MS-WORD 5 (check this with Andrew Tridgell). * fixed up some of the CONFIGURATION (int 11h value) stuff. see emu.c, config_init() Mon Mar 8 00:37:07 1993 (root at hrothgar) * added dosconfig.sh for "make config", rearranged Makefile to be a little safer. It tries to keep the user's config.h updated, but not to recompile too often. (dosconfig.sh uses awk) * cleaned up get_video_ram()...Turbo debugger 3.0 now works, at least the video stuff does. * added some fixes so that leavedos() will timeout after 3 seconds or so, but I still need to find out why/where it hangs. * added memory.h and video.c. added "make dep" to Makefile. Sun Mar 7 15:05:10 1993 (root at hrothgar) * added an ugly hack for multiple screen pages...nasty. works okay for Turbo Debugger 1.0, though. also began marking hacks with XXX...most everything new&old is a hack, sadly enough. termio.c & emu.c need to be robbed of the screen functions, which will be put in screen.c. also the emu.h and termio.h headers...clean the get_video_ram & put_video_ram stuff... Thu Mar 4 01:23:04 1993 (root at hrothgar) * added the proper set-iflag-after-instruction STI emulation. it doesn't seem worth it, so I disabled it be default (define PROPER_STI in cpu.c or the Makefile to get it working). * got the HMA working perfectly. moved the IPC_RMIDs into memory_shutdown(), called by stop_dosipc, so that the HMA area, which isn't always attached, wouldn't go away unexpectedly. * used krishna's new ipcdelta stuff (the SHM_REMAP flag) to make the low page shared, too. I should break this out of the main segment1. verified that it works. * added SIGCHLD handler, fixed up the DMSG_ACK situation. still need to design a rational, interrupt-like protocol for this. * added shared memory to dosemu. I haven't gotten Krishna's new stuff yet, so I don't share the first page (I NEED TO!). 2 segments, one from 0x1000-0x9ffff, the other 0xc0000-0xfffff. Because of stupid mmap(), I can't share the segment from 0xa0000-0xbffff, as mmap() needs memory under, and IPC can't have memory under. Tue Mar 2 02:07:57 1993 (root at hrothgar) * apparently, whatever badness in DOS 5.0 that caused the SIGSEGV when booting has gone away, or I've fixed it, so I took the boot_in_progress checks out (partially, I'm a little wary). We'll see how it goes. * made the child process munmap() everything from page 2 (address 4096) to the page before LIBSTART. this should cut down on memory usage a little, as well as make attaching shm a little easier. still doesn't fix first page problem, but Krishna is doing that. * changed the format of the DOS HELPER function to show interrupts (now takes low int in BH,high int in BL). Also added a parameter to show_ints(). also added -2 option for 80286 flags emulation. (real-mode 80286 keeps upper 4 flag bits (15,14,13,12) clear. * added two new switches, -3 and -4, that allow you to choose 386 or 486 "emulation"...this currently only changes the behavior of the AC (alignment check) bit of EFLAGS, but since that IS the Intel-recommended test...I need to add emulation for BSWAP, XADD, and CMPXCHG instructions for 386 users running in 486 mode (just for kicks :-). I wonder if PKZIP 2.04 is much faster in 386/486 mode... Mon Mar 1 01:35:53 1993 (root at hrothgar) * added code to keep virtual IOPL, NT, bit15 of eflags register. this means I also have to interpret the 0x66 and 0x67 instruction prefixes (32-bit operand and address, respectively). this must be done in sigsegv()...it's just ignored now * split dosemu into 2 processes, one of which currently only monitors keypresses. I use UNIX domain sockets--pipe() returns a uni-directional pipe :-( * tried to speed up clear_screen() for non-console video. Thu Feb 25 21:19:10 1993 (root at hrothgar) * fixed show_regs() to display an iflag-adjusted eflags. I should make access functions to _regs.eflags so that "virtualized" bits are always handled correctly. * fixed iflag/IF handling...Matthias had forgotten to adjust iflag on popf and iret. Silly boy. I wasn't doing much better, testing IF directly from the _regs.eflags after return from vm86(), which of course corresponded to the system IF...someone should write a virtual-8086 mode tutorial! Wed Feb 24 11:33:59 1993 (root at hrothgar) * fixed the key-repeat bug. Tue Feb 23 01:36:17 1993 (root at hrothgar) * well, the ugliness with indirect far calling can be skipped...however, I can only get pcshell to work with the mouse, and it doesn't use callbacks! added lctrl+rctrl+capslock = toggle kayboard mouse...arrow keys are direction, home is left and end is right button. * made the first brain-dead changes for mouse support. Mon Feb 22 16:26:17 1993 (root at hrothgar) * cleaned up the show_regs() a bit, better display of flags, shows 10 bytes before and after CS:EIP. * added the define FAST_BUT_WRONG29, which, if defined, makes int29 fast char output faster, but makes programs that hook int29 fail. ANSI.SYS is one of these. I leave FAST_... defined, as ANSI.SYS doesn't work now anyway. * added the extended (32-bit) XMS 3.0 API. cleaned up xms.c to be a little more 32-bit clean (i.e. doesn't fudge upper 16 bits of register if it's not supposed to). Added the macros LWORD() and HWORD() to emu.h... Sat Feb 20 17:43:50 1993 (root at hrothgar) * added Bill Bogstad's (bogstad@cs.jhu.edu) auto-hd-geometry-detect code. It seems to work okay. Thu Feb 18 01:38:21 1993 (root at hrothgar) * RELEASE: released these changes as 0.48.patch1. Peter Macdonald (pmacdona@sanjuan.uvic.ca) says he'll incorporate this into his SLS. * changes NUM_HANDLES for XMS to 64. took out handle_mask. * added the screen-buffer-and-compare code to restore_screen(). this ought to really speed up the non-console users Wed Feb 17 15:40:54 1993 (root at hrothgar) * fixed up the Makefile to make libemu start at 1 GB... this is really really important, as the dosemu0.48 distribution's MAX_XMS of 3072 could overrun into libemu...I don't know why it works this way, but it does (actually, I do know why, I just don't know why sbrk() lets you move into a shared lib). Anyway, now xms.c checks that you have space left for MAX_XMS (at compile time, will have to be dynamic-ized to run time XMS size setting) * removed the check for console_keyb before calling PollKeyboard...non-console users deserve a keyboard, too! Tue Feb 16 00:29:58 1993 (root at hrothgar) * cmos RTC now returns values in BCD if appropriate (usually is) * fixed the keypad number keys. forgot to put scancode in upper byte. also fixed the F11 and F12 keys. * added man page, and the rest is history. DOSEMU 0.48 DISTRIBUTION Mon Feb 15 00:24:50 1993 (root at hrothgar) * added all the ctrl and alt cursor keys. * added the files cmos.c and cmos.h. these will eventually contain all the CMOS values needed and provide CMOS real-time clock and alarm support. current code covers time/date, disk setup, memory size, CMOS status. Sun Feb 14 16:50:28 1993 (root at hrothgar) * put the special_nowait call into read Extended keycode also. I've really gotta verify this. Sat Feb 13 15:26:20 1993 (root at hrothgar) * uh, fixed the XMS EMB alloc. problem. I swear I checked for this when I first had problems, but apparently not...I was malloc()ing the actual K size, instead of the K size * 1024. * added some XMS functions, made the XMSControl entry point conform to the spec (for hookability). Fri Feb 12 14:19:30 1993 (root at hrothgar) * put the 101-key keyboard flag in the BIOS * Added the timer_tick() routine. this fixes a LOAD of stuff...4DOS beep lockup, 4HELP, Norton utilities, checkit, autocnf, bunches and bunches of stuff, basically. This still needs a LOT of work, like keeping track of round off error, higher frequency, but it'll do for now. Thu Feb 11 01:53:27 1993 (root at hrothgar) * changed ReadString to accept almost any characters. I'm still not sure about the ones below space. * char_out now treats \n as \n\r. I wonder about this. also, ctrl-c checking is done a little more properly (look for dos_ctrlc()) * added the hold-alt-and-type keypad numbers entry method. still need to add alt/shift/ctrl-cursor keys. Wed Feb 10 13:08:05 1993 (root at hrothgar) * WordPerfect works perfectly now :-). almost. * added Rshift-scrlock for int8, lshift-scrlock for int9. funny thing is, these work better than the flags. makes me wonder about the whole signal handler thing, and maybe I should check the IF. * added the -K flag. sorta makes QBASIC/EDIT work. if I use the -t switch (timer int), then msdos will crash eventually with a GP fault on 0xe8. Tue Feb 9 15:45:54 1993 (root at hrothgar) * XMS can now allocate the HMA and a single UMB at 0xc000. I really need to make sure that 0xc000 isn't BIOS-mapped, but I'm just playing now, anyway. This is fun! I can put dos=high,umb in my config.sys and get 702K posible executable size! (with -m 720) * began the XMS stuff. Have a driver that can mark its presence and claim no HMA. :-) * fixed the dir /w problem by allowing int 21h to do its own char out. however, I found an anomaly in the get video combination code. I can return 4 (color EGA), but not 8 (color VGA). If I do, qedit freaks and puts the menu up off the screen as if the video memory started at 0xb000:0000. The same thing happens if I change BL in video subsystem. Mon Feb 8 02:05:07 1993 (root at hrothgar) * this (or herabouts) is RELEASE 0.47.7 * fixed the heavy-load miss characters thing. The keybuffer code Stephen Tweedie gave me would advance the buffer even if ReadKeyboard was called with wait=TEST. Fri Feb 5 01:51:08 1993 (root at hrothgar) * okay, fixed the lost characters thing for real: Matthias' int29h handler (fast DOS tty output) was calling int 10h/ah=e. int 29h output always goes to the current screen, and Matthias wasn't taking that into account. Thu Feb 4 00:35:57 1993 (root at hrothgar) * i know why...I'm doing that damn WAITACTIVE ioctl(). damn damn damn! I see no way around that. (later note: it might in fact be the fact that I was often deleting libemu out from under dosemu's feet with rm -f, and now that I've stopped that, everything's better. Should I keep the ioctl queue?) * well, it seems that my ioctl queue hasn't stopped the kernel panics. here's what I get (raw keyboard mode): general protection: 0000 EIP: 0008:00047325 EFLAGS: 00010286 fs: 0017 base: 00000000, limit: C0000000 Pid: 464, process nr: 16 64 88 08 4e 85 ed 74 13 8b 15 wait_queue is bad (eip = 00000201) q = 0017b864 *q = 00236f6c tmp = 00236f6c (repeat the wait_queue block 7 times) Unable to handle kernel paging request at address c0000004 Oops: 0000 EIP: 0008:0004748B EFLAGS: 00010093 fs: 0017 base: 00000000, limit: C0000000 Pid: 31, process nr: 8 39 50 04 75 f8 8b 4c 24 1c 89 * well, pkzip 2.04e uses int10h/ah=e with a seemingly random screen page. PC-DOS 4.01 seems to do the same thing. so, in my infinite wisdom, if it writes to a screen page > 7, i make it write to the current screen page. this is probably wrong, but it works for pkzip 2.04e. * fixed the PollKeyboard() thing, I think. I use a "queue" for ioctl()'s started from within an interrupt handler. this is nasty, but it'll have to do. I can make this a lot pretier. * AAARRRRRGH! PollKeyboard() was crashing the emulator (kernel panics and such) because I was using select()...and looky here, pg. 278 of the Stevens book, select() is NOT listed as one of the reentrant functions. I'm a fool. A FOOL, I tell you! * these changes I will call dosemu0.47.5 * also added choice of PHANTOMDIR and VIDEO_CARD to the Makefile. VIDEO_CARD only has effect if it is set to MDA: the PHYS_SCREEN_BASE will then be set to 0xb0000 instead of 0xb8000. * Now you can choose your RAW keyboard nationality in the Makefile (like with a kernel compile). Gotta clean this up later with a keymaps subdir, and all the keymaps therein. Also noticed that when 4dos freezes up during a beep, ctrl-break (in RAW mode, of course), fixes it :-). Added these keys to RAW (-k) mode: ctrl-alt-pgup ... exit the emulator ctrl-alt-pgdn ... "reboot" the emulator (not recommended) ctrl-break ... as in DOS ctrl-scrollock ... show first 0x30 interrupt vectors alt-scrollock ... show registers for some reason, keypad cursor keys (pgup/pgdn/delete) when combined with the ctrl-alt keys will cause nasty things to happen. Things like kernel panics, hard system reboots, etc. Is this my fault, or Linux's? (I'm sure it's mine, but I can't figure out how) Wed Feb 3 12:07:16 1993 (root at hrothgar) * Added some elementary key-polling in sigalrm() with PollKeyboard(). This works okay for now, but I really need to make in general purpose (not just for console_keyb) and make the key buffer use the BDA for real. Then we've got keyboard about done, except for the multi-national keyboard maps. * Added Stephen Tweedie's small patches for insert-key into keyboard buffer (InsKeyboard). This needs to be rewritten to use the real BDA queue. * made the parse-debugflags kinda recursive, so a and 0 don't terminate the parsing. This allows for handy option strings like "-a+v" or "0+v" for debugging just video. Tue Feb 2 15:21:59 1993 (root at hrothgar) * note that DOSKEY works now! Nathan says it didn't before. Oh, well. I thought it didn't. * cleaned up the debug-msg flags a bit. now the -D option specifies a list of options. also cleaned up the int-revectoring a tad. moved a little of the stuff into emu.h (a lot more needs to go) * added the -f option to flip A: and B: floppies. I also have the -B flag to boot from the b: drive, but I don't think DOS will ever be happy with that. might take it out before release. Mon Feb 1 23:53:52 1993 (root at hrothgar) * NEED to find out what int 16h/ah=0x55 does. it seems to control timeout for get_char (int 16h/ah=1), and is necessary for dosshell and qbasic (which freeze occasionally otherwise). * added some wacky int-revectoring code. all but int 16h is broke right now, and that is even special-case, too. Wed Jan 27 00:21:06 1993 (root at hrothgar) * fixed problem with CloseKeyboard() sometimes restoring flags that had never been read. now, kbd_fd==-1 at startup, as it should. * fixed time problem - now DOS time is set properly at boot to be in sync w/Linux's clock. After that, DOS can change it. * moved the port_[out,in] functions to emu.h * fixed a problem in get_leds() arising from the fact that &= is not the same operator as &. silly me. now it works. Tue Jan 26 16:48:31 1993 (root at hrothgar) * well, had to put ioperm()s to disable the emulator's I/O permissions before I re-enter the vm86() call. (of course, the vm86 "task" inherits the emulator's ioperms). This means that if I'm not careful, I may leave an I/O port open to DOS :-(. * Added two options: -N exits the emulator before booting DOS (but after all the initialization), and -V allows VGA video. This presently only includes the changing of the blink attribute bit to the high intensity background bit, but it will one day also enable VGA graphics. Mon Jan 25 22:19:20 1993 (root at hrothgar) * the linux.exe problem was found: linux.exe will fail if there are more than 2 floppy drives defined. i defaulted the number of floppies and hard drives to 2 each; this is changeable by the -H and -F options. Thu Jan 21 21:10:06 1993 (root at hrothgar) * filled the highscan[] table for all chars <= 0x80 (ASCII). the rest are alt-chars (from a terminal's point of view, META at least). * note that the below change required that I no longer open /dev/tty, but use STDIN_FILENO and dup() that. whatever that implies. * fixed the console-video/keyb code. dosemu can now detect if you are on a console, and refuse to run if not. it also retrieves the console number for future use. (very system-dependent checking of the major/minor numbers! this is dangerous! if dev_t changes from 16 bits, this breaks.) console_video console switching should now be completely safe, thanks to WAITACTIVE. currently, it blocks until the dos console is current. I might want to change this so that it just doesn't map it if the console isn't current--using GETSTATE (and wait for later acquire_vt() calls to do so.)] * made the int13 disk-sensing functions more sensible. also made the dp->tracks, dp->heads stuff orthogonal (for some reason, matthias had made exceptions for floppys??). You can now format/unformat a floppy, as well as a floppy disk image. added a default CMOS type to the disk table struct. Sat Jan 16 10:28:23 1993 (root at hrothgar) * fixed alt-numkey bug in termio.c. for some reason, alt-numkey scancodes get bumped up by 0x76. also fixed alt-- and alt-= * can't find bug that causes repeated extended keystrokes to kill the emulator: to find it, run tv.com on some file, go the bottom, and press & hold pgdn. bam, crash. * fixed int21h, ah=1,7,or 8 problem with extended keycodes; (was supposed to return 0 first, then scancode on next call).