Commit graph

101 commits

Author SHA1 Message Date
Mark Pizzolato
cbe9bba849 PDP10, PDP11, Unibus VAX: Add CH11 build support for Windows and VMS 2018-11-22 11:13:25 -08:00
Mark Pizzolato
e1db7dec41 PDP11: Add ROM device build support for VMS and Visual Studio 2018-09-11 05:59:14 -07:00
Mark Pizzolato
6b361a9faf PDP11, PDP15, UC15: Merge simh v3.10 functionality from Supnik-Current branch 2018-06-04 10:43:00 -07:00
John Forecast
a5feaf2815 CDC1700: Release 3
- Add 1752 Drum support. Allow shared subroutines across interrupt levels.
- Document and add sample scripts for customizing MSOS5.
2017-12-14 16:44:01 -08:00
Mark Pizzolato
6487d319cd VMS Build: Restore VAX/VMS host build support
The C RTL on the latest VAX/VMS does not provide a snprintf function.
We provide a 'basic' one which meets the needs of simh as suggested
by Jordi Guillaumes Pons.
2017-12-09 11:21:38 -08:00
Seth Morabito
804ea8e322 3b2: Initial release of an AT&T 3B2 model 400 emulator.
For information on usage, please see the file 3B2/README.md
2017-11-20 18:21:49 -08:00
Mark Pizzolato
df1baf2528 CDC1700: Release 2
- Fix protect fault for 2-word instructions so that background tasks do not
   crash.
- Lay the ground work for supporting the enhanced instruction set.
- Fix disk layout bug (disks are no longer compatible with previous version).
- Add debugging support for displaying MSOS 5 system requests.
- Fix bugs found by Coverity.
2017-03-14 13:36:57 -07:00
Mark Pizzolato
6a90ed44c7 VMS_BUILD: Fix build on OpenVMS/VAX host
As discussed in #394
2017-02-08 21:18:02 -08:00
Leo Broukhis
f46c048bb6 BESM6: Implemented punchcard output. 2017-02-06 23:04:40 -08:00
Mark Pizzolato
629f0f0c07 HP3000: Fourth HP 3000 release
See HP3000/hp3000_release.txt for details of the release
2017-01-10 12:32:23 -08:00
Mark Pizzolato
1897dfeb94 CDC1700: Initial import of new simulator from John Forecast 2016-07-20 21:05:02 -07:00
Mark Pizzolato
07f99bb8c3 HP3000, HP2100: Updated simulators from Dave Bryan
- This release of the HP 3000 simulator adds the following device simulation:

  - 30209A Line Printer Controller with One 2607/13/17/18 Line Printer

The simulation supports the use of custom VFU tape images, as well as the
built-in HP-standard VFU tape.  The simulated device name is "LP".  The full set
of configurable options is detailed in a new section of the HP 3000 Simulator
User's Guide.

In addition, the preconfigured MPE-V/R disc image has been updated to add the
following features:

  - The MPE cold load command files attach the line printer to the "lp.txt"
    output file and specify the "-n" option to clear the file before use.

  - Preinstalled User-Defined Commands (UDCs) provide access to the COBOL 74
    compiler with the MPE-V/E :COBOLII, :COBOLIIPREP, and :COBOLIIGO commands,
    and to the COBOL 85 compiler with :COBOLIIX, :COBOLIIXPREP, and :COBOLIIXGO.
    However, see the implementation note below.

--------------------
Implementation Notes
--------------------

 - MPE requires a line printer, so it is recommended that the MPE startup
   simulator command file include an ATTACH LP <filename> command to load paper
   into the printer before cold loading.  If the printer is not attached, it
   will appear to MPE to be out of paper.

 - The line printer terminates each print line with an HP-standard CR/LF pair.
   If the output file is to be retained as a text file on a Unix system, removal
   of the carriage returns, e.g., via the "dos2unix" utility, may be desirable.

 - The simulator currently does not provide the HP 32234A COBOL II firmware
   instructions, so programs generated by the COBOLII compiler will abort at run
   time with an "ILLEGAL INSTRUCTION" error.  Programs generated by the COBOL
   compiler do not use these instructions and therefore are not affected.

----------
Bugs Fixed
----------

  1. PROBLEM:  The effective address of a byte pointer with a negative index is
     calculated incorrectly.

     VERSION:  Release 1

     OBSERVATION:  Defining a :WELCOME message in MPE appears to work, but when
     the next logon attempts to print the message, an infinite number of CRLFs
     are printed instead.

     CAUSE:  The welcome message is stored in an extra data segment.  The format
     for each message line is a line length stored in the lower byte of the word
     preceding the message string.  The code defines BYTE POINTER NEXTLINE and
     points NEXTLINE to the first message character.  The line length is set
     with NEXTLINE(-1) := IOCOUNT.  This generates a LOAD <IOCOUNT> ; LDXN 1 ;
     STB <NEXTLINE>,I,X sequence.

     In the "cpu_ea" routine, the indexing adds the X register value (-1) to the
     byte pointer (NEXTLINE).  This causes an overflow that is not masked to 16
     bits.  For a word access, this displacement is added to the base register
     and then masked to 16 bits, which gives the correct value.  However, for
     byte accesses, the displacement is divided by 2 and then added, and the sum
     is masked.  Dividing by 2 shifts the overflow bit into the MSB, causing the
     addition result to be off by 32K.  The STB goes to the wrong location, the
     original zero in the length byte location is retained, and when the welcome
     message is printed, a zero-length line is printed, and the byte pointer is
     incremented by zero, so the null line is printed forever.

     RESOLUTION:  Modify "cpu_ea" (hp3000_cpu.c) to mask indexed displacements
     to 16 bits after adding the X register value.

     STATUS:  Fixed in Release 2.

  2. PROBLEM:  An SMSK instruction may clear the interrupt mask flip-flop of a
     device that specifies that it is should be "always enabled."

     VERSION:  Release 1

     OBSERVATION:  If the TOS word is zero, an SMSK instruction will clear the
     interrupt mask flip-flop of a device whose mask jumper is set to "E"
     (always enabled).

     CAUSE:  In response to a DSETMASK signal, device interfaces set their
     interrupt mask flip-flops by "anding" the incoming data word with the
     interrupt mask jumper setting.  The jumper setting value for "always
     enabled" is %177777, which sets the mask flip-flop in all cases, except
     when the data word is zero.

     RESOLUTION:  Modify hp3000_atc.c, hp3000_ds.c, and hp3000_ms.c to set their
     mask flip-flops unconditionally if the jumper setting is "E".

     STATUS:  Fixed in Release 2.

  3. PROBLEM:  The "SET <dev> INTMASK=<n>" command sets the wrong bit in the
     device interface's interrupt mask jumper setting.

     VERSION:  Release 1

     OBSERVATION:  The interrupt mask jumper on a device interface is set by
     specifying the mask bit number in a "SET <dev> INTMASK=<n>" command.  This
     sets a bit in the device's interrupt mask jumper word corresponding to the
     bit number requested.  However, the bit numbering is incorrect; setting the
     jumper for bit 15, for example, sets bit 0 of the jumper word.  Therefore,
     the interface's mask flip-flop is not set as expected when an SMSK
     instruction is executed.

     CAUSE:  The bit numbers were counted from the wrong end of the word.

     RESOLUTION:  Modify "hp_set_dib" and "hp_show_dib" (hp3000_sys.c) to number
     the bits from the MSB instead of the LSB.

     STATUS:  Fixed in Release 2.

  4. PROBLEM:  The Multiplexer Channel is not generating the ACKSR signal
     correctly.

     VERSION:  Release 1

     OBSERVATION:  The line printer controller hangs when an SIO chained write
     is performed.  The first programmed write completes normally, but the
     second does not start.  The channel is waiting for a service request that
     does not occur.

     CAUSE:  The service request from the last write of the first block transfer
     is being cleared by an ACKSR generated by the Multiplexer Channel when it
     performs the IOCW fetch in State A for the second write request.  The
     channel should omit this ACKSR when the previous I/O order was a chained
     read or write.  However, the simulator is testing the order just fetched
     (Write) instead of the order that has just completed (Write Chained).

     RESOLUTION:  Modify "mpx_service" (hp3000_mpx.c) to test the correct I/O
     order in State A.

     STATUS:  Fixed in Release 2.
2016-07-05 22:09:21 -07:00
Mark Pizzolato
03445f5f94 B5500: Promote sim_card to a top level simh library
Rich Cornwell's sim_card module is about to be used by another new simulator
so it is being promoted.
2016-05-15 18:01:38 -07:00
Mark Pizzolato
2b155ba29d VAX780, VAX750, VAX730, VAX8600: Add TC11/TU56 (DECtape) device to Unibus VAX simulators
VMS Driver and support files for the TC11 should be available at
http://bitsavers.org/bits/DEC/vax/vms/dkdriver_vms.zip
2016-03-27 12:28:02 -07:00
Mark Pizzolato
72c328e771 PDP7: Fix Visual Studio and VMS build for new GRAPHICS-2 device 2016-03-27 04:43:35 -07:00
Mark Pizzolato
bfe87ed1c5 VAX780, VAX750, VAX730, VAX8600: Add TC11/TU56 (DECtape) device to Unibus VAX simulators 2016-03-25 04:01:44 -07:00
Mark Pizzolato
80321577f9 PDP10: Adjust build to include network support 2016-03-18 09:29:45 -07: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
1cd8925894 B5500: Add build (Makefile, Visual Studio Project, descrip.mms) support 2016-02-06 14:39:03 -08:00
Mark Pizzolato
782e206858 AltairZ80: Update Visual Studio Projects and descrip.mms to include s100_mdsa.c 2015-12-17 06:31:58 -08:00
Mark Pizzolato
9f59823ae3 PDP11, all VAX: Add TU58 device simulator with support for 32 drives plus the VAX 730 and 750 console devices 2015-09-22 15:06:12 -07:00
Mark Pizzolato
041c866d67 PDP10: Added DEUNA/DELUA support back since there exists software which actually supported it.
The code which used it provides some IP packet transport: ftp://ftp.stacken.kth.se/pub/pdp10/tops10/util/
2015-04-26 15:04:01 -07:00
Mark Pizzolato
8204a203a1 DOC: Updated simh.doc to describe missing sim_tape APIs 2015-04-14 08:36:27 -07:00
Mark Pizzolato
9accae5905 BESM6 and VAX: Cleanup for building on VMS 2015-02-12 12:32:39 -08:00
Mark Pizzolato
e00438b051 VAX: Add VCB01(QVSS) device to MicroVAX 3900 simulator 2015-01-13 05:42:10 -08:00
Mark Pizzolato
defe5f07d9 AltairZ80: Promote sim_imd.c to a top level simh library to be used as needed by various simulators 2014-09-16 11:29:19 -07:00
Mark Pizzolato
bfcbabcb12 VMSBUILD: Fix minor issue building the ssem simulator on VMS host platforms 2014-08-29 07:44:45 -07:00
Peter Schorn
589aca19f4 AltairZ80: Added Motorola 68000 CPU support for CP/M-68K, support for Altair mini-disk format, added descriptions for all device registers 2014-05-27 20:01:30 +02:00
Peter Schorn
49d38187dd Updated AltairZ80 documentation and incorporated altairz80_mhdsk.c in build process 2014-03-29 15:12:53 +01:00
Mark Pizzolato
d0d3742504 SWTP6800: Added build support for internally contained swtbug.bin as a built-in ROM image 2014-02-24 18:13:12 -08:00
Mark Pizzolato
5800e5b403 Compiler indicated cleanup 2014-01-06 14:13:30 -08:00
Mark Pizzolato
76fc90f405 VMS: Update descrip.mms for recently added video and network device support 2014-01-06 13:13:18 -08:00
Mark Pizzolato
7b3e508627 ETHER: Added capability to build working networking support without pcap packet transport (i.e. only using one of the other available packet transports: VDE, TAP, UDP, etc.) 2013-12-19 09:45:51 -08:00
Mark Pizzolato
65402fbaa1 H316: Resurrecting the ARPAnet IMP (from Bob Armstrong)
This summer a group of us worked together to resurrect the original ARPAnet IMP software, and I’m now happy to say that the IMP lives again in simulation.    It’s possible to run the original IMP software on a modified version of the H316 simh and to set up a virtual network of simulated IMPs talking to each other.   IMP to IMP connections, which would have originally been carried over leased telephone lines, are tunneled over IP.  As far as we can tell, everything works pretty much as it did in the early 1970s.  IMPs are able to exchange routing information, console to console communications, network statistics, and they would carry host traffic if there were hosts on the network.  The hooks are in there to allow simh to support the IMP side of the 1822 host interface, and the next step would be to recover the OS for an ARPAnet era host and then extend the corresponding simulator to talk to the IMP simulation.
2013-11-23 08:40:26 -08: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
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
3b8784b2c3 Added makefile support for the DUP11 device 2013-05-27 16:55:12 -07:00
Mark Pizzolato
6c42556d30 Added build support for the new SSEM simulator and fixed minor compiler suggested cleanups 2013-05-13 15:31:00 -07:00
Mark Pizzolato
4052738dae Fixed target name for VMS build of the VAX8600 simulator 2013-02-18 09:29:30 -08:00
Mark Pizzolato
a3072fe1ee Cleanup of build on VMS 2013-02-18 08:40:14 -08:00
Mark Pizzolato
0344d6f22b Finished returning the pdp11_cr.c to the VAX qbus simulators 2013-02-04 18:21:24 -08:00
Mark Pizzolato
0b2d790678 Renamed the VAX Qbus simulator executables to reflect the VAX model names they actually simulate 2013-02-03 12:46:19 -08:00
Mark Pizzolato
8640cd6537 - Removed pdp11_cr and pdp11_ry from the Qbus VAX simulators since these devices can't address the full Q22 address range.
- Added validation checks in auto_config to reject enabled devices which aren't Q22 capable on Q22 platforms.
- Changed pdp11_cr device to be default disabled in the PDP11 simulator
2013-02-03 11:29:12 -08:00
Mark Pizzolato
7290474d4b Removed pdp11_dmc from the Qbus VAX systems since the DMC11 is only a Unibus device 2013-02-03 06:43:29 -08:00
Mark Pizzolato
6dcf5ba7d9 Renamed the VAX860 simulator to VAX8600, and used the VAX system model names for all simulators 2013-01-26 13:24:28 -08:00
Mark Pizzolato
fae991d592 More compiler identified cleanups 2013-01-10 16:10:39 -08:00
Mark Pizzolato
448d9e52fc Added VAX860 to the descrip.mms and cleaned up the VMS compiler identified issues 2013-01-10 15:14:51 -08:00
Mark Pizzolato
30ae79eb18 pdp11_dmc cleanup and addition of DMC11 device to the PDP11 simulator 2012-12-23 07:11:54 -08:00
Mark Pizzolato
3346f4a32c Fix build on VMS (IA64) 2012-12-19 12:45:03 -08:00