Commit graph

57 commits

Author SHA1 Message Date
Ken Rector
6b544073ae sigma: Fix MT tape mark error handling
revised error handling failed to set tape mark status on space file
forward/reverse.
2022-07-23 16:52:50 -07:00
Bob Supnik
debde9a0a3 sigma: Made CHANA chan_ctl_time accessible as a register 2022-07-23 16:46:55 -07:00
Bob Supnik
4846006b41 sigma: Added IO numeric channel numbers to SET/SHOW 2022-07-23 16:45:43 -07:00
Ken Rector
59ddf72b52 sigma: Clean compiler warning 2022-07-23 06:43:20 -10:00
Ken Rector
677e89bab0 sigma: Fix breakpoint state restore 2022-07-12 13:54:58 -07:00
Ken Rector
2a69f1bdfa sigma: Fix dangling else in IO read/write direct 2022-07-12 13:53:32 -07:00
Bob Supnik
adfcff49b7 sigma: Fix error handling in MT device channel errors
Ken's last note led me to look at magtape error handling, and it was
not right. This has resulted in a lot of code changes in sigma_mt.c, but
the changes are mostly mechanical. Instead of trying to be clever and
do channel handling in mt_map_err or at the bottom of the mt_svc
routine, every magtape command now does its own error handling.
This makes the code repetitive, but I hope it is much clearer as a result.
2022-07-07 05:46:32 -10:00
Bob Supnik
fa0c561c28 sigma: Use 2 digit years in dates more consistently in top comments 2022-07-07 05:42:33 -10:00
Bob Supnik
9258e25c0d sigma: Fixed bugs in multi-unit operation
The problems all stem from a single root cause: when an interrupt is
requested - via any one of dozens of mechanisms (uend, normal end,
special request, error, etc), the interrupt routine must be presented
with the full device address, including the unit, which is stored in the
channel data structures. This is so that AIO (acknowledge interrupt)
can retrieve the unit number from the channel data structures and
give it back to the invoking program.

Unfortunately, service routines, error routines, etc were simply using
the base device address, which is good enough for all channel operations
EXCEPT AIO. So the four multi-unit device (RAD, DK, DP, MT) have had
changes to reconstruct the full device address, with unit number, before
any calls into the channel are made.

DP, funnily enough, required the fewest changes. Ken was exactly right
about the need to OR the unit number into dva at the start of the unit
service routine. That had to be done in a few more places where my code
was being lazy.

RAD, DK, MT required many more changes, but they were mostly mechanical.
All references to xx_dib.dva had to be examined and replaced with a full
device address. The full device address had to be reconstructed from the
UNIT pointer and the base device address, through the magic of pointer
arithmetic.

Another sore spot was HIO. HIO stops all the active unit in its tracks
and does a channel UEND on it. The calculation of the unit number in the
UEND was not correct in a few places, notably if DP did a controller reset.

Fixes for the four modules; an updated bug history; and an expanded
design document; are attached.
2022-07-03 13:56:46 -07:00
Ken Rector
254057289f sigma: DP device fixes
- TIO status routine always returns DVS_AUTO instead of proper status.
- DP_SEEK definition is off by 1.
- reset does not properly initialize controller, seek threads.
2022-06-29 08:07:10 -10:00
Bob Supnik
0caa2e7ed5 sigma: Cleanup comment 2022-06-29 08:02:59 -10:00
Bob Supnik
28fd79ef06 All LP and CD devices: Removed use of ftell for pipe compatibility
Merge changes from v3.12-2
2022-06-16 16:13:46 -07:00
Bob Supnik
8d49d8c297 All Tape DEVICES: Added extra case points for new MTSE definitions
Merge changes from v3.12-2
2022-06-16 16:13:46 -07:00
rms47
78f56b24f5
Update sigma_dp.c
Found by Ken Rector; TDV hangs because loop is missing its increment.
2022-06-06 15:45:33 -04:00
Mark Pizzolato
6c16052184 SIGMA: Avoid Coverity mag tape warning 2022-03-13 12:40:16 -07:00
Mark Pizzolato
68e407ba0f ALL: Correct help text in "SET <unit> LOCKED" MTAB entries 2021-04-19 15:22:15 -07:00
Mark Pizzolato
a015e44c10 ALL: Standardize writelock behavior adding global UNIT_WLK & UNIT_WPRT
Historically this functionality was reimplemented within each
DEVICE simulator often with slightly different implementations
and inconsistencies.  Solving this globally within SCP required
changes in many places, but should henceforth be reasonably
managed.

As discussed in #1034
2021-04-19 10:58:51 -07:00
Lars Brinkhoff
d5befa75c1 I650, IBM1130, PDP11, PDP18b, VAX, Sigma: Fix set but unused variables. 2020-12-02 14:45:21 -08:00
Mark Pizzolato
0c782d2041 sigma: Compiler warning cleanup
- Fix static structure initialization
- Fix inconsistent statement indentations.
- Avoid potential out of array indexing due to theoretical array
  reference via signed char index.  Likely non functional change.
2020-10-19 12:29:39 -07:00
Mark Pizzolato
ae825c9afb All: Declare sim_stop_messages as an array SCPE_BASE long
This avoids a potential invalid pointer dereference when formatting
the return value from sim_instr() if it is < SCPE_BASE but greater
than the previously defined static array size.sizeof

Update simh.doc to reflect this generic change.
2020-09-02 15:56:07 -07:00
Mark Pizzolato
f9883668f1 NOVA, ECLIPSE, PDP11, PDP8, SIGMA, Unibus VAXen: Call tape detach API on unload 2020-04-04 09:49:15 -07:00
Mark Pizzolato
cfbd76e011 BESM6, NOVA, ECLIPSE, SIGMA: Set DEVICE type to DEV_MUX in MUX devices
Removed deprecated DEV_NET
2020-03-31 08:59:50 -07:00
Mark Pizzolato
fc785ab5f9 sigma: Fix Coverity identified warning 2019-11-14 21:37:44 -08:00
Bob Supnik
37533d7891 Sigma: Fix spelling in comment 2019-04-15 21:55:46 -07:00
Bob Supnik
54516bb175 sigma: New simulator (from beta) 2018-06-03 17:37:24 -07:00
Mark Pizzolato
a92dc610a4 alpha, pdp18b, PDP8, sigma: removed stray tabs which crept in over time. 2018-04-01 14:22:30 -07:00
Mark Pizzolato
b7b1f427d0 I1401, I7094, ID16, ID32, NOVA, SDS, SIGMA: CONST compatibility with 3.10 2018-03-09 15:55:22 -08:00
Bob Supnik
0cc2a469b2 sigma: Add "Sigma 7 BigMem" as a model variant
BigMem is a Sigma 9 memory management retrofit to the Sigma 7.
2017-03-20 08:02:57 -07:00
Bob Supnik
c26c6ea501 NOVA, PDP1,, sigma: Various cosmetic/typo changes 2017-03-20 08:01:58 -07:00
Mark Pizzolato
1cd11f3464 sigma: Added missing CONST to fix broken build 2017-03-14 21:44:14 -07:00
Bob Supnik
0c03efb560 sigma: Fix Coverity identified problems
CIS:   Properly clear sign
DP:   Fixed bug in selecting 3281 unit F
RTC: Fixed bugs in set, show_tps
2017-03-14 04:46:42 -07:00
Bob Supnik
fa62a00fd0 GRI, H316, I7094, NOVA, SDS, sigma: Annotate switch case fall through (COVERITY) 2017-03-13 10:44:51 -07:00
Mark Pizzolato
c3e1117728 SIGMA: Fixed compiler warning 2017-03-09 08:38:22 -08:00
Bob Supnik
15b19193ed SIGMA: Add LOAD support for Carriage Control Tape 2017-03-09 08:33:07 -08:00
Bob Supnik
35c42bbcc2 SIGMA: Fixed unspecified return value in HIO 2017-03-09 08:30:37 -08:00
Mark Pizzolato
d8dbc7e6b5 SCP: Migrate all stdio writes to pass through SCP provided Fprintf() 2017-01-14 20:48:09 -08:00
Mark Pizzolato
c33abecf8b SDS, Sigma: Make sure breakpoint's don't advance sim_time 2016-08-30 15:51:45 -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
15736aeec3 Visual Studio Projects: Added support for building under Visual Studio Community (2015)
Release build binaries built under Visual Studio Community DO NOT run on Windows XP.

Fix: #233
2015-08-19 11:16:47 -07:00
Mark Pizzolato
a7da3c6f54 SIGMA: Merge updates from Bob Supnik 2015-04-04 09:26:23 -07:00
Mark Pizzolato
41978eca80 All: Convert from C runtime library perror() to sim_perror so that all messages will arrive in the same place(s). 2015-04-03 19:56:37 -07:00
Mark Pizzolato
66dba79418 ALPHA, ALTAIR, AltairZ80, I7094, NOVA, PDP1, PDP10, PDP11, PDP18B, PDP8, SAGE, sigma, swtp6800, TX-0, VAX: Change tabs to spaces which had crept in over time 2015-03-30 10:24:24 -07:00
Mark Pizzolato
e768629009 SCP: Added the capability for EXAMINE command output to be written directly to a socket. 2015-02-21 12:40:36 -08:00
Mark Pizzolato
54a4845fb2 ALL: Revert "ALL: make sure all useful state is in simh registers while processing events"
This reverts commit 5551a0dd9c.

The original idea was that the state being put into simh registers would be required to have all useful information available when remote console executed commands.  These steps were taken from the code that sim_instr() executed as it was exiting.  After this change was made it was realized that once a remote console command executed it might change state that directly affected instruction execution.  To solve this, the logic that executes before the instructions in sim_instr() would then need to be executed whenever the event dispatch processing completed.  This approach is messy, burdensome and potentially a lot of overhead for every event dispatch even though almost none of the event dispatches would be for remote console command execution.  A completely different approach was suggested by J. David Bryan.  That alternative approach would be to have remote console commands execute outside of the sim_instr() routine.  Thus allowing the existing prelude and postlude code in sim_instr() to be performed naturally and let the remote console activities run in the same context as all other simh commands.  Recent changes to scp and sim_console implement this alternative approach and thus these original changes are completely irrelevant and are thus being removed.
2015-02-15 12:42:32 -08:00
Mark Pizzolato
5551a0dd9c ALL: make sure all useful state is in simh registers while processing events 2015-01-15 12:37:07 -08:00
Mark Pizzolato
c2cef3c051 ALL: Avoid name space collision for the global variable PC when readline is dynamically loaded in many simulators. 2015-01-11 15:22:47 -08:00
Lioncash
18ebf299c8 sigma_lp: Fix a fopen leak 2014-11-26 12:53:59 -05:00
Lioncash
499757acb1 sigma_cpu: Fix always true case
This was the equivalent of "if (vec >= 0x52 || vec <= 0x55)".
2014-11-26 12:53:50 -05:00
Mark Pizzolato
4dbac410da SCP: Added const declarations to various APIs to reflect the appropriate usage. Moved parameter values for run_cmd and exdep_cmd to scp.h 2014-10-26 14:52:22 -07:00
Mark Pizzolato
995ab8f1e2 More General cleanup migrate to using sim_printf vs separate calls to printf and fprintf(sim_log). 2014-10-24 14:37:37 -07:00