Commit graph

3978 commits

Author SHA1 Message Date
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
30cd103a14 VIDEO: When using libSDL2, make sure we use the key scan code to index the vid_key_state array. Also, make sure we stick to getting bare key events instead of TextInput events. 2013-11-07 14:04:36 -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
304ad39a2b VAX: Avoid potential VAX simulator hangs when code may poll for console input without being interrupted 2013-11-07 08:02:00 -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
b4b274c446 More compiler warnings 2013-11-05 16:55:30 -08:00
Mark Pizzolato
fdb33ce135 Compiler warning cleanup 2013-11-05 16:42:17 -08:00
Mark Pizzolato
b85af46402 SCP: Fixed 'rest of line' argument substitution %* 2013-11-05 10:35:37 -08:00
Mark Pizzolato
f5cfa392d7 SCP: Allow bare % not followed by a digit or a alpha character to be kept while substituting arguments and environment variables in simulator commands. 2013-11-05 10:06:46 -08:00
Mark Pizzolato
32b8f06362 PDP11/VAX: Properly display the device interrupt BR level for Qbus and Unibus devices in SHOW IOSPACE output 2013-11-04 12:55:08 -08:00
Mark Pizzolato
65edda68ad SERIAL: For writes to serial ports, accept both EAGAIN and EWOULDBLOCK as non-error conditions for all *nix hosts 2013-11-04 12:15:26 -08:00
Mark Pizzolato
53690b3a15 VStudio: Avoid generating debug information for Visual Studio Release builds 2013-11-04 12:11:21 -08:00
Mark Pizzolato
43f85d1f3a SCP/TMXR: Fix to socket writes to return 0 bytes written as an expected condition when the output socket is full (EAGAIN or EWOULDBLOCK). 2013-11-04 05:21:58 -08:00
Mark Pizzolato
796cbd2796 Merge branch 'master' of github.com:simh/simh 2013-11-03 13:10:16 -08:00
Mark Pizzolato
6f4e718fda PDP8: Refinement to prior fix for issue #86. Avoid data loss if prior character hasn't been read yet when a poll event happens. 2013-11-03 13:08:17 -08:00
Mark Pizzolato
f0d41f15d7 PDP11: Fix to correctly set PS value on CPU reset to reflect the model specific ways real hardware behaved. (from Bob Supnik)
Here's a PDP11 SIMH bug as old as the simulator itself: the reset_cpu routine sets the PS to 340 (interrupts disabled). This causes some versions of Lunar Lander not to work. In fact, the initial state of the PS is not architecturally standardized:

      04: cleared (from schematics)
      05: cleared (from manual)
      20: cleared (from schematics)
      34: cleared (from schematics), set to 340 on boot?
      40: cleared (from schematics)
      44: cleared on init, set to 340 on boot (from schematics, manual)
      45: cleared (from schematics)
      60: cleared (from schematics)
      70: cleared (from schematics)
      T11: set to 340 (from spec)
      LSI11, F11: 4 mode behavior (from memory on power recovery, cleared on GO, 340 on boot, mode 3 undefined)
      J11: 4 mode behavior (from memory on power recovery, cleared on GO, 340 on boot, 340 on jump to  custom PROM)

The story seems to be this. All non-VLSI PDP11s used TTL chips to implement the PS, either discrete flip-flops, or 4b registers, or both.
Starting with the first system, the 11/20, they were wired clear on the processor INIT signal (power-up or front panel START switch), so that all internal state started as 0. This worked fine, because START also reset the Unibus and cleared all interrupt enables. So even though the processor was as IPL = 0, no interrupts were possible. Then along came the LSI11...

The LSI11 implemented a line-time clock with NO INTERRUPT DISABLE. Thus, if IPL was left at 0 and a bootstrap routine from a slow device was started (e.g., a floppy drive), the clock would tick, and an interrupt would occur, before the bootstrap routine finished. Because no vectors were set up, the processor would crash. So the LSI11 started the practice, carried over to all later PDP11 VLSI chips, of setting the PS to 340 before jumping to a boot ROM.

The T11 did this in all modes of startup, because its only startup behavior was to jump to a "boot" routine. It did not have a console of any kind.

Accordingly, it appears that the cpu_reset routine needs to set the PS based on the processor model. Further, all boot routines need to set the PS to 0 or 340 based on the processor model. (It's probably safe for boot routines just to set the PS to 340, but it's not technically
accurate.)
2013-10-27 05:30:13 -07:00
Mark Pizzolato
be46bac750 PDP8/PDP11/VAX: Support high speed character input on console and other multiplexer ports instead of limiting input data rate to 1 character per clock tick. 2013-10-23 07:50:39 -07:00
Mark Pizzolato
c8ae76cb65 PDP8: Fix to allow character read rate to exceed the clock tick rate. Solves issue #86 2013-10-19 11:41:17 -07:00
Mark Pizzolato
db964d126c SCP/TMXR: Fix crashing bug when a multiplexer line has logging enabled before a mux attach, 2013-10-17 07:04:04 -07:00
Mark Pizzolato
1e3586ec91 DISPLAY: Latest version of display code from Phil Budne and Doug Gwyn including initial pdp1_dpy and pdp11_vt 2013-10-16 01:02:12 -07:00
Mark Pizzolato
026dd98d83 Merge latest from Bob Supnik 2013-10-12 13:33:01 -07:00
Mark Pizzolato
86e2e6bd42 PDP8: Avoid delaying the initial check for connecctions to mux port after attach. Fix for #85 2013-10-12 10:07:25 -07:00
Mark Pizzolato
abfae3ca88 H316: Revised standard device implementation from Bob Supnik.
Fixes several bugs described several months ago on the simh list about how the hardware really works, most notably the "dummy" cycle created by an OCP '1 (switch to output mode). In addition, it fixes other problems (OCP '0 and OCP '1 are unconditional) and adds a "busy"
state on character input, like the real hardware.
2013-10-11 09:16:28 -07:00
Mark Pizzolato
de6838756b MAKEFILE: Added makefile support for MinGW builds using libSDL2. 2013-10-02 10:23:34 -07:00
Mark Pizzolato
63e05c77be PDP11: Fix DL help attach regression and missing SHOW IOSPACE details 2013-10-02 08:37:09 -07:00
Mark Pizzolato
5feb20d054 VSTUDIO: Fix SDL2 library name for Microvax I debug build 2013-10-02 06:24:20 -07:00
Mark Pizzolato
f76d46662f Merge pull request #83 from BillHeaton/master
PDP10/11: Fix build warnings on OS/X
2013-10-02 05:45:50 -07:00
Mark Pizzolato
3a5f090a82 SCP/VIDEO: Makefile cleanup for OSX build with libSDL2 2013-10-01 16:56:21 -07: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
Bill Heaton
839db8e1fd PDP10: Use system style of include 2013-10-01 13:09:36 -07:00
Bill Heaton
99b4730dc0 Fix build warning on OS/X
PDP11/pdp11_io_lib.c: In function 'show_iospace':
PDP11/pdp11_io_lib.c:363: warning: too few arguments for format

PDP10/pdp10_lp20.c: In function 'lp20_set_vfu_type':
PDP10/pdp10_lp20.c:1038: warning: implicit declaration of function
'toupper'
PDP10/pdp10_lp20.c:1121: warning: implicit declaration of function
'isspace'
2013-09-30 12:10:11 -07:00
Mark Pizzolato
351d748b4a VIDEO: Move all SDL graphics activities to the background video thread 2013-09-26 12:38:17 -07:00
Mark Pizzolato
610b7b5789 VIDEO: Moved SDL initialization and cleanup from event thread to the primary thread.
This allows for any errors to be caught more easily and seems to be required on some platforms (OSX).
2013-09-26 09:50:29 -07:00
Mark Pizzolato
8617a58c8f VAX/QVSS: Added debugging support to sim_video 2013-09-25 16:41:40 -07:00
Mark Pizzolato
ab028c0a37 SCP: Fix SET DEBUG switch interpretation 2013-09-25 16:41:05 -07:00
Mark Pizzolato
daed1e576f VAX/QVSS: Proper linking on OSX 2013-09-25 16:39:51 -07:00
Mark Pizzolato
721a16f7e9 PDP8: Fix LOAD command ignores field change immediately after leader. (#73). From Bob Supnik and David Gesswein. 2013-09-18 11:13:39 -07:00
Mark Pizzolato
6d8565dc94 PDP8: Fix Boot doesn't work if IB or saved_DF are previously set wrong (#72). From Bob Supnik
All bootstraps now pass this test case:

d pc 77777
boot <device>
2013-09-18 11:11:10 -07:00
Mark Pizzolato
735c589d07 SCP: Allow ;notelnet option to be specified on the console telnet command as discussed in issue #76 2013-09-18 08:03:31 -07:00
Mark Pizzolato
7b4d2073fe SCP: Added display of all enabled devices which have debugging enabled to the SHOW DEBUG command output. 2013-09-15 17:18:14 -07:00
Mark Pizzolato
c9844951f7 PDP11/VAX: Make sure that semi-unique drive serial numbers have a zero msb to avoid issues in some operating systems. 2013-09-10 16:27:00 -07:00
Mark Pizzolato
01b3179d93 PDP11: Added help to KE, KG, RF, TA, TC and TM devices. Fixed DECtape documentation. 2013-09-09 05:36:17 -07:00
Mark Pizzolato
786cda7c1b PDP11/VAX: Use semi-unique drive serial numbers when writing BAD144 bad block info to newly created disk images
The 32 bit drive serial number is determined by hashing the newly create filename.
2013-09-09 03:39:00 -07:00
Mark Pizzolato
e18d7e86e4 PDP11/VAX: Use unique drive serial numbers when writing BAD144 bad block info to newly created disk images 2013-09-08 19:42:46 -07:00
Mark Pizzolato
6be61242da SCP: Add timer logic description comments to sim_timer 2013-09-08 17:27:58 -07:00
Mark Pizzolato
c0b82b9adf SCP: Add comments describing the various REG initialization macros. 2013-09-08 17:27:17 -07:00
Mark Pizzolato
cc0ccb43b6 PDP11: Updating doc for RS03/RS04 and RHC from Bob Supnik 2013-09-07 16:36:00 -07:00
Mark Pizzolato
4387c5bc6d PDP11: report RK05 drive presence more reasonably. Add historical information in RK help. 2013-09-07 14:08:23 -07:00
Mark Pizzolato
da227959de SCP: Fix HELP SET <device> to properly output to sim_log when logging. Reported in issue #71 2013-09-06 10:02:02 -07:00
Mark Pizzolato
b1fc298ff3 PDP11/VAX: Add register descriptions and bitfields to register declarations 2013-09-06 09:38:12 -07:00