Commit graph

1773 commits

Author SHA1 Message Date
Mark Pizzolato
6582aeead2 SCP. PDP11: Add ESC and ENQ to the default set of console output characters in 7P mode.
Revert change to add ESC and ENQ to printable characters for all simulators
and make that change only for the PDP11.
2016-01-02 05:07:18 -08:00
Mark Pizzolato
9c977e9392 SCP: Add ESC and ENQ to the default set of console output characters in 7B mode.
Also added mnemonic character names to the output produced when
displaying the printable character mask with SHOW CONSOLE PCHAR.
2015-12-31 16:12:14 -08:00
Mark Pizzolato
59947e8ceb PDP11: Addition of option to disable BEVENT for 11/03 and 11/23 CPUs (Bob Supnik's latest state). 2015-12-30 12:01:58 -08:00
Mark Pizzolato
ac837e5be2 PDP11: Add auto configure and build_dib_tab to cpu_reset.
The mapping of addresses in the I/O page needs to be populated before
it can be referenced.  This change allows commands at the initial sim>
prompt to touch device registers with EXAMINE and DEPOSIT as discussed
in #261
2015-12-29 10:11:39 -08:00
Mark Pizzolato
318dbb7aee PDP11: Add descriptions to DL and PCLK devices 2015-12-29 10:00:44 -08:00
Mark Pizzolato
ea4d9a16a4 PDP11, VAX: Add a small delay when the receiver is enabled.
Buggy device driver code exists which enables the receiver before
properly establishing receive buffers.  That code worked most of the
time on real hardware since it was hard for the device to receive a
packet and try to deliver it before the driver actually setup the receive
buffer descriptor list.  Discussion in #220.
2015-12-22 05:21:50 -08:00
Mark Pizzolato
ca4a690174 TMXR: Fix multi-line input rate limiting logic 2015-12-19 12:12:53 -08:00
Mark Pizzolato
619e33466b PDP11, VAX: Move DZ input character silo into device to properly rate limit received data
Previously, the input silo was modeled by using the pending input data in
the TMXR line buffer.  This was fine when bps rate limiting wasn't happening.
In order to properly pace arriving data from multiple lines the silo is now
implemented in a way which more precisely reflects the original hardware.
2015-12-19 11:42:26 -08:00
Mark Pizzolato
bbd5f9bf95 SCP: Add internal device debug state to output of SHOW DEBUG command 2015-12-19 11:26:27 -08:00
Mark Pizzolato
094cbf8295 TIMER: Avoiding conditional directives that break statements
Based on Romero B. de S. Malaquias comments Fixes #256
2015-12-17 06:44:03 -08:00
Mark Pizzolato
9f7a66a7a2 PDP11: Fix Unibus boot of RSX-11M+ systems from RQ devices
The RSX-11M+ boot driver expects a slower response from the simulated
UDA50 controller.  This response is only in during the MSCP initialization
sequence, so normal protocol interactions  for read and write I/O are
unchanged.  Updated value determined by John Forcast.  Fixes #216.
2015-12-17 06:38:31 -08:00
Mark Pizzolato
782e206858 AltairZ80: Update Visual Studio Projects and descrip.mms to include s100_mdsa.c 2015-12-17 06:31:58 -08:00
Mike Douglas
7a231a2cf9 AltairZ80: Add support for North Star single density controller
The first disk controller made by North Star was a single density
controller (MDSA). This was followed by the double density controller
(MDSAD) that is already supported in SIMH. This update adds support for
the single density controller as device MDSA. Since the controllers are
not software compatible, this update allows running of older software
designed for the MDSA controller.
2015-12-16 15:39:46 -06:00
Mark Pizzolato
a54d61050f Visual Studio Projects: Add build dependency check for libSDL2 64bit multiply fix. 2015-12-12 07:06:27 -08:00
Mark Pizzolato
283d2890fe VAX: Change BBC and BBS instructions to not be include the idle/halt testing
The MicroVAX II boot ROM has code uses one of these instructions with the
data being referenced somewhere in Qbus space.  This is not supposed to be
done according to the architecture specifications, but it must have worked on
real hardware.  In any case, as a consequence of this reference to I/O space,
these otherwise non-data modifying instructions can have side effects or
reference data which may change even in an instruction looping on itself.
Given that potential, such use isn't an infinite loop which would otherwise
inspire a drop back to scp.
2015-12-10 15:54:25 -08:00
Mark Pizzolato
54bec5c184 VAX780: Fix interval timer to correctly time variable microsecond granularity intervals.
The original implementation coupled the elapsed time measurement
to the 100Hz internal calibration clock.  This worked well enough for very
long intervals but not well at all for any intervals less than 50ms.  The net
result is that it couldn't usefully be used to produce the 60Hz clock ticks
which Unix 32V used it for.  It now leverages the microsecond timing
provided by sim_activate_after().  This problem is reported in #253
2015-12-10 10:09:23 -08:00
Mark Pizzolato
de0d251c75 TIMER, SCP: Change the sim_activate_after APIs to pass the delay value as uint32.
Also change all sim_defs.h structure declarations and references of sim_
structures to use the typedef names everywhere.
2015-12-10 06:33:59 -08:00
Mark Pizzolato
2549f34560 VAX: Change HALT behavior to dispatch non polling events prior to returning to SCP.
This allows pending I/O (console, or otherwise) to complete before dropping
back to the sim> prompt.  This better simulates the model where scp is analogous
to the console processor on the older VAX simulators.  This better addresses the
incomplete I/O problems discussed in #208
2015-12-10 05:40:13 -08:00
Mark Pizzolato
ed5353b4f4 TMXR Properly select the delay time considering all the lines on a mux.
A multiplexer may have a combination of speed limited behaviors on
different lines, and there may be lines which are idle and lines which
are actively receiving input.  Some of the problems described in #252
are fixed by this.
2015-12-08 17:10:05 -08:00
Mark Pizzolato
ac9e19e250 TIMER: Add debug support for MUX clock co-scheduling 2015-12-08 16:56:34 -08:00
Mark Pizzolato
dac6633237 VAX: Set reasonable clock co-scheduled polling for console input 2015-12-08 16:50:00 -08:00
Mark Pizzolato
109c197faa PDP11, VAX: Remove visibility of internal DZ unit structure. 2015-12-08 03:43:37 -08:00
Mark Pizzolato
d370cb1400 PDP11, VAX: Add reasonable output character delay before DZ interrupt generation. 2015-12-07 18:49:45 -08:00
Mark Pizzolato
33b88a3e83 VIDEO: Act on potential libSDL error return values 2015-12-06 18:02:45 -08:00
Mark Pizzolato
88dde792b7 PDP11, VAX: Add device debug help information descriptions 2015-12-06 18:01:20 -08:00
Mark Pizzolato
f1d9e749f6 DISK: Add disk content validation checking
When creating a new disk image the new disk image can be populated with
unique data in each sector.  The data is the logical block address of the sector
in a 4 byte little-endian value.  This is enabled when the -I switch is specified
on the ATTACH command.  To leverage this, a -K flag is interpreted on the
ATTACH command which will validate the entire disk contents actually
contains the expected value at attach time and also will validate that any data
written to the disk during simulator operation also contains the same logical
block address values.
2015-12-06 16:26:11 -08:00
Mark Pizzolato
90ea285c1a VAX: Generalized idle checks for all branch to self cases and fixed logic for 32V idle 2015-12-06 11:15:11 -08:00
Mark Pizzolato
b942bac409 SCP: Allow command switches -N and -Y to specify the answer to Yes/No prompts during command execution. 2015-12-06 10:25:33 -08:00
Mark Pizzolato
ad3dc29d5d SCP: Added flag indicating to device simulations that an event dispatch is active 2015-12-06 05:34:27 -08:00
Mark Pizzolato
0e8c0aeaf3 SCP: Add debug flag description details to HELP dev DEBUG output 2015-12-02 08:16:44 -08:00
Mark Pizzolato
9e9b382754 makefile: rework the gcc -std setting logic to accommodate environments which have include files that don't compile with -std=c11. 2015-12-01 21:23:41 -08:00
Mark Pizzolato
2029c3eb7f VIDEO: Restore direct update of video bitmap data when using libSDL (vs libSDL2). 2015-12-01 08:42:12 -08:00
Mark Pizzolato
b64401cbdd VIDEO: Fix crash using libSDL on hosts which display using X11. 2015-12-01 08:04:01 -08:00
Mark Pizzolato
78f4d07c3d VAX QVSS: Add device descriptions to the Keyboard (LK) and Mouse (VS) devices. 2015-12-01 07:46:28 -08:00
Mark Pizzolato
d1518e56a6 makefile: Fix gcc version detection so correct -std argument can be determined 2015-11-29 15:24:09 -08:00
Mark Pizzolato
fc001cad1f VAX, PDP11: Fix DZ device to also regulate input speeds when data is arriving on multiple lines. 2015-11-29 08:28:15 -08:00
Mark Pizzolato
01c410ab32 makefile: Generalize the gcc -std tests to work for both MinGW and unix environments. Fix #250 2015-11-29 04:46:54 -08:00
Mark Pizzolato
0938d31e59 PDP11, VAX: MUX input rate limiting works correctly with input arriving on multiple lines concurrently. 2015-11-28 12:49:54 -08:00
Mark Pizzolato
d66b5a4671 TAPE: Generalize TPC format validation checks to accommodate existing tape images. Fixes #247 2015-11-27 13:52:36 -08:00
Mark Pizzolato
f322f4b044 TMXR: Support input speed limits with a multiplier factor
Many simulators run instructions one or more orders of magnitude faster
than the original systems did.  Limiting simulated serial port input speeds
to legacy bits per second values presents the arriving data much slower
than the original systems ever saw it.  Given the processing capacity of the
simulated systems and the fact that the software and device interfaces
only know how to deal with the legacy speed values there is a need to
provide a way to allow input to arrive faster.  This problem is solved by
providing a speed factor as a part of a speed specification.  For example
a speed can be specified as "speed*factor" or "9600*10".
2015-11-27 13:47:53 -08:00
Mark Pizzolato
a18a4f42b9 makefile: Support clean builds of simulators with slirp support with older versions of gcc 2015-11-27 13:08:53 -08:00
Mark Pizzolato
33536f0759 HP2100: Updated bug fix info from Dave Bryan 2015-11-25 13:10:52 -08:00
Mark Pizzolato
f60390ce89 Compiler suggested cleanup
Cast the results of unit pointer subtraction to int so it can be printed with a %d format specifier.
2015-11-25 05:21:55 -08:00
Mark Pizzolato
391c823e79 TAPE: Fix - Tape read reports "end of medium" even if a gap precedes it from Dave Bryan
OBSERVATION:  Calling "sim_tape_rdrecf" to read a tape record sometimes
     returns MTSE_EOM and sets the "position not updated" (PNU) flag, even when
     an erase gap precedes the EOM.  The correct response should be to return
     MTSE_RUNAWAY to indicate that spacing over a gap did not end with a data
     record or tape mark.  Moreover, PNU should not be set, as the position has
     been updated.

     CAUSE:  The routine attempts to handle this case by returning MTSE_RUNAWAY
     if the EOF was detected while reading a buffer of gap markers.  However, if
     a buffer read ends immediately before an EOM marker or the physical EOF,
     the next read attempt will return a zero buffer length.  The routine
     misinterprets this to mean that no gap was present and returns MTSE_EOM and
     sets the PNU flag.

     RESOLUTION:  Modify "sim_tape_rdlntf" (sim_tape.c) to determine whether the
     EOM marker or physical EOF was seen on the first or a subsequent buffer
     read, and to return MTSE_EOM with PNU or MTSE_RUNAWAY without PNU,
     respectively.
2015-11-25 05:16:13 -08:00
Mark Pizzolato
62e36241a4 PDP11, VAX: Support multiplexer input speeds greater than 9600bps for console, DZ, VH, DL and DC devices
Each of the speeds greater than 9600bps deliver a character in less than
1ms.  Computing inter-character delays in microseconds therefore can't
be precise enough to be well behaved.  Measuring the inter-character
delays in instructions (scalled by the calibrated clock) gets us the needed
precision.
2015-11-25 04:25:21 -08:00
Mark Pizzolato
44ef17f971 TIMER: Fix recently revised sim_idle_capable for hosts which aren't idle capable. 2015-11-23 15:45:46 -08:00
Mark Pizzolato
b3b038900c TIMER: Fix clock calibration after a host OS sleep/hibernate 2015-11-23 12:55:42 -08:00
Mark Pizzolato
668761a460 SCP: Add display of host OS clock resolution to SHOW VERSION 2015-11-23 07:30:28 -08:00
Mark Pizzolato
972b3fccbb PDP11, VAX: Fix DZ and VH devices to have input rate limiting align with the programmed port speed. 2015-11-23 07:21:32 -08:00
Mark Pizzolato
00a8b74b66 TAPE: Properly report a tape format error when a TPC format tape fails the record structure validation checks. 2015-11-22 21:52:42 -08:00