Commit graph

3109 commits

Author SHA1 Message Date
Mark Pizzolato
f2674766ca SOCK: Add TCP keepalive support to all incoming and outgoing TCP sockets.
This allows detection of network failures when there is no traffic across established circuits,
2015-02-06 14:52:09 -08:00
Scott Bailey
d8b55677c1 ALTAIR: Reads of uninstalled memory are supposed to return 0377 (0xff). However,
memory bytes beyond the installed limit were being initialized with 0
instead of 0377. Fix comment and the actual initialization loop.
2015-02-06 09:28:29 -08:00
Mark Pizzolato
94b1da0a53 Remote Console: Add EXAMINE and EVALUATE to the single command mode command set and removed IEXAMINE from all command modes since it doesn't work. 2015-02-06 08:17:09 -08:00
Mark Pizzolato
0fd4a9f178 VIDEO: Fix makefile for building on OS X with SDL (vs SDL2). 2015-02-05 15:48:16 -08:00
Mark Emmer
3b33804327 SDS: Fix overflow test instructions OVT and OTO
Improper implementation of the OVT and OTO instructions. OV is always zero or one, so the Boolean AND in the  original if statement would always fail. Also, these instructions are supposed to skip if overflow is not set, the opposite of the way it was coded.
2015-02-05 17:42:04 -06:00
Mark Pizzolato
c9eb08c767 VIDEO: Fix build when using SDL vs SDL2 2015-02-05 09:58:40 -08:00
Mark Pizzolato
7fe345c4c0 README: Update to describe QVSS (VCB01) device on MicroVAX3900 (VAX) simulator 2015-02-05 09:44:59 -08:00
Mark Pizzolato
cadf1da832 SCP: Fix duplicate prompt output before each multiple command mode command set. 2015-02-05 09:43:44 -08:00
Mark Pizzolato
4ee599b97e SCP: Added a SHOW VIDEO command for simulators which include video devices
This displays the capabilities of the available SDL environment on the running platform.
2015-02-05 09:22:36 -08:00
Mark Pizzolato
e40d81dbf2 VIDEO: Add proper WRU detection when SIM_VIDEO is used on OS X. 2015-02-05 08:44:16 -08:00
Mark Pizzolato
2f662f2053 SCP: Make sure that WRU is detected by console read processing in the event that it isn't detected by SIGINT 2015-02-05 06:36:13 -08:00
Mark Pizzolato
93a2f9f5a7 VIDEO: Fix build when SDL libraries are not available 2015-02-05 05:55:15 -08:00
Mark Pizzolato
2142168dfd VIDEO: Restructured vid_show_video to perform SDL APIs on the SDL event thread. 2015-02-05 05:07:50 -08:00
Mark Pizzolato
8c4397ee25 VIDEO: Initial working OSX support 2015-02-04 17:03:52 -08:00
Mark Pizzolato
cd4da419bb VIDEO: Changed SDL2 vid_draw implementation to perform all texture references in the event processing thread 2015-02-04 04:53:23 -08:00
Mark Pizzolato
42df753b7d QVSS: Changed vid_draw calls to reference the scan line aligned regions of the video image buffer
Also added debug flag TCURSOR to trace a box around the system cursor image when in use for comparison with the simulated cursor
2015-02-04 04:40:29 -08:00
Mark Pizzolato
4cb4477077 VIDEO: Restructured SDL threading model to perform all event processing in the main thread and run the application main logic in a different thread. 2015-02-03 14:49:45 -08:00
Mark Pizzolato
6ccd7a50ef QVSS: Add a device detach routine to make sure that the any video is properly closed on exit. 2015-02-03 14:48:35 -08:00
Mark Emmer
4bd2eb72de SDS: Corrections to memory trap logic
1. In sim_instr, if an Unauthorized Memory Access trap occurs, the code was enforcing the 940 Reference Manual's admonition that:
    "The instruction in the trap location must be a MARK PLACE AND BRANCH (BRM) instruction."
Normally there is a BRM TRAPM in location 041, but when exploring a memory trap, the TSS monitor code at CEX (SMEM) temporarily puts a BRU CEX2+1 in location 041.

Clearly the hardware allows BRU in the trap transfer vector, because the system uses that feature. Change simulator to allow BRM or BRU in Unauthorized Memory Access Trap vector word in location 041.

2. Page 17 of the 940 reference manual specifies special actions when the target address of a BRU, BRX, BRM or BRR instruction cannot be accessed because it's not in the memory map. The simulator was not doing this, causing TRAPM to operate with the address of the BR? instruction instead of its target address.   The result was to allocate a page of zeros, which then trapped when the branch completed and transferred to a HLT instruction.

By modifying the code in sds_cpu.c to provide the correct trap address, monitor code TRAPM does not allocate a page, and instead allows any user-defined trap to fire off.  This fixes the problem with DDT, which relies on this trap to then map in the DDT SBREK page to 34000 and then complete the transfer to it for command processing.
2015-02-02 21:00:05 -06:00
Mark Pizzolato
383ce78c91 VAX,MicroVAX,QVSS: Video improvements
VIDEO:
- Make mouse motion activity consistent with SDL relative direction.  Add error output when mouse events are discarded due to queue full.
  If a client application delivers motion information in a different relative sense, then that application needs to make the adjustments from the SDL standard direction.
- Added SHOW dev VIDEO capability to describe the underlying SDL video capabilities of the current SDL library and host execution environment.
- Force software based rendering under SDL2.  Enhanced debug info.
- Added host OS cursor integration support.
- Reorganize libSDL vs libSDL2 version implementation to leverage common logic without replication.

QVSS:
- Coalesced adjacent screen row updates to minimize vid_draw operations
- Report all relative mouse motion in the mouse position register AND mouse motion data.
- Added debugging information for cursor and scan line map updates
- Add option "SET QVSS CAPTURED" to force capture input mode.
2015-02-02 16:01:49 -08:00
Mark Pizzolato
729737fb11 Merge pull request #183 from markemmer/master
Conversion table cleanup and allow operand with NOP
2015-02-01 00:32:13 -08:00
Mark Emmer
b63b3953d2 SDS: Allow display or entry of NOP with optional operands
While debugging DDT subsystem of 940 time-sharing system, discovered NOP opcode used with indirection, non-zero operand address and tag field. I_V_OPO (opcode only) was redundant with I_V_NPN (no operand) opcode classes. Convert I_V_OPO to new "operand optional" class and use it for NOP, and add code to detect presence or absence of operand or tag for this class for machine code display and entry.
2015-01-31 23:30:17 -06:00
Mark Emmer
84e816dfaa SDS: Add different 6-bit internal to/from ASCII character conversion tables for 940 mode
The existing conversion tables were for the 930 and earlier models of SDS computers. The SDS 940 altered these tables. This change selects the appropriate table based upon the current CPU mode -- whether operating as a 930 or a 940. See Appendix A of both the 930 and 940 reference manuals for detailed character conversion information.  Correct 930 ASCII to internal table for ASCII input value 0140.
2015-01-31 23:18:04 -06:00
Eric Scharff
af713b78e1 Fix off-by-one in reading cache address from memory
Commit a9ac7c153 properly avoided writing past the end of cache_line,
but in doing so introduced an error as to the first memory address that
should be written. This fix avoids writing past the cache_line by simply
reading the previous memory location.

Fixes the CP/M 68K simulation example and issue #181
2015-01-22 21:58:56 -05:00
Mark Pizzolato
f0f3176c78 VIDEO: Fix build for platforms with SDL2 prior to v2.0.2. Fix #177 2015-01-21 21:38:29 -08:00
Serge Vakulenko
5ed1909839 BESM-6: some correction for indentation and spacing. 2015-01-21 12:29:29 -08:00
Mark Pizzolato
d6e60b88b7 TMXR: Extend Telnet option negotiation to explicitly reject uninteresting options. Fix #177 2015-01-21 06:05:20 -08:00
Leo Broukhis
0ee809546c BESM6: Fonts should be closed explicitly before terminating SDL_ttf. 2015-01-20 21:32:20 -08:00
Mark Emmer
7dfc409da3 SDS: Fix intermittent I/O data errors when two or more I/O channels active
When reading from paper tape on the W channel and writing the drum on the E channel, intermittent errors and premature end-of-record were observed. The TST_XFR macro was failing to properly quality that a data character was available for a particular device and channel. Thus, a data ready condition for the drum would cause a bad transfer for another active device on a different channel.
2015-01-19 19:29:28 -06:00
Mark Pizzolato
4fbf8f36db SCP: Fix timer initialization logic when CAS intrinsic instructions aren't available for Lock Free queue insertion 2015-01-19 16:36:19 -08:00
Mark Pizzolato
433fa20c03 VIDEO: Added SDL2 error checking coalescing of mouse motion events which are queued concurrently. 2015-01-16 17:25:38 -08:00
Mark Pizzolato
722579c661 VIDEO: SDL2 Ignoring multiple successively queued REDRAW events to avoid overrunning the GPU 2015-01-16 14:50:44 -08:00
Mark Pizzolato
191566fdd8 NOVA: Add parity generation for input characters on the TTI device
John Kichury revived Startrek II running under DCC Basic which originally ran on  the Digital Computer Controls (DCC) D-116 DG Nova clone

This program (or the Basic interpreter) requires console input with even parity.

SET TTI EVEN

will now enable that.
2015-01-16 12:03:07 -08:00
Mark Pizzolato
136f5867b6 VIDEO: Migrate SDL2 vid_draw to SDL_UpdateTexture for just the requested rectangle 2015-01-16 12:02:24 -08:00
Mark Pizzolato
b198e13c09 FRONTPANEL: Initial API description 2015-01-15 12:37:30 -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
Leo Broukhis
0d41242520 BESM6: Now builds without SDL, fixed CPU reset regression, output to parallel terminals works. 2015-01-15 00:07:03 -08:00
Mark Pizzolato
ad6dd02f18 VIDEO: Change the SDL mouse position in window to reflect the simulated mouse position. 2015-01-14 15:19:03 -08:00
Mark Pizzolato
e0108b52a2 SCP: Compiler suggested cleanup and spelling fix 2015-01-14 15:09:54 -08:00
Leo Broukhis
9ff642f616 BESM6: Implemented hardwired front panel programs,
smoothed front panel lights, corrected a typo in besm6_tty.c
2015-01-14 00:39:55 -08:00
Mark Pizzolato
a71e5e0599 makefile: Fix broken build under MinGW 2015-01-13 12:55:43 -08:00
Mark Pizzolato
ebbe009d57 makefile: Add ability to build the vax simulator with SDL (if available) when vax is the single build target 2015-01-13 09:09:52 -08:00
Mark Pizzolato
e00438b051 VAX: Add VCB01(QVSS) device to MicroVAX 3900 simulator 2015-01-13 05:42:10 -08:00
Mark Pizzolato
e0b69fa275 makefile: Simpler build under MinGW. Detect attempt to build under Msys bash shell and issue error message 2015-01-12 16:19:18 -08:00
Mark Pizzolato
30d2db2abe GRI, I1401, I7094, ID16, ID32, LGP, NOVA: Change a few tabs to spaces which had crept in over time. 2015-01-12 12:14:01 -08:00
Mark Pizzolato
9ad2f9bb12 I1620: Convert a few stray tab characters to spaces which had crept in over time. 2015-01-12 11:40:21 -08:00
Leo Broukhis
8f6e849ecf BESM6: Implemented WRU when no local console, added binary punchtape mode,
translated some comments.
2015-01-11 17:43:39 -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
Mark Pizzolato
f5dcb2e2e5 Visual Studio Projects: Fix misspelled include file name in HP2100 project definition 2015-01-11 15:20:13 -08:00
Mark Pizzolato
f0f80f7cf0 makefile: Fix build when compiling under MinGW to avoid reference to un-necessary/non-existent library 2015-01-11 13:44:01 -08:00