Commit graph

285 commits

Author SHA1 Message Date
Mark Pizzolato
7ea6c2d7b3 FRONTPANEL: Updated FrontPanelTest application
- Fixed screen alignments/scrolling between commands
- Add ncurses screen update support on non-windows platforms
- Add tests for new frontpanel APIs
- Add multiple panel startup and shutdown activity to test shutdown
- Add breakpoints to help debug VAX console ROM tests that have failed
2018-01-12 12:43:02 -08:00
Richard Cornwell
b5ea9ec38e I7000: Initial release of a set of simulators for IBM 7000 series mainframes.
These include simulators for the IBM 701, IBM 702, IBM 704, IBM 705,
IBM 705/3, IBM 709, IBM 1410/IBM 7010, IBM 7070, IBM 7080, IBM 7090
and IBM7094.

  These basically were a collection of machines that shared a common
  set it peripherals, Each group had its own instruction set, hence
  different simulators.

   IBM 701   -> i701
   IBM 702/705/705/3/7080 -> i7080
   IBM 7070/7074 -> i7070
   IBM 1410/7010 -> i7010
   IBM 704 -> i704
   IBM 704/709/7090/7094 -> i7090
  The i7090 can be set to simulate a IBM 704 however you end up
  disabling almost everything, since the 704 did not have any channels.
  A build option exists that allows this one to be built without all the
  extra features.

   The i7090 simulator’s implementation of the IBM 7094 is a more
   complete implementation of the IBM 7094 which can run CTSS
   while the existing simh I7094 can’t.
2017-12-28 05:05:25 -08: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
f1f8c8550b makefile: clarified the make command goals which build the BESM6 simulator 2017-12-02 21:17:34 -08:00
Mark Pizzolato
afc5580db8 makefile: Fix besm6 build issues when no SDL is available 2017-12-02 15:37:35 -08:00
Mark Pizzolato
b167d889a7 makefile: Add support for HomeBrew supplied packages on OS X
Addresses issues discussed in #493 and #489
2017-12-02 15:22:44 -08:00
Mark Pizzolato
7df0468b75 makefile: Fix typo in Haiku specific sections 2017-11-27 07:41:25 -08:00
Mark Pizzolato
5ac4aaa1d4 makefile: Rework SDL/SDL2 package support
This change effectively reverts 8b1af8b862 and solves the Haiku build
problem mentioned in #489 in a platform specific way.
2017-11-27 06:43:05 -08:00
Mark Pizzolato
63f55c785e makefile: Abort build if GREP_OPTIONS environment variable is defined
This avoids the interference in this makefile's use of grep
as discussed in #492
2017-11-27 05:31:32 -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
8b1af8b862 makefile: Use sdl tool (sdl-config, sdl2-config) to locate SDL components
As discussed in #489
2017-11-17 08:13:48 -08:00
Mark Pizzolato
107f620f4c makefile: Fix MinGW build when using windows-build libpthreadsGC2 2017-11-12 15:23:38 -08:00
Mark Pizzolato
b45b9426c6 makefile: Tolerate changing MinGW include file changes
Fix #487
2017-11-11 10:52:29 -08:00
Mark Pizzolato
d02de5156f SCELBI: Updated documentation and removed makefile dependency (Hans-Åke Lund) 2017-09-14 09:52:38 -07:00
Mark Pizzolato
202e49cfdf scelbi: New SCELBI (SCientic-ELectronics-BIology) Simulator from Hans-Åke Lund 2017-09-13 05:59:25 -07:00
Mark Pizzolato
8f9c763f67 makefile: Make sure to gather git commit-id whenever possible 2017-09-11 14:54:48 -07:00
Bill Beech
357910dfb9 imds-224, isys80xx: Rework attach routines to leverage SCP provided functionality 2017-04-27 11:20:12 -07:00
Bill Beech
2b30084a53 IBMPC, IBMPCXT, isys80xx: Restructure directories to eliminate redundant files 2017-04-10 10:32:43 -07:00
Ryo ONODERA
64376cad58 makefile: Use correct variable name, FONTPATH instead of FONTNAME in message 2017-04-07 11:25:27 -07:00
Mark Pizzolato
c6b10a06de makefile: Add check for utime.h 2017-04-07 11:23:05 -07: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
91f151932c makefile: Add command line option NOPTHREADS to disable use of pthreads 2017-02-08 13:31:33 -08:00
Leo Broukhis
f46c048bb6 BESM6: Implemented punchcard output. 2017-02-06 23:04:40 -08:00
Mark Pizzolato
5f6636c6d7 makefile: Add build target 'experimental' to build any experimental simulators
- Upgrade BESM6 from experimental to be included in the 'make all'
- Add imds-225 to make all
- The cdc1700 simulator is currently the only experimental simulator
2017-01-16 12:53:14 -08:00
Mark Pizzolato
861d9c8d9c makefile: Generalized git-id determination when simh is used as a submodule
This will support arbitrary location and naming of the simh submodule in the
parent repo's working directory.

It probably won't work for sub sub modules.  Suggestions welcome.
2017-01-14 12:09:00 -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
e3f7a9b112 makefile: Add support for proper display of commit id when used as a submodule 2017-01-09 03:11:46 -08:00
Bill Beech
23f187d887 makefile: remove experimental ibmpc and ibmpcxt simulators from 'make all' 2016-12-06 12:56:46 -07:00
Mark Pizzolato
b378072c95 makefile: remove misspelled experimental simulator name imbpc 2016-12-06 10:03:32 -08:00
Mark Pizzolato
0d5c86d0a9 makefile: Remove imds-225 from 'make all' - still experimental
Fix #359
2016-12-06 09:06:22 -08:00
Bill Beech
c24a6a28b2 ISYS8024, ISYS8030: Add initial new simulators 2016-12-05 13:04:01 -07:00
Bill Beech
2947c39ffe ISYS8010, ISYS8020: Latest update 2016-12-05 12:54:15 -07:00
Mark Pizzolato
5fba6e7607 makefile: Use libSDL when building simulators using display library with MinGW 2016-10-22 01:31:29 -07:00
Mark Pizzolato
0630db4207 makefile: remove isys8030 from 'all' due to missing piece 2016-10-12 23:38:10 -07:00
Mark Pizzolato
2c1cc11485 makefile: Fix to allow compiling with clang on NetBSD
clang doesn't like the -R option, it wants the long form -Wl,-R. gcc is ok
with either.
clang on OS X doesn't like that form, but the change is only in a
conditional which is relevant when X11R7 is installed and that isn't the
case for OS X.
2016-10-12 05:51:36 -07:00
Mark Pizzolato
38f04f9f35 makefile: Remove new IBM simulators from 'all' build until they build cleanly 2016-10-11 17:32:00 -07:00
Bill Beech
5d99998236 ISYS8010,ISYS8020,ISYS8030,IMDS-225,IBMPC,IBMPCXT: update of makefile to handle moved files to system specific directory and for the new experimental simulators for IMDS-225, IBMPC, and IBMPCXT. 2016-10-11 15:05:02 -07:00
Mark Pizzolato
5f1ee6ed67 makefile: Correct advice about how to install libvdeplug
Additionally, only warn about potentially missing ttf support when
building a BESM6 simulator.
2016-10-11 10:17:37 -07:00
Mark Pizzolato
6a1487e5bf makefile: Fix locating besm6 fontpath when using libSDL2 2016-10-11 09:33:19 -07:00
Mark Pizzolato
fa292f59cd makefile: Add logic to BESM6 build warning that video panel needs SDL 2016-09-14 17:30:46 -07: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
63510629d9 makefile: isys8010 and isys8020 can now be compiled with a C++ compiler 2016-05-23 16:43:22 -07:00
Mark Pizzolato
64716dad74 makefile: Fix MinGW build to allow C++ compiles 2016-05-16 16:17:22 -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
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
faeff88ce5 makefile: Disable link time optimization when building with clang.
Recent clang versions on OS X and Linux no longer buildingn with
-flto -fwhole-program
2016-04-26 20:55:14 -07:00
Mark Pizzolato
c55b6a8a8b makefile: Document supported build requirements and allow unsupported builds
Users wanting to build simulators with locally build dependent packages or
packages provided by an unsupported package management system can
override where this procedure looks for include files and/or libraries.

Overrides can be specified by define exported environment variables or
GNU make command line arguments which specify INCLUDES and/or LIBRARIES.
Each of these, if specified, must be the complete list include directories
or library directories that should be used with each element separated by
colons. (i.e. INCLUDES=/usr/include/:/usr/local/include/:...)

Binaries built with unsupported library components will have a 'unsupported' tag
in the output of the SHOW VERSION command.
2016-04-26 20:24:01 -07:00
Mark Pizzolato
02d9bc304b makefile: Avoid trying to build using static libraries for libsdl and libsdl2.
Fix #297 (at least for OpenSUSE Leap 42.1)
2016-03-29 14:06:15 -07:00
Mark Pizzolato
736e341fd2 makefile: Fix OS X build to correctly supply input events for video capable sims 2016-03-28 18:16:59 -07:00