Commit graph

1442 commits

Author SHA1 Message Date
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
Mark Pizzolato
f125145c37 makefile: When using MinGW better build on XP and support for EXPECT with regular expressions 2015-01-11 10:48:30 -08:00
Leo Broukhis
793227f060 BESM6: Implemented SET CPU PANEL/NOPANEL. 2015-01-10 01:25:52 -08:00
Mark Pizzolato
c5cb826d00 makefile: Fix build of simulators with SDL support to reference the correct version and added MinGW build support for the BESM6 simulator 2015-01-09 13:51:48 -08:00
Mark Pizzolato
ec1f57d120 BESM6: Revised windows build to add SDL support to provide the besm6_panel interface. 2015-01-09 13:50:29 -08:00
Mark Pizzolato
9e945b705b README: Mention new BESM-6 simulator 2015-01-09 13:49:12 -08:00
Mark Pizzolato
483a969837 BESM6: Addition of BESM-6 Simulator written by Leo Broukhis and Serge Vakulenko 2015-01-09 08:53:10 -08:00
Mark Pizzolato
6f1e8377c9 SCP: Added -T switch to the EXPECT, SEND and STEP commands to specify that the units of delay/stepping are in microseconds rather than instructions. 2015-01-09 04:52:21 -08:00
Mark Pizzolato
f572f25577 BESM6: Add AppleGothic.ttf as a font for the panel which is generally found on OS X. 2015-01-08 22:11:09 -08:00
Leo Broukhis
3ac8c82951 BESM6: Implemented SET CPU REQ, added an example of a batch task run. 2015-01-08 22:11:09 -08:00
Leo Broukhis
1787947299 BESM6: Translated comments in besm6_panel.c 2015-01-08 22:11:09 -08:00
Leo Broukhis
8dea6828fe BESM6: All arguments of "attach tty" but the magic word "console" are passed to tmxr_attach().
BESM6: Fix windows compile  to support "console" besm6_tty attach .
2015-01-08 22:11:01 -08:00
Leo Broukhis
d6d13a8c08 BESM6: Output to Baudot TTYs works; fixed attaching of disks without -e; added DejaVu font option. 2015-01-08 22:11:01 -08:00
Mark Pizzolato
0f1e233366 BESM6: Cleanup for build on OS X, 2015-01-08 22:11:01 -08:00
Mark Pizzolato
5fd8b63cf4 SCP: Fix debug setup info displayed by SHOW SEND and SHOW EXPECT 2015-01-08 22:11:01 -08:00
Mark Pizzolato
e84c798d1c SCP: Fix EXPECT matching logic for non-regex strings to have enough room to buffer all of potential match data plus a NUL byte. 2015-01-08 22:11:01 -08:00
Mark Pizzolato
91f465d780 SCP: Add info displayed in SHOW EXPECT and SHOW SEND to advise how SEND & EXPECT debugging is enabled 2015-01-08 22:11:00 -08:00
Mark Pizzolato
7ab9f020bd TMXR: Add default debug bits for SEND/EXPECT operations 2015-01-08 22:11:00 -08:00