Commit graph

89 commits

Author SHA1 Message Date
Mark Pizzolato
a92dc610a4 alpha, pdp18b, PDP8, sigma: removed stray tabs which crept in over time. 2018-04-01 14:22:30 -07:00
Bob Supnik
e270da1530 GRI, PDP11, PDP8, VAX: Misc formatting and typo cleanups 2018-03-09 14:04:19 -08:00
Bob Supnik
5b5e0f9c35 H316, I7094, NOVA, PDP1, PDP10, PDP8, SDS: Coverity singleton errors
Most history routines defined a local sim_eval of the proper length, but the
erroneous ones were fixed length machines that defined an integer variable
instead of an integer array of length 1. The VAX used the global sim_eval.
The changes follow the VAX practice.
2017-09-07 09:59:04 -07:00
Bob Supnik
c97f466457 PDP8: Annotate fall through paths in switch statements
The code is a bit difficult to understand, but it represents the 'normal'
path for processing a DECtape word. The code always flows all the
way to the break.

For start of block, there's extra code to check for a timing error; but
then the first word is processed (case 0).

For a normal word, a 3-cycle data break is done - increment word
count and current address, check for word count overflow, put the
word in the buffer; but then check for end of block (case DTO_WCO).

If the word count has already overflowed,  just check for end of block.

So yes, the end of case 0 should be labeled 'fall through' as well.

FNC_WRIT has the same structure and needs the same comment.
2017-03-30 07:12:57 -07:00
Bob Supnik
3eb4598456 SCP: Removed KBD_WAIT and friends 2017-03-20 22:33:38 -07:00
Bob Supnik
62879beb70 PDP1, PDP8, PDP18B, PDP11: Fixed dt_seterr to clear successor states
For the PDP11, this includes deferring the setting of DONE on an error, allowing RSTS V4 to work correctly.

There was a minor (possibly only theoretical) bug in dt_seterr as well.
dt_seterr is supposed to stop the drive. If the drive is accelerating, at
speed, or stopped, it works fine. But if the drive is decelerating, it did
not clear out the "successor" states. In theory, the drive could be in the
middle of reversing - that is, there are successor states of accelerating
(in reverse) and at speed. So the successor states need to be cleared,
or the drive won't actually stop.

The fifth DECtape controller (the PDP8's TD8E) is much simpler and
doesn't have the problem.
2017-03-15 10:04:52 -07:00
Bob Supnik
d1768d2771 PDP10, PDP11, PDP18B, PDP8: Annotate switch case fall through (COVERITY) 2017-03-13 10:59:06 -07:00
Bob Supnik
f26fa3d17f PDP8: Fixed PCQ_ENTRY for interrupts (COVERITY) 2017-03-09 19:49:34 -08:00
Bob Supnik
c02584440b PDP8: Change RESET CPU to clear L'AC
As discussed in #400 and described in the maintenance manuals and/or
schematics for all five PDP-8 models (8, 8/S, 8/I, 8/E, 8/A).
2017-02-19 21:39:02 -08:00
Bob Supnik
d14243c858 PDP8: Renamed switch register variable to SR
As discussed in: #385
2017-01-28 12:15:34 -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
e52ac6d57f SCP: Add help for NOEXPECT and spelling cleanups 2016-12-29 13:52:06 -08:00
David Gesswein
5ced037b4b PDP8: Add device codes for TTIX & TTOX devices to show command output 2016-12-19 04:55:43 -08:00
Mark Pizzolato
7964e2b72d PDP8: Fix SHOW TTIX SUMMARY
It was defined in lowercase and has now been made upper case for consistency.
The code which performs the match also has been change to do a case
insensitive compare.
2016-12-17 13:38:22 -08:00
Bob Supnik
5fc4744d8a PDP8: Added LS8E decode (6660) for WPS8 and PKSTF
As discussed in #353
2016-12-16 14:54:23 -08:00
David Gesswein
9c32c97d38 PDP8: Printing from wps-8
As discussed in #353
2016-12-16 10:03:40 -08:00
Mark Pizzolato
9c0b0ffb46 PDP8: Add support for 16 terminals in the TTIX device 2016-10-10 16:59:03 -07:00
Mark Pizzolato
da3f5359bb VAX, PDP11, PDP8, PDP1: Properly declare timer with clock unit 2016-09-26 15:55:50 -07:00
Mark Pizzolato
063cec087a PDP8: Changed console input polling to poll for input 500ms has passed 2016-09-24 05:02:47 -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
Ray Jewhurst
60c9289c1d PDP-8: Update FPP register descriptions 2016-04-10 23:24:24 -07:00
Ray Jewhurst
81f68216ec PDP-8: added register description and fixed typo in doc 2016-04-10 12:54:18 -07:00
Mark Pizzolato
e153b7f224 PDP8, VAX750: Fix compiler detected errors in REG initializers 2016-03-18 15:43:30 -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
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
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
59d0602b0d PDP8: Add device buffer flush capability and keep track of data written state in the device buffer. Fixes #87
Finishing the last DECtape device which was missed when this functionality was added to pdp11_dt, pdp18b_dt and pdp8_dt
in commits: 2934112a70 and c9e8121c16

Cleaned up the pdp11, pdp18b and other pdp8 implementations to make backporting cleaner.
Made sure that buffer flushing happens correctly when simulation returns to the sim> prompt.
2014-02-12 21:08:18 -08:00
Mark Pizzolato
519f7f2c03 PDP8: Revised fix for Binary loader can't read multiple section tapes (#74) to make reading all sections optional based on the -A switch (from Dave Gesswein) 2014-02-11 18:58:19 -08:00
Mark Pizzolato
d7690ce060 PDP8: Binary loader can now read multiple section tapes. Fix from Dave Gesswein to issue #74. 2014-02-08 05:39:03 -08:00
Mark Pizzolato
b2133aede8 Compiler indicated cleanups 2014-02-07 14:49:55 -08:00
Mark Pizzolato
7ce7317f7c PDP8: Add new breakpoint command based on instruction value (Opcode) (from Dave Gesswein) as discussed in issue #75 2014-02-07 11:43:52 -08:00
Mark Pizzolato
c9e8121c16 PDP8: Add device buffer flush capability and keep track of data written state in the device buffer. Fixes #87 2014-02-05 10:30:22 -08:00
Mark Pizzolato
6f4e718fda PDP8: Refinement to prior fix for issue #86. Avoid data loss if prior character hasn't been read yet when a poll event happens. 2013-11-03 13:08:17 -08:00
Mark Pizzolato
be46bac750 PDP8/PDP11/VAX: Support high speed character input on console and other multiplexer ports instead of limiting input data rate to 1 character per clock tick. 2013-10-23 07:50:39 -07:00
Mark Pizzolato
c8ae76cb65 PDP8: Fix to allow character read rate to exceed the clock tick rate. Solves issue #86 2013-10-19 11:41:17 -07:00
Mark Pizzolato
026dd98d83 Merge latest from Bob Supnik 2013-10-12 13:33:01 -07:00
Mark Pizzolato
86e2e6bd42 PDP8: Avoid delaying the initial check for connecctions to mux port after attach. Fix for #85 2013-10-12 10:07:25 -07:00
Mark Pizzolato
721a16f7e9 PDP8: Fix LOAD command ignores field change immediately after leader. (#73). From Bob Supnik and David Gesswein. 2013-09-18 11:13:39 -07:00
Mark Pizzolato
6d8565dc94 PDP8: Fix Boot doesn't work if IB or saved_DF are previously set wrong (#72). From Bob Supnik
All bootstraps now pass this test case:

d pc 77777
boot <device>
2013-09-18 11:11:10 -07:00
Mark Pizzolato
4e5f910fed Compiler nits for void * assignments from Bob Supnik 2013-09-04 19:50:47 -07:00
Mark Pizzolato
b06505abab Adjusted minimum wait time to allow RKLFMT to properly complete formatting an RK disk 2013-03-14 12:53:21 -07:00
Mark Pizzolato
d5ca542102 Changed use of compile #defines which start with a _ character to not do this since defined symbols starting with _ are reserved to local compiler/runtime implementations in the C language. This addresses issue #32 2013-03-12 11:07:58 -07:00
Mark Pizzolato
9091330a5f Compiler suggested fixes 2013-01-23 12:36:03 -08:00
Mark Pizzolato
71fcfacafc Added calls to sim_register_clock_unit for simulators with clock devices 2013-01-22 16:07:23 -08:00
Mark Pizzolato
9fc6aa73d6 Finish migration for simulators to use generic clock co-scheduling and sim_activate_after for scheduled delays 2013-01-22 05:41:27 -08:00
Mark Pizzolato
83c1d80194 Merge branch 'master' into AsyncTmxr
Conflicts merged and missing changes in new modules added as needed for clock co-scheduling.
2013-01-21 16:52:42 -08:00