Commit graph

1856 commits

Author SHA1 Message Date
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
Mark Pizzolato
0f43551d8c TMXR: Minor typo in help text fixed. 2015-11-19 10:06:25 -08:00
Mark Pizzolato
e162eb9418 DOC: Clarifications about behavior and requirements for EXAMINE -a and -c switches. From Dave Bryan 2015-11-19 09:06:19 -08:00
Mark Pizzolato
833ba71c3b PDP11, VAX: Enhance VH, DZ, DL and DCI devices to provide input rate limiting. Fix #246
Data arriving on simulated serial ports can arrive faster than the OS running
on the simulated system can deliber it to user mode programs.  This happens
when chunks of data are delivered to the mux from a network connection.
This can be due to a file transfer program (kermit) running on the other end
of a network connection and the packet size being delivered exceeds the
simulated OS's type ahead buffer size OR from users who paste arbitrary
blocks of data into a telnet or console session.
2015-11-19 08:56:06 -08:00
Mark Pizzolato
9b45833687 VAX, PDP11: Add support to, by default, limit console input data to about 9600bps.
This is necessary to avoid kernel type ahead buffer overruns when a user
pastes a chunk of data into a console session as described in issue #246

Other console input speeds can be set with SET CONSOLE SPEED=nnn
2015-11-18 10:51:37 -08:00
Mark Pizzolato
53796ba961 TMXR, CONSOLE: Add optional ability to rate limit input data to approximate bps values
A SET CONSOLE SPEED=nnn, where legal values for nnn are common serial
port rates.  The speed value will attempt to limit the input data rates to a
simulator to approximately the specified bits per second.
2015-11-18 10:44:19 -08:00
Mark Pizzolato
099dd40657 SCP: Add sim_activate_after_abs API like sim_activate_abs only specifying a used time delay. 2015-11-18 09:41:16 -08:00
Mark Pizzolato
4a1cf3587f TIMER: Fix sim_timer_activate_after to avoid overflow
The conversion of time to instructions can overflow an int32 when the
current instructions per second is high and the delay interval is high.

We limit the instruction delay to the maximum value available in an int32,
which for essentially all cases won't matter since the resulting delay is used
for a drop dead timeout and doesn't need to be precise or it will be
canceled before it ever fires anyway.
2015-11-13 08:28:20 -08:00
Mark Pizzolato
636b8c9dec SOCKET: remove dependence on timerclear() 2015-11-02 03:56:20 -08:00
Mark Pizzolato
d95d32b6d7 TMXR: Return reasonable error status when disconnecting a line without specifying the line 2015-11-01 20:19:59 -08:00
Mark Pizzolato
1d0a3b4402 slirp: Describe NAT limitations in the attach help 2015-10-29 05:06:01 -07:00
Mark Pizzolato
7266304105 ALL: changed ASSURE macro to leverage sim_printf for log and debug output. 2015-10-27 21:07:03 -07:00
Sergey Svishchev
9ee290ac49 VAX: add support for input and output ports to 2681 DUART 2015-10-27 21:56:21 +03:00
Mark Pizzolato
480c71dea5 slirp: Fix g_array_free to correctly handle freeing an unallocateed GArray. Fix #243 2015-10-26 06:03:12 -07:00
Mark Pizzolato
7ad57d7fa8 slirp: cleanup for submission upstream back to qemu
Minimize the include file set and their contents to only provide the slirp
 referenced qemu includes and interfaces.
2015-10-22 09:55:05 -07:00
Mark Pizzolato
eff1ef12e7 DOC: Add NAT info 2015-10-21 02:54:58 -07:00
Mark Pizzolato
027b15fe0f ETHER: Tolerate whitespace after network transport designators (tap:, vde:, nat:, udp:) 2015-10-20 14:12:44 -07:00
Mark Pizzolato
3be5125d00 slirp: Add windows build support for MinGW 2015-10-17 10:50:30 -07:00