Commit graph

34 commits

Author SHA1 Message Date
Mark Pizzolato
eadf12699b VAX systems with graphics: Properly cleanup on memory allocation errors. 2021-08-28 18:31:35 -07:00
Mark Pizzolato
94f5034712 VAX, MicroVAX I & II: Revamped Qbus memory access as Qbus peripheral 2019-05-12 21:52:06 -07:00
Matt Burke
4babf7f529 MicroVAX2: Added new video device (VCB02) 2019-04-10 22:01:52 -07:00
Matt Burke
a3e6aac076 All VAXStations: Fixed logical vs bitwise operator CID: 1415454
Tested with VWS, UWS and DECwindows. This QVSS issue only affected polled
interrupt mode, which is likely not used by most operating systems
2017-04-26 15:25:55 -07:00
Matt Burke
c94edb6b2d VAXStations: Improvements and bug fixes to keyboard and mouse devices
Whilst working on a new video device I ran into a few problems with the
LKxxx keyboard and I noticed there are already some open issues against
the keyboard and mouse devices. These changes should resolve #320 and
may help with #272 (although I think that is an SDL issue). I've tested these
changes with VWS, UWS and DECwindows with both captured and
uncaptured input modes.
2017-04-23 10:40:00 -07:00
Mark Pizzolato
5531ccb175 ALL: Massive 'const' cleanup
These changes facilitate more robust parameter type checking and helps
to identify unexpected coding errors.

Most simulators can now also be compiled with a C++ compiler without
warnings.

Additionally, these changes have also been configured to facilitate easier
backporting of simulator and device simulation modules to run under the
simh v3.9+ SCP framework.
2016-05-15 15:25:33 -07:00
Mark Pizzolato
253f8a8dcf VAX: Move CPU register and routine declarations into vax_defs.h
Avoid redundant declarations in every simulator module that uses them
and allow compiler to validate consistency of declarations and definitions.
2016-02-29 16:37:18 -08:00
Mark Pizzolato
4f3dd08314 VIDEO: Add window title to vid_open. 2016-01-28 11:29:53 -08:00
Mark Pizzolato
21b31fc3a8 VIDEO: Add hot location functionality to cursor support.
Also sanely report memory allocation errors.
2016-01-28 07:58:02 -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
Sergey Svishchev
9ee290ac49 VAX: add support for input and output ports to 2681 DUART 2015-10-27 21:56:21 +03:00
Mark Pizzolato
ed57f061e2 All VAX: Always return the correct Qbus/Unibus interrupt vector bits for all devices. Fix #239
Vector values contained in device information blocks are the true bus relative vector values.  CPU specific biased vector values are produced by the respective vector fetching logic and vector values are limited to 9 bits with <1:0> = 0 as specified in both the Unibus and Qbus documents.
2015-10-08 04:43:21 -07:00
Mark Pizzolato
ef9d1adce1 PDP10, PDP11, VAX: const cleanup 2015-02-13 06:18:24 -08:00
Mark Pizzolato
9accae5905 BESM6 and VAX: Cleanup for building on VMS 2015-02-12 12:32:39 -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
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 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
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
50e57a85c1 MicroVAX1, MicroVAX2: Compiler/Linker suggested cleanup 2015-01-02 04:37:11 -08:00
Mark Pizzolato
3256c10c77 General cleanup migrate to using sim_printf vs separate calls to printf and fprintf(sim_log). 2014-10-22 17:12:14 -07:00
Mark Pizzolato
0b89e63d41 RTVAX1000: Make sure that rtvax1000 doesn't contain any parts of the VCB01 board which was never supported.
This fix makes sure that builds are clean when SDLlib is available at compile time for this system.
2014-09-20 18:50:39 -07:00
Mark Pizzolato
02cb5c2d88 Compiler suggested cleanups.
Mostly silencing noise warnings, but bugs were found in sim_console.c and pdp11_dmc.c
2014-02-14 17:07:45 -08:00
Mark Pizzolato
b57201b88b QVSS/VIDEO: Fix for mouse tracking on Ultrix from Mike Burke for issue #88 2013-11-08 17:15:02 -08:00
Mark Pizzolato
593c7f45c2 QVSS: Changed prior VSYNC fix to only interrupt quickly immediately after interrupts are enabled to avoid idling issues with the prior fix. From Matt Burke
Also fixed Qbus memory reference issues to properly generate a machine check if the QVSS device is disabled and the frame buffer is referenced.
2013-11-07 08:05:52 -08:00
Mark Pizzolato
5bce9da97c QVSS: Fix to get the VSYNC interrupts to be more reasonable. Addresses Issue #88. From Mike Burke
The vertical sync interrupt generated in vc_svc() was too slow for Ultrix. The driver enables interrupts and then calls DELAY(20000), which I guess is 20ms. This translates to about 10000 simulated instructions, but tmxr_poll works out at ~75000 instructions.  I've added a new unit to simulate just the vsync interrupts activating every 8000 instructions.

This approach will completely disable the ability to idle while the QVSS device is enabled.
2013-11-06 17:00:36 -08:00
Mark Pizzolato
fdb33ce135 Compiler warning cleanup 2013-11-05 16:42:17 -08:00
Mark Pizzolato
6b45d9b2ad SCP/VIDEO: Added support for libSDL2 video capabilities. Changed existing video layer to carry pixels as 32bpp vs 8bpp for more natural behaviors in libSDL2. 2013-10-01 15:55:10 -07:00
Mark Pizzolato
8617a58c8f VAX/QVSS: Added debugging support to sim_video 2013-09-25 16:41:40 -07:00
Mark Pizzolato
db91afbaaf VAX: Compiler warning cleanup 2013-09-05 23:30:22 -07:00
Mark Pizzolato
c8f775a91e QVSS: Fix to handle when cursor is near the right edge of the screen and only partially visible.
Prior fix for cursor tracking allowed this to now be observed.

The description of the prior change should have been:

The status bits need to be set in the upper byte of the DUART receiver buffer. This is not mentioned in the DEC manual but I found a Phillips datasheet for the 2681 chip, which has a small footnote about it.
2013-08-19 06:48:24 -07:00
Mark Pizzolato
5de0c8db9c Instrumented the qvss activities for better debug support 2013-06-30 08:37:29 -10:00
Mark Pizzolato
65de3d0aed Add descriptions to the QVSS register declarations 2013-06-14 07:25:18 -07:00
Mark Pizzolato
a7a8f3d905 Added reporting of the QVSS window focus release key when Video Windows is created 2013-06-13 07:00:32 -07:00
Mark Pizzolato
b3a9a0d79c Add sim_video and VAX QVSS (VCB01) Monochrome Video Board from Matt Burke 2013-06-12 17:10:23 -07:00