Commit graph

2665 commits

Author SHA1 Message Date
Mark Pizzolato
b304d7f4a8 HP3000: Bug fix for byte instruction effective addresses calculations with negative indexes.
Update from Dave Bryan
2016-03-12 08:04:44 -08:00
Mark Pizzolato
1b6f28a743 SLIRP: Allow NAT networking even if pthreads are not available.
As mentioned in #284
2016-03-09 10:02:13 -08:00
Mark Pizzolato
fb8f630ea9 MAKEFILE: Fix locale issues while locating include and library paths
As reported in #284
2016-03-09 10:01:15 -08:00
Mark Pizzolato
3a4e879c07 HP3000: Initial release of the HP 3000 Series III simulator (from Dave Bryan) 2016-03-07 20:47:57 -08:00
Mark Pizzolato
53b6809e4a HP2100: Change hp_disclib filename to hp2100_disclib (from Dave Bryan) 2016-03-07 20:42:19 -08:00
Mark Pizzolato
71e745b0c8 PDP11: Fixed bug in history virtual addressing (Bob Supnik)
The problem has to do with the difference in how the PSW is stored when
the simulator is running (it's all in pieces) or stopped (it's collected in PSW).
cpu_ex is a console routine and expects the PSW to be stored in PSW, but
when history is collected, it's not. In particular, cm (current mode) is in local
variable cm.

cpu_ex with /v calls relocC, which derives the current mode from the
switches:

- if /ksup, use kernel/supervisor/user/previous mode (from PSW); otherwise,
   use current mode from PSW
- if /d, use data space; otherwise, use instruction space

relocC is doing current mode i-space, which is what's wanted... except that
it's deriving current mode from PSW, rather than cm, which is where it's stored
while the simulator is running. It's fairly likely that PSW is long obsolete by the
time the history is invoked.
2016-03-06 06:27:15 -08:00
Mark Pizzolato
51aad45cdc PDP18B: Add RB disk to PDP7 and DRM drum to PDP9 and -u, -p examine/deposit switches in PDP7, PDP9 and PDP15
This merges the latest PDP18B changes from Bob Supnik:
 - It adds the RB disk to the PDP-7 and the drum (DRM) to the PDP-9, per the
    discoveries in the 18b services listing.
-  It tweaks the switches for examine and deposit to support Unix v0 and
    (eventually) the Unichannel.
2016-03-01 08:33:28 -08: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
8d51b3517d VAX: Add computed results to instruction history trace 2016-02-28 18:02:25 -08:00
Mark Pizzolato
c8cd853102 VAX: Allow SET CPU IDLE command to not specify a stability value.
Report invalid stability values and explain why they're invalid.

Fixes #281
2016-02-26 02:17:31 -08:00
Mark Pizzolato
9a7c46f59e PDP11, VAX: Fix DEUNA/DELUA receive descriptor message size indicator.
When packets arrive which require multiple receive buffers to deliver, the
full packet size is reported in the MLEN field of the final receive descriptor
used (the one with the ENF bit set).  Previously, correct behavior only
happened when the full packet fit into a single receive buffer.  This problem
was reported and the detail identified by Johnny Billquist.
2016-02-25 08:58:02 -08:00
Mark Pizzolato
f3ca23c739 DOC: Correct parameter description in "Writing a Simulator for the SIMH system". 2016-02-25 05:14:49 -08:00
Tony Nicholson
4d25cc4bc5 slirp_glue: cleanup compiler warning of duplicate definition of O_BINARY under Cygwin 2016-02-25 10:03:49 +11:00
Mark Pizzolato
9d979360b4 VAX: Add the ability to 'STEP OUT" of the most recent subroutine call.
This is invoked with STEP -R nnn, or CONT -R.  Execution will continue
across any new subroutines which are called and stop after the current
routine executes a RET or RSB instruction.
2016-02-24 10:44:12 -08:00
Mark Pizzolato
6148585610 README: Added specific mention that GNU make is required for a makefile build. 2016-02-24 09:03:18 -08:00
Mark Pizzolato
4dfbb98946 PDP11, VAX: Add detailed receive descriptor list usage debug information. 2016-02-24 09:02:17 -08:00
Mark Pizzolato
49d3ec8ff7 VAX: Add command support to set the idle stability delay
SET CPU IDLE={OS{:n}} where n is the idle stability delay
which is also the clock calibration delay.
A -D switch on a SHOW -D CPU IDLE command will
display the stability delay as will a SHOW CLOCK command.
2016-02-23 17:07:12 -08:00
Mark Pizzolato
2e21baffa8 PDP11: Revised doc to include EXAMINE -B 2016-02-23 08:33:03 -08:00
Mark Pizzolato
cea1f1bb52 VAX: Add optional simulator time and logging to disk for instruction history.
simulator time allows instruction history to be precisely correlated with
debug output.  It also provides a way to reproduce and review simulation
activities by stopping at predetermined time values (via STEP) to
examine details of simulator state.

disk logging can be useful to compare activities performed in separate
simulator runs.
2016-02-23 08:31:57 -08:00
Mark Pizzolato
92fe35fb9c PDP10: Fix nested indirect address limit exceeded (from Bob Supnik)
If the nested indirect/execute limit (INDMAX, XCTMAX) is set to 0, the simulator will loop indefinitely in an indirect address or execute loop, testing for interrupts before each memory reference. Thus, on an infinite loop, the simulator will never complete the instruction, but the instruction is interruptible. So for example, under TOPS-10:

.r ddt
1/    0    jrstf @1
1$g
^C
^C
.

The JRSTF will never finish, but it can be interrupted by any device, and double ^C will return control to the command line.

If INDMAX or XCTMAX is non-zero, the previous behavior of limiting loops to a specific depth is retained. However, the default value is now 0.

This closes issue #218.

Conflicts:
	doc/pdp10_doc.doc
2016-02-19 12:28:56 -08:00
Mark Pizzolato
5ffd11c636 SCP: Fix year offset used when expanding DATE_19XX_YY and DATE_19XX_YYYY 2016-02-19 06:58:30 -08:00
Mark Pizzolato
5e6127ec5b VAX: Fix signed overflow in op_mtpr()
As discussed in #277
2016-02-19 06:57:35 -08:00
Mark Pizzolato
445bc9935b SCP: Add DATE_19XX_YY and DATE_19XX_YYYY variable insertion.
These variables can be used in SEND scripts which are setting the
date/time on non Y2K compliant operating systems.
2016-02-18 18:50:06 -08:00
Mark Pizzolato
aadd66c7c7 VIDEO: Fix uninitialized pointer reference under libSDL
This change fixes issue #276
2016-02-15 12:53:30 -08:00
Mark Pizzolato
c1e7dfcf06 TMXR: Make sure all types of incoming connections properly support telnet
Per line listeners also need to potentially negotiate Telnet options.  Make sure
that the telnet option bookkeeping info is available.
2016-02-14 08:10:00 -08:00
Mark Pizzolato
d497aea17e FRONTPANEL: Add breakpoint support to support a debugger using the API 2016-02-11 16:42:25 -08:00
Mark Pizzolato
5eb6750800 SCP: Avoid using tempnam() to produce OS component of SHOW VERSION output 2016-02-11 09:47:02 -08:00
Mark Pizzolato
7f1291dac8 SLiRP: FIx compiler warning about inconsistent type for slirp_dbit variable 2016-02-09 17:17:03 -08:00
Mark Pizzolato
8f54971706 rtVAX1000: Fix potential array overrun when enabling the QVSS graphics.
This can't currently happen since the rtVAX1000 doesn't include the
QVSS video device.  It probably should contain this device since VAXELN
was recently recovered and one of the features VAXELN provided was
a way for 'old' VAXStation hardware to be repurposed into X-Window
terminals.
2016-02-09 17:15:19 -08:00
Mark Pizzolato
2b3680ac61 SCP: Avoid potential file access error when producing SHOW VERSION output. 2016-02-08 23:57:32 -08:00
Mark Pizzolato
f285d52b1c SCP: More thorough OS version display in SHOW VERSION 2016-02-08 23:48:22 -08:00
Mark Pizzolato
94a0629134 PDP11, PDP1, TX-0: Merged most recent display code from Doug Gwyn. 2016-02-08 16:43:36 -08:00
Mark Pizzolato
804b7d8883 TAPE: Fix EOF detection to properly initialize state. 2016-02-08 14:16:28 -08:00
Richard Cornwell
b1d0eb3492 B5500: Added CPU Idle support, clean minor bugs.
b5500_cpu.c: Added idle support to cpu. Cleaned up some
        bugs introduced when cleaning up compiler warnings.
2016-02-08 17:09:29 -05:00
Richard Cornwell
c45878feb3 B5500: Added macros to detect buffer empty to remove compiler warnings.
b5500_mt.c: Changed checking of hwmark from -1 to 0xfffffff.
2016-02-08 17:08:06 -05:00
Mark Pizzolato
02aa4539cd MAKEFILE: Make sure that the runtime library search path is also used at link time. 2016-02-08 13:27:09 -08:00
Mark Pizzolato
ba9769c258 MAKEFILE: Add proper simulator dependency relationship for BuildROMs
This has the general benefit of making sure that the binary ROM image
files in the build working directory didn't get mangled.
2016-02-08 13:25:20 -08:00
Mark Pizzolato
7ad92f15fd ETHER: Avoid meaningless "No description available" output when opening device. 2016-02-07 06:51:08 -08:00
Mark Pizzolato
1cd8925894 B5500: Add build (Makefile, Visual Studio Project, descrip.mms) support 2016-02-06 14:39:03 -08:00
Richard Cornwell
0a33758e47 B5500: Initial checking of simulator for current simh
The B5500 simulator supports the following peripherals.

Two CPUs with between 4K and 32K of memory. The second CPU can be
enabled with "set cpu1 enable". "set cpu1 disable" disables the
second CPU.

Up to 4 floating IO channels. Individual channels can be enabled with
"set io# enable", or "set io# disable".

There are two card readers. The second reader is disabled by default.

There is one Card Punch.

The Card reader and Card Punch support the following options:
  set cr format=

     auto   - will automatically determine the format based on the
              text it recieves.
     text     Text based cards. Tabs are converted to the correct
              number of spaces. A record of
              ~raw octal will enter a binary card.
              ~eor will enter a 7/8/9 punch in column 1.
              ~eof will enter a 6/7/9 punch in column 1.
              ~eoi will enter a 6/7/8/9 punch in column 1.
              ~~ will enter a ~ as the first character.

     bin      Binary Card format:
              Each record 160 characters.
              First characters 6789----
              Second character 21012345
                               111
              Top 4 bits of second character are 0.
              It is unlikely that any other format could
              look like this.

     bcd      BCD Format:
              Each record variable length (80 chars or less).
              Record mark has bit 7 set.
              Bit 6 is even parity.
              Bits 5-0 are character.

    cbn       CBN Format:
              Each record 160 charaters.
              First char has bit 7 set. Rest set to 0.
              Bit 6 is odd parity.
              Bit 5-0 of first character are top 6 bits
                      of card.
              Bit 5-0 of second character are lower 6 bits
                      of card.

    For punch format of auto if the card can't be converted to text it is
    output as a raw record.

 There are two line printers, the second one is disabled by default. The LP
 supports the option "set lp# linesperpage=#" which determines when the
 printer will force out a page break.

 There are up to 16 mag tape drives, the format is controlled by the standard
 simh format control for tapes. These are 6 bit tapes, 1 character per record
 with parity. Units 8-16 are disabled by default.

 There are up to two drum units DR0 and DR1. These can either be attached
 to a file or set to AUXMEM. Setting to AUXMEM causes them to exist only
 during the given simh run. Setting back to DRUM will clear whatever was
 stored on the drum. To enable use of DRUM on XV the following options should
 be turned on "DRA,DRB,CODEOLAY,DATAOLAY". MCP will then use the drum as a
 overlay device instead of the disk system.

 Disks can be attached to the various ESU's, ESU0-9 are on DKA by default,
 ESU10-19 are on DKB. If "set dk1 dfx" is set, then ESU10-19 are not used and
 the disks are shared by both DKA and DKB. To use more then 10 ESU's in a non
 shared mode, a new version of MCP must be created. MCP must be compiled with
 DFX option set to false. For MCP XV DKBNODFX must also be set to true.  ESU units
 can be set to MODI or MODIB. MODIB will double the size of the drive.

 The DTC can be attached to a telnet port with "attach dtc #" to enable dialup
 access to the sim.

The loader card for the card reader is:
~raw0104441100204231524012004000004444550211002041317700000000000024045303040243
00050000006501004131011041310055005500000062005042310000006600304231000000720010
42310000007675610165001002310010413100040107202500440106202533554061256520252265
20251765202514655355536117650000004401062025155522610165225572610465044101160500
4131

  This card should be all in one line.
2016-02-06 15:51:04 -05:00
Mark Pizzolato
4d51d63ae4 PDP11, VAX: Fix XQ device identification probe logic.
Device probe logic when running VAXELN was unable to correctly initialize
the XQ device when it was set to be a DELQA or DELQA-T, but worked when
it was a DEQNA or a DELQA/DELQA-T in DEQNALock mode.  Problem
initially reported in #271
2016-02-06 06:58:57 -08:00
Mark Pizzolato
f03bae6cb6 PDP11, VAX: Add better debug output of loopback packets. 2016-02-04 10:38:31 -08:00
Mark Pizzolato
3d6dd2f3ad VAX: Fix NEXT command to also work when Virtual Memory is enabled.
Initial testing was only done with boot code before the virtual addressing
was enabled.
2016-02-04 10:32:14 -08:00
Mark Pizzolato
197edc8d93 VAX: Add VAX ELN idle support. 2016-02-04 10:28:37 -08:00
Mark Pizzolato
9df1b0e5b5 ETHER: Add local system adapter description to the attach confirmation message 2016-02-04 10:17:50 -08:00
Mark Pizzolato
9d2079df68 SERIAL: Fix extra probes to start at 0. 2016-02-01 06:54:55 -08:00
Mark Pizzolato
de72cba08b SERIAL: Add probes for common serial port names on NetBSD.
Fixes #273
2016-01-31 11:55:41 -08:00
Mark Pizzolato
197466c911 PDP11, PDP1, TX-0: Fix compiler warning with clang compiler. 2016-01-30 15:06:06 -08:00
Mark Pizzolato
b804964514 PDP11, PDP1, TX-0: Added SDL based graphics support using sim_video.
Both VT11 and VS60 properly autoconfigure on the PDP11.
PDP11 now runs Lunar Lander on all SDL supported platforms.
Reworked refresh logic to not require internal delays in the display library
2016-01-29 10:16:30 -08:00
Mark Pizzolato
51419a2e4b VIDEO: Add ability for a video window Quit event to optionally propagate back to SCP. 2016-01-29 00:30:02 -08:00