Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 7 Feb 1996 02:41:53 -0500 (EST)
From:      Sujal Patel <smpatel@wam.umd.edu>
To:        willows@throck.com, hackers@freebsd.org
Subject:   Emulated x86 - FreeBSD Willows Twin Running
Message-ID:  <Pine.BSF.3.91.960207012200.197U-100000@xi.dorm.umd.edu>
In-Reply-To: <Pine.LNX.3.91.960206105337.1941G-100000@www>

next in thread | previous in thread | raw e-mail | index | archive | help
I'm happy to announce that the EMULATED x86 version of the Willows Twin
package is now running properly on FreeBSD.  The software runs slow as
molasses, but this will improve dramatically once we fold in the User LDT
and interrupt stuff for FreeBSD.  I was able to successfully run many
Windows applets and also run MS PowerPoint 4.0 (it's actually useable
too).

The FreeBSD port isn't really ready for the mainstream, so be prepared for
hacking if you want to try using it (though it should work without any
problems).  Note: The binary requires FreeBSD-current from Jan. 21 or
later (2.1R users will need to recompile the whole mess). 

The patches and a binary will be made available by Willows soon (I'll
upload them tonight).  You'll need probably need to be registered with
Willows to gain access to the FTP site (see www.willows.com). 

Please send bug reports/problems with the FreeBSD port to willows@throck.com
Just remember that this TWIN doesn't work with nearly all Windows software yet.


Here is what you need to follow to compile the binary from the source:

patch -p0 < freebsd.x86emul.twin.patch
setenv TARGET freebsd
cd src/win
./configure
touch DrvSystem_freebsd.s
[Edit the paths in makeinclude/*freebsd*]
[Make the tools in winsdk]
gmake xwin


Here is the way I run it:

setenv WINDOWS /mnt/dos/windows
setenv TWINDIR /xi2/smpatel/twin/src/win
setenv TWINRC /xi2/smpatel/twinrc
setenv LD_LIBRARY_PATH=/xi2/smpatel/twin/src/win
cd /mnt/dos/windows
/xi2/smpatel/twin/src/win/xwin


Thanks to Jordan Hubbard, Michael Smith, Gary Jennejohn, Brian Smith, 
and Rob Farnum for their work in get this port working.


Sujal


--- sample twinrc, referenced by the TWINRC variable [see above] ---


##############################################################################
#
#	Configuration Guide
#	---------------------
#	win.ini 	Definitions of entries in win.ini
#	system.ini	Definitions supported by system.ini
#
##############################################################################
#
#	WIN.INI
#
##############################################################################
#
# The following entries in the [windows] section
# are supported:
#	CursorBlinkRate		the rate at which to blink the caret
#	DoubleClickRate		how fast to recognize a doubleclick
#	FontFace		alternate system typeface name, helvetica
#	FontSize		alternate system point size,    14
#	IconFontFace		alternate typeface for MDI icons windows
#	IconFontSize		alternate pointsize for MDI icons windows
#	FontAspect		to specifically choose 75 vs. 100dpi fonts
#	Device			what is the default printer...
#
[windows]
CursorBlinkRate=530
DoubleClickRate=452
Device=Apple LaserWriter,PSCRIPT,LPT1:

#
# The following are pseudo entries. They describe
# what printers are configured.
# The entries here are those supported by the 
# binary printer driver.
#

# This printer will write to a file, specifically printout.ps
[Apple LaserWriter,LPT2:]
CtrlD=0
feed1=1
feed4=1
EPS=1
EpsFile=printout.ps

# This printer will write to the file specified in [portalias] for LPT1:
[Apple LaserWriter,LPT1:]
CtrlD=0
feed1=1
feed4=1
EPS=0

#
# The following give aliases for devices. The
# device alias may start with | to signify that
# output from the device will be piped to the
# specified command. The entries here can be
# set by the Device Manager, which emulates the
# devices section of the control panel. 
#
[PortAliases]
LPT1:=| rsh daffy "lpr -h"
LPT2:=lastfile.ps
COM2:=/dev/cua2
COM1:=/dev/cua1

# This is read by some applications, and so is
# turned off to disable truetype.  The library
# DOES NOT use this entry.
#
[TrueType]
TTEnable=0

# This is only maintained for applications, and
# is not used by the library.
#
[intl]
sLanguage=English (American)
sCountry=United States
iCountry=1
iDate=0
iTime=1
iTLZero=1
iCurrency=0
iCurrDigits=2
iNegCurr=0
iLzero=1
iMeasure=1
s1159=
s2359=
sCurrency=$
sThousand=,
sDecimal=.
sDate=/
sTime=:
sList=,
sShortDate=M/d/yy
sLongDate=dddd, MMMM dd, yyyy

#
# This table provides the font alias to use for the
# given typeface.  The alias represents a font that
# is supported by the system.
#
[FontSubstitutes]
Helv  = helvetica
Symbol  = symbol
Arial  = charter
Arial  = new century schoolbook
courier  = courier
Times New Roman  = times
Times New Roman Bold  = times
Tms Rmn  = times
MS Sans Serif  = helvetica
MS Serif  = charter

##################################################################
#
# This [colors] section describes the color mapping for
# built in controls, and MDI windows. 
#
#	format:	
#		color = blue green red		0 - 255
#		      = #hex			0 - ffffff
#
#		red|green|blue  = #hex		0 - ff
#				= decimal	0 - 255
#	         
#	keywords:
#
#	Scrollbar
#	Background
#	ActiveTitle
#	InactiveTitle
#	Menu
#	Window
#	WindowFrame
#	MenuText
#	WindowText
#	TitleText
#	ActiveBorder
#	InactiveBorder
#	AppWorkspace
#	Hilight
#	HilightText
#	ButtonFace
#	ButtonShadow
#	GrayText
#	ButtonText
#	InactiveTitleText
#
################################################################

[colors]
#Hilight=0 0 255
#HilightText=255 255 255

################################################################
#
# These sections is used by the Print Manager and Control Panel 
# Printer.cpl.  These describe the configured printers.
#
[PrinterPorts]
Apple LaserWriter=pscript,LPT1:,15,45

[devices]
Apple LaserWriter=pscript,LPT1:

##################################################################
#
# This is the mapping of devices to devices...
# Aliases are kept in [PortAlias] above.
#
[ports]
; A line with [filename].PRN followed by an equal sign causes
; [filename] to appear in the Control Panel's Printer Configuration dialog
; box. A printer connected to [filename] directs its output into this file.
COM2:=9600,n,8,1
LPT1:=
EPT:=
FILE:=
;LPT1.OS2=
;LPT2.OS2=
FAXMODEM=

##############################################################################
#
#	SYSTEM.INI
#
##############################################################################
#
# In the [boot] section, the following keywords are recognized
#	compatibility		see below for detailed explanation
#	screenwidth		override the actual screen width
#	screenheight		override the actual screen height
#	minwidth		a minimum window width
#	minheight		a minimum window height
#	directories		well known directory locations...
#				it is a semi-colon separated list of
#				directories, they are list in the drop
#				down list box, instead of drives...
#
#	The following two are examples of how you may override a builtin
#	library DLL, by specifying it in the [boot] section.
#
#	COMMDLG.DRV = COMMGLG.DRV
#	VER.DLL = VER.DLL
#	SHELL.DLL = SHELL.DLL
#
#######################################################################

[boot]
directories=/mnt;/usr/lib/X11;/etc;.;/xi2/smpatel/windows;/xi2/smpatel/windows/system

#######################################################################
#
#
# this can be any value, some programs do read it, and display it
#
[boot.description]
display.drv=XFree86 3.1

#######################################################################
#
#	Drive mapping table...
#
#######################################################################
#
# The following are drive mappings, which means that all references to
# a given drive letter are mapped to the following directory.
# (This is currently only supported in the binary interface)
#
[xdos]
C=/xi2/smpatel/windows
D=/xi2/smpatel

#######################################################################
#
#	The logic of reading profile strings has been extended
#	as follows.o:
#
#	If $WINDIR is defined and set, it becomes the Windows
#	Directory.
#
#	/usr/lib/X11/xwin is the default global windows directory
#
#	If a .ini file can not be found in the Windows Directory,
#	we look in the current directory, and then in the users
#	home directory.
#
#######################################################################
#
#	The following discusses the process of LoadLibrary and LoadModule.
# 	According to documentatio, when loading a DLL,...
#	If we have a fully qualified name, then load it, otherwise...
#
#	We first look in the current directory, then
#	We look in the WindowsDirectory, then 
#	We look in the WindowsSystemDirectory, then
#	We look in the directory containing the current executable, then
#	We look in the $PATH, then
#	We look in directories mapped in a network
# 
#######################################################################




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.3.91.960207012200.197U-100000>