mirror of
https://github.com/prirun/p50em.git
synced 2026-01-13 15:17:32 +00:00
331 lines
8.6 KiB
Groff
331 lines
8.6 KiB
Groff
'\" t
|
|
.\" em.1, Boone, 03/13/20
|
|
.\" Man page for Jim Wilcoxson's Prime 50-Series emulator
|
|
.\" ---------------------------------------------------------------------------
|
|
.TH em 1 "2020-03-14" "Jim Wilcoxson" "50-Series Emulator"
|
|
.\" ---------------------------------------------------------------------------
|
|
.SH NAME
|
|
em \- Emulator for Prime 50-Series systems
|
|
.\" ---------------------------------------------------------------------------
|
|
.SH SYNOPSIS
|
|
.B em [options]
|
|
.\" ---------------------------------------------------------------------------
|
|
.SH DESCRIPTION
|
|
.PP
|
|
.I em
|
|
is an emulator for the Prime 50-Series minicomputer family. Prime's
|
|
original systems were compatible with Honeywell x16 systems. Prime
|
|
heavily extended the architecture. The emulator supports:
|
|
.IP \(bu
|
|
all Prime CPU modes: 16S, 32S, 32R, 64R, 64V, 32I
|
|
.IP \(bu
|
|
all Prime models, from the P400 to P6550
|
|
.IP \(bu
|
|
up to 512MB of memory, depending on the Primos rev and CPU
|
|
.IP \(bu
|
|
a system console
|
|
.IP \(bu
|
|
128 incoming telnet terminal connections
|
|
.IP \(bu
|
|
8 disk controllers, 8 drives each
|
|
.IP \(bu
|
|
support for all 25 disk drives sold by Prime
|
|
.IP \(bu
|
|
a tape controller, 4 drives, using the .TAP format
|
|
.IP \(bu
|
|
a PNC controller emulating RingNet over TCP/IP
|
|
.IP \(bu
|
|
a bypass for Primos system serial number checks
|
|
.IP \(bu
|
|
Unix utilities to read/write physical tapes & Magsav tapes
|
|
.\" ---------------------------------------------------------------------------
|
|
.SH OPTIONS
|
|
.PP
|
|
\fB-boot \fIprogram [ss [ds]]\fR
|
|
.IP
|
|
Instructs
|
|
.B em
|
|
to boot the .SAVE-format program in host file
|
|
.I program
|
|
directly. This is most useful for running standalone utilities such
|
|
as diagnostics or MAKE. The sense and data switch registers may
|
|
optionally be set. The register values are specified in octal.
|
|
.PP
|
|
\fB-boot \fIprogram ["regs"]\fR
|
|
.IP
|
|
As above, but set the initial values of the A, B, X and K registers
|
|
from the RVEC area of the program file. The word "regs" is literally
|
|
specified on the command line, without the quotes.
|
|
.PP
|
|
\fB-boot \fIss [ds]\fR
|
|
.IP
|
|
Boot the machine based on the front panel interpretation of the
|
|
specified sense and data switch settings.
|
|
.PP
|
|
\fB-boot help\fR
|
|
.IP
|
|
Provide a summary of booting options and exit.
|
|
.PP
|
|
\fB-cpuid \fIidno|modelname\fR
|
|
.IP
|
|
Sets the CPU model which will be emulated. This may be specified
|
|
using either the id number as returned by the
|
|
.B STPM
|
|
processor instruction, or using the name of the model. A list of
|
|
id numbers and model names appears in the CPU MODELS section below.
|
|
.PP
|
|
\fB-ds \fIdataswitches\fR
|
|
.IP
|
|
Specify the settings of the emulated front panel data switches.
|
|
.PP
|
|
\fB-map|-maps \fI[filename]\fR
|
|
.IP
|
|
Specify the name of a PRIMOS load map to read. Symbols are extracted
|
|
from the map and used to enhance halt and trace output.
|
|
.PP
|
|
\fB-mem \fImemsizeMB\fR
|
|
.IP
|
|
Set the size of emulated main RAM.
|
|
.PP
|
|
\fB-naddr \fIpnclistenaddr\fR
|
|
.IP
|
|
Set the IP address on which
|
|
.IR em 's
|
|
Prime Network Controller will listen for connections from other
|
|
emulated PNCs. If no external emulated systems will be included
|
|
in the ring network, it may be more secure to use 127.0.0.1 for
|
|
this. The default is 0.0.0.0 (all interfaces on the host).
|
|
.PP
|
|
\fB-nport \fIpnclistenport\fR
|
|
.IP
|
|
Set the TCP port on which
|
|
.IR em 's
|
|
PNC emulation will listen for connections from other emulated PNCs.
|
|
If not specified, PNC emulation will be disabled.
|
|
.PP
|
|
\fB-ss \fIsenseswitches\fR
|
|
.IP
|
|
Specify the settings of the emulated front panel sense switches.
|
|
.PP
|
|
\fB-tport \fIamlclistenport\fR
|
|
.IP
|
|
Sets the TCP port on which
|
|
.IR em 's
|
|
AMLC emulation will listen for incoming telnet connections.
|
|
If not specified, AMLC emulation will be disabled.
|
|
.PP
|
|
\fB-trace \fItracetype(s)\fR
|
|
.IP
|
|
Select trace types which will be enabled. Trace elements
|
|
are written to
|
|
.I trace.log
|
|
on the host. Multiple trace types may be listed, separated by
|
|
spaces. Tracing may be initially turned off including the
|
|
.I off
|
|
trace type.
|
|
.\" ---------------------------------------------------------------------------
|
|
.SH FILES
|
|
.TP
|
|
\fR.lock
|
|
Prevents multiple instances of the emulator from simultaneously
|
|
accessing disk and tape files in this directory.
|
|
.TP
|
|
ring0.map
|
|
PRIMOS kernel load map for ring 0 routines. Will be automatically
|
|
loaded by
|
|
.I em
|
|
if other names are not specified. Symbols extracted from this file
|
|
are used to enhance halt and trace output.
|
|
.TP
|
|
ring3.map
|
|
PRIMOS kernel load map for ring 3 routines. Will be automatically
|
|
loaded by
|
|
.I em
|
|
if other names are not specified. Symbols extracted from this file
|
|
are used to enhance halt and trace output.
|
|
.TP
|
|
ring.cfg
|
|
A list of nodes in the ring network. Fields are node number,
|
|
ip address and port, unique id (essentially a password).
|
|
.TP
|
|
amlc.cfg
|
|
Used to associate amlc lines with specific hardware devices, or to
|
|
configure outbound socket connections.
|
|
.TP
|
|
ttymsg
|
|
The text in this file is sent on each newly accepted inbound telnet
|
|
connection.
|
|
.TP
|
|
mtN
|
|
A tape image in
|
|
.IR simh .tap
|
|
format, or a symlink to such a file.
|
|
.I N
|
|
is a digit 0-7 indicating which tape drive unit.
|
|
.TP
|
|
diskNNuN.TYPE
|
|
A disk image file.
|
|
.I NN
|
|
indicates the octal address of the controller to which this emulated
|
|
drive is attached.
|
|
.I N
|
|
indicates the unit number of the drive on that controller.
|
|
.I TYPE
|
|
indicates the drive model, and thus its size and geometry. A list of
|
|
supported drive types appears in the DRIVE TYPE section below.
|
|
.TP
|
|
error.log
|
|
Errors are written to this file during operation. It is overwritten
|
|
at each invocation.
|
|
.TP
|
|
console.log
|
|
All console output is also written to this file. It is overwritten
|
|
at each invocation.
|
|
.TP
|
|
trace.log
|
|
Any selected trace output is written to this file. It is overwritten
|
|
at each invocation.
|
|
.\" ---------------------------------------------------------------------------
|
|
.SH TRACING
|
|
.PP
|
|
If tracing is compiled into the emulator, it may be enabled from
|
|
the command line. Event types to log are selected via the
|
|
.B -trace
|
|
option. Tracing may start enabled or disabled, depending on whether
|
|
the
|
|
.I off
|
|
trace type is supplied. Tracing may be dynamically turned on and
|
|
off by typing the character ctrl-T on the console. Trace files can
|
|
rapidly become very large, and incur a significant performance penalty
|
|
on the emulator. The following trace types are supported:
|
|
.TS
|
|
tab(|);
|
|
lfB lfB
|
|
l l .
|
|
Trace type|What is traced
|
|
ear|R-mode effective address calculation
|
|
eav|V-mode effective address calculation
|
|
eai|I-mode effective address calculation
|
|
eas|S-mode effective address calculation
|
|
inst|Detailed instruction trace
|
|
flow|Summary instruction trace
|
|
mode|CPU mode changes
|
|
eaap|AP effective address calculation
|
|
dio|Disk I/O
|
|
map|Segmentation
|
|
pcl|Procedure calls
|
|
fault|Faults
|
|
px|Process exchange
|
|
tio|Tape I/O
|
|
term|Terminal output
|
|
rio|Ring network I/O
|
|
off|Start with tracing disabled
|
|
all|Everything
|
|
flush|Flush trace file after each write
|
|
tlb|STLB and IOTLB changes
|
|
OWNERL of user#|Trace in the context of this user
|
|
instruction count|Trace after specified number of instructions
|
|
octal segno|Trace execution in the given segment number
|
|
process number|Trace execution of his user number
|
|
.TE
|
|
.\" ---------------------------------------------------------------------------
|
|
.SH CPU MODELS
|
|
.TS
|
|
tab(,) allbox;
|
|
lfB lfB
|
|
l l .
|
|
CPUID,MODEL
|
|
1,400
|
|
3,350
|
|
4,450
|
|
5,750
|
|
7,150
|
|
7,250
|
|
8,850
|
|
9,550
|
|
10,650
|
|
11,2250
|
|
15,9950
|
|
16,9650
|
|
17,2550
|
|
19,9750
|
|
21,2350
|
|
22,2655
|
|
23,9655
|
|
24,9955
|
|
25,2450
|
|
26,4050
|
|
27,4150
|
|
28,6350
|
|
29,6550
|
|
31,2755
|
|
32,2455
|
|
33,5310
|
|
34,9755
|
|
35,2850
|
|
36,2950
|
|
37,5330
|
|
38,4450
|
|
39,5370
|
|
40,6650
|
|
41,6450
|
|
42,6150
|
|
43,5320
|
|
44,5340
|
|
.TE
|
|
.\" ---------------------------------------------------------------------------
|
|
.SH DRIVE TYPES
|
|
.TS
|
|
tab(,) allbox;
|
|
lfB lFB lfB
|
|
l l l .
|
|
Suffix,Heads,Comments
|
|
80M,5,Storage Module
|
|
300M,19,Storage Module
|
|
CMD,1/3/5+1,Cartridge Module 32/64/96 MB
|
|
68M,3,Fixed Media Device
|
|
158M,7,Fixed Media Device
|
|
160M,10,Fixed Media Device
|
|
675M,40,Fixed Media Device
|
|
600M,40,Fixed Media Device
|
|
315M,19,MODEL_4475
|
|
84M,5,MODEL_4714
|
|
60M,4,MODEL_4711
|
|
120M,8,MODEL_4715
|
|
496M,24,MODEL_4735
|
|
258M,17,MODEL_4719
|
|
770M,23,MODEL_4845
|
|
1.1G,27,MODEL_4935
|
|
328A,12,MODEL_4721
|
|
328B,31,MODEL_4721 on 7210 SCSI controller
|
|
817M,15,MODEL_4860
|
|
673M,31,MODEL_4729
|
|
213M,31,MODEL_4730
|
|
421M,31,MODEL_4731
|
|
1.3G,31,MODEL_4732
|
|
1G,31,MODEL_4734
|
|
2G,31,MODEL_4736
|
|
.TE
|
|
.\" ---------------------------------------------------------------------------
|
|
.SH AUTHOR
|
|
.MT prirun_at_gmail_dot_com
|
|
Jim Wilcoxson
|
|
.ME
|
|
.\" ---------------------------------------------------------------------------
|
|
.SH SEE ALSO
|
|
This project is hosted at
|
|
.UR https://github.com/prirun/p50em/
|
|
github
|
|
.UE .
|
|
.PP
|
|
A growing collection of Prime documentation and ephemera is hosted at
|
|
.UR https://sysovl.info/
|
|
.UE .
|
|
.PP
|
|
The simh tape format is described in
|
|
.UR http://simh.trailing-edge.com/docs/simh_magtape.pdf
|
|
.UE .
|
|
.\" ---------------------------------------------------------------------------
|
|
trace types
|
|
|