Commit graph

19 commits

Author SHA1 Message Date
Mark Pizzolato
7677dad67d PDP11: Properly range check DMA access to the I/O page
Make sure that DMA access to the I/O page can only see addresses on the
Qbus/Unibus and not internal CPU registers
2018-09-06 11:03:45 -07:00
Matt Burke
7092c55907 VAX750: Fixes to Unibus adapter to address #346
Modified the UBA750 simulation, incorporating these comments. Ultrix
appears to access the non-existant datapath registers and given that this
works on the real hardware the most likely option seems to be read 0
and write NOP. I think this will be true for any access to the UBI outside
of the known registers.
2017-04-26 15:36:28 -07:00
Mark Pizzolato
d42dd707e9 VAX750: Fix some 750 UBA inconsistencies 2017-04-06 18:12:44 -07:00
Bob Supnik
f0bee7f28e VAX750: Fixed bad test for UBA intr level (COVERITY)
IPL_UBA already has the subtract built in:

So it shouldn't be extracted again.

The whole routine looks a little strange, but the way it works is
that an interrupt from the UBA itself sets <bit 31> in the returned vector.
Because the vector is read by code and not used by hardware, the flag
bit is "harmless."

UBA interrupts occur only under strange circumstances, like bad map
pages and device NXMs. Under the simulator, with a debugged OS, they
never happen.
2017-03-15 21:00:34 -07:00
Mark Pizzolato
7d432406b6 PDP11, PDP10, all VAX: General extern cleanup.
Remove explicit redundant extern declarations in source files that are
defined in processor include files.
2017-02-04 19:37:20 -08:00
Mark Pizzolato
f946508c8b VAX750: Fix UBA register alignment and length check
The VAX 11/750 diagnostic supervisor makes word length references to
UBA register space, so this must have been legal.
2016-06-20 16:51:52 -07:00
Mark Pizzolato
5531ccb175 ALL: Massive 'const' cleanup
These changes facilitate more robust parameter type checking and helps
to identify unexpected coding errors.

Most simulators can now also be compiled with a C++ compiler without
warnings.

Additionally, these changes have also been configured to facilitate easier
backporting of simulator and device simulation modules to run under the
simh v3.9+ SCP framework.
2016-05-15 15:25:33 -07:00
Mark Pizzolato
253f8a8dcf VAX: Move CPU register and routine declarations into vax_defs.h
Avoid redundant declarations in every simulator module that uses them
and allow compiler to validate consistency of declarations and definitions.
2016-02-29 16:37:18 -08:00
Mark Pizzolato
ed57f061e2 All VAX: Always return the correct Qbus/Unibus interrupt vector bits for all devices. Fix #239
Vector values contained in device information blocks are the true bus relative vector values.  CPU specific biased vector values are produced by the respective vector fetching logic and vector values are limited to 9 bits with <1:0> = 0 as specified in both the Unibus and Qbus documents.
2015-10-08 04:43:21 -07:00
Mark Pizzolato
4baecec0b1 VAX750: Added VAX. 11.750 Boot ROM booting options
VAX 11/.750 Boot ROM code makes non-longword memory references to MassBus and Unibus register space.  Minor changes were necessary to allow this behavior which was architecturally undefined behavior, but had real code which depended on it.

Added a BOOTDEV option to the CPU to reflect the 4 position boot device selection switch on real VAX 11/750 hardware.

The UBA750 initial state started with the UBA map registers validly mapping the first 256KB of RAM to Unibus space.

Added simulated PCS/WCS memory which boot code on some operating systems (Ultrix and other BSD derived systems) automatically loaded on the VAX 11/750.  PCS/WCS was also automatically loaded by the newer versions of the BOOT ROMs.
2015-09-10 21:42:16 -07:00
Mark Pizzolato
a747c0f860 VAX750: Implement the buffered data path CSRs in the Unibus adapter.
These registers are referenced by the I/O flow in Ultrix but apparently are never referenced by the VMS I/O subsystem.
2015-07-08 10:20:18 -07:00
Mark Pizzolato
26ef9b566a PDP11, VAX: const cleanup 2015-02-21 12:48:35 -08:00
Mark Pizzolato
6ce8d99cd8 SCP: Added generic output routine sim_printf to output to stdout and sim_log (and sim_deb when enabled)
The goals here being to simplify calling code while getting consistent output delivered everywhere it may be useful.

Modified most places which explicitly used sim_log or merely called printf to now avoid doing that and merely call sim_printf().
2014-03-28 08:20:05 -07:00
Mark Pizzolato
28b90552b7 Revised all VAX simulator devices to have proper help information defined to make "HELP dev SHOW" and "HELP dev SET" most useful. 2013-02-02 16:29:38 -08:00
Mark Pizzolato
cbe11147fc Created a way for devices to have a description presentation routine and if it is supplied for its output to be visible with a SHOW SYSTEM command. Provided device description routines for devices used in the VAX simulators 2013-01-25 12:04:25 -08:00
Mark Pizzolato
a60d9070db Adding register descriptions to VAX processor devices 2013-01-16 17:26:30 -08:00
Mark Pizzolato
dac73b9381 Migrating scp and library global variables to be declared as extern in the appropriate library include file and remove repetitive declarations in referencing modules. 2013-01-10 13:29:15 -08:00
Mark Pizzolato
d6f3d328e4 vax750_uba.c - Minor compiler warning cleanup 2012-10-25 11:59:45 -07:00
Mark Pizzolato
f8e34b103b Added new VAX750 simulator from Matt Burke 2012-10-22 05:09:10 -07:00