1# xhomer.cfg: Configuration file for the Xhomer DEC PRO 350 emulator
2
3# ********************************************************************
4# Initial X-windows screen mode:
5#
6# There are two options:
7#
8# 1. window   (normal windowed mode)
9# 2. full     (full-screen mode, using DGA X-extensions)
10# ********************************************************************
11
12screen = window
13
14#screen = full
15
16# ********************************************************************
17# Initial window position, when in "window" mode:
18#
19# Note that these coordinates are passed to the window manager as
20# hints.  Whether these settings are effective depends on the window
21# manager configuration.
22# ********************************************************************
23
24window_position = 128, 420
25
26# ********************************************************************
27# Screen vertical scale factor:
28#
29# The Pro's visible screen is 1024 x 240 pixels.  Vertical stretching
30# of the image is likely required, for it to look reasonable.
31# Stretching is accomplished by inserting blank (black) lines.  A
32# scale factor of 1 would cause no stretching to be performed.  A
33# factor of 2 would result in a 1024 x 480 window, etc..  The scale
34# factor is set independently for "window" and "full" modes.
35# ********************************************************************
36
37window_scale = 2
38
39full_scale = 3
40
41# ********************************************************************
42# Gamma correction factor:
43#
44# Some monitors, such as the the real Pro's color monitor, may require
45# the image to be gamma-corrected.  For most PC monitors, this is not
46# necessary.  Gamma correction is specified as an integer equal to ten
47# times the desired gamma value.  For a gamma of 1.0 (for most
48# monitors), specify a value of 10.  A value of 22 seems to work well
49# on the real Pro's color monitor.
50#
51# Before being displayed, pixel components (red, green and blue) are
52# individually scaled to be in the 0.0 to 1.0 range, then gamma-
53# corrected, as follows:
54#
55# comp_gamma_corrected = comp_pre_correction ^ (10.0/screen_gamma)
56# ********************************************************************
57
58screen_gamma = 10
59
60# ********************************************************************
61# X-windows private colormap (color-indexed modes only):
62#
63# Turn this on to use a private colormap in color-indexed X-windows
64# display modes.  (These are typically 8-bit modes)  Valid values are
65# "on" and "off."  Turning this option off will cause the emulator to
66# share a colormap with other running X-windows applications, which
67# could potentially lead to an inability to allocate needed colors.
68# ********************************************************************
69
70pcm = on
71
72# ********************************************************************
73# Number of DGA framebuffers:
74#
75# This determines the number of framebuffers that the X-windows
76# fullscreen driver (DGA) allocates, and must be in the range of
77# 0 to 3.  Having two framebuffers allows accelerated text scrolling
78# in fullscreen mode.  Having three framebuffers, additionally, allows
79# for smooth glitch-free transitions when turning the simulator
80# control menu on and off in fullscreen mode.  Specifying 0 will cause
81# the emulator to auto-detect the number of available frame buffers.
82# ********************************************************************
83
84framebuffers = 0
85
86# ********************************************************************
87# Serial devices:
88#
89# Up to four "serial" devices may be defined.  These should correspond
90# to physical devices present in the host operating system.  This
91# support was written for the Linux serial port driver (/dev/ttyS*),
92# but other devices may work, as well.  It has been tested to work
93# with the Linux parallel port driver, with one exception.  This
94# driver (/dev/lp) does not seem to support write buffer occupancy
95# reporting.  Consequently, a workaround must be enabled.  See
96# the "lp_workaround" variable below.  Also, Linux pseudo terminals
97# (/dev/ptys*) have been known to work.
98# ********************************************************************
99
100serial0 = /dev/ttyS0
101serial1 = /dev/lp0
102serial2 = /dev/ttyS2
103serial3 = /dev/ttys2
104
105# ********************************************************************
106# Pseudo devices:
107#
108# Three different pseudo devices exist.  At most one instance of each
109# may be used.  They are as follows:
110#
111# 1. lk201
112#
113#    This is an emulation of a DEC lk201 keyboard, using the X-windows
114#    keyboard device.
115#
116# 2. digipad
117#
118#    This is an emulation of a Digipad digitizing tablet, using the
119#    X-windows pointer (mouse) device.
120#
121# 3. la50
122#
123#    This is a Sixel graphics-to-PCL converter.  It converts the
124#    printed graphics output generated by a Pro to HP PCL format.
125#    The output of this converter needs to be directed to a physical
126#    serial device, using the "la50" variable.  Additionally, the
127#    PCL print density should be set with the "la50_dpi" variable.
128# ********************************************************************
129
130la50 = serial1
131la50_dpi = 300
132
133# ********************************************************************
134# Keyboard device:
135#
136# This sets the physical keyboard device to be used by the emulator.
137# Normally, this should be set to "lk201," such that the normal
138# X-windows keyboard may be used.  However, it is also possible to
139# connect a real lk201 keyboard to a PC serial port, and use that,
140# instead.  A custom serial cable must be fabricated, and power must
141# be supplied to the lk201.  In this case the "kb" variable should
142# be set to the appropriate serial device.
143# ********************************************************************
144
145kb = lk201
146#kb = serial2
147
148# ********************************************************************
149# Printer device:
150#
151# This defines which physical device is connected to the Pro's printer
152# port.  A direct assignment to one of the serial devices (serial0..3)
153# may be made.  Or, as in the following configuration, the printer
154# port may be connected to the "la50" pseudo-device, which, in this
155# example, is connected to "serial1," which, in turn, is defined to
156# be "/dev/lp0."  So, in this example, Sixel-graphics printed by the
157# emulated Pro could be printed on an HP PCL printer connected to
158# /dev/lp0.
159# ********************************************************************
160
161ptr = null
162#ptr = la50
163#ptr = serial1
164
165# ********************************************************************
166# Communications device:
167#
168# This defines which physical device is connected to the Pro's
169# communications port.
170# ********************************************************************
171
172com = null
173#com = serial3
174#com = digipad
175
176# ********************************************************************
177# Hard disk image file directory:
178#
179# This specifies the directory in which hard disk image files are
180# located.  It can be an absolute path.  Or, if a relative path is
181# specified, it must be relative to the directory xhomer was run
182# from.  "./" is the default path, if none is specified.
183# ********************************************************************
184
185rd_dir = ..
186
187# ********************************************************************
188# Floppy disk image file directory:
189#
190# Similar to the previous option, this specifies the location of RX50
191# floppy disk images.  "./" is the default.
192# ********************************************************************
193
194rx_dir = ../PRODISKS
195
196# ********************************************************************
197# Hard disk image file:
198#
199# This is the name of the file containing the hard disk image.  This
200# file must exist in the location pointed to by the "rd_dir" variable.
201# At the present, only a single hard disk is supported.
202#
203# The number of heads, cylinders and sectors may be forced by
204# specifying these parameters (in that order), separated by commas,
205# after the image file name.
206#
207# The file size must equal heads*cylinders*sectors*512 (in bytes).
208# A mismatch will cause an error.
209#
210# The emulator auto-detects the following hard disk geometries. based
211# on file size:
212#
213# Filesize    Heads  Cylinders  Sectors  Disk type
214# --------    -----  ---------  -------  ---------
215#  5,013,504  4      153        16       RD50 5M
216#  5,326,848  4      153        17       RD50 5M
217# 10,027,008  4      306        16       RD51 10M
218# 10,653,696  4      306        17       RD51 10M
219# 20,152,320  4      615        16       RD31 21M
220# 21,411,840  4      615        17       RD31 21M
221# 33,554,432  8      512        16       RD52 36M
222# 35,651,584  8      512        17       RD52 36M
223# 40,304,640  6      820        16       RD32 43M
224# 42,823,680  6      820        17       RD32 43M
225# 67,108,864  8      1024       16       RD53 71M
226# 71,303,168  8      1024       17       RD53 71M
227#
228# Note that all real Pro disks seem to have 17 sectors.  However,
229# neither P/OS nor Venix seems ever to access the 17th sector.  So,
230# to save disk space, one may optionally use the 16-sector formats
231# listed above.
232#
233# "pos32.rd" is the default image file name, if none is specified.
234# ********************************************************************
235
236rd0 = pos32.rd
237#rd0 = pos32.rd, 8, 1024, 16
238#rd0 = venix2.rd
239#rd0 = rt11v53.rd
240
241# ********************************************************************
242# Floppy disk image files:
243#
244# Initial image files may be specified for up to two RX50 floppy
245# drives.  These files should be 409,600 bytes in size.  Note that
246# floppy image files may be detached and attached in real-time through
247# the emulator's control menu (accessed by pressing ctrl-F1).
248# ********************************************************************
249
250#rx0 = POS32/PROSCAN.dsk
251
252#rx1 = POS32/PROBRU.dsk
253
254# ********************************************************************
255# Force the year value in the real-time clock:
256#
257# The Pro's real-time clock returns a year in the range of 0 to 99.
258# Venix is unhappy with year values outside the range of 70 to 99 and
259# RT-11 5.3 is unhappy with values outside the range of 73 to 99.  Both
260# refuse to take any of the time parameters from the real-time clock,
261# in this case.  The following variable allows a year value to be
262# specified, which will override the year value that the emulator
263# obtains from the host system.  If a value between 70 and 99 is
264# specified, then, at least, the time of day will be correct in Venix.
265# And, the same goes for RT-11, if a value between 73 and 99 is
266# specified.
267# ********************************************************************
268
269#force_year = 99
270
271# ********************************************************************
272# Maintenance mode:
273#
274# Setting the following to "on" simulates shorting pins 8 and 9 on the
275# printer port.  This causes the Pro to activate the maintenance
276# terminal interface.  (This is needed when installing 2.9 BSD from
277# the installation floppy)
278# ********************************************************************
279
280#maint_mode = on
281maint_mode = off
282
283# ********************************************************************
284# Timer interrupt throttling:
285#
286# Setting the following to "on" will cause the emulator to throttle
287# interrupts from the periodic interrupt source.  If the emulator is
288# falling behind real-time operation, the interrupt rate will be
289# increased.  If the Pro operating system has not serviced the previous
290# interrupt by the time the next one is due, the emulator will delay
291# generation of periodic interrupts, until the Pro operating system
292# has caught up.  While the emulation itself is slightly less accurate
293# in this mode, the real-time clock is more likely to maintain
294# accurate time, especially on host systems which are too slow to
295# achieve real-time Pro performance.  NOTE:  This is an EXPERIMENTAL
296# feature.  Its affect on Pro operating systems is not fully understood.
297# ********************************************************************
298
299#int_throttle = on
300int_throttle = off
301
302# ********************************************************************
303# BUG WORKAROUNDS:
304#
305# The following options turn on workarounds for various bugs in
306# X-servers, C-libraries and parallel port drivers
307# ********************************************************************
308
309# ********************************************************************
310# #9 DGA bug workarounds:
311#
312# When used in DGA mode (full-screen), the #9 X-server has a number of
313# bugs.  Turning the "nine_workaround" variable on installs a number
314# of workarounds for these problems.  This option is specific to the
315# #9 X-server.
316# ********************************************************************
317
318#nine_workaround = on
319nine_workaround = off
320
321# ********************************************************************
322# libc workaround:
323#
324# Turn the following workaround on only if running on a pre-glibc-2.0
325# system.  The workaround prevents crashes during DGA-to-windowed mode
326# switches.
327# ********************************************************************
328
329#libc_workaround = on
330libc_workaround = off
331
332# ********************************************************************
333# Linux parallel port driver workaround:
334#
335# Turn this workaround on if one of the emulator's serial ports is
336# connected to a Linux parallel port device (/dev/lp).  See the
337# description above for "serial devices."  Using this workaround with
338# real serial devices will cause transmit buffer overruns.
339#
340# Note that this workaround is somewhat crude.  When enabled, it
341# applies to all serial devices (serial0..3), not just those with
342# parallel ports connected.
343# ********************************************************************
344
345#lp_workaround = on
346lp_workaround = off
347