Implement keep-alive and os-requested reload functions of FE.
Preserve HW config flags during (re-) boot.
Allow IPL30 device to interrupt.
Add 18-bit DMA functions.
Implement DMA to/from I/O space.
Optimize DMA memory mapping - once per page, not once per byte.
Teach SHOW IO to report vectors and BR levels as well as CSR addresses.
Add DUP and KDP to Autoconfigure table.
Make the boot ROMs a bit easier to maintain.
Add assertion that the two variants of each are the same size.
Add offsets to the comments so it's easier to see where jumps are going.
The boot rom for tape didn't handle a tapes coming on-line, didn't take
the RH/TM/addresses from the FE. The launcher also didn't handle
autoboot.
Now it does, with the restriction that ITS will only talk to UBA1.
The KS10's 8080 interfaces to the OS thru a small communications region.
The documentation is rather lacking, and the 8080 microcode is difficult
to follow. Many years ago (while still at DEC), I worked it out, and
put definitions into TOPS-10. They're now here, too.
Also, properly initialize the KLINIK communication words and the
keep-alive word.
The KS front end microcode actually reads the wrong alternate HOM block.
Teach the bootstrap to try the wrong one (in case someone counts on
this), but also the correct block.
Implement boot -A to emulate an autoboot - the boot that happens on
power-on or when the boot switch is pressed. No questions, just boots.
The pdp10_rp emulator had several problems:
1) disks are not recognized properly when they come on-line. Same issue
as tapes, but not the same code paths.
2) The bootstrap code did not wait for disks to become ready.
3) The bootstrap code did not take the RH CSR address from the front end
(device). Hence, would not boot if the device address was changed.
4) The bootstrap looked for the second HOM block at block 10 of the
disk. Unfortunately, it read block 8. 10 is decimal; you need all 10
(decimal) fingers.
Fixes:
1) Implement spin-up delay. A device that is attached/re-attached comes
on-line a second later. Replace tests for 'attached' with tests for
up-to-speed.
2) Wait for the drive to become ready after issuing a controller clear.
When it's ready, write the attention summary register to prevent the
un-tended on-line interrupt for looking like an error.
3) Read the RHBASE from main memory instead of storing it there. Teach
the bootstrap command to put it in memory from the dib, as it did with
the unit.
4) Read the correct block.
FILSER now gets on-line and off-line interrupts.
Tape on-line interrupts weren't happening when a tape was attached or
replace on the TH11/TM0x emulation.
The OS never saw a MOL transition in the case of replacement, where the
detach is implicit.
This patch defers reporting MOL for 100 msec; faster than a human can
change tapes, but long enough for an OS to see the 1->0->1 transition of
MOL.
Further, checks for UNIT_ATT should be for MOL.
This makes GALAXY automatic tape recognition work.
With multiple instances, error logging gets confusing when every CPU has
the same serial number.
This makes the CPU serial number settable. If not set, the old defaults
apply.
When an LP20 is attached to an existing file, the file is opened in
update mode. Since the initial file position is zero, any existing
output is over-written. This is not intuitive.
This edit makes the LP20 seek to EOF on attach.
N.B. Other devices may have cousin issues.
In 32-bit mode, the compiler truncates constants to 32-bit.
We need LL suffix to avoid the truncation.
This behavior is contrary to the C 99 standard which defines
that constants that do not fit into long and unsigned long shall
have long long type.
Fixed auto configure bugs which didn't allow Fixed CSR Addresses or Fixed Vectors to be set using the auto configure information.
Fixed display of address and vectors to indicate that the assigned address and/or vector is in the floating set.
Added extended definitions to the auto configure table to reflect all known potential static and floating and static addresses as of VMS V5.5-2
Changed the name of the VAX 11/780 console floppy device name to RXC from RX (which collides with a Unibus name for the RX11).
Very minor in all cases, but the strange case of swtp_cpu.c
This module used expressions of the form:
PC = ++PC & ADDRMASK;
Officially, the C language says that expressions which modify the same variable in more than one place have undefined behavior.
These were changed to the legal form which performs the desired action:
PC = (PC + 1) & ADDRMASK;
The makefile now works for Linux and most Unix's. However, for Solaris
and MacOS, you must first export the OSTYPE environment variable:
> export OSTYPE
> make
Otherwise, you will get build errors.
1. New Features
1.1 3.8-0
1.1.1 SCP and Libraries
- BREAK, NOBREAK, and SHOW BREAK with no argument will set, clear, and
show (respectively) a breakpoint at the current PC.
1.1.2 GRI
- Added support for the GRI-99 processor.
1.1.3 HP2100
- Added support for the BACI terminal interface.
- Added support for RTE OS/VMA/EMA, SIGNAL, VIS firmware extensions.
1.1.4 Nova
- Added support for 64KW memory (implemented in third-party CPU's).
1.1.5 PDP-11
- Added support for DC11, RC11, KE11A, KG11A.
- Added modem control support for DL11.
- Added ASCII character support for all 8b devices.
1.2 3.8-1
1.2.1 SCP and libraries
- Added capability to set line connection order for terminal multiplexers.
1.2.2 HP2100
- Added support for 12620A/12936A privileged interrupt fence.
- Added support for 12792C eight-channel asynchronous multiplexer.
1.3 3.8-2
1.3.1 SCP and libraries
- Added line history capability for *nix hosts.
- Added "SHOW SHOW" and "SHOW <dev> SHOW" commands.
1.3.2 1401
- Added "no rewind" option to magtape boot.
1.3.3 PDP-11
- Added RD32 support to RQ
- Added debug support to RL
1.3.4 PDP-8
- Added FPP support (many thanks to Rick Murphy for debugging the code)
1.3.5 VAX-11/780
- Added AUTORESTART switch support, and VMS REBOOT command support
2. Bugs Fixed
Please see the revision history on http://simh.trailing-edge.com or
in the source module sim_rev.h.
The makefile now works for Linux and most Unix's. Howevr, for Solaris
and MacOS, you must first export the OSTYPE environment variable:
> export OSTYPE
> make
Otherwise, you will get build errors.
1. New Features
1.1 3.8-0
1.1.1 SCP and Libraries
- BREAK, NOBREAK, and SHOW BREAK with no argument will set, clear, and
show (respectively) a breakpoint at the current PC.
1.1.2 GRI
- Added support for the GRI-99 processor.
1.1.3 HP2100
- Added support for the BACI terminal interface.
- Added support for RTE OS/VMA/EMA, SIGNAL, VIS firmware extensions.
1.1.4 Nova
- Added support for 64KW memory (implemented in third-party CPU's).
1.1.5 PDP-11
- Added support for DC11, RC11, KE11A, KG11A.
- Added modem control support for DL11.
- Added ASCII character support for all 8b devices.
1.2 3.8-1
1.2.1 SCP and libraries
- Added capability to set line connection order for terminal multiplexers.
1.2.2 HP2100
- Added support for 12620A/12936A privileged interrupt fence.
- Added support for 12792C eight-channel asynchronous multiplexer.
2. Bugs Fixed
Please see the revision history on http://simh.trailing-edge.com or
in the source module sim_rev.h.
The makefile now works for Linux and most Unix's. Howevr, for Solaris
and MacOS, you must first export the OSTYPE environment variable:
> export OSTYPE
> make
Otherwise, you will get build errors.
1. New Features
1.1 3.8-0
1.1.1 SCP and Libraries
- BREAK, NOBREAK, and SHOW BREAK with no argument will set, clear, and
show (respectively) a breakpoint at the current PC.
1.2 GRI
- Added support for the GRI-99 processor.
1.3 HP2100
- Added support for the BACI terminal interface.
- Added support for RTE OS/VMA/EMA, SIGNAL, VIS firmware extensions.
1.4 Nova
- Added support for 64KW memory (implemented in third-party CPU's).
1.5 PDP-11
- Added support for DC11, RC11, KE11A, KG11A.
- Added modem control support for DL11.
- Added ASCII character support for all 8b devices.
2. Bugs Fixed
Please see the revision history on http://simh.trailing-edge.com or
in the source module sim_rev.h.
1. New Features
1.1 3.7-0
1.1.1 SCP
- Added SET THROTTLE and SET NOTHROTTLE commands to regulate simulator
execution rate and host resource utilization.
- Added idle support (based on work by Mark Pizzolato).
- Added -e to control error processing in nested DO commands (from
Dave Bryan).
1.1.2 HP2100
- Added Double Integer instructions, 1000-F CPU, and Floating Point
Processor (from Dave Bryan).
- Added 2114 and 2115 CPUs, 12607B and 12578A DMA controllers, and
21xx binary loader protection (from Dave Bryan).
1.1.3 Interdata
- Added SET IDLE and SET NOIDLE commands to idle the simulator in wait
state.
1.1.4 PDP-11
- Added SET IDLE and SET NOIDLE commands to idle the simulator in wait
state (WAIT instruction executed).
- Added TA11/TU60 cassette support.
1.1.5 PDP-8
- Added SET IDLE and SET NOIDLE commands to idle the simulator in wait
state (keyboard poll loop or jump-to-self).
- Added TA8E/TU60 cassette support.
1.1.6 PDP-1
- Added support for 16-channel sequence break system.
- Added support for PDP-1D extended features and timesharing clock.
- Added support for Type 630 data communications subsystem.
1.1.6 PDP-4/7/9/15
- Added SET IDLE and SET NOIDLE commands to idle the simulator in wait
state (keyboard poll loop or jump-to-self).
1.1.7 VAX, VAX780
- Added SET IDLE and SET NOIDLE commands to idle the simulator in wait
state (more than 200 cycles at IPL's 0, 1, or 3 in kernel mode).
1.1.8 PDP-10
- Added SET IDLE and SET NOIDLE commands to idle the simulator in wait
state (operating system dependent).
- Added CD20 (CD11) support.
2. Bugs Fixed
Please see the revision history on http://simh.trailing-edge.com or
in the source module sim_rev.h.