From owner-freebsd-emulation Tue Mar 25 13:48:46 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id NAA12615 for emulation-outgoing; Tue, 25 Mar 1997 13:48:46 -0800 (PST) Received: from thelab.hub.org (hal-ns1-15.netcom.ca [207.181.94.79]) by freefall.freebsd.org (8.8.5/8.8.5) with ESMTP id NAA12598 for ; Tue, 25 Mar 1997 13:48:37 -0800 (PST) Received: from thelab.hub.org (LOCALHOST [127.0.0.1]) by thelab.hub.org (8.8.5/8.8.2) with SMTP id RAA00688 for ; Tue, 25 Mar 1997 17:48:19 -0400 (AST) Date: Tue, 25 Mar 1997 17:48:19 -0400 (AST) From: The Hermit Hacker To: emulation@freebsd.org Subject: PCEMU - using floppy drives? (fwd) Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-emulation@freebsd.org X-Loop: FreeBSD.org Precedence: bulk Should have sent this here... ---------- Forwarded message ---------- Date: Tue, 25 Mar 1997 17:03:47 -0400 (AST) From: The Hermit Hacker To: questions@freebsd.org Subject: PCEMU - using floppy drives? Hi... I've just installed pcemu and can't seem to find a way to read the floppy drive from inside of it. Is it possible? I've tried mounting the drive using mount_msdos, but under 3.0-CURRENT, it causes the machine to reboot, so figure that's not the way to do it :) Thanks... From owner-freebsd-emulation Tue Mar 25 13:51:48 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id NAA12923 for emulation-outgoing; Tue, 25 Mar 1997 13:51:48 -0800 (PST) Received: from thelab.hub.org (hal-ns1-15.netcom.ca [207.181.94.79]) by freefall.freebsd.org (8.8.5/8.8.5) with ESMTP id NAA12914 for ; Tue, 25 Mar 1997 13:51:42 -0800 (PST) Received: from thelab.hub.org (LOCALHOST [127.0.0.1]) by thelab.hub.org (8.8.5/8.8.2) with SMTP id RAA00755 for ; Tue, 25 Mar 1997 17:51:32 -0400 (AST) Date: Tue, 25 Mar 1997 17:51:32 -0400 (AST) From: The Hermit Hacker To: emulation@freebsd.org Subject: Unimplemented opcode in pcemu... Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-emulation@freebsd.org X-Loop: FreeBSD.org Precedence: bulk Hi... I'm trying to install/run a software package called Master C++ by 'the Waite Group', and after it goes through the startup screen, I start getting: Error: Unimplemented opcode 69 at cs:ip = F514:1AEC4 Error: Unimplemented opcode 6E at cs:ip = F514:1AEC5 Error: Unimplemented opcode 67 at cs:ip = F514:1AEC6 Error: Unimplemented opcode 65 at cs:ip = F514:1AECC Error: Unimplemented opcode 6D at cs:ip = F514:1AECD Error: Unimplemented opcode 63 at cs:ip = F514:1AED0 Error: Unimplemented opcode 63 at cs:ip = F514:F6A1 Error: Unimplemented opcode 61 at cs:ip = F514:1AEC1 And it loops on those 8 lines infinitely... This is under 3.0-CURRENT, pcemu just installed out of ports... From owner-freebsd-emulation Tue Mar 25 19:07:12 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id TAA08860 for emulation-outgoing; Tue, 25 Mar 1997 19:07:12 -0800 (PST) Received: from genesis.atrad.adelaide.edu.au (genesis.atrad.adelaide.edu.au [129.127.96.120]) by freefall.freebsd.org (8.8.5/8.8.5) with ESMTP id TAA08845 for ; Tue, 25 Mar 1997 19:07:01 -0800 (PST) Received: (from msmith@localhost) by genesis.atrad.adelaide.edu.au (8.8.5/8.7.3) id NAA24079; Wed, 26 Mar 1997 13:36:32 +1030 (CST) From: Michael Smith Message-Id: <199703260306.NAA24079@genesis.atrad.adelaide.edu.au> Subject: Re: Unimplemented opcode in pcemu... In-Reply-To: from The Hermit Hacker at "Mar 25, 97 05:51:32 pm" To: scrappy@hub.org (The Hermit Hacker) Date: Wed, 26 Mar 1997 13:36:31 +1030 (CST) Cc: emulation@freebsd.org X-Mailer: ELM [version 2.4ME+ PL28 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-emulation@freebsd.org X-Loop: FreeBSD.org Precedence: bulk The Hermit Hacker stands accused of saying: > > I'm trying to install/run a software package called Master C++ > by 'the Waite Group', and after it goes through the startup screen, I > start getting: > > Error: Unimplemented opcode 69 at cs:ip = F514:1AEC4 > Error: Unimplemented opcode 6E at cs:ip = F514:1AEC5 > Error: Unimplemented opcode 67 at cs:ip = F514:1AEC6 > Error: Unimplemented opcode 65 at cs:ip = F514:1AECC > Error: Unimplemented opcode 6D at cs:ip = F514:1AECD > Error: Unimplemented opcode 63 at cs:ip = F514:1AED0 > Error: Unimplemented opcode 63 at cs:ip = F514:F6A1 > Error: Unimplemented opcode 61 at cs:ip = F514:1AEC1 > > And it loops on those 8 lines infinitely... > > This is under 3.0-CURRENT, pcemu just installed out of ports... Have a look at the "current" state of pcemu on ftp://gsoft.com.au/pub/pcemu, it may be that the program you're trying to run requires a newer processor than pcemu emulates. You could also try doscmd (from the same site), which should perform a _lot_ better. -- ]] Mike Smith, Software Engineer msmith@gsoft.com.au [[ ]] Genesis Software genesis@gsoft.com.au [[ ]] High-speed data acquisition and (GSM mobile) 0411-222-496 [[ ]] realtime instrument control. (ph) +61-8-8267-3493 [[ ]] Unix hardware collector. "Where are your PEZ?" The Tick [[ From owner-freebsd-emulation Tue Mar 25 19:08:37 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id TAA09054 for emulation-outgoing; Tue, 25 Mar 1997 19:08:37 -0800 (PST) Received: from genesis.atrad.adelaide.edu.au (genesis.atrad.adelaide.edu.au [129.127.96.120]) by freefall.freebsd.org (8.8.5/8.8.5) with ESMTP id TAA09033 for ; Tue, 25 Mar 1997 19:08:22 -0800 (PST) Received: (from msmith@localhost) by genesis.atrad.adelaide.edu.au (8.8.5/8.7.3) id NAA24100; Wed, 26 Mar 1997 13:38:14 +1030 (CST) From: Michael Smith Message-Id: <199703260308.NAA24100@genesis.atrad.adelaide.edu.au> Subject: Re: PCEMU - using floppy drives? (fwd) In-Reply-To: from The Hermit Hacker at "Mar 25, 97 05:48:19 pm" To: scrappy@hub.org (The Hermit Hacker) Date: Wed, 26 Mar 1997 13:38:14 +1030 (CST) Cc: emulation@freebsd.org X-Mailer: ELM [version 2.4ME+ PL28 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-emulation@freebsd.org X-Loop: FreeBSD.org Precedence: bulk The Hermit Hacker stands accused of saying: > > I've just installed pcemu and can't seem to find a way to read the > floppy drive from inside of it. Is it possible? I've tried mounting the > drive using mount_msdos, but under 3.0-CURRENT, it causes the machine to > reboot, so figure that's not the way to do it :) With the current pcemu (see my previous message), you can say disk B 1440 /dev/rfd0 in your .pcemurc file, and drive B in the emulator will use fd0. -- ]] Mike Smith, Software Engineer msmith@gsoft.com.au [[ ]] Genesis Software genesis@gsoft.com.au [[ ]] High-speed data acquisition and (GSM mobile) 0411-222-496 [[ ]] realtime instrument control. (ph) +61-8-8267-3493 [[ ]] Unix hardware collector. "Where are your PEZ?" The Tick [[ From owner-freebsd-emulation Tue Mar 25 23:14:31 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id XAA22172 for emulation-outgoing; Tue, 25 Mar 1997 23:14:31 -0800 (PST) Received: from main.gbdata.com (USR1-1.detnet.com [207.113.12.24]) by freefall.freebsd.org (8.8.5/8.8.5) with ESMTP id XAA22163 for ; Tue, 25 Mar 1997 23:14:24 -0800 (PST) Received: (from gclarkii@localhost) by main.gbdata.com (8.8.5/8.8.5) id BAA00242 for freebsd-emulation@freebsd.org; Wed, 26 Mar 1997 01:14:30 -0600 (CST) From: Gary Clark II Message-Id: <199703260714.BAA00242@main.gbdata.com> Subject: Latest doscmd report To: freebsd-emulation@freebsd.org Date: Wed, 26 Mar 1997 01:14:30 -0600 (CST) X-Mailer: ELM [version 2.4ME+ PL22 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-emulation@freebsd.org X-Loop: FreeBSD.org Precedence: bulk Hello, I grabbed the latest doscmd stuff and recompiled a kernel and rebooted. Two of the three test programs run fine (ls.exe and zip.exe). The other one (q.exe) kept giving me a message about something being unimplemented except in X mode (this was with the -x switch). Next time I boot this kernel I'll copy it down..:( I've never used BSDI before, but is this atleast as stable as their doscmd system? If so, is there any reason not to get this into current? I'm running a current from right before the lite2 deluge. Next I'm going to try and get one of my old c-compilers to run (It is a latice C, used for NCR 2127 POS systems user exits). This would not run under pcemu, even though it would run on a real XT (IBM type). Gary -- Gary Clark II (N5VMF) | I speak only for myself and "maybe" my company gclarkii@GBData.COM | Member of the FreeBSD Doc Team Providing Internet and ISP startups - http://WWW.GBData.com for information FreeBSD FAQ at ftp://ftp.FreeBSD.ORG/pub/FreeBSD/docs/FAQ.latin1 From owner-freebsd-emulation Tue Mar 25 23:20:38 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id XAA22509 for emulation-outgoing; Tue, 25 Mar 1997 23:20:38 -0800 (PST) Received: from thelab.hub.org (hal-ns1-07.netcom.ca [207.181.94.71]) by freefall.freebsd.org (8.8.5/8.8.5) with ESMTP id XAA22499 for ; Tue, 25 Mar 1997 23:20:32 -0800 (PST) Received: from thelab.hub.org (localhost [127.0.0.1]) by thelab.hub.org (8.8.5/8.8.2) with SMTP id DAA03570; Wed, 26 Mar 1997 03:20:08 -0400 (AST) Date: Wed, 26 Mar 1997 03:20:07 -0400 (AST) From: The Hermit Hacker To: Michael Smith cc: emulation@freebsd.org Subject: Re: Unimplemented opcode in pcemu... In-Reply-To: <199703260306.NAA24079@genesis.atrad.adelaide.edu.au> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-emulation@freebsd.org X-Loop: FreeBSD.org Precedence: bulk On Wed, 26 Mar 1997, Michael Smith wrote: > You could also try doscmd (from the same site), which should perform a > _lot_ better. > Installing it now...any reason why this hasn't been integrated into 3.0-CURRENT? I realize that it might still be considered a 'work in progress'... From owner-freebsd-emulation Tue Mar 25 23:47:40 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id XAA23768 for emulation-outgoing; Tue, 25 Mar 1997 23:47:40 -0800 (PST) Received: from thelab.hub.org (hal-ns1-10.netcom.ca [207.181.94.74]) by freefall.freebsd.org (8.8.5/8.8.5) with ESMTP id XAA23763 for ; Tue, 25 Mar 1997 23:47:34 -0800 (PST) Received: from thelab.hub.org (localhost [127.0.0.1]) by thelab.hub.org (8.8.5/8.8.2) with SMTP id DAA01041; Wed, 26 Mar 1997 03:46:56 -0400 (AST) Date: Wed, 26 Mar 1997 03:46:55 -0400 (AST) From: The Hermit Hacker To: Gary Clark II cc: freebsd-emulation@freebsd.org Subject: Re: Latest doscmd report In-Reply-To: <199703260714.BAA00242@main.gbdata.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-emulation@freebsd.org X-Loop: FreeBSD.org Precedence: bulk On Wed, 26 Mar 1997, Gary Clark II wrote: > Hello, > > I grabbed the latest doscmd stuff and recompiled a kernel and rebooted. > Me too... > Two of the three test programs run fine (ls.exe and zip.exe). The other > one (q.exe) kept giving me a message about something being unimplemented > except in X mode (this was with the -x switch). Next time I boot this > kernel I'll copy it down..:( > Hrmmm...does it look like: > ./doscmd doscmd: fatal error int16 func 0x0 only supported in X mode That's what I get over here, with a .doscmdrc looking like: assign A: /dev/rfd0.1440 1440 assign A: /dev/rfd0.720 720 assign hard /usr/local/lib/pcemu/DriveA 80 2 2 where DriveA is a 'boot image' I created from playing with pcemu ============ Make install also doesn't seem to work, and my experience with bsdmake Makefile's is so limited as to be non-existent: > make install install -c -s -o bin -g kmem -m 2555 doscmd usage: install [-CcDps] [-f flags] [-g group] [-m mode] [-o owner] file1 file2 install [-CcDps] [-f flags] [-g group] [-m mode] [-o owner] file1 ... fileN directory install -d [-g group] [-m mode] [-o owner] directory ... *** Error code 64 Stop. From owner-freebsd-emulation Tue Mar 25 23:52:26 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id XAA23961 for emulation-outgoing; Tue, 25 Mar 1997 23:52:26 -0800 (PST) Received: from thelab.hub.org (hal-ns1-10.netcom.ca [207.181.94.74]) by freefall.freebsd.org (8.8.5/8.8.5) with ESMTP id XAA23956 for ; Tue, 25 Mar 1997 23:52:20 -0800 (PST) Received: from thelab.hub.org (localhost [127.0.0.1]) by thelab.hub.org (8.8.5/8.8.2) with SMTP id DAA01054 for ; Wed, 26 Mar 1997 03:52:17 -0400 (AST) Date: Wed, 26 Mar 1997 03:52:17 -0400 (AST) From: The Hermit Hacker To: freebsd-emulation@freebsd.org Subject: README.booting_dos questions... Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-emulation@freebsd.org X-Loop: FreeBSD.org Precedence: bulk Hi... I'm quite nervous of following the instructions in the above mentioned file, mainly because I don't understand exactly what it is doing :( Of concern is: assign hard boot_drive 80 2 2 If I'm reading this right, and the associated instructions, this assign (and the other instructions) is going to create a pseudo DOS file system *overtop* of my FreeBSD File system? So I'll essentially have the same thing as pcemu created with the 'DriveA' file? If so...what are the recommended values for the above? It uses those values for an example, but the instructions state that: === This is the smallest drive possible which still can have MS DOS 5.0 installed on it along with a config.sys and autoexec.bat file. You might want to create a larger boot drive. === Thanks... From owner-freebsd-emulation Wed Mar 26 17:31:07 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id RAA20334 for emulation-outgoing; Wed, 26 Mar 1997 17:31:07 -0800 (PST) Received: from genesis.atrad.adelaide.edu.au (genesis.atrad.adelaide.edu.au [129.127.96.120]) by freefall.freebsd.org (8.8.5/8.8.5) with ESMTP id RAA20317 for ; Wed, 26 Mar 1997 17:30:55 -0800 (PST) Received: (from msmith@localhost) by genesis.atrad.adelaide.edu.au (8.8.5/8.7.3) id MAA04426; Thu, 27 Mar 1997 12:00:43 +1030 (CST) From: Michael Smith Message-Id: <199703270130.MAA04426@genesis.atrad.adelaide.edu.au> Subject: Re: README.booting_dos questions... In-Reply-To: from The Hermit Hacker at "Mar 26, 97 03:52:17 am" To: scrappy@hub.org (The Hermit Hacker) Date: Thu, 27 Mar 1997 12:00:43 +1030 (CST) Cc: freebsd-emulation@freebsd.org X-Mailer: ELM [version 2.4ME+ PL28 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-emulation@freebsd.org X-Loop: FreeBSD.org Precedence: bulk The Hermit Hacker stands accused of saying: > > I'm quite nervous of following the instructions in the above mentioned > file, mainly because I don't understand exactly what it is doing :( Don't worry (too much). Doscmd won't eat your system too badly 8) > Of concern is: > > assign hard boot_drive 80 2 2 > > If I'm reading this right, and the associated instructions, this > assign (and the other instructions) is going to create a pseudo DOS file > system *overtop* of my FreeBSD File system? So I'll essentially have the > same thing as pcemu created with the 'DriveA' file? Basically. You will have to create the file first, as (should be) noted in the source README. > If so...what are the recommended values for the above? It uses those > values for an example, but the instructions state that: Pick any value you like. Multiply the three numbers together, and then divide by two to get the size in kbytes. I normally boot from a floppy image (like the PC-Emu DriveA file), and then use the redirector mappings to get at the Unix filesystem proper. -- ]] Mike Smith, Software Engineer msmith@gsoft.com.au [[ ]] Genesis Software genesis@gsoft.com.au [[ ]] High-speed data acquisition and (GSM mobile) 0411-222-496 [[ ]] realtime instrument control. (ph) +61-8-8267-3493 [[ ]] Unix hardware collector. "Where are your PEZ?" The Tick [[ From owner-freebsd-emulation Wed Mar 26 17:33:07 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id RAA20581 for emulation-outgoing; Wed, 26 Mar 1997 17:33:07 -0800 (PST) Received: from genesis.atrad.adelaide.edu.au (genesis.atrad.adelaide.edu.au [129.127.96.120]) by freefall.freebsd.org (8.8.5/8.8.5) with ESMTP id RAA20574 for ; Wed, 26 Mar 1997 17:33:00 -0800 (PST) Received: (from msmith@localhost) by genesis.atrad.adelaide.edu.au (8.8.5/8.7.3) id MAA04451; Thu, 27 Mar 1997 12:02:27 +1030 (CST) From: Michael Smith Message-Id: <199703270132.MAA04451@genesis.atrad.adelaide.edu.au> Subject: Re: Latest doscmd report In-Reply-To: from The Hermit Hacker at "Mar 26, 97 03:46:55 am" To: scrappy@hub.org (The Hermit Hacker) Date: Thu, 27 Mar 1997 12:02:26 +1030 (CST) Cc: gclarkii@main.gbdata.com, freebsd-emulation@FreeBSD.ORG X-Mailer: ELM [version 2.4ME+ PL28 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-emulation@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk The Hermit Hacker stands accused of saying: > > Two of the three test programs run fine (ls.exe and zip.exe). The other > > one (q.exe) kept giving me a message about something being unimplemented > > except in X mode (this was with the -x switch). Next time I boot this > > kernel I'll copy it down..:( > > > Hrmmm...does it look like: > > > ./doscmd > doscmd: fatal error int16 func 0x0 only supported in X mode Weird. It works here; perhaps after easter when I have some time I will play with this again. > Make install also doesn't seem to work, and my experience with bsdmake > Makefile's is so limited as to be non-existent: 'make install' is _intentionally_ broken for the moment, as I don't want people installing it assuming that it's "ready" for anything yet 8) -- ]] Mike Smith, Software Engineer msmith@gsoft.com.au [[ ]] Genesis Software genesis@gsoft.com.au [[ ]] High-speed data acquisition and (GSM mobile) 0411-222-496 [[ ]] realtime instrument control. (ph) +61-8-8267-3493 [[ ]] Unix hardware collector. "Where are your PEZ?" The Tick [[ From owner-freebsd-emulation Wed Mar 26 17:35:35 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id RAA20871 for emulation-outgoing; Wed, 26 Mar 1997 17:35:35 -0800 (PST) Received: from genesis.atrad.adelaide.edu.au (genesis.atrad.adelaide.edu.au [129.127.96.120]) by freefall.freebsd.org (8.8.5/8.8.5) with ESMTP id RAA20849 for ; Wed, 26 Mar 1997 17:35:27 -0800 (PST) Received: (from msmith@localhost) by genesis.atrad.adelaide.edu.au (8.8.5/8.7.3) id MAA04491; Thu, 27 Mar 1997 12:04:48 +1030 (CST) From: Michael Smith Message-Id: <199703270134.MAA04491@genesis.atrad.adelaide.edu.au> Subject: Re: Latest doscmd report In-Reply-To: <199703260714.BAA00242@main.gbdata.com> from Gary Clark II at "Mar 26, 97 01:14:30 am" To: gclarkii@main.gbdata.com (Gary Clark II) Date: Thu, 27 Mar 1997 12:04:48 +1030 (CST) Cc: freebsd-emulation@FreeBSD.ORG X-Mailer: ELM [version 2.4ME+ PL28 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-emulation@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk Gary Clark II stands accused of saying: > > Two of the three test programs run fine (ls.exe and zip.exe). The other > one (q.exe) kept giving me a message about something being unimplemented > except in X mode (this was with the -x switch). Next time I boot this > kernel I'll copy it down..:( Please do. I have used Q as a test program heavily. > I've never used BSDI before, but is this atleast as stable as their doscmd > system? If so, is there any reason not to get this into current? > I'm running a current from right before the lite2 deluge. The userland stuff is better than the BSDi code (IMHO), the kernel code hasn't stabilised yet and thus I'm waiting a little. Committing it involves changing the size of the proc struct, which will generate a deluge of clueless 'why does my ps not work now' questions, so I want to wait until we're sure no more changes have to be made 8) > Next I'm going to try and get one of my old c-compilers to run (It is a > latice C, used for NCR 2127 POS systems user exits). This would not run > under pcemu, even though it would run on a real XT (IBM type). Hmm, did you check out the latest pcemu with it? What was the failure mode? > Gary Clark II (N5VMF) | I speak only for myself and "maybe" my company -- ]] Mike Smith, Software Engineer msmith@gsoft.com.au [[ ]] Genesis Software genesis@gsoft.com.au [[ ]] High-speed data acquisition and (GSM mobile) 0411-222-496 [[ ]] realtime instrument control. (ph) +61-8-8267-3493 [[ ]] Unix hardware collector. "Where are your PEZ?" The Tick [[ From owner-freebsd-emulation Wed Mar 26 17:40:48 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id RAA21368 for emulation-outgoing; Wed, 26 Mar 1997 17:40:48 -0800 (PST) Received: from thelab.hub.org (hal-ns1-05.netcom.ca [207.181.94.69]) by freefall.freebsd.org (8.8.5/8.8.5) with ESMTP id RAA21359 for ; Wed, 26 Mar 1997 17:40:44 -0800 (PST) Received: from thelab.hub.org (localhost [127.0.0.1]) by thelab.hub.org (8.8.5/8.8.2) with SMTP id VAA09958; Wed, 26 Mar 1997 21:39:59 -0400 (AST) Date: Wed, 26 Mar 1997 21:39:59 -0400 (AST) From: The Hermit Hacker To: Michael Smith cc: freebsd-emulation@freebsd.org Subject: Re: README.booting_dos questions... In-Reply-To: <199703270130.MAA04426@genesis.atrad.adelaide.edu.au> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-emulation@freebsd.org X-Loop: FreeBSD.org Precedence: bulk On Thu, 27 Mar 1997, Michael Smith wrote: > Basically. You will have to create the file first, as (should be) noted > in the source README. > Closest I can find is: === The file boot_drive must exist, so use the command touch to create it. === Which I've done: > ls -l ~/.dos_fs -rw-r--r-- 1 scrappy wheel 0 Mar 26 21:37 /home/staff/scrappy/.dos_fs But the next step says to insert bootable floppy into drive A and type 'doscmd': > ./doscmd Unknown interrupt 15 function 4101 doscmd: fatal error int16 func 0x1 only supported in X mode > cat ~/.doscmdrc assign A: /dev/rfd0.1440 1440 assign hard /home/staff/scrappy/.dos_fs 160 2 2 From owner-freebsd-emulation Wed Mar 26 17:42:15 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id RAA21425 for emulation-outgoing; Wed, 26 Mar 1997 17:42:15 -0800 (PST) Received: from thelab.hub.org (hal-ns1-05.netcom.ca [207.181.94.69]) by freefall.freebsd.org (8.8.5/8.8.5) with ESMTP id RAA21406 for ; Wed, 26 Mar 1997 17:42:09 -0800 (PST) Received: from thelab.hub.org (localhost [127.0.0.1]) by thelab.hub.org (8.8.5/8.8.2) with SMTP id VAA09966; Wed, 26 Mar 1997 21:41:24 -0400 (AST) Date: Wed, 26 Mar 1997 21:41:24 -0400 (AST) From: The Hermit Hacker To: Michael Smith cc: gclarkii@main.gbdata.com, freebsd-emulation@FreeBSD.ORG Subject: Re: Latest doscmd report In-Reply-To: <199703270132.MAA04451@genesis.atrad.adelaide.edu.au> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-emulation@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk On Thu, 27 Mar 1997, Michael Smith wrote: > > Make install also doesn't seem to work, and my experience with bsdmake > > Makefile's is so limited as to be non-existent: > > 'make install' is _intentionally_ broken for the moment, as I don't want > people installing it assuming that it's "ready" for anything yet 8) > What's the difference between pcemu and doscmd? Other then the fact that pcemu I could get to work :( From owner-freebsd-emulation Wed Mar 26 17:47:59 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id RAA21855 for emulation-outgoing; Wed, 26 Mar 1997 17:47:59 -0800 (PST) Received: from genesis.atrad.adelaide.edu.au (genesis.atrad.adelaide.edu.au [129.127.96.120]) by freefall.freebsd.org (8.8.5/8.8.5) with ESMTP id RAA21843 for ; Wed, 26 Mar 1997 17:47:53 -0800 (PST) Received: (from msmith@localhost) by genesis.atrad.adelaide.edu.au (8.8.5/8.7.3) id MAA04674; Thu, 27 Mar 1997 12:17:31 +1030 (CST) From: Michael Smith Message-Id: <199703270147.MAA04674@genesis.atrad.adelaide.edu.au> Subject: Re: Latest doscmd report In-Reply-To: from The Hermit Hacker at "Mar 26, 97 09:41:24 pm" To: scrappy@hub.org (The Hermit Hacker) Date: Thu, 27 Mar 1997 12:17:31 +1030 (CST) Cc: msmith@atrad.adelaide.edu.au, gclarkii@main.gbdata.com, freebsd-emulation@FreeBSD.ORG X-Mailer: ELM [version 2.4ME+ PL28 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-emulation@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk The Hermit Hacker stands accused of saying: > On Thu, 27 Mar 1997, Michael Smith wrote: > > > > Make install also doesn't seem to work, and my experience with bsdmake > > > Makefile's is so limited as to be non-existent: > > > > 'make install' is _intentionally_ broken for the moment, as I don't want > > people installing it assuming that it's "ready" for anything yet 8) > > > What's the difference between pcemu and doscmd? Other then the > fact that pcemu I could get to work :( pcemu emulates the x86 is software, doscmd uses the x86 processor you already have (somewhat like a DOS box under OS/2 or W95). Both of them work 8) -- ]] Mike Smith, Software Engineer msmith@gsoft.com.au [[ ]] Genesis Software genesis@gsoft.com.au [[ ]] High-speed data acquisition and (GSM mobile) 0411-222-496 [[ ]] realtime instrument control. (ph) +61-8-8267-3493 [[ ]] Unix hardware collector. "Where are your PEZ?" The Tick [[ From owner-freebsd-emulation Wed Mar 26 17:50:23 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id RAA22143 for emulation-outgoing; Wed, 26 Mar 1997 17:50:23 -0800 (PST) Received: from main.gbdata.com (USR1-1.detnet.com [207.113.12.12]) by freefall.freebsd.org (8.8.5/8.8.5) with ESMTP id RAA22137 for ; Wed, 26 Mar 1997 17:50:14 -0800 (PST) Received: (from gclarkii@localhost) by main.gbdata.com (8.8.5/8.8.5) id TAA04809; Wed, 26 Mar 1997 19:49:55 -0600 (CST) From: Gary Clark II Message-Id: <199703270149.TAA04809@main.gbdata.com> Subject: Re: Latest doscmd report To: scrappy@hub.org (The Hermit Hacker) Date: Wed, 26 Mar 1997 19:49:55 -0600 (CST) Cc: msmith@atrad.adelaide.edu.au, freebsd-emulation@FreeBSD.ORG In-Reply-To: from The Hermit Hacker at "Mar 26, 97 09:41:24 pm" X-Mailer: ELM [version 2.4ME+ PL22 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-emulation@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk The Hermit Hacker wrote: > On Thu, 27 Mar 1997, Michael Smith wrote: > > > > Make install also doesn't seem to work, and my experience with bsdmake > > > Makefile's is so limited as to be non-existent: > > > > 'make install' is _intentionally_ broken for the moment, as I don't want > > people installing it assuming that it's "ready" for anything yet 8) > > > What's the difference between pcemu and doscmd? Other then the > fact that pcemu I could get to work :( > Pcemu is a program that emulates an XT in software. It was written a couple of years ago by a British grad student. It will run basic pc software on any platform with X just about. About like a primitive version of SoftPC. DosCMD is a REAL vm86 mode XT emulator. Gary -- Gary Clark II (N5VMF) | I speak only for myself and "maybe" my company gclarkii@GBData.COM | Member of the FreeBSD Doc Team Providing Internet and ISP startups - http://WWW.GBData.com for information FreeBSD FAQ at ftp://ftp.FreeBSD.ORG/pub/FreeBSD/docs/FAQ.latin1 From owner-freebsd-emulation Wed Mar 26 18:04:44 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id SAA23169 for emulation-outgoing; Wed, 26 Mar 1997 18:04:44 -0800 (PST) Received: from thelab.hub.org (hal-ns1-12.netcom.ca [207.181.94.76]) by freefall.freebsd.org (8.8.5/8.8.5) with ESMTP id SAA23163 for ; Wed, 26 Mar 1997 18:04:35 -0800 (PST) Received: from thelab.hub.org (localhost [127.0.0.1]) by thelab.hub.org (8.8.5/8.8.2) with SMTP id WAA10353; Wed, 26 Mar 1997 22:03:34 -0400 (AST) Date: Wed, 26 Mar 1997 22:03:33 -0400 (AST) From: The Hermit Hacker To: Michael Smith cc: gclarkii@main.gbdata.com, freebsd-emulation@FreeBSD.ORG Subject: Re: Latest doscmd report In-Reply-To: <199703270147.MAA04674@genesis.atrad.adelaide.edu.au> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-emulation@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk On Thu, 27 Mar 1997, Michael Smith wrote: > pcemu emulates the x86 is software, doscmd uses the x86 processor you already > have (somewhat like a DOS box under OS/2 or W95). > Ah, okay...so doscmd should be less system resource intensive as well...? From owner-freebsd-emulation Wed Mar 26 19:28:16 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id TAA29226 for emulation-outgoing; Wed, 26 Mar 1997 19:28:16 -0800 (PST) Received: from genesis.atrad.adelaide.edu.au (genesis.atrad.adelaide.edu.au [129.127.96.120]) by freefall.freebsd.org (8.8.5/8.8.5) with ESMTP id TAA29220 for ; Wed, 26 Mar 1997 19:28:03 -0800 (PST) Received: (from msmith@localhost) by genesis.atrad.adelaide.edu.au (8.8.5/8.7.3) id NAA05498; Thu, 27 Mar 1997 13:57:38 +1030 (CST) From: Michael Smith Message-Id: <199703270327.NAA05498@genesis.atrad.adelaide.edu.au> Subject: Re: README.booting_dos questions... In-Reply-To: from The Hermit Hacker at "Mar 26, 97 09:39:59 pm" To: scrappy@hub.org (The Hermit Hacker) Date: Thu, 27 Mar 1997 13:57:38 +1030 (CST) Cc: msmith@atrad.adelaide.edu.au, freebsd-emulation@FreeBSD.ORG X-Mailer: ELM [version 2.4ME+ PL28 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-emulation@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk The Hermit Hacker stands accused of saying: > > But the next step says to insert bootable floppy into drive > A and type 'doscmd': Please note that, as the README says, the instructions you're following are _old_. You'd be much better off using a bootfile as with pcemu. > > ./doscmd > Unknown interrupt 15 function 4101 > doscmd: fatal error int16 func 0x1 only supported in X mode So, how about running it _in_x_mode_? "doscmd -bx" -- ]] Mike Smith, Software Engineer msmith@gsoft.com.au [[ ]] Genesis Software genesis@gsoft.com.au [[ ]] High-speed data acquisition and (GSM mobile) 0411-222-496 [[ ]] realtime instrument control. (ph) +61-8-8267-3493 [[ ]] Unix hardware collector. "Where are your PEZ?" The Tick [[ From owner-freebsd-emulation Wed Mar 26 20:32:15 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id UAA03277 for emulation-outgoing; Wed, 26 Mar 1997 20:32:15 -0800 (PST) Received: from thelab.hub.org (hal-ns1-12.netcom.ca [207.181.94.76]) by freefall.freebsd.org (8.8.5/8.8.5) with ESMTP id UAA03272 for ; Wed, 26 Mar 1997 20:32:09 -0800 (PST) Received: from thelab.hub.org (localhost [127.0.0.1]) by thelab.hub.org (8.8.5/8.8.2) with SMTP id AAA12582; Thu, 27 Mar 1997 00:31:28 -0400 (AST) Date: Thu, 27 Mar 1997 00:31:28 -0400 (AST) From: The Hermit Hacker To: Michael Smith cc: freebsd-emulation@FreeBSD.ORG Subject: Re: README.booting_dos questions... In-Reply-To: <199703270327.NAA05498@genesis.atrad.adelaide.edu.au> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-emulation@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk On Thu, 27 Mar 1997, Michael Smith wrote: > The Hermit Hacker stands accused of saying: > > > > But the next step says to insert bootable floppy into drive > > A and type 'doscmd': > > Please note that, as the README says, the instructions you're > following are _old_. You'd be much better off using a bootfile as > with pcemu. Haven't found anywhere that explains this, but I've finally figured out how to 'fdisk' a C: drive :) The README mentions using 'dd', but doesn't do more then that (I know, old docs)...since my familiarity with dd is limited, I just wiped together a quick C program to call 'truncate' to create a 11MB "dos file system" for me to work with, and now fdisk works...format is next. Finally, for this email, I can fdisk the 'file', but I can't seem to format it. The fdisk completes as expected (crashes doscmd), and the format seems to work okay, but if I do a 'dir c:', I get 'Invalid media type reading drive C... Only thing I can think of is that I have to use dd for some reason, vs using truncate() to create the 'bootfile'? I've gone through just about everything I can think of, including running with -D to see that the format *seems* to work, to no avail :( > > > ./doscmd > > Unknown interrupt 15 function 4101 > > doscmd: fatal error int16 func 0x1 only supported in X mode > > So, how about running it _in_x_mode_? "doscmd -bx" > *yes!* now I can get a 'shell'...next, a file system...see above :( From owner-freebsd-emulation Wed Mar 26 20:39:02 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id UAA03635 for emulation-outgoing; Wed, 26 Mar 1997 20:39:02 -0800 (PST) Received: from enterprise.powerup.com.au (root@enterprise.powerup.com.au [203.2.122.69]) by freefall.freebsd.org (8.8.5/8.8.5) with ESMTP id UAA03629 for ; Wed, 26 Mar 1997 20:38:59 -0800 (PST) Received: from whack.org ([203.55.140.37]) by enterprise.powerup.com.au (8.8.5/8.6.10) with SMTP id EAA16763 for ; Thu, 27 Mar 1997 04:37:33 GMT Message-ID: <3339FB30.649C@powerup.com.au> Date: Thu, 27 Mar 1997 14:44:32 +1000 From: Wild Jasmine X-Mailer: Mozilla 3.01 (Win95; I) MIME-Version: 1.0 To: freebsd-emulation@freebsd.org Subject: Doscmd Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-emulation@freebsd.org X-Loop: FreeBSD.org Precedence: bulk What is the version of DOS supported? (I am just getting into FBSD now) And what is the emulated processor? From owner-freebsd-emulation Thu Mar 27 09:48:55 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id JAA01401 for emulation-outgoing; Thu, 27 Mar 1997 09:48:55 -0800 (PST) Received: from who.cdrom.com (who.cdrom.com [204.216.27.3]) by freefall.freebsd.org (8.8.5/8.8.5) with ESMTP id JAA01352 for ; Thu, 27 Mar 1997 09:48:44 -0800 (PST) Received: from sumatra.americantv.com (sumatra.americantv.com [199.184.181.250]) by who.cdrom.com (8.8.5/8.6.11) with ESMTP id HAA04600 for ; Thu, 27 Mar 1997 07:55:24 -0800 (PST) Received: from right.PCS (right.pcs. [148.105.10.31]) by sumatra.americantv.com (8.7.6/8.7.3) with ESMTP id JAA03726; Thu, 27 Mar 1997 09:53:37 -0600 (CST) Received: (jlemon@localhost) by right.PCS (8.6.13/8.6.4) id PAA24726; Thu, 27 Mar 1997 15:55:00 GMT Message-ID: <19970327095500.38675@right.PCS> Date: Thu, 27 Mar 1997 09:55:00 -0600 From: Jonathan Lemon To: Wild Jasmine Cc: freebsd-emulation@freebsd.org Subject: Re: Doscmd References: <3339FB30.649C@powerup.com.au> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 0.61.1 In-Reply-To: <3339FB30.649C@powerup.com.au>; from Wild Jasmine on Mar 03, 1997 at 02:44:32PM +1000 Sender: owner-emulation@freebsd.org X-Loop: FreeBSD.org Precedence: bulk On Mar 03, 1997 at 02:44:32PM +1000, Wild Jasmine wrote: > What is the version of DOS supported? Dos 5.0 will boot and work pretty well. OpenDOS will boot off a floppy, or a floppy disk image. (I can't seem to get it to boot of a hard drive.) Dos 6 doesn't seem to boot. > And what is the emulated processor? It doesn't emulate a processor - it runs directly on your hardware. -- Jonathan From owner-freebsd-emulation Thu Mar 27 11:40:39 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id LAA13868 for emulation-outgoing; Thu, 27 Mar 1997 11:40:39 -0800 (PST) Received: from apolo.biblos.unal.edu.co ([168.176.37.75]) by freefall.freebsd.org (8.8.5/8.8.5) with ESMTP id LAA13836 for ; Thu, 27 Mar 1997 11:40:26 -0800 (PST) Received: from unalmodem.usc.unal.edu.co (unalmodem07.usc.unal.edu.co [168.176.3.37]) by apolo.biblos.unal.edu.co (8.8.5/8.8.5) with SMTP id OAA06201; Thu, 27 Mar 1997 14:42:02 -0500 (EST) Message-ID: <333AF664.49FB@fps.biblos.unal.edu.co> Date: Thu, 27 Mar 1997 14:36:20 -0800 From: Pedro Giffuni X-Mailer: Mozilla 3.0 (Win16; I) MIME-Version: 1.0 To: Wild Jasmine CC: freebsd-emulation@freebsd.org Subject: Re: Doscmd References: <3339FB30.649C@powerup.com.au> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-emulation@freebsd.org X-Loop: FreeBSD.org Precedence: bulk Wild Jasmine wrote: > > What is the version of DOS supported? AFAIK, MSDOS 5.0, OpenDOS 7.01 > (I am just getting into FBSD now) > And what is the emulated processor? Not really emulated, it will run like an 8086. --Pedro From owner-freebsd-emulation Thu Mar 27 12:51:26 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id MAA20887 for emulation-outgoing; Thu, 27 Mar 1997 12:51:26 -0800 (PST) Received: from sumatra.americantv.com (sumatra.americantv.com [199.184.181.250]) by freefall.freebsd.org (8.8.5/8.8.5) with ESMTP id MAA20876 for ; Thu, 27 Mar 1997 12:51:19 -0800 (PST) Received: from right.PCS (right.pcs. [148.105.10.31]) by sumatra.americantv.com (8.7.6/8.7.3) with ESMTP id OAA04547; Thu, 27 Mar 1997 14:25:04 -0600 (CST) Received: (jlemon@localhost) by right.PCS (8.6.13/8.6.4) id SAA07498; Thu, 27 Mar 1997 18:58:59 GMT Message-ID: <19970327125858.11488@right.PCS> Date: Thu, 27 Mar 1997 12:58:58 -0600 From: Jonathan Lemon To: The Hermit Hacker Cc: Michael Smith , freebsd-emulation@FreeBSD.ORG Subject: Re: README.booting_dos questions... References: <199703270327.NAA05498@genesis.atrad.adelaide.edu.au> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 0.61.1 In-Reply-To: ; from The Hermit Hacker on Mar 03, 1997 at 12:31:28AM -0400 Sender: owner-emulation@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk On Mar 03, 1997 at 12:31:28AM -0400, The Hermit Hacker wrote: > The README mentions using 'dd', but doesn't do more then that > (I know, old docs)...since my familiarity with dd is limited, I just > wiped together a quick C program to call 'truncate' to create a 11MB > "dos file system" for me to work with, and now fdisk works...format is > next. dd if=/dev/zero of=dos_drv bs=1k count= > > Finally, for this email, I can fdisk the 'file', but I can't seem > to format it. > > The fdisk completes as expected (crashes doscmd), and the format > seems to work okay, but if I do a 'dir c:', I get 'Invalid media type > reading drive C... Does the format command give you an error at all? What version of DOS are you trying to boot off of? -- Jonathan From owner-freebsd-emulation Thu Mar 27 13:06:46 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id NAA22163 for emulation-outgoing; Thu, 27 Mar 1997 13:06:46 -0800 (PST) Received: from sumatra.americantv.com (sumatra.americantv.com [199.184.181.250]) by freefall.freebsd.org (8.8.5/8.8.5) with ESMTP id NAA22156 for ; Thu, 27 Mar 1997 13:06:37 -0800 (PST) Received: from right.PCS (right.pcs. [148.105.10.31]) by sumatra.americantv.com (8.7.6/8.7.3) with ESMTP id PAA04699; Thu, 27 Mar 1997 15:06:15 -0600 (CST) Received: (jlemon@localhost) by right.PCS (8.6.13/8.6.4) id VAA02664; Thu, 27 Mar 1997 21:07:26 GMT Message-ID: <19970327150726.11931@right.PCS> Date: Thu, 27 Mar 1997 15:07:26 -0600 From: Jonathan Lemon To: Gary Clark II Cc: freebsd-emulation@freebsd.org Subject: Re: Latest doscmd report References: <199703260714.BAA00242@main.gbdata.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 0.61.1 In-Reply-To: <199703260714.BAA00242@main.gbdata.com>; from Gary Clark II on Mar 03, 1997 at 01:14:30AM -0600 Sender: owner-emulation@freebsd.org X-Loop: FreeBSD.org Precedence: bulk On Mar 03, 1997 at 01:14:30AM -0600, Gary Clark II wrote: > Hello, > > I grabbed the latest doscmd stuff and recompiled a kernel and rebooted. > > Two of the three test programs run fine (ls.exe and zip.exe). The other > one (q.exe) kept giving me a message about something being unimplemented > except in X mode (this was with the -x switch). Next time I boot this > kernel I'll copy it down..:( Are you sure it was with the '-x' switch? Both ls.exe and zip.exe will run in non-X mode, but q.exe won't. -- Jonathan From owner-freebsd-emulation Fri Mar 28 13:02:18 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id NAA03287 for emulation-outgoing; Fri, 28 Mar 1997 13:02:18 -0800 (PST) Received: from cerberus.partsnow.com (gatekeeper.partsnow.com [207.155.26.98]) by freefall.freebsd.org (8.8.5/8.8.5) with ESMTP id NAA03282 for ; Fri, 28 Mar 1997 13:02:15 -0800 (PST) Received: (from bin@localhost) by cerberus.partsnow.com (8.8.5/8.6.9) id NAA07695 for ; Fri, 28 Mar 1997 13:03:30 -0800 (PST) X-Authentication-Warning: Cerberus.partsnow.com: bin set sender to using -f Received: from pcconsole(192.168.100.254) by cerberus via smap (V2.0) id xma007693; Fri, 28 Mar 97 13:03:04 -0800 Message-ID: <333C30F1.7434@PartsNow.com> Date: Fri, 28 Mar 1997 12:58:25 -0800 From: Don Wilde Reply-To: Don@PartsNow.com Organization: Soligen, Incorporated X-Mailer: Mozilla 3.0C-E-KIT (Win16; I) MIME-Version: 1.0 To: freebsd-emulation@freebsd.org Subject: Applix applicable? Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-emulation@freebsd.org X-Loop: FreeBSD.org Precedence: bulk Does anyone have feedback on the workability of Applixware? Work Group Solutions is advertising it for $199 and they usually will stock ports of stuff for both FBSD and Linux. -- oooOOO O O O o * * * * * * o ___ _________ _________ ________ _________ _________ ___==_ V_=_=_DW ===--- Don Wilde [don@PartsNow.com] [http://www.PartsNow.com ] /oo0000oo-oo--oo-ooo---ooo-ooo---ooo-ooo--ooo-ooo---ooo-ooo---ooo-oo--oo From owner-freebsd-emulation Fri Mar 28 13:58:22 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id NAA06496 for emulation-outgoing; Fri, 28 Mar 1997 13:58:22 -0800 (PST) Received: from time.cdrom.com (root@time.cdrom.com [204.216.27.226]) by freefall.freebsd.org (8.8.5/8.8.5) with ESMTP id NAA06489 for ; Fri, 28 Mar 1997 13:58:19 -0800 (PST) Received: from time.cdrom.com (jkh@localhost [127.0.0.1]) by time.cdrom.com (8.8.5/8.6.9) with ESMTP id NAA06800; Fri, 28 Mar 1997 13:58:16 -0800 (PST) To: Don@PartsNow.com cc: freebsd-emulation@freebsd.org Subject: Re: Applix applicable? In-reply-to: Your message of "Fri, 28 Mar 1997 12:58:25 PST." <333C30F1.7434@PartsNow.com> Date: Fri, 28 Mar 1997 13:58:16 -0800 Message-ID: <6797.859586296@time.cdrom.com> From: "Jordan K. Hubbard" Sender: owner-emulation@freebsd.org X-Loop: FreeBSD.org Precedence: bulk > Does anyone have feedback on the workability of Applixware? Work Group I've heard from quite a few people that the Linux version runs fine. I've not run it personally though I have run StarOffice for Linux, and it similarly worked fine. Jordan > Solutions is advertising it for $199 and they > usually will stock ports of stuff for both FBSD and Linux. > -- > oooOOO O O O o * * * * * * > o ___ _________ _________ ________ _________ _________ ___==_ > V_=_=_DW ===--- Don Wilde [don@PartsNow.com] [http://www.PartsNow.com ] > /oo0000oo-oo--oo-ooo---ooo-ooo---ooo-ooo--ooo-ooo---ooo-ooo---ooo-oo--oo From owner-freebsd-emulation Fri Mar 28 20:44:21 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id UAA07931 for emulation-outgoing; Fri, 28 Mar 1997 20:44:21 -0800 (PST) Received: from kithrup.com (kithrup.com [205.179.156.40]) by freefall.freebsd.org (8.8.5/8.8.5) with SMTP id UAA07913 for ; Fri, 28 Mar 1997 20:44:17 -0800 (PST) Received: (from sef@localhost) by kithrup.com (8.6.8/8.6.6) id UAA14152 for emulation@freebsd.org; Fri, 28 Mar 1997 20:29:48 -0800 Date: Fri, 28 Mar 1997 20:29:48 -0800 From: Sean Eric Fagan Message-Id: <199703290429.UAA14152@kithrup.com> To: emulation@freebsd.org Subject: New diffs Sender: owner-emulation@freebsd.org X-Loop: FreeBSD.org Precedence: bulk These are against 2.2-RELEASE, since I haven't grabbed the 2.2.1 source tree yet. The only new diffs are in exception.s, icu.s, and npx.c, so just grab those if you want to just update the old patches. This version hasn't hung on me (thanks jlemon!). If it behaves similarly for others, I think we have a candidate for larger release... --- ./i386/machdep.c.orig Thu Feb 13 17:11:30 1997 +++ ./i386/machdep.c Mon Mar 17 18:07:57 1997 @@ -426,6 +426,10 @@ * resets the signal mask, the stack, and the * frame pointer, it returns to the user * specified pc, psl. + * + * For VM86 processes, a copy of the registe + * set is placed on the stack *after* the + * sigframe (as a trapframe). */ void sendsig(catcher, sig, mask, code) @@ -439,16 +443,23 @@ struct sigframe sf; struct sigacts *psp = p->p_sigacts; int oonstack; + int framesize = sizeof(struct sigframe); regs = p->p_md.md_regs; oonstack = psp->ps_sigstk.ss_flags & SS_ONSTACK; /* + * XXX this will go away + * Are we a vm86 process? If so, allocate stack space + */ + if (regs[tEFLAGS] & PSL_VM) + framesize += sizeof(struct trapframe_vm86); + /* * Allocate and validate space for the signal handler context. */ if ((psp->ps_flags & SAS_ALTSTACK) && !oonstack && (psp->ps_sigonstack & sigmask(sig))) { fp = (struct sigframe *)(psp->ps_sigstk.ss_sp + - psp->ps_sigstk.ss_size - sizeof(struct sigframe)); + psp->ps_sigstk.ss_size - framesize); psp->ps_sigstk.ss_flags |= SS_ONSTACK; } else { fp = (struct sigframe *)regs[tESP] - 1; @@ -460,7 +471,7 @@ * if access is denied. */ if ((grow(p, (int)fp) == FALSE) || - (useracc((caddr_t)fp, sizeof (struct sigframe), B_WRITE) == FALSE)) { + (useracc((caddr_t)fp, framesize, B_WRITE) == FALSE)) { /* * Process has trashed its stack; give it an illegal * instruction to halt it in its tracks. @@ -511,7 +522,21 @@ sf.sf_sc.sc_fp = regs[tEBP]; sf.sf_sc.sc_pc = regs[tEIP]; sf.sf_sc.sc_ps = regs[tEFLAGS]; + sf.sf_sc.sc_trapno = regs[tTRAPNO]; + sf.sf_sc.sc_err = regs[tERR]; + + /* + * If we're a vm86 process, we want to save + * the segment registers. + */ + if (regs[tEFLAGS] & PSL_VM) { + struct trapframe_vm86 *tf = (struct trapframe_vm86 *)regs; + sf.sf_sc.sc_gs = tf->tf_vm86_gs; + sf.sf_sc.sc_fs = tf->tf_vm86_fs; + sf.sf_sc.sc_es = tf->tf_vm86_es; + sf.sf_sc.sc_ds = tf->tf_vm86_ds; + } /* * Copy the sigframe out to the user's stack. */ @@ -521,11 +546,34 @@ * ...Kill the process. */ sigexit(p, SIGILL); - }; + } + /* + * If we're a vm86 process, we put the register set + * out on teh stack, *after* the sigframe structure. + * We do this because BSD/OS' struct sigcontext does not + * have all of the machine registers. Even though + * we do, we do this for now, until the DOS emulator + * is changed enough. *However*, we don't depends on + * it in sigreturn! + * + * XXX - we don't check for errors! (None should happen + * because of the grow() and useracc() we did above, but + * "should" has probably sunk more ships than torpedoes.) + */ + if (regs[tEFLAGS] & PSL_VM) { + copyout(regs, (void*)((unsigned)fp + sizeof(struct sigframe)), + sizeof(struct trapframe_vm86)); + } regs[tESP] = (int)fp; regs[tEIP] = (int)(((char *)PS_STRINGS) - *(p->p_sysent->sv_szsigcode)); regs[tEFLAGS] &= ~PSL_VM; + /* + * Signal handlers for vm86 processes do not run in + * vm86 mode. This may seem a bit odd at first glance, + * but it seems even odder to have a signal handler + * written in 16-bit code! + */ regs[tCS] = _ucodesel; regs[tDS] = _udatasel; regs[tES] = _udatasel; @@ -566,43 +614,71 @@ if (useracc((caddr_t)fp, sizeof (*fp), B_WRITE) == 0) return(EINVAL); - - /* - * Don't allow users to change privileged or reserved flags. - */ -#define EFLAGS_SECURE(ef, oef) ((((ef) ^ (oef)) & ~PSL_USERCHANGE) == 0) eflags = scp->sc_ps; /* - * XXX do allow users to change the privileged flag PSL_RF. The - * cpu sets PSL_RF in tf_eflags for faults. Debuggers should - * sometimes set it there too. tf_eflags is kept in the signal - * context during signal handling and there is no other place - * to remember it, so the PSL_RF bit may be corrupted by the - * signal handler without us knowing. Corruption of the PSL_RF - * bit at worst causes one more or one less debugger trap, so - * allowing it is fairly harmless. + * We do funky stuff if it's a vm86 process. */ - if (!EFLAGS_SECURE(eflags & ~PSL_RF, regs[tEFLAGS] & ~PSL_RF)) { + if (eflags & PSL_VM) { + struct trapframe_vm86 *tf = (struct trapframe_vm86 *)regs; + struct pcb *pcb = &p->p_addr->u_pcb; + if (p->p_md.md_connarea == 0) + p->p_md.md_connarea = (void*)scp->sc_eax; + + eflags = (eflags & PSL_USERCHANGE) | PSL_VM | PSL_I; + /* + * XXX + * BSD/OS also checks to see if it should set the + * PSL_IOPL bit; I think, however, that the IOPL + * bits should always be 0 -- preventing the vm86 + * process from executing the "sensitive" instructions. + */ + eflags &= ~PSL_IOPL; + pcb->vm86_eflags = eflags & PSL_I; + + tf->tf_vm86_ds = scp->sc_ds; + tf->tf_vm86_es = scp->sc_es; + tf->tf_vm86_fs = scp->sc_fs; + tf->tf_vm86_gs = scp->sc_gs; + regs[tDS] = _udatasel; + regs[tES] = _udatasel; + } else { + /* + * Don't allow users to change privileged or reserved flags. + */ +#define EFLAGS_SECURE(ef, oef) ((((ef) ^ (oef)) & ~PSL_USERCHANGE) == 0) + /* + * XXX do allow users to change the privileged flag PSL_RF. + * The cpu sets PSL_RF in tf_eflags for faults. Debuggers + * should sometimes set it there too. tf_eflags is kept in + * the signal context during signal handling and there is no + * other place to remember it, so the PSL_RF bit may be + * corrupted by the signal handler without us knowing. + * Corruption of the PSL_RF bit at worst causes one more or + * one less debugger trap, so allowing it is fairly harmless. + */ + if (!EFLAGS_SECURE(eflags & ~PSL_RF, regs[tEFLAGS] & ~PSL_RF)) { #ifdef DEBUG - printf("sigreturn: eflags = 0x%x\n", eflags); + printf("sigreturn: eflags = 0x%x\n", eflags); #endif - return(EINVAL); - } + return(EINVAL); + } - /* - * Don't allow users to load a valid privileged %cs. Let the - * hardware check for invalid selectors, excess privilege in - * other selectors, invalid %eip's and invalid %esp's. - */ + /* + * Don't allow users to load a valid privileged %cs. Let the + * hardware check for invalid selectors, excess privilege in + * other selectors, invalid %eip's and invalid %esp's. + */ #define CS_SECURE(cs) (ISPL(cs) == SEL_UPL) - if (!CS_SECURE(scp->sc_cs)) { + if (!CS_SECURE(scp->sc_cs)) { #ifdef DEBUG - printf("sigreturn: cs = 0x%x\n", scp->sc_cs); + printf("sigreturn: cs = 0x%x\n", scp->sc_cs); #endif - trapsignal(p, SIGBUS, T_PROTFLT); - return(EINVAL); + trapsignal(p, SIGBUS, T_PROTFLT); + return(EINVAL); + } + regs[tDS] = scp->sc_ds; + regs[tES] = scp->sc_es; } - /* restore scratch registers */ regs[tEAX] = scp->sc_eax; regs[tEBX] = scp->sc_ebx; @@ -611,13 +687,11 @@ regs[tESI] = scp->sc_esi; regs[tEDI] = scp->sc_edi; regs[tCS] = scp->sc_cs; - regs[tDS] = scp->sc_ds; - regs[tES] = scp->sc_es; regs[tSS] = scp->sc_ss; regs[tISP] = scp->sc_isp; if (useracc((caddr_t)scp, sizeof (*scp), B_WRITE) == 0) - return(EINVAL); + return(EFAULT); if (scp->sc_onstack & 01) p->p_sigacts->ps_sigstk.ss_flags |= SS_ONSTACK; @@ -632,7 +706,7 @@ } /* - * Machine depdnetnt boot() routine + * Machine dependent boot() routine * * I haven't seen anything too put here yet * Possibly some stuff might be grafted back here from boot() @@ -1295,7 +1369,8 @@ msgbufmapped = 1; /* make a initial tss so microp can get interrupt stack on syscall! */ - proc0.p_addr->u_pcb.pcb_tss.tss_esp0 = (int) kstack + UPAGES*PAGE_SIZE; + proc0.p_addr->u_pcb.pcb_tss.tss_esp0 = (int) kstack + + UPAGES * PAGE_SIZE - (4 * 4); proc0.p_addr->u_pcb.pcb_tss.tss_ss0 = GSEL(GDATA_SEL, SEL_KPL) ; gsel_tss = GSEL(GPROC0_SEL, SEL_KPL); --- ./i386/sys_machdep.c.orig Thu Dec 12 08:51:23 1996 +++ ./i386/sys_machdep.c Mon Mar 17 18:07:21 1997 @@ -50,11 +50,15 @@ #include #include +#include +#include #include #include +#include #include /* for kernel_map */ +#include /* For v86 definitions */ #define MAX_LD 8192 #define LD_PER_PAGE 512 @@ -94,6 +98,9 @@ error = i386_set_ldt(p, uap->parms, retval); break; #endif + case I386_VM86: + error = i386_vm86(p, uap->parms, retval); + break; default: error = EINVAL; break; @@ -308,3 +315,72 @@ return(error); } #endif /* USER_LDT */ + +int +i386_vm86(struct proc *p, void *args, int *retval) { + struct trapframe_vm86 *tf_v86 = (struct trapframe_vm86*)p->p_md.md_regs; +/* struct trapframe_vm86 tf_v86; */ + struct pcb *pcb = &p->p_addr->u_pcb; + struct vm86_kern v_arg; + int error; + +/* debugging - jlemon */ +printf("i386_vm86() called\n"); + + if (error = copyin(args, &v_arg, sizeof(v_arg))) + return error; +/* bcopy(tf, &tf_v86, sizeof(*tf)); */ + pcb->vm86_userp = (void*)args; + + /* + * What kind of CPU do we want to emulate? + * 286 and less can't set or clear anything; + * 386 can set/clear the NT and IOPL bits; + * 486 can set/clear alignment checking (AC); + * 586 can set/clear alignment bit as well. + */ + + switch (v_arg.ss_cpu_type) { + case VCPU_086: + case VCPU_186: + case VCPU_286: + pcb->vm86_flagmask = 0; + break; + case VCPU_386: + pcb->vm86_flagmask = PSL_NT | PSL_IOPL; + break; + case VCPU_486: + pcb->vm86_flagmask = PSL_AC | PSL_NT | PSL_IOPL; + break; + case VCPU_586: + default: + pcb->vm86_flagmask = PSL_ID | PSL_AC | PSL_NT | PSL_IOPL; + break; + } + + /* Assign the registers the way we're told... */ +#define VREG(reg) tf_v86->tf_vm86_##reg = (u_short) v_arg.regs.vmsc.sc_##reg +#define REG(reg) tf_v86->tf_##reg = (u_short) v_arg.regs.vmsc.sc_##reg + VREG(ds); + VREG(es); + VREG(fs); + VREG(gs); + REG(edi); + REG(esi); + REG(ebp); + REG(eax); + REG(ebx); + REG(ecx); + REG(edx); + REG(eip); + REG(cs); + REG(esp); + REG(ss); +#undef DOVREG +#undef DOREG + + /* Don't give a signal stack to v86 processes... */ + p->p_sigacts->ps_sigstk.ss_flags &= ~SA_ONSTACK; + + return EJUSTRETURN; +} --- ./i386/trap.c.orig Wed Feb 12 23:51:53 1997 +++ ./i386/trap.c Mon Mar 17 18:07:21 1997 @@ -192,7 +192,7 @@ type = frame.tf_trapno; code = frame.tf_err; - if (ISPL(frame.tf_cs) == SEL_UPL) { + if ((ISPL(frame.tf_cs) == SEL_UPL) || (frame.tf_eflags & PSL_VM)) { /* user trap */ sticks = p->p_sticks; @@ -225,9 +225,26 @@ } goto out; + /* + * The following two traps can happen in + * vm86 mode, and, if so, we want to handle + * them specially. + */ case T_PROTFLT: /* general protection fault */ - case T_SEGNPFLT: /* segment not present fault */ case T_STKFLT: /* stack fault */ + if (frame.tf_eflags & PSL_VM) { +#if 0 +/*printf("Gonna call emulate_vm86()\n");*/ + i = emulate_vm86((struct trapframe_vm86 *)&frame); +#else + i = SIGBUS; +#endif + if (i == 0) + goto out; + break; + } + + case T_SEGNPFLT: /* segment not present fault */ case T_TSSFLT: /* invalid TSS fault */ case T_DOUBLEFLT: /* double fault */ default: @@ -925,7 +942,10 @@ break; } +/* if (frame.tf_eflags & PSL_T) { +*/ + if ((frame.tf_eflags & PSL_T) && !(frame.tf_eflags & PSL_VM)) { /* Traced syscall. */ frame.tf_eflags &= ~PSL_T; trapsignal(p, SIGTRAP, 0); @@ -937,4 +957,148 @@ if (KTRPOINT(p, KTR_SYSRET)) ktrsysret(p->p_tracep, code, error, rval[0]); #endif +} + +struct vconnect_area { + int int_state; + int magic; /* 0x4242 -> PRB format */ + u_long passthru[256>>5]; /* bitmap of INTs to handle */ + u_long magiciret[2]; /* Bounds of "magic" IRET */ +}; + +#define need_interrupt magic /* Russian compatibility */ +#define PRB_V86_FORMAT 0x4242 + +#define CLI 0xfa +#define STI 0xfb +#define PUSHF 0x9c +#define POPF 0x9d +#define INTn 0xcd +#define IRET 0xcf +#define tf_sp tf_esp +#define tf_ip tf_eip +#define tf_eflags86 tf_eflags +inline static int +MAKE_ADDR(int sel, int off) +{ + + return ((sel << 4) + off); +} + +inline static void +PUSH(u_short x, struct trapframe_vm86 *frame) +{ + + frame->tf_sp -= 2; + susword((void *) MAKE_ADDR(frame->tf_ss, frame->tf_sp), x); +} + +inline static u_short +POP(struct trapframe_vm86 *frame) +{ + u_short x = fusword((void *) MAKE_ADDR(frame->tf_ss, frame->tf_sp)); + + frame->tf_sp += 2; + return (x); +} + +static int +emulate_vm86(tf) + struct trapframe_vm86 *tf; +{ + int intnum, addr; + int int_state, old_int_state; + int magic; + struct proc *p = curproc; + struct pcb *pcb = &p->p_addr->u_pcb; + struct vconnect_area *connect_area; + + addr = MAKE_ADDR(tf->tf_cs, tf->tf_ip); + + if (p->p_md.md_connarea == (void *) -1) + return (SIGBUS); + connect_area = (struct vconnect_area *)p->p_md.md_connarea; + old_int_state = int_state = fusword((void *)&connect_area->int_state); + magic = fusword((void *)&connect_area->magic); + switch (fubyte((void *)addr)) { + case CLI: +#if 1 +printf ("emulate_vm86: cli\n"); +#endif + pcb->vm86_eflags &= ~PSL_I; + tf->tf_ip++; + return 0; + case STI: +printf ("emulate_vm86: sti\n"); + pcb->vm86_eflags |= PSL_I; + tf->tf_ip++; + /* XXX -- need to check for pending interrupt */ + return 0; + case PUSHF: +printf("emulate_vm86: pushf\n"); + PUSH((tf->tf_eflags86 & ~PSL_I) | + (pcb->vm86_eflags & PSL_I) | PSL_IOPL, tf); + tf->tf_ip++; + return 0; + case POPF: +printf("emulate_vm86: popf\n"); + int_state = POP(tf); + tf->tf_eflags86 = (int_state & ~PSL_IOPL) | PSL_I; + pcb->vm86_eflags = int_state & PSL_I; + tf->tf_ip++; + return 0; + } + /*printf("emulate_vm86: none of the above\n"); */ + if (p->p_md.md_connarea == (void *) -1) + return (SIGBUS); + connect_area = (struct vconnect_area *)p->p_md.md_connarea; + old_int_state = int_state = fusword((void *)&connect_area->int_state); + magic = fusword((void *)&connect_area->magic); + + switch (fubyte((void *)addr)) { + case INTn: + intnum = fubyte((void *)(addr + 1)); + if (magic == PRB_V86_FORMAT) { + u_long pt; + pt = fuword((void *)&connect_area->passthru[intnum>>5]); + if ((pt & (1 << (intnum & 0x1f))) == 0) + return(SIGBUS); + } + PUSH((tf->tf_eflags86 & ~PSL_I) | int_state | PSL_IOPL, tf); + PUSH(tf->tf_cs, tf); + PUSH(tf->tf_ip + 2, tf); + int_state = 0; + tf->tf_eflags86 &= ~PSL_T; + tf->tf_cs = fuword((void *)(intnum * 4 + 2)); + tf->tf_ip = fuword((void *)(intnum * 4)); + break; + case IRET: + if (magic == PRB_V86_FORMAT) { + /* + * magiciret[] gives a range of memory in + * which we must return the IRET to the + * emulator + */ + u_long ia = (tf->tf_cs << 16) | tf->tf_ip; + if ( fuword((void *)&connect_area->magiciret[0]) <= ia + && fuword((void *)&connect_area->magiciret[1]) >= ia) + return(SIGBUS); + } + tf->tf_ip = POP(tf); + tf->tf_cs = POP(tf); + int_state = POP(tf); + tf->tf_eflags86 = (int_state & ~PSL_IOPL) | PSL_I; + int_state &= PSL_I; + break; + default: + return (SIGBUS); + } + if (old_int_state != int_state) + susword((void *)&connect_area->int_state, int_state); + if (old_int_state == 0 && int_state == PSL_I && + magic != PRB_V86_FORMAT && + fusword((void *)&connect_area->need_interrupt)) + return (SIGIO); + else + return (0); } --- ./i386/vm_machdep.c.orig Wed Jan 1 18:21:09 1997 +++ ./i386/vm_machdep.c Mon Mar 17 18:07:21 1997 @@ -594,6 +594,8 @@ bcopy((caddr_t)kstack + offset, (caddr_t)p2->p_addr + offset, (unsigned) ctob(UPAGES) - offset); p2->p_md.md_regs = p1->p_md.md_regs; + p2->p_md.md_connarea = p1->p_md.md_connarea; + p2->p_md.md_flags = p1->p_md.md_flags; *pcb2 = p1->p_addr->u_pcb; pcb2->pcb_cr3 = vtophys(p2->p_vmspace->vm_pmap.pm_pdir); --- ./i386/exception.s.orig Sun Aug 11 10:41:23 1996 +++ ./i386/exception.s Fri Mar 28 20:24:43 1997 @@ -176,6 +176,8 @@ subl %eax,%eax testb $SEL_RPL_MASK,TRAPF_CS_OFF(%esp) jne 1f + testl $PSL_VM,TF_EFLAGS(%esp) + jne 1f movl _cpl,%eax 1: /* --- ./include/frame.h.orig Tue Jan 30 14:54:27 1996 +++ ./include/frame.h Mon Mar 17 18:07:22 1997 @@ -72,6 +72,35 @@ int tf_ss; }; +/* Superset of trap frame, for traps from virtual-8086 mode */ + +struct trapframe_vm86 { + int tf_es; + int tf_ds; + int tf_edi; + int tf_esi; + int tf_ebp; + int tf_isp; + int tf_ebx; + int tf_edx; + int tf_ecx; + int tf_eax; + int tf_trapno; + /* below portion defined in 386 hardware */ + int tf_err; + int tf_eip; + int tf_cs; + int tf_eflags; + /* below only when crossing rings (e.g. user to kernel) */ + int tf_esp; + int tf_ss; + /* below only when switching out of VM86 mode */ + int tf_vm86_es; + int tf_vm86_ds; + int tf_vm86_fs; + int tf_vm86_gs; +}; + /* Interrupt stack frame */ struct intrframe { --- ./include/pcb.h.orig Wed Jul 31 05:35:36 1996 +++ ./include/pcb.h Mon Mar 17 18:07:22 1997 @@ -67,6 +67,9 @@ u_char pcb_flags; #define FP_SOFTFP 0x01 /* process using software fltng pnt emulator */ caddr_t pcb_onfault; /* copyin/out fault recovery */ + int vm86_eflags; /* Flags for v86 mode dickery */ + int vm86_flagmask; /* Mask for flags registers */ + struct vm86_struct *vm86_userp; }; /* --- ./include/proc.h.orig Tue Apr 9 22:26:26 1996 +++ ./include/proc.h Mon Mar 17 18:07:22 1997 @@ -43,6 +43,7 @@ struct mdproc { int md_flags; /* machine-dependent flags */ int *md_regs; /* registers on current frame */ + void *md_connarea; /* for vm86 */ }; /* md_flags */ --- ./include/psl.h.orig Tue Jan 30 14:54:50 1996 +++ ./include/psl.h Mon Mar 17 18:07:22 1997 @@ -83,6 +83,6 @@ * 386's. */ #define PSL_USERCHANGE (PSL_C | PSL_PF | PSL_AF | PSL_Z | PSL_N | PSL_T \ - | PSL_D | PSL_V | PSL_NT | PSL_AC) + | PSL_D | PSL_V | PSL_NT | PSL_AC | PSL_VM) #endif /* !_MACHINE_PSL_H_ */ --- ./include/reg.h.orig Tue Jan 30 14:54:56 1996 +++ ./include/reg.h Mon Mar 17 18:07:22 1997 @@ -59,7 +59,7 @@ #define tEDX (7) #define tECX (8) #define tEAX (9) - +#define tTRAPNO (10) #define tERR (11) #define tEIP (12) --- ./include/signal.h.orig Tue Jun 27 19:14:13 1995 +++ ./include/signal.h Mon Mar 17 18:07:22 1997 @@ -72,10 +72,15 @@ int sc_edx; int sc_ecx; int sc_eax; + int sc_gs; + int sc_fs; # define sc_sp sc_esp # define sc_fp sc_ebp # define sc_pc sc_eip # define sc_ps sc_efl +# define sc_eflags sc_efl + int sc_trapno; + int sc_err; }; #endif /* !_ANSI_SOURCE && !_POSIX_SOURCE */ --- ./include/sysarch.h.orig Tue Aug 2 00:39:11 1994 +++ ./include/sysarch.h Mon Mar 17 18:07:22 1997 @@ -43,6 +43,10 @@ #define I386_GET_LDT 0 #define I386_SET_LDT 1 +#define I386_IOPL 2 +#define I386_GET_IOPERM 3 +#define I386_SET_IOPERM 4 +#define I386_VM86 6 #ifdef KERNEL /* nothing here yet... */ --- ./include/vm86.h.orig Mon Mar 17 18:07:22 1997 +++ ./include/vm86.h Mon Mar 17 18:07:22 1997 @@ -0,0 +1,47 @@ +#ifndef _MACHINE_VM86_H +# define _MACHINE_VM86_H + +#define VM86_TYPE(x) ((x) & 0xff) +#define VM86_ARG(x) (((x) & 0xff00) >> 8) +#define VM86_MAKEVAL(type,arg) ((type) | (((arg) & 0xff) << 8)) +#define VM86_STI 0 +#define VM86_INTx 1 +#define VM86_SIGNAL 2 +#define VM86_UNKNOWN 3 + +#define VM86_SETDIRECT (~PSL_USERSTATIC) +#define VM86_GETDIRECT (VM86_SETDIRECT|PSL_MBO|PSL_MBZ) + +struct vm86_regs { + struct sigcontext vmsc; +}; + +struct vm86_kern { + struct vm86_regs regs; + unsigned long ss_cpu_type; +}; +#define cpu_type substr.ss_cpu_type + +struct vm86_struct { + struct vm86_kern substr; + unsigned long screen_bitmap; /* XXX -- what is this for?! */ + unsigned long flags; + unsigned char int_byuser[32]; /* Bitmap of interrupts user wants to handle */ + unsigned char int21_byuser[32]; /* Same, for int21 functions */ +}; + +#define VM86_STI 0 +#define VM86_INTxx 1 +#define VM86_SIGNAL 2 +#define VM86_UNKNOWN 3 + +#define BIOSSEG 0x0f000 + +#define VCPU_086 0 +#define VCPU_186 1 +#define VCPU_286 2 +#define VCPU_386 3 +#define VCPU_486 4 +#define VCPU_586 5 + +#endif /* _MACHINE_VM86_H */ --- ./isa/icu.s.orig Sun Dec 29 14:06:49 1996 +++ ./isa/icu.s Fri Mar 28 20:24:43 1997 @@ -180,6 +180,7 @@ addl $8,%esp /* discard raddr & cpl to get trap frame */ testb $SEL_RPL_MASK,TRAPF_CS_OFF(%esp) je swi_ast_phantom +swi_ast_user: movl $T_ASTFLT,(2+8+0)*4(%esp) movb $0,_intr_nesting_level /* finish becoming a trap handler */ call _trap @@ -189,6 +190,12 @@ ALIGN_TEXT swi_ast_phantom: + /* + * check for ast from vm86 mode. Placed down here so the jumps + * do not get taken for mainline code. + */ + testl $PSL_VM,TF_EFLAGS(%esp) + jne swi_ast_user /* * These happen when there is an interrupt in a trap handler before * ASTs can be masked or in an lcall handler before they can be --- ./isa/npx.c.orig Wed Feb 12 22:59:51 1997 +++ ./isa/npx.c Fri Mar 28 20:24:43 1997 @@ -56,6 +56,7 @@ #include #include +#include #include #include #include @@ -479,7 +480,7 @@ * Pass exception to process. */ frame = (struct intrframe *)&unit; /* XXX */ - if (ISPL(frame->if_cs) == SEL_UPL) { + if ((ISPL(frame->if_cs) == SEL_UPL) || (frame->if_eflags & PSL_VM)) { /* * Interrupt is essentially a trap, so we can afford to call * the SIGFPE handler (if any) as soon as the interrupt From owner-freebsd-emulation Sat Mar 29 06:13:23 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id GAA28233 for emulation-outgoing; Sat, 29 Mar 1997 06:13:23 -0800 (PST) Received: from enterprise.powerup.com.au (root@enterprise.powerup.com.au [203.2.122.69]) by freefall.freebsd.org (8.8.5/8.8.5) with ESMTP id GAA28228 for ; Sat, 29 Mar 1997 06:13:20 -0800 (PST) Received: from whack ([203.55.140.31]) by enterprise.powerup.com.au (8.8.5/8.6.10) with SMTP id OAA19852 for ; Sat, 29 Mar 1997 14:10:01 GMT Message-ID: <333D1BD9.71AC@powerup.com.au> Date: Sat, 29 Mar 1997 23:40:41 +1000 From: Wild Jasmine X-Mailer: Mozilla 3.01C-NSCP (WinNT; I) MIME-Version: 1.0 To: freebsd-emulation@freebsd.org Subject: V 2.2.1 References: <199703290429.UAA14152@kithrup.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-emulation@freebsd.org X-Loop: FreeBSD.org Precedence: bulk Has version 2.2.1 of FreeBSD gone to the burners yet? From owner-freebsd-emulation Sat Mar 29 11:54:31 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id LAA09441 for emulation-outgoing; Sat, 29 Mar 1997 11:54:31 -0800 (PST) Received: from time.cdrom.com (root@time.cdrom.com [204.216.27.226]) by freefall.freebsd.org (8.8.5/8.8.5) with ESMTP id LAA09435 for ; Sat, 29 Mar 1997 11:54:29 -0800 (PST) Received: from time.cdrom.com (jkh@localhost [127.0.0.1]) by time.cdrom.com (8.8.5/8.6.9) with ESMTP id LAA03799; Sat, 29 Mar 1997 11:54:25 -0800 (PST) To: Wild Jasmine cc: freebsd-emulation@FreeBSD.ORG Subject: Re: V 2.2.1 In-reply-to: Your message of "Sat, 29 Mar 1997 23:40:41 +1000." <333D1BD9.71AC@powerup.com.au> Date: Sat, 29 Mar 1997 11:54:24 -0800 Message-ID: <3796.859665264@time.cdrom.com> From: "Jordan K. Hubbard" Sender: owner-emulation@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk > Has version 2.2.1 of FreeBSD gone to the burners yet? Not yet. On Tuesday. The artwork was delayed, so it has to wait.. Jordan From owner-freebsd-emulation Sat Mar 29 13:01:40 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id NAA12883 for emulation-outgoing; Sat, 29 Mar 1997 13:01:40 -0800 (PST) Received: from micron.efn.org (dynip77.efn.org [204.214.97.77]) by freefall.freebsd.org (8.8.5/8.8.5) with ESMTP id NAA12838 for ; Sat, 29 Mar 1997 13:00:17 -0800 (PST) Received: (from mini@localhost) by micron.efn.org (8.8.3/8.7.3) id MAA18335; Sat, 29 Mar 1997 12:58:55 -0800 (PST) Date: Sat, 29 Mar 1997 12:58:55 -0800 (PST) From: Jonathan Mini Reply-To: Jonathan Mini To: Gary Clark II cc: The Hermit Hacker , msmith@atrad.adelaide.edu.au, freebsd-emulation@FreeBSD.ORG Subject: Re: Latest doscmd report In-Reply-To: <199703270149.TAA04809@main.gbdata.com> Message-ID: X-files: The truth is out there. MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-emulation@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk On Wed, 26 Mar 1997, Gary Clark II wrote: > Pcemu is a program that emulates an XT in software. It was written a couple > of years ago by a British grad student. It will run basic pc software on > any platform with X just about. About like a primitive version of SoftPC. > > DosCMD is a REAL vm86 mode XT emulator. I would like to say that DosCMD doesn't emulate an XT, it emulates real mode. Which means that it works jsut like an i386 or i486 in vm86 mode. The difference is a _big_ deal. You get 32-bit registers for math, and a whoel load of other extremely useful goodies. The only i386 instructinos you can't run in vm86 mode are the ones you can't run in a non-priveledged protected mode task -- because vm86 _is_ a protected mode task. > > > Gary > -- > Gary Clark II (N5VMF) | I speak only for myself and "maybe" my company > gclarkii@GBData.COM | Member of the FreeBSD Doc Team > Providing Internet and ISP startups - http://WWW.GBData.com for information > FreeBSD FAQ at ftp://ftp.FreeBSD.ORG/pub/FreeBSD/docs/FAQ.latin1 > > Jonathan Mini (j_mini@efn.org) ... bleakness ... desolation ... plastic forks ... From owner-freebsd-emulation Sat Mar 29 13:02:47 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id NAA12943 for emulation-outgoing; Sat, 29 Mar 1997 13:02:47 -0800 (PST) Received: from micron.efn.org (dynip77.efn.org [204.214.97.77]) by freefall.freebsd.org (8.8.5/8.8.5) with ESMTP id NAA12929 for ; Sat, 29 Mar 1997 13:02:44 -0800 (PST) Received: (from mini@localhost) by micron.efn.org (8.8.3/8.7.3) id NAA18345; Sat, 29 Mar 1997 13:02:49 -0800 (PST) Date: Sat, 29 Mar 1997 13:02:48 -0800 (PST) From: Jonathan Mini Reply-To: Jonathan Mini To: Wild Jasmine cc: freebsd-emulation@freebsd.org Subject: Re: Doscmd In-Reply-To: <3339FB30.649C@powerup.com.au> Message-ID: X-files: The truth is out there. MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-emulation@freebsd.org X-Loop: FreeBSD.org Precedence: bulk On Thu, 27 Mar 1997, Wild Jasmine wrote: > What is the version of DOS supported? > (I am just getting into FBSD now) > And what is the emulated processor? DOScmd doesn't emulate the processor. DOScmd emulates the OS, using a feature of the i386 processort which allows you to create a protected mode task whihc acts just like a real mode task did on an 8086/8088. Which means that "emulated" processor is YOUR processor. So if you have a 486, you get 486 instructions. Remeber, though, that programs (such as games) whihc switch into protected mode won't work. > > Jonathan Mini (j_mini@efn.org) ... bleakness ... desolation ... plastic forks ... From owner-freebsd-emulation Sat Mar 29 14:01:30 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id OAA15978 for emulation-outgoing; Sat, 29 Mar 1997 14:01:30 -0800 (PST) Received: from apolo.biblos.unal.edu.co ([168.176.37.75]) by freefall.freebsd.org (8.8.5/8.8.5) with ESMTP id OAA15973 for ; Sat, 29 Mar 1997 14:01:23 -0800 (PST) Received: from unalmodem.usc.unal.edu.co (unalmodem00.usc.unal.edu.co [168.176.3.30]) by apolo.biblos.unal.edu.co (8.8.5/8.8.5) with SMTP id RAA10357; Sat, 29 Mar 1997 17:03:38 -0500 (EST) Message-ID: <333DBAA4.7BD8@fps.biblos.unal.edu.co> Date: Sat, 29 Mar 1997 16:58:12 -0800 From: Pedro Giffuni X-Mailer: Mozilla 3.0 (Win16; I) MIME-Version: 1.0 To: Jonathan Mini CC: freebsd-emulation@FreeBSD.ORG Subject: Re: Latest doscmd report References: Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-emulation@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk Jonathan Mini wrote: > > I would like to say that DosCMD doesn't emulate an XT, it emulates real > mode. Which means that it works jsut like an i386 or i486 in vm86 mode. > The difference is a _big_ deal. You get 32-bit registers for math, and a > whoel load of other extremely useful goodies. > Ah.. that explains why DOSEMU users have to get some OS2 stuff in order to run windows 3.1 ...they have to run it in protected mode. (I have to read some intel.com docs). --Pedro > > Jonathan Mini (j_mini@efn.org) > > ... bleakness ... desolation ... plastic forks ...