Commit graph

72 commits

Author SHA1 Message Date
Tony Lawrence
a8c5f7c88b PDP11: RP11-C (RP02/03) disk implementation 2023-09-22 19:41:33 -04:00
Lars Brinkhoff
af9c7b5ebc VAX: M7452 Unibus window module for VAXstation 100. 2023-05-04 13:28:11 +02:00
Lars Brinkhoff
eb359b962f PDP11: Add MB11. 2022-10-29 14:15:41 -04:00
Lars Brinkhoff
6a384854cf PDP11: Add Logo TV raster display. 2022-10-29 14:15:41 -04:00
Lars Brinkhoff
65410851d5 PDP11: DH11 device. 2022-10-18 07:28:28 +02:00
Mark Pizzolato
50f80f61cf PDP11: Only compute vector ilvl when it will be used (Coverity) 2022-03-16 14:44:20 -07:00
Mark Pizzolato
d03f1b67a2 PDP11: Only compute vector ibit when it will be used (Coverity) 2022-03-15 08:19:25 -07:00
Mark Pizzolato
b90b1eaf6f PDP11, VAXen: Properly clear I/O space read/write dispatches on deregister
as reported in #1029
2021-04-09 07:31:36 -07:00
Mark Pizzolato
0e72400e09 PDP11, Qbus/Unibus VAX: Silence various compiler warnings 2020-10-09 05:10:12 -07:00
Mark Pizzolato
4092a7bf6f Unibus and Qbus VAX: Avoid clang compiler warning 2020-09-07 13:22:45 -07:00
Mark Pizzolato
0859d64434 Unibus and Qbus VAX: simplify map register output summary for duplicate lines 2020-09-04 11:15:17 -07:00
Mark Pizzolato
5c48229ce4 Qbus & Unibus VAX: Add a SHOW QBA|UBA MAP{=n} command to display the bus map 2020-08-29 08:16:58 -07:00
Mark Pizzolato
2f43f2cfa2 PDP11, VAX: Correct spelling in auto config disabled message 2020-05-31 12:57:40 -07:00
Mark Pizzolato
412e4db1b3 PDP11, VAX: Warn when deliberately or inadvertently disabling auto config 2020-05-31 12:18:33 -07:00
Mark Pizzolato
6df860ea1a PDP11, VAX: Remove compiler warning in I/O lib 2019-11-24 10:54:55 -08:00
Mark Pizzolato
9fc982242c PDP11, Qbus and Unibus VAX: Add radix switch (-O or -H) to SHOW bus IOSPACE 2019-11-14 23:55:33 -08:00
Lars Brinkhoff
85beae1194 PDP11: Dazzle Dart input box. 2019-02-07 08:16:46 +01:00
Lars Brinkhoff
5aa8454ab5 PDP11: NG, Knight display. 2019-02-07 08:16:31 +01:00
Lars Brinkhoff
da256fcc28 PDP10, PDP11, Unibus VAXen: CH11 Chaosnet interface. 2018-11-22 07:50:57 +01:00
Mark Pizzolato
a9061b0332 PDP11: Fix regression where, depending on CPU model, the SR register disappears
This change fixes #623.
2018-10-01 13:43:43 -07:00
Mark Pizzolato
0051082dc9 PDP11, VAX: Support explicit deregistering of I/O space addresses 2018-09-10 06:04:50 -07:00
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
Mark Pizzolato
8e5025fdcf VAX, MicroVAX2: Fix compiler warning with GCC & clang 2017-12-18 15:29:15 -08:00
Mark Pizzolato
bdddcb4004 VAX, MicroVAX2: Add display of ROM and NVR address ranges 2017-12-18 05:10:27 -08:00
Sergey Svishchev
4bee16578a PDP11, All VAX: fix CID: 1415538, 1415766 ("Dereference before null check") 2017-03-09 17:19:09 -08:00
Bob Supnik
b41d10f189 PDP11, PDP10, VAX780: CR11 is BR6, CD11 is BR4 2017-03-07 09:42:37 -08:00
Mark Pizzolato
1e981e0d64 PDP11: Reworked RH to device mapping for proper static address assignment
Operating systems and boot driver code presume that each Massbus
device will always be at a specific fixed address and use a specific fixed vector.
The prior implementation assigned the first active Massbus device to RHA
and followed in order for subsequent devices.  This could leave devices at
addresses and vectors that software or boot drivers wouldn't expect.

The problem which was originally reported in #301 should now be properly
solved.  As a consequence of the need to have fixed addresses and vectors,
some combinations of devices can not coexist in a system without causing
conflicts with each other.  TM and TU have conflicting interrupts.  TM and
TS have conflicting addresses and interrupts.
2017-02-23 12:26:39 -08:00
Mark Pizzolato
76dda8a01e PDP11, VAX: Fix SET RPn BADBLOCK behavior and auto sizing.
BAD144 info was written correctly if the user answered Y when the disk
image was created, but would not work if SET RPn BADBLOCK was
entered later.

Auto sizing would be potentially wrong if a disk had been created
without writing the BAD144 data.  Now, if the disk contains a file system
that information along with the physical container's size is used to
properly auto size the disk.
2017-02-07 13:02:21 -08: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
Paul Koning
5dc6d9a487 PDP11: Add initial UC15 support from Bob Supnik
Include files I (Mark Pizzolato) missed in prior commit
2017-02-04 13:43:40 -08:00
Mark Pizzolato
d4ed9da2ff PDP11, VAX: Fix autoconfigure to properly allocate fixed vectors and addresses
Multiple devices sharing the same pool of fixed and/or vector addresses
need to properly account for earlier devices that may have already consumed
available fixed addresses or vectors.
2016-05-19 14:47:42 -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
cb96abef96 PDP11, VAX: Use standard error status reporting with richer message text in auto-config 2016-04-05 15:01:11 -07:00
Mark Pizzolato
b804964514 PDP11, PDP1, TX-0: Added SDL based graphics support using sim_video.
Both VT11 and VS60 properly autoconfigure on the PDP11.
PDP11 now runs Lunar Lander on all SDL supported platforms.
Reworked refresh logic to not require internal delays in the display library
2016-01-29 10:16:30 -08:00
Mark Pizzolato
32440a4138 PDP11, VAX: Fix memory leak when preparing DEC Std 144 bad block table on new disk images 2016-01-22 11:31:22 -08:00
Mark Pizzolato
3e3c05523c PDP11, VAX: Fix AutoConfigure to allow multiple dynamically configured devices to allocate from the same pool of fixed addresses.
Dynamically configured devices simulate multiple controllers with a single DEVICE structure and can have the number of controllers being simulated set by the user.  DLI, DZ, DUP, DMC, TDC, VH, DC are all dynamically configured devices.
DLI and TDC are dynamically configured devices which get static bus addresses.
2016-01-06 08:08:19 -08:00
Mark Pizzolato
6501503897 PDP11, VAX: Fix potential NULL pointer dereference in autoconfigure.
No existing simulators have device combinations that would expose this.
It is merely the right thing to do.
2016-01-05 15:32:09 -08:00
Mark Pizzolato
c5cf64c439 PDP11, VAX: Allow autoconfigure to allocate fixed address and vectors properly.
When an auto configuration table entry contains multiple devices be sure
to account for earlier devices which may be disabled while allocating fixed
address and vector values.  Examples: XQ, XQB, RB, RQB, RQC, RQD, RX, RY
This problem is discussed in #263
2016-01-05 04:05:04 -08:00
Mark Pizzolato
ab8151cdcc Compiler suggested cleanup 2015-10-15 14:19:03 -07:00
Mark Pizzolato
6bf92de3db All VAX: Also return correct Unibus/Qbus vectors for devices with more than one vector. Fix #241 2015-10-14 13:12:51 -07: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
9f59823ae3 PDP11, all VAX: Add TU58 device simulator with support for 32 drives plus the VAX 730 and 750 console devices 2015-09-22 15:06:12 -07:00
Mark Pizzolato
ef9d1adce1 PDP10, PDP11, VAX: const cleanup 2015-02-13 06:18:24 -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
4ec1f7ed2b PDP11: Fix to allow allow Q18 devices to be enabled on Qbus systems with memory <= 256KB. Reported by Christian Gauger-Cosgrove.
The devices which are affected by this are: RK, HK, RM and VT.
2014-01-26 18:09:06 -08:00
Mark Pizzolato
0251c08d12 PDP11/VAX: Detect vector conflicts, SHOW IOSPACE and SHOW DEVICE improvements
From Timothe Litt:
  - Detect vector conflicts, SHOW IOSPACE
  - Detect conflicting vector assignments.
  - Correct show iospace display of high vector for multi-unit devices
  - Display vectors in DEV_RDX in show iospace
  - Ignore disabled devices when searching for conflict.
  - Improve device conflict reporting, Report both devices when address conflict is detected.

From Mark Pizzolato:
  - Added optional alternate radix output display for device address and vector values
    displayed by SHOW DEVICE.
    -H and -O switches select hex or octal output in addition to the default radix displayed
    by the normal simulator.
2013-11-22 07:03:15 -08:00
Mark Pizzolato
32b8f06362 PDP11/VAX: Properly display the device interrupt BR level for Qbus and Unibus devices in SHOW IOSPACE output 2013-11-04 12:55:08 -08:00
Mark Pizzolato
1e3586ec91 DISPLAY: Latest version of display code from Phil Budne and Doug Gwyn including initial pdp1_dpy and pdp11_vt 2013-10-16 01:02:12 -07:00
Bill Heaton
99b4730dc0 Fix build warning on OS/X
PDP11/pdp11_io_lib.c: In function 'show_iospace':
PDP11/pdp11_io_lib.c:363: warning: too few arguments for format

PDP10/pdp10_lp20.c: In function 'lp20_set_vfu_type':
PDP10/pdp10_lp20.c:1038: warning: implicit declaration of function
'toupper'
PDP10/pdp10_lp20.c:1121: warning: implicit declaration of function
'isspace'
2013-09-30 12:10:11 -07:00
Mark Pizzolato
c9844951f7 PDP11/VAX: Make sure that semi-unique drive serial numbers have a zero msb to avoid issues in some operating systems. 2013-09-10 16:27:00 -07:00