Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 27 Aug 1996 22:04:08 -0700
From:      Sean Eric Fagan <sef@Kithrup.COM>
To:        jkh@time.cdrom.com, rdmurphy@bu.edu
Cc:        freebsd-emulation@freebsd.org, plm@xs4all.nl
Subject:   Re: DOS Emulator (was: Re: JDK 1.02)
Message-ID:  <199608280504.WAA20215@kithrup.com>

next in thread | raw e-mail | index | archive | help
>OK, I'll bite. I haven't been subscribing here long, would someone
>mind summarizing where things are today and what might be involved
>in moving them along?

Contrary to Jordan's bleak statement, work has started progressing again.
(I only got my development computer put together on Saturday, for crying out
loud... and only started working on the vm86 stuff last night.  Given that I
have to work, I think we're doing okay.  Remember, Jordan:  just because we
put something on hold for a while doesn't mean it's been dropped.  Even by
someone as generally flaky as me ;).)

I just got it to the point where running a DOS binary does not panic the
system.  The dos binary doesn't *work*, mind you, but it *does* run some
16-bit code, and the DOS emulator does get to try to handle some int21
requests.

Why it's not working beyong that point, I don't know.  The doscmd port was
done by Mike Smith, who has been busy with his own things as well, but now
it looks like both of us have some resources (time and equipment) to play
with things again.

Below, if anyone cares, is the result of trying to run a DOS "ls.exe"
binary, supplied by msmith.

	# ./doscmd -2 -3 -A -E -D -M -V ../testbins/ls.exe
	dosmem = 0x1000 base = 0x1000 avail = 0x9f00 (636K)
	init_path(2, /, /usr/home/sef/src/doscmd/doscmd)
	init_path(17, /, (null))
	env: PATH=C:\USR\HOME\SEF\SRC\DOSCMD\DOSCMD
	env: COMSPEC=C:\COMMAND.COM
	env: PROMPT=DOS> 
	0101: alloc (00007, owner 0001)
	0000: alloc (106a6, owner 0001) failed
	0109: alloc (09ef6, owner 0001)
	0109: owner (0109)
	0101: owner (0109)
	Read 06a6c into 0119
	init_cs = 0x7aa
	preserving eax (0xffffffff) from trampling.
	_switch_vm86
	07c9:00fb [fa]cli
	07c9:0100 [fb]sti
	0119:32a0 [cd]int21:30 0119:32a0/f0000084
	0119:32bd [fa]cli
	0119:32c4 [fb]sti
	0119:3315 [cd]int21:4a 0119:3315/f00000840109: adjust(015c0)

	0119:352c [cd]int21:30 0119:352c/f0000084
	0119:352c [cd]int21:30 0119:352c/f0000084
	0119:0000 [00]
	ax=0000 bx=0036 cx=0006 dx=06c9
	si=0082 di=ffd2 sp=ffd4 bp=004c
	cs=0119 ss=06c9 ds=06c9 es=06c9
	ip=0 flags=206
	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
	addb   %al,(%bx+%si)
	doscmd: fatal error default trap taken

Obviously, we still have some work to do.  I am begging whatever deities
might be listening that it's not a major flaw in *how* things are done (in
the kernel at least ;)), but just minor flaws.

I'll make my diffs available on freefall soon, hopefully tonight -- and I'll
send out a note when they're there, so don't ask for them yet 8-).

Sean.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199608280504.WAA20215>