mirror of
https://github.com/simh/simh.git
synced 2026-02-22 15:18:41 +00:00
Notes For V3.6-0
The save/restore format has been updated to improve its reliability. As a result, save files prior to release 3.0 are no longer supported. The text documentation files are obsolete and are no longer included with the distribution. Up-to-date PDF documentation files are available on the SimH web site. 1. New Features 1.1 3.6-0 1.1.1 Most magnetic tapes - Added support for limiting tape capacity to a particular size in MB 1.1.2 IBM 7090/7094 - First release 1.1.3 VAX-11/780 - Added FLOAD command, loads system file from console floppy disk 1.1.4 VAX, VAX-11/780, and PDP-11 - Added card reader support (from John Dundas) 1.1.5 PDP-11 - Added instruction history 2. Bugs Fixed Please see the revision history on http://simh.trailing-edge.com or in the source module sim_rev.h.
This commit is contained in:
committed by
Mark Pizzolato
parent
a12e4a1c39
commit
dc871fa631
465
LGP/lgp_doc.txt
465
LGP/lgp_doc.txt
@@ -1,465 +0,0 @@
|
||||
To: Users
|
||||
From: Bob Supnik
|
||||
Subj: LGP Simulator Usage
|
||||
Date: 15-Feb-2004
|
||||
|
||||
COPYRIGHT NOTICE
|
||||
|
||||
The following copyright notice applies to both the SIMH source and binary:
|
||||
|
||||
Original code published in 1993-2004, written by Robert M Supnik
|
||||
Copyright (c) 1993-2004, Robert M Supnik
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a
|
||||
copy of this software and associated documentation files (the "Software"),
|
||||
to deal in the Software without restriction, including without limitation
|
||||
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
and/or sell copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
ROBERT M SUPNIK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of Robert M Supnik shall not be
|
||||
used in advertising or otherwise to promote the sale, use or other dealings
|
||||
in this Software without prior written authorization from Robert M Supnik.
|
||||
|
||||
This memorandum documents the GRI-909 simulator.
|
||||
|
||||
|
||||
1. Simulator Files
|
||||
|
||||
sim/ scp.h
|
||||
sim_console.h
|
||||
sim_defs.h
|
||||
sim_fio.h
|
||||
sim_rev.h
|
||||
sim_sock.h
|
||||
sim_timer.h
|
||||
sim_tmxr.h
|
||||
scp.c
|
||||
sim_console.c
|
||||
sim_fio.c
|
||||
sim_sock.c
|
||||
sim_timer.c
|
||||
sim_tmxr.c
|
||||
|
||||
sim/gri/ lgp_defs.h
|
||||
lgp_cpu.c
|
||||
lgp_stddev.c
|
||||
lgp_sys.c
|
||||
|
||||
2. LGP Features
|
||||
|
||||
The LGP is configured as follows:
|
||||
|
||||
device simulates
|
||||
name(s)
|
||||
|
||||
CPU LGP-30 or LGP-21 CPU with 4096 words of memory
|
||||
TTI Typewriter input (keyboard and reader)
|
||||
TTO Typewriter output (printer and punch)
|
||||
PTR high-speed paper tape reader
|
||||
PTP high-speed paper tape punch
|
||||
|
||||
The LGP simulator implements the following unique stop conditions:
|
||||
|
||||
- LGP-30 only: arithmetic overflow
|
||||
- LGP-21 only: reference to undefined I/O device.
|
||||
|
||||
The LOAD and DUMP commands are not implemented.
|
||||
|
||||
2.1 CPU
|
||||
|
||||
The CPU implements either the LGP-30 or the LGP-21:
|
||||
|
||||
SET CPU LGP30 set LGP-30
|
||||
SET CPU LGP21 set LGP-21
|
||||
|
||||
The default is the LGP-30. Memory size is fixed at 4096 words.
|
||||
|
||||
The following commands implement various front panel functions:
|
||||
|
||||
D A value equivalent to the MANUAL INPUT button
|
||||
SET CPU FILL{=value} equivalent to the FILL INSTRUCTION button;
|
||||
if no value is given, fills IR from A;
|
||||
otherwise, fills IR from the specified value
|
||||
SET CPU EXEC{=value} equivalent to the EXECUTE button;
|
||||
if no value is given, executes the instruction
|
||||
in IR; otherwise, executes the instruction
|
||||
specified by the value
|
||||
SET CPU MANUAL equivalent to setting the MANUAL INPUT switch
|
||||
on the Typewriter; Typewriter input is taken
|
||||
from the keyboard
|
||||
SET CPU TAPE equivalent to clearing the MANUAL INPUT switch
|
||||
on the Typewriter; TYpewriter input is taken
|
||||
from the Typewriter paper tape reader
|
||||
|
||||
The following commands control the display of information:
|
||||
|
||||
SET CPU LGPHEX numeric displays use LGP hexadecimal encoding
|
||||
SET CPU STANDARD numeric displays use standard hexadecimal
|
||||
SET CPU TRACK symbolic addresses are ttss, where tt = track
|
||||
(0-63) and ss = sector (0-63)
|
||||
SET CPU NORMAL symbolic addresses are normal linear addresses,
|
||||
from 0 to 4095.
|
||||
|
||||
The defaults are STANDARD hex and TRACK addresses.
|
||||
|
||||
The LGP-30 implements the following additional commands:
|
||||
|
||||
SET CPU 4B sets the CPU to 4-bit input mode
|
||||
SET CPU 6B sets the CPU to 6-bit input mode
|
||||
SET CPU INPUT=TTI sets the CPU to read from the Typewriter
|
||||
SET CPU INPUT=PTR sets the CPU to read from the high-speed reader
|
||||
SET CPU OUTPUT=TTO sets the CPU to output to the Typewriter
|
||||
SET CPU OUTPUT=PTP sets the CPU to output to the high-speed punch
|
||||
|
||||
The defaults are TAPE input, 4B input mode, input and output assigned to the
|
||||
Typewriter.
|
||||
|
||||
CPU registers include the visible state of the processor as well as the
|
||||
control registers for the interrupt system.
|
||||
|
||||
name size comments
|
||||
|
||||
PC 12 counter
|
||||
A 32 accumulator
|
||||
IR 32 instruction register
|
||||
OVF 1 overflow flag (LGP-21 only)
|
||||
TSW 1 transfer switch
|
||||
BP32 1 breakpoint 32 switch
|
||||
BP16 1 breakpoint 16 switch
|
||||
BP8 1 breakpoint 8 switch
|
||||
BP4 1 breakpoint 4 switch
|
||||
INPST 1 input pending flag
|
||||
INPDN 1 input done flag
|
||||
OUTST 1 output pending flag
|
||||
OUTDN 1 output done flag
|
||||
WRU 8 interrupt character
|
||||
|
||||
2.2 Typewriter Input (TTI)
|
||||
|
||||
The Typewriter input consists of two units: the keyboard (unit 0) and
|
||||
the paper-tape reader (unit 1). The keyboard is permanently associated
|
||||
with the console window. The paper-tape reader can be attached to a
|
||||
disk file. The RPOS register specifies the number of the next data item
|
||||
to be read. Thus, by changing RPOS, the user can backspace or advance
|
||||
the reader.
|
||||
|
||||
The Typewriter input has the following options:
|
||||
|
||||
SET TTI1 ASCII default tape file format is ASCII-encoded
|
||||
Flex
|
||||
SET TTI1 FLEX default tape file format is transposed Flex
|
||||
SET TTI1 CSTOP reader recognizes conditional stop
|
||||
SET TTI1 NOCSTOP reader ignores conditional stop
|
||||
SET TTI RSTART start the reader; equivalent to the
|
||||
START READER lever
|
||||
SET TTI RSTOP stop the reader; equivalent to the
|
||||
STOP READER lever
|
||||
SET TTI START send START signal to the CPU; equivalent
|
||||
to the START COMPUTE lever
|
||||
|
||||
Transposed Flex has the tape channels in this order: 6-1-2-3-4-5.
|
||||
|
||||
The ATTACH command recognizes two switches:
|
||||
|
||||
ATT -A TTI1 file file format is ASCII-encoded Flex
|
||||
ATT -F TTI1 file file format is transposed Flex
|
||||
|
||||
The Typewriter input implements these registers:
|
||||
|
||||
name size comments
|
||||
|
||||
BUF 6 data buffer
|
||||
RDY 1 data ready flag
|
||||
KPOS 32 count of keyboard characters
|
||||
RPOS 32 position in the reader input file
|
||||
TIME 24 time between keyboard polls/reader characters
|
||||
STOP_IOE 1 stop on I/O error
|
||||
|
||||
Error handling for the Typewriter paper-tape reader is as follows:
|
||||
|
||||
error STOP_IOE processed as
|
||||
|
||||
not attached 1 report error and stop
|
||||
0 out of tape
|
||||
|
||||
end of file 1 report error and stop
|
||||
0 out of tape
|
||||
|
||||
OS I/O error x report error and stop
|
||||
|
||||
2.3 Typewriter Output (TTO)
|
||||
|
||||
The Typewriter output consists of two units: the printer (unit 0) and
|
||||
the paper-tape punch (unit 1). The printer is permanently associated
|
||||
with the console window. The paper-tape punch can be attached to a
|
||||
disk file. The PPOS register specifies the number of the next data item
|
||||
to be written. Thus, by changing PPOS, the user can backspace or advance
|
||||
the reader.
|
||||
|
||||
The Typewriter output has the following options:
|
||||
|
||||
SET TTO1 ASCII default tape file format is ASCII-encoded
|
||||
Flex
|
||||
SET TTO1 FLEX default tape file format is transposed Flex
|
||||
SET TTO1 FEED=n punch 'n' feed (0) characters
|
||||
|
||||
|
||||
Transposed Flex has the tape channels in this order: 6-1-2-3-4-5. The
|
||||
default is ASCII-encoded Flex.
|
||||
|
||||
The ATTACH command recognizes two switches:
|
||||
|
||||
ATT -A TTO1 file file format is ASCII-encoded Flex
|
||||
ATT -F TTO1 file file format is transposed Flex
|
||||
|
||||
The Typewriter output implements these registers:
|
||||
|
||||
name size comments
|
||||
|
||||
BUF 6 data buffer
|
||||
UC 1 upper case flag
|
||||
TPOS 32 count of output characters
|
||||
PPOS 32 position in the punch output file
|
||||
TIME 24 time from I/O initiation to completion
|
||||
STOP_IOE 1 stop on I/O error
|
||||
|
||||
Error handling is as follows:
|
||||
|
||||
error STOP_IOE processed as
|
||||
|
||||
not attached 1 report error and stop
|
||||
0 out of tape
|
||||
|
||||
OS I/O error x report error and stop
|
||||
|
||||
|
||||
2.4 High Speed Paper-Tape Reader (PTR)
|
||||
|
||||
The paper tape reader (PTR) reads data from or a disk file. The POS
|
||||
register specifies the number of the next data item to be read.
|
||||
Thus, by changing POS, the user can backspace or advance the reader.
|
||||
|
||||
The paper-tape reader has the following options:
|
||||
|
||||
SET PTR ASCII default tape file format is ASCII-encoded
|
||||
Flex
|
||||
SET PTR FLEX default tape file format is transposed Flex
|
||||
|
||||
Transposed Flex has the tape channels in this order: 6-1-2-3-4-5. The
|
||||
default is ASCII-encoded Flex.
|
||||
|
||||
The ATTACH command recognizes two switches:
|
||||
|
||||
ATT -A PTR file file format is ASCII-encoded Flex
|
||||
ATT -F PTR file file format is transposed Flex
|
||||
|
||||
The paper tape reader implements these registers:
|
||||
|
||||
name size comments
|
||||
|
||||
BUF t last data item processed
|
||||
RDY 1 data ready flag
|
||||
POS 32 position in the input file
|
||||
TIME 24 time from I/O initiation to completion
|
||||
STOP_IOE 1 stop on I/O error
|
||||
|
||||
Error handling is as follows:
|
||||
|
||||
error STOP_IOE processed as
|
||||
|
||||
not attached 1 report error and stop
|
||||
0 out of tape
|
||||
|
||||
end of file 1 report error and stop
|
||||
0 out of tape
|
||||
|
||||
OS I/O error x report error and stop
|
||||
|
||||
2.5 High Speed Paper-Tape Punch (PTP)
|
||||
|
||||
The paper tape punch (PTP) writes data to a disk file. The POS
|
||||
register specifies the number of the next data item to be written.
|
||||
Thus, by changing POS, the user can backspace or advance the punch.
|
||||
|
||||
The paper tape punch has the following options:
|
||||
|
||||
SET PTP ASCII default tape file format is ASCII-encoded
|
||||
Flex
|
||||
SET PTP FLEX default tape file format is transposed Flex
|
||||
SET PTP FEED=n punch 'n' feed (0) characters
|
||||
|
||||
Transposed Flex has the tape channels in this order: 6-1-2-3-4-5. The
|
||||
default is ASCII-encoded Flex.
|
||||
|
||||
The ATTACH command recognizes two switches:
|
||||
|
||||
ATT -A PTP file file format is ASCII-encoded Flex
|
||||
ATT -F PTP file file format is transposed Flex
|
||||
|
||||
The paper tape punch implements these registers:
|
||||
|
||||
name size comments
|
||||
|
||||
BUF 6 last data item processed
|
||||
POS 32 position in the output file
|
||||
TIME 24 time from I/O initiation to completion
|
||||
STOP_IOE 1 stop on I/O error
|
||||
|
||||
Error handling is as follows:
|
||||
|
||||
error STOP_IOE processed as
|
||||
|
||||
not attached 1 report error and stop
|
||||
0 out of tape
|
||||
|
||||
OS I/O error x report error and stop
|
||||
|
||||
2.6 Symbolic Display and Input
|
||||
|
||||
The LGP simulator implements symbolic display and input. Display is
|
||||
controlled by command line switches:
|
||||
|
||||
-a display as character (tape files only)
|
||||
-h display as standard hexadecimal
|
||||
-l display as LGP hexadecimal
|
||||
-m display instruction mnemonics
|
||||
-n display addresses in normal format
|
||||
(overrides SET CPU TRACK)
|
||||
-t display addresses as track/sector
|
||||
(overrides SET CPU NORMAL)
|
||||
|
||||
Input parsing is controlled by the first character typed in or by command
|
||||
line switches:
|
||||
|
||||
' or -a Flex character
|
||||
- or opcode instruction mnemonic
|
||||
numeric hexadecimal number
|
||||
|
||||
LGP hexadecimal differs from standard hexadecimal in the characters used
|
||||
for digits 10-15
|
||||
|
||||
digit standard hex LPG hex
|
||||
|
||||
10 A F
|
||||
11 B G
|
||||
12 C J
|
||||
13 D K
|
||||
14 E Q
|
||||
15 F W
|
||||
|
||||
There is only instruction format:
|
||||
|
||||
{-}op address
|
||||
|
||||
'op' is always a single letter. A track/sector address (specified by
|
||||
SET CPU TRACK or switch -t) is two decimal numbers between 0 and 63,
|
||||
representing the track and sector. A linear address (specified by
|
||||
SET CPU NORMAL or switch -n) is one decimal number between 0 and 4095.
|
||||
For example:
|
||||
|
||||
sim> d -n 64 10640
|
||||
sim> ex -mn 64
|
||||
64: B 400
|
||||
sim> ex -mt 100
|
||||
0100: B 0616
|
||||
|
||||
2.7 Character Set
|
||||
|
||||
The LGP Typewriter was a Friden Flexowriter. Input was always upper case;
|
||||
output could be either upper case or lower case. The following table provides
|
||||
equivalences between LPG Typewriter coding and ASCII.
|
||||
|
||||
Typewriter Input LC output UC output
|
||||
code (hex)
|
||||
|
||||
00 illegal illegal illegal
|
||||
01 z or Z z Z
|
||||
02 0 or ) 0 )
|
||||
03 space space space
|
||||
04 illegal lower case lower case
|
||||
05 b or B b B
|
||||
06 1 or L 1 L
|
||||
07 - or _ 0 _
|
||||
10 illegal upper case upper case
|
||||
11 y or Y y Y
|
||||
12 2 or * 2 *
|
||||
13 + or = + =
|
||||
14 illegal color shift color shift
|
||||
15 r or R r R
|
||||
16 3 or " 3 "
|
||||
17 ; or : ; :
|
||||
20 newline newline newline
|
||||
21 i or I i I
|
||||
22 4 or ^ 4 ^
|
||||
23 / or ? / ?
|
||||
24 illegal backspace backspace
|
||||
25 d or D d D
|
||||
26 5 or % 5 %
|
||||
27 . or ] . ]
|
||||
30 tab tab tab
|
||||
31 n or N n N
|
||||
32 6 or $ 6 $
|
||||
33 , or [ , [
|
||||
34 illegal illegal illegal
|
||||
35 m or M m M
|
||||
36 7 or ~ 7 ~
|
||||
37 v or V v V
|
||||
40 ' (cond stop) ' '
|
||||
41 p or P p P
|
||||
42 8 or # 8 #
|
||||
43 o or O o O
|
||||
44 illegal illegal illegal
|
||||
45 e or E e E
|
||||
46 9 or ( 9 (
|
||||
47 x or X x X
|
||||
50 illegal illegal illegal
|
||||
51 u or U u U
|
||||
52 f or F f F
|
||||
53 illegal illegal illegal
|
||||
54 illegal illegal illegal
|
||||
55 t or T t T
|
||||
56 g or G g G
|
||||
57 illegal illegal illegal
|
||||
60 illegal illegal illegal
|
||||
61 h or H h H
|
||||
62 j or J j J
|
||||
63 illegal illegal illegal
|
||||
64 illegal illegal illegal
|
||||
65 c or C c C
|
||||
66 k or K k K
|
||||
67 illegal illegal illegal
|
||||
70 illegal illegal illegal
|
||||
71 a or A a A
|
||||
72 q or Q q Q
|
||||
73 illegal illegal illegal
|
||||
74 illegal illegal illegal
|
||||
75 s or S s S
|
||||
76 w or W w W
|
||||
77 illegal illegal illegal
|
||||
|
||||
Certain characters on the Flexowriter keyboard don't exist in ASCII.
|
||||
The following table provides ASCII substitution characters for the unique
|
||||
Flexowriter characters (this is compatible with the coding in the LGP30
|
||||
paper tape archive):
|
||||
|
||||
Typewriter Flex ASCII
|
||||
code
|
||||
|
||||
UC 12 delta ^
|
||||
UC 1E pi ~
|
||||
UC 22 sigma #
|
||||
|
||||
Certain Flexowriter codes have no character equivalent of any kind.
|
||||
For paper-tape reader and punch files, these are encoded as #dd, where
|
||||
dd is a decimal number between 0 and 63.
|
||||
Reference in New Issue
Block a user