Commit graph

2614 commits

Author SHA1 Message Date
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
Mark Pizzolato
d61409889b PDP11: Added formatted register display for HK and RK devices 2013-09-06 08:31:33 -07:00
Mark Pizzolato
db91afbaaf VAX: Compiler warning cleanup 2013-09-05 23:30:22 -07:00
Mark Pizzolato
ddc9398f90 PDP11: fix RK device unit detection when some units are disabled. 2013-09-05 19:03:06 -07:00
Mark Pizzolato
59232fed53 PDP11: fixed auto configure for RL and HK devices 2013-09-05 18:56:08 -07:00
Mark Pizzolato
c0bf9073d9 SCP: Added help display for units which can be enabled and disabled 2013-09-05 12:10:59 -07:00
Mark Pizzolato
b1b9aa3510 PDP11: Added help to RK device 2013-09-05 12:10:09 -07:00
Mark Pizzolato
1141339e5b PDP11: Addition of the RS03/RS04 disk devices from Bob Supnik
Note that this is not the fully general Massbus implementation people were dreaming of. MB#1 is for RP/RM, MB#2 is for TU, and MB#3 is for RS.
I know that there were requests for four Massbus channels and multiple RP/RP subcontrollers, but if people want more disks, they can use the RQ.
2013-09-05 07:59:11 -07:00
Mark Pizzolato
68fbca919c I1401: Read TMK does not write GM+WM to memory from Bob Supnik 2013-09-04 19:56:18 -07:00
Mark Pizzolato
4e5f910fed Compiler nits for void * assignments from Bob Supnik 2013-09-04 19:50:47 -07:00
Mark Pizzolato
4cc4d12e19 Updated PDP11 and VAX780 documentation. 2013-09-03 10:03:21 -07:00
Mark Pizzolato
89024724d4 PDP11/VAX: pdp11_hk Fix by Bob Supnik for issue #47
Revised error handling to command-response model
Revised interrupt logic to follow the hardware
2013-09-03 05:15:23 -07:00
Mark Pizzolato
2722bc4864 README: Update to correct URL for windows binaries. #70 2013-09-02 06:45:23 -07:00
Mark Pizzolato
c22063c431 sim_sock.c allow validation address to match various forms of literal localhost addresses. 2013-08-27 10:41:49 -07:00
Mark Pizzolato
8555bbb323 SCP: Fix Set Command dispatching and HELP dev SET output
- Fixed set MTAB dispatching to not dispatch to unit specific routines when only a device is specified in the command
 - Fixed HELP dev SET output to avoid displaying SET commands which aren't valid for SHOW only cases
2013-08-23 17:29:32 -07:00