Commit graph

219 commits

Author SHA1 Message Date
Mark Pizzolato
c8beee2d0f doc: Clarify details in "Writing a Simulator for the SIMH System" 2018-04-15 12:53:29 -07:00
Mark Pizzolato
ca77941ce0 doc: Update documents for RQ and TQ unit plug value setting 2018-04-12 20:21:37 -07:00
Roberto Sancho Villa
2eb49c13b7 i650: New IBM 650 Simulator 2018-03-25 10:17:35 -07:00
Mark Pizzolato
f5ca960b82 TMXR: Disable ATTACH speed for devices which program port speed 2018-03-13 02:14:06 -07:00
Mark Pizzolato
60db7e7239 DOC: Update vax_doc.doc to reflect setting tape capacity for TQ device 2018-02-24 17:53:15 -08:00
Mark Pizzolato
3a81f63ec1 SCP: Add support to handle CTRL+C while executing command files 2018-01-30 03:36:15 -08:00
Mark Pizzolato
c4e55d0f6b HP3000: HP 3000 release 7
See HP3000/hp3000_release.txt for details of the release
2018-01-12 14:48:50 -08:00
Mark Pizzolato
fbcf72abfc SCP: Allow commands to be enclosed in quotes.
This is useful when commands containing semi-colons are used in the
action steps of BREAK, EXPECT, UNTIL, IF commands.
2018-01-04 07:12:43 -08:00
Mark Pizzolato
72d4622ddf SCP: Add ECHOF command which takes a quoted string as an argument 2018-01-04 07:06:51 -08:00
Richard Cornwell
b5ea9ec38e I7000: Initial release of a set of simulators for IBM 7000 series mainframes.
These include simulators for the IBM 701, IBM 702, IBM 704, IBM 705,
IBM 705/3, IBM 709, IBM 1410/IBM 7010, IBM 7070, IBM 7080, IBM 7090
and IBM7094.

  These basically were a collection of machines that shared a common
  set it peripherals, Each group had its own instruction set, hence
  different simulators.

   IBM 701   -> i701
   IBM 702/705/705/3/7080 -> i7080
   IBM 7070/7074 -> i7070
   IBM 1410/7010 -> i7010
   IBM 704 -> i704
   IBM 704/709/7090/7094 -> i7090
  The i7090 can be set to simulate a IBM 704 however you end up
  disabling almost everything, since the 704 did not have any channels.
  A build option exists that allows this one to be built without all the
  extra features.

   The i7090 simulator’s implementation of the IBM 7094 is a more
   complete implementation of the IBM 7094 which can run CTSS
   while the existing simh I7094 can’t.
2017-12-28 05:05:25 -08:00
Richard Cornwell
8606d7692b B5500: Added usage guide for B5500 simulator. 2017-12-22 15:04:33 -05:00
Mark Pizzolato
9b1f44f787 SCP: Remove optional write_callback in the REGister structure
The REG structure exists to serve SCP's various activities.  It is
does not exist to provide capabilities to a VM.
2017-12-09 02:54:10 -08:00
Mark Pizzolato
0293d7f4af SCP: Enrich EXPECT and SEND help and document information 2017-11-29 16:49:20 -08:00
Mark Pizzolato
61679ed8f0 SCP: Add optional write_callback to REGister structure called only on DEPOSIT
Add necessary macros to populate this field and cleanup all the
existing macros to be simpler.
2017-11-19 08:18:02 -08:00
Mark Pizzolato
733ac0d982 SCP: Make SLEEP command interruptable with SIGINT 2017-11-07 13:34:53 -08:00
Mark Pizzolato
097172f8a3 doc: Add missing commands descriptions 2017-11-03 09:36:11 -07:00
Mark Pizzolato
60ff3d53d9 doc: Add description of additional built-in environment variables
SIM_NAME, SIM_BIN_NAME and SIM_BIN_PATH
2017-10-24 16:20:46 -07:00
Mark Pizzolato
c8a420ad48 SCP: Change command argument processing of %% and \% to be consistent.
%% now inserts a bare % and \\ only means something when parsing a quoted
string argument (used by EXPECT and SEND commands).

Additionally, EXPECT and BREAK commands have action steps which will now
expand arguments as each of the actions are executed rather than when the
EXPECT or BREAK command is defined.
2017-09-16 17:05:26 -07:00
Mark Pizzolato
7dc585d479 HP3000: HP 3000 release 6
See HP3000/hp3000_release.txt for details of the release
2017-09-09 13:56:50 -07:00
Mark Pizzolato
a6552b823d HP2100: HP 2100 release 27
See HP2100/hp2100_release.txt for details of the release
2017-09-06 22:16:14 -07:00
Mark Pizzolato
245818d348 SCP: Added extended radix options (-2, -8, -10 and -16) for EXAMINE and DEPOSIT 2017-08-25 15:48:11 -07:00
Mark Pizzolato
8fcddf9261 DOC: Describe warning added to the RUN command vs GO or CONTINUE (Dave Bryan) 2017-08-24 10:23:44 -07:00
Mark Pizzolato
2f64d2b6dc doc: Add suggestion to simh.doc regarding one time device init in reset routine 2017-06-23 12:36:28 -07:00
Mark Pizzolato
cb47ea3852 doc: Add description of optional PC value API used in debug output 2017-06-13 22:36:15 -07:00
Mark Pizzolato
a50403cd0a doc: Added description of optional Stop Message Formatting API (Dave Bryan) 2017-06-13 22:13:56 -07:00
Mark Pizzolato
f1a6d538b9 doc: Initial import of IBM1130 document 2017-06-09 09:50:46 -07:00
Mark Pizzolato
fae6a18835 TAPE: Update tape gap support (Dave Bryan)
With this update, the erase gap operation has been split out of
"sim_tape_wrgap" into a separate, internal "tape_erase_fwd" routine that
is called from "sim_tape_wrgap" as well as from the new "sim_tape_errecf"
routine.  There's a corresponding internal "tape_erase_rev" that's called
from the new "sim_tape_errecr" routine.

I've shimmed "sim_tape_rdlntf" and "sim_tape_rdlntr" to move the tape
context and debug stuff out of the routines that I'm maintaining.  This
will allow me to replace those functions in their entirety with the
corresponding functions in my development sources for future updates.
It also allows me to keep Bob's version in sync.  As my routines are static
and only called once from the shims, compilers should optimize away
the function calls and instead inline the code, so there'd be no extra call
overhead.

I'd also like to keep "tape_erase_fwd" and "tape_erase_rev" untouched for
the same reason.  If you wish to add debug calls to "sim_tape_errecf" and
"sim_tape_errecr", that's fine.
2017-06-02 00:54:13 -07:00
Bob Supnik
a750171c30 I1620: Add deferred IO mode for slow devices
The major change is the implementation of deferred IO - a more
accurate implementation of the 1620's "stop in its tracks" IO model.
When a device uses deferred IO, instruction execution is suspended
until the IO completes successfully. Operator interruptions, errors,
and so on do not return to instruction execution; this only occurs if
the IO completes successfully or the command SET CPU RELEASE is given
(equivalent of pressing the RELEASE button). Otherwise, the current IO
operation continues to execute.

Only the console typewriter and paper tape reader/punch currently
implement deferred IO; there are operational issues with those devices
that require more accurate modeling. The card reader/punch, line
printer, and disk still execute IO "instantaneously". It's not all
that hard to convert an instantaneous device to deferred operation,
but there's no point in doing so (and possibly introducing new bugs)
unless there's an actual operational issue. The 1620 doesn't have
overlapped IO, so programs can't tell the difference, by and large.

A number of other issues have been addressed as well, including the
bizarre "treat RM as 0 in the Q field" required by MI-015; the
treatment of non-existent indicators as always off; and various other
tweaks.

I've run CU01 (again), which at least gives typewriter and paper-tape
IO a basic workout; and it works. I leave more detailed testing to
people who know the machine better than I do.

The documentation has been updated to include Tom's detailed breakdown
of IO handling for all IO operations on the typewriter, paper-tape
reader/punch, card reader/punch, and line printer.
2017-05-29 13:34:55 -07:00
Bob Supnik
e086f5eb17 I1620: Update doc to reflect recent changes 2017-05-22 10:12:07 -07:00
Mark Pizzolato
d0bd4fbdff TMXR: Enforce output rate limiting when output is produced by instructions
Calls to tmxr_putc_ln() executed directly within instruction simulation code
(as opposed to during event servicing) will delay reasonable times
2017-05-11 08:42:31 -07:00
Mark Pizzolato
1e8af71081 TIMER: Clarify throttling behavior displayed in SHOW for I/T mode 2017-05-11 08:33:39 -07:00
Mark Pizzolato
f617f63ae0 HP3000: HP 3000 release 5
See HP3000/hp3000_release.txt for details of the release
2017-05-01 15:47:57 -07:00
Mark Pizzolato
90e9c2f4a0 HP2100: HP 2100 release 26
See HP2100/hp2100_release.txt for details of the release
2017-05-01 15:47:33 -07:00
Mark Pizzolato
7ae5015610 SCP: Provide a way to gather input from a user into an environment variable
SET ENV -P "Prompt String" EnvVar=Default
2017-04-30 09:44:37 -07:00
Mark Pizzolato
7ac92a0e84 HP3000: Fourth HP 3000 release, update 1
See HP3000/hp3000_release.txt for details of the release
2017-01-25 11:50:49 -08:00
Mark Pizzolato
5c53d8eba0 DOC: Cleaned up API descriptions 2017-01-19 19:54:34 -08:00
Mark Pizzolato
84e43a8c73 HP2100: HP 2100 release 25
See HP2100/hp2100_release.txt for details of the release
2017-01-12 06:41:19 -08:00
Mark Pizzolato
629f0f0c07 HP3000: Fourth HP 3000 release
See HP3000/hp3000_release.txt for details of the release
2017-01-10 12:32:23 -08:00
Mark Pizzolato
fb8a01dad9 DOC: Correct SET LOG and SET DEBUG command descriptions 2017-01-04 20:04:06 -08:00
Mark Pizzolato
c9276407e6 TIMER: Timing corrections and enhancements
- Add support to query remaining usecs on pending events.
- Generalized the sim_interval adjustment in sim_idle to allow more than
   a single decrement.
- More overhead reduction when idling.
- Carry usec values as double through out to fully support long wall clock
   delays.
2016-12-30 10:26:59 -08:00
Mark Pizzolato
7dd1f0b89e SCP: Complete support for automatic detection of WRU (^E) for all simulators
commit ef6528bf32 added support for automatic WRU detection for simulators
that don't have a console port, but it was never documented and the addition of
that support potentially interfered with SAVE/RESTORE behavior.

The console connection state is now automatically saved and restored.
2016-12-17 03:50:10 -08:00
Mark Pizzolato
76d5c34d85 DOC: Add argument substitution and %DATE_MONTH% 2016-12-12 14:12:41 -08:00
Mark Pizzolato
c393675b5b REMOTE_CONSOLE: Allow user selectable command output buffer size
The output of remote console commands gets truncated at the configured
buffer size.  The default has been raised from 1400 to 8192.
Common remote console usage is from the same host as the simulator and
as such localhost TCP traffic is delivered in chunks at least 8192 so no extra
packets will be involved in transporting the potential extra data and no
transmission delays on the send() call.
The minumum size is now 1400 (which was the prior default).
2016-12-08 11:27:07 -08:00
Mark Pizzolato
c420925a75 DOC: Corrected description of log behavior and made help and doc consistent 2016-12-07 05:46:29 -08:00
Mark Pizzolato
0ef87fac53 DOC: Clarified SET DEBUG, SET LOG and SET CONSOLE LOG documentation and help 2016-12-05 06:03:41 -08:00
Mark Pizzolato
ff95fb8ec2 SCP: Add warning about reset when RUN command is used multiple times.
The RUN command implicitly resets all devices which may have unexpected
consequences for a novice user.

The logic now produces a warning about this side effect when more than one
RUN command is executed in the same simulator session.

An explicit RESET command suppresses this warning for a subsequent RUN
command.

A RUN command with the -Q switch also suppresses this warning.
2016-11-18 05:20:06 -08:00
Mark Pizzolato
39d2944ede TIMER: Add support for catchup clock ticks and cleaned up asynchronous clocks
Asynchronous clocks are now built for all simulators which are built with
SIM_ASYNCH_IO defined.  The default behavior has asynchronous clocks
disabled since this is still experimental, but it can be enabled with
SET TIMER ASYNC.

Catchup clock ticks are now available, but since they're experimental,
they aren't enabled by default.  Catchup ticks are only available if the
simulators clock device calls sim_rtcn_tick_ack to acknowledge processing
of clock ticks.  The VAX simulators have been modified to leverage this.
Catchup clock ticks can be enabled with SET TIMER CATCHUP

Additionally, an idle threshold is provided which can be used to
influence when clock calibration may be suppressed.  The default is not
to suppress calibration activities.

The various timer behaviors are visible with the SHOW TIMER command.

The state of the operating timer facilities is visible with: SHOW CLOCK

Timer events which are queued are visible with the SHOW QUEUE command.
2016-11-16 23:50:53 -08:00
Mark Pizzolato
b1950e1fe2 DOC: Clarified wording for LOAD and DUMP commands in sim_doc.doc 2016-11-16 17:45:07 -08:00
Mark Pizzolato
17abb1223a TAPE: Make sure that all tape library APIs only work after sim_tape_attach
- Detects and fixes the problem reported in #345
2016-10-20 13:32:51 -07:00
Mark Pizzolato
9c0b0ffb46 PDP8: Add support for 16 terminals in the TTIX device 2016-10-10 16:59:03 -07:00