Commit graph

163 commits

Author SHA1 Message Date
Mark Pizzolato
1fb209c275 SOCKETS: Cleanup, simplify and extend the sim_sock API set.
Cleanup/Simplification by:
	1) removing irrelevant master flag variable from sim_close_sock and thus sim_err_sock
	2) change previous boolean feature arguments (datagram, nodelay, reuseaddr) to flag bits in a single option argument.  This allows for features to be added by new flag bits which don't change the calling signatures.
	3) changed all status returns to be int (vs t_stat) with success being 0 and error being -1
	4) removed unneeded simh specific type references to allow sim_sock to be used by n
Extended API by providing flags to influence socket setup/behavior:
	SIM_SOCK_OPT_REUSEADDR	Retains prior behavior when sim_switches had -U set
	SIM_SOCK_OPT_DATAGRAM	UDP socket setup provided for when prior datagram argument was specified
	SIM_SOCK_OPT_NODELAY		TCP Nagle disable provided for when prior nodelay argument was specified
	SIM_SOCK_OPT_BLOCKING	Blocking socket mode (detault is non blocking)
2015-02-11 09:41:18 -08:00
Peter Schorn
ea5b1dc6fe AltairZ80: Fixed confusing call to memset 2014-11-12 19:06:24 +01:00
Peter Schorn
1cc1ca7a41 AltairZ80: Removed unnecessary calls to abs() 2014-10-28 18:53:12 +01:00
Mark Pizzolato
2e1167d4a0 Compiler suggested cleanups - mostly const fixups 2014-10-26 17:06:24 -07:00
Peter Schorn
ebf53c9cda Replaced printf with sim_printf. 2014-10-24 23:10:54 +02:00
Mark Pizzolato
3951ad2432 Cleanup of unneeded global extern declarations 2014-10-10 08:18:15 -07:00
Mark Pizzolato
0b1050853e SCP: Allow for the potential of a breakpoint action to remove the establishing breakpoint while still completing pending actions 2014-10-10 08:03:22 -07:00
Peter Schorn
977712b9c5 AltairZ80: More debug information available when using IMD disks 2014-09-21 09:42:26 +02: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
60a0cf7468 AltairZ80: Reworked the conditional compile time debug code to use the runtime sim_debug() APIs. 2014-09-16 11:07:15 -07:00
Peter Schorn
899b7a654e Improved DSK handling from Mike Douglas and bug fix in URLContens. 2014-09-09 18:27:25 +02:00
Peter Schorn
a0c978f5f7 AltairZ80: Improved Altair Minidisk support from Mike Douglas 2014-07-05 09:44:20 +02:00
Peter Schorn
f8020a2c4c AltairZ80: Addressed Microsoft compiler generated warnings 2014-05-29 18:12:18 +02: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
798b82b868 Added debug support for the MHDSK device, support for the NEXT command and a warning if 8086 symbolic input is attempted. 2014-04-21 08:56:27 +02:00
Peter Schorn
8d3ecd0ddb AltairZ80: Added boot to MHDSK device and improved disassembler 2014-04-01 19:33:09 +02:00
Peter Schorn
49d38187dd Updated AltairZ80 documentation and incorporated altairz80_mhdsk.c in build process 2014-03-29 15:12:53 +01:00
Peter Schorn
1d35a4f612 Updated year in copyright and implemented sim_vm_pc_value 2014-03-29 08:19:22 +01:00
Peter Schorn
5b2f229bb0 Added 88-HDSK support from Mike Douglas to AltairZ80 2014-03-29 07:21:59 +01:00
Mark Pizzolato
9320c56f3f PDP11, PDP10, AltairZ80: Fixed cases where assert() macro is called with an expression which has side effects and therefore wouldn't get executed if compiled with NDEBUG defined. 2014-03-02 14:50:43 +01:00
Mark Pizzolato
5800e5b403 Compiler indicated cleanup 2014-01-06 14:13:30 -08:00
Mark Pizzolato
8cb6a2ef79 Corrected to properly leverage the new -N attach_unit switch 2013-04-15 06:55:57 -07:00
Mark Pizzolato
ee3d98a125 Updated AltairZ80 from Peter Schorn 2013-04-13 16:47:59 -07:00
Mark Pizzolato
414cf3335f Compiler identified issues in AltairZ80 simulator 2013-04-12 06:39:28 -07:00
Mark Pizzolato
a262dd9c14 Compiler indicated cleanups 2013-03-19 01:11:22 -07:00
Mark Pizzolato
2e5b0d54c6 Generalized the sim_disk layer to support large file disk devices (simh, VHD and RAW formats) with out requiring USE_ADDR64, and enhanced the pdp11_rq device to use this capability. 2013-03-17 12:02:43 -07:00
Mark Pizzolato
28f645aeab Compiler suggested cleanups 2013-03-13 22:28:14 -07:00
Mark Pizzolato
eb101e3881 HP-UX port supplied by Mikulas Patocka 2013-03-05 13:29:38 -08:00
Mark Pizzolato
a63090f22a Fix compile error of #ifdef __linux change for the altairz80 simulator 2013-02-20 22:09:17 -08:00
Mark Pizzolato
4ff56d6c15 Changed all internal #ifdef's which were conditional on __linux to be conditional on either __linux or __linux__. Some platforms (PPC) don't define __linux when gcc is invoked with -std=c99. 2013-02-20 21:57:02 -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
dac73b9381 Migrating scp and library global variables to be declared as extern in the appropriate library include file and remove repetitive declarations in referencing modules. 2013-01-10 13:29:15 -08:00
Mark Pizzolato
7b6f7a9871 Set device flags indicating DEV_DISK, DEV_TAPE, DEV_MUX and DEV_ETHER for all simulator devices which use the sim_disk, sim_tape, sim_tmxr, and sim_ether libraries 2013-01-07 12:47:24 -08:00
Mark Pizzolato
7f6a1af5bf Added an optional validation argument to sim_parse_addr for callers which need to confirm incoming connections come from expected sources 2012-12-09 12:12:09 -08:00
Mark Pizzolato
30ce7fdbaa Revised the socket library sim_sock(.c & .h) to support both IPv4 and IPv6 leveraging the RFC3493 APIs.
All dependent code has been updated to use the revised interfaces.
2012-09-28 15:34:55 -07:00
Mark Pizzolato
cf280ad8f7 Completing merge of v3.9-0-rc1 compile cleanups 2012-03-20 18:55:45 -07:00
Mark Pizzolato
fffad7c20e Merge changes from v3.9-0 rc1 2012-03-19 16:05:24 -07:00
Mark Pizzolato
d8f55a652b Cleaned up filename cases to be consistent for cross platform builds 2011-04-19 16:02:45 -07:00
Mark Pizzolato
fe8b1f06de Merge branch 'FastAsynchIO' into simhv38-2-rc2
Conflicts:
	PDP11/pdp11_tq.c
	PDP11/pdp11_ts.c
	PDP11/pdp11_xq.h
	VAX/vax780_sbi.c
	VAX/vax_cpu.c
	makefile
	scp.c
	sim_defs.h
	sim_ether.c
	sim_timer.c
2011-04-15 10:47:35 -07:00
Mark Pizzolato
8eb9caff10 Merge branch 'ControlFlow' into simv3.8-2-rc2
Conflicts:
	scp.c
2011-04-15 09:19:29 -07:00
Mark Pizzolato
a6964f849d Cleaned up parameter declarations in all simulators to achieve clean compiles on all platforms
Very minor in all cases, but the strange case of swtp_cpu.c
This module used expressions of the form:
   PC = ++PC & ADDRMASK;
Officially, the C language says that expressions which modify the same variable in more than one place have undefined behavior.
These were changed to the legal form which performs the desired action:
   PC = (PC + 1) & ADDRMASK;
2011-04-15 09:04:39 -07:00
Mark Pizzolato
766e7058f1 Added SET ON, SET NOON, ON, GOTO and RETURN command support
The ControlFlow changes fix a potential bug in breakpoint handling
    which arguably merely could be “not supported”.  That bug is that if
    a breakpoint’s actions have multiple actions AND an action early in
    the list invokes a do command file, the subsequent pending breakpoint
    actions are not performed.

    The ControlFlow patch/changes implement the following extensions to
    the SCP command language without affecting prior behavior:

             GOTO <Label>                 Command is now available.  Labels are lines in which the first non whitespace character is a “:”.  The target of a goto is the first matching label in the current do command file which is encountered.  Since labels don’t do anything else besides being the targets of goto’s, they could be used to provide comments in do command files, for example (“:: This is a comment”)
             SET ON                       Enables error trapping for currently defined traps (by ON commands)
             SET NOON                     Disables error trapping for currently defined traps (by ON commands)
             RETURN                       Return from the current do command file execution with the status from the last executed command
             RETURN <statusvalue>         Return from the current do command file execution with the indicated status.  Status can be a number or a SCPE_<conditionname> name string.
             ON <statusvalue> commandtoprocess{; additionalcommandtoprocess}
                                          Sets the action(s) to take when the specific error status is returned by a command in the currently running do command file.  Multiple actions can be specified with each delimited by a semicolon character (just like breakpoint action commands).
             ON ERROR commandtoprocess{; additionalcommandtoprocess}
                                          Sets the default action(s) to take when any otherwise unspecified error status is returned by a command in the currently running do command file.  Multiple actions can be specified with each delimited by a semicolon character (just like breakpoint action commands).
             ON <statusvalue>
             ON ERROR                     Clears the default actions to take when any otherwise unspecified error status is returned by a command in the currently running do command file.

    Error traps can be taken for any command which returns a status other
    than SCPE_STEP, SCPE_OK, and SCPE_EXIT.

    ON Traps can specify any status value from the following list:
       NXM, UNATT, IOERR, CSUM, FMT, NOATT, OPENERR, MEM, ARG, STEP,
       UNK, RO, INCOMP, STOP, TTIERR, TTOERR, EOF, REL, NOPARAM, ALATT,
       TIMER, SIGERR, TTYERR, SUB, NOFNC, UDIS, NORO, INVSW, MISVAL,
       2FARG, 2MARG, NXDEV, NXUN, NXREG, NXPAR, NEST, IERR, MTRLNT,
       LOST, TTMO, STALL, AFAIL.

    These values can be indicated by name or by their internal numeric
    value (not recommended).

    Interactions with ASSERT command and “DO –e”:
    DO –e		is equivalent to SET ON, which by itself it equivalent
                    to “SET ON; ON ERROR RETURN”.
    ASSERT		failure have several different actions:
    If error trapping is not enabled then AFAIL causes exit from the current
    do command file.
    If error trapping is enabled and an explicit “ON AFAIL” action is defined,
    then the specified action is performed.
    If error trapping is enabled and no “ON AFAIL” action is defined, then
    an AFAIL causes exit from the current do command file.

    Other related changes/extensions:
    •	The “!” command (execute a command on the local OS), now returns
            the command’s exit status as the status from the “!” command.
            This allows ON conditions to handle error status responses from
            OS commands and act as desired.
    •	Argument substitution has been extended for do command file
            execution.  The extended argument substitution include
            substitution of any program environment variable (referenced by
            %ENVVARNAME%) along with dynamic expansion of several pseudo
            environment variables:
    %DATE%	expands to a string of the form: yyyy/mm/dd   (i.e. 2011/01/23)
    %TIME%	expands to a string of the form: hh:mm:ss   (i.e. 17:23:44)
    %CTIME%	expands to a string of the form: www mmm dd hh:mm:ss yyyy
            (i.e. Mon Jan 24 08:22:33 2010)
    %ENVNAME%	expands to a string which has the value of the environment
            variable ENVNAME
2011-04-15 08:40:33 -07:00
Bob Supnik
a9fd3dd518 Notes For V3.8
The makefile now works for Linux and most Unix's. However, for Solaris
and MacOS, you must first export the OSTYPE environment variable:

> export OSTYPE
> make

Otherwise, you will get build errors.

1. New Features

1.1 3.8-0

1.1.1 SCP and Libraries

- BREAK, NOBREAK, and SHOW BREAK with no argument will set, clear, and
  show (respectively) a breakpoint at the current PC.

1.1.2 GRI

- Added support for the GRI-99 processor.

1.1.3 HP2100

- Added support for the BACI terminal interface.
- Added support for RTE OS/VMA/EMA, SIGNAL, VIS firmware extensions.

1.1.4 Nova

- Added support for 64KW memory (implemented in third-party CPU's).

1.1.5 PDP-11

- Added support for DC11, RC11, KE11A, KG11A.
- Added modem control support for DL11.
- Added ASCII character support for all 8b devices.

1.2 3.8-1

1.2.1 SCP and libraries

- Added capability to set line connection order for terminal multiplexers.

1.2.2 HP2100

- Added support for 12620A/12936A privileged interrupt fence.
- Added support for 12792C eight-channel asynchronous multiplexer.

1.3 3.8-2

1.3.1 SCP and libraries

- Added line history capability for *nix hosts.
- Added "SHOW SHOW" and "SHOW <dev> SHOW" commands.

1.3.2 1401

- Added "no rewind" option to magtape boot.

1.3.3 PDP-11

- Added RD32 support to RQ
- Added debug support to RL

1.3.4 PDP-8

- Added FPP support (many thanks to Rick Murphy for debugging the code)

1.3.5 VAX-11/780

- Added AUTORESTART switch support, and VMS REBOOT command support

2. Bugs Fixed

Please see the revision history on http://simh.trailing-edge.com or
in the source module sim_rev.h.
2011-04-15 08:36:09 -07:00
Bob Supnik
35eac703c3 Notes For V3.8
The makefile now works for Linux and most Unix's. However, for Solaris
and MacOS, you must first export the OSTYPE environment variable:

> export OSTYPE
> make

Otherwise, you will get build errors.

1. New Features

1.1 3.8-0

1.1.1 SCP and Libraries

- BREAK, NOBREAK, and SHOW BREAK with no argument will set, clear, and
  show (respectively) a breakpoint at the current PC.

1.1.2 GRI

- Added support for the GRI-99 processor.

1.1.3 HP2100

- Added support for the BACI terminal interface.
- Added support for RTE OS/VMA/EMA, SIGNAL, VIS firmware extensions.

1.1.4 Nova

- Added support for 64KW memory (implemented in third-party CPU's).

1.1.5 PDP-11

- Added support for DC11, RC11, KE11A, KG11A.
- Added modem control support for DL11.
- Added ASCII character support for all 8b devices.

1.2 3.8-1

1.2.1 SCP and libraries

- Added capability to set line connection order for terminal multiplexers.

1.2.2 HP2100

- Added support for 12620A/12936A privileged interrupt fence.
- Added support for 12792C eight-channel asynchronous multiplexer.

1.3 3.8-2

1.3.1 1401

- Added "no rewind" option to magtape boot.

1.3.2 PDP-11

- Added RD32 support to RQ
- Added debug support to RL

1.3.3 PDP-8

- Added FPP support (many thanks to Rick Murphy for debugging the code)

2. Bugs Fixed

Please see the revision history on http://simh.trailing-edge.com or
in the source module sim_rev.h.
2011-04-15 08:36:05 -07:00
Bob Supnik
9c4779c061 Notes For V3.8
The makefile now works for Linux and most Unix's. Howevr, for Solaris
and MacOS, you must first export the OSTYPE environment variable:

> export OSTYPE
> make

Otherwise, you will get build errors.

1. New Features

1.1 3.8-0

1.1.1 SCP and Libraries

- BREAK, NOBREAK, and SHOW BREAK with no argument will set, clear, and
  show (respectively) a breakpoint at the current PC.

1.1.2 GRI

- Added support for the GRI-99 processor.

1.1.3 HP2100

- Added support for the BACI terminal interface.
- Added support for RTE OS/VMA/EMA, SIGNAL, VIS firmware extensions.

1.1.4 Nova

- Added support for 64KW memory (implemented in third-party CPU's).

1.1.5 PDP-11

- Added support for DC11, RC11, KE11A, KG11A.
- Added modem control support for DL11.
- Added ASCII character support for all 8b devices.

1.2 3.8-1

1.2.1 SCP and libraries

- Added capability to set line connection order for terminal multiplexers.

1.2.2 HP2100

- Added support for 12620A/12936A privileged interrupt fence.
- Added support for 12792C eight-channel asynchronous multiplexer.

2. Bugs Fixed

Please see the revision history on http://simh.trailing-edge.com or
in the source module sim_rev.h.
2011-04-15 08:35:54 -07:00
Bob Supnik
59aa4a73b1 Notes For V3.8
The makefile now works for Linux and most Unix's. Howevr, for Solaris
and MacOS, you must first export the OSTYPE environment variable:

> export OSTYPE
> make

Otherwise, you will get build errors.

1. New Features

1.1 3.8-0

1.1.1 SCP and Libraries

- BREAK, NOBREAK, and SHOW BREAK with no argument will set, clear, and
  show (respectively) a breakpoint at the current PC.

1.2 GRI

- Added support for the GRI-99 processor.

1.3 HP2100

- Added support for the BACI terminal interface.
- Added support for RTE OS/VMA/EMA, SIGNAL, VIS firmware extensions.

1.4 Nova

- Added support for 64KW memory (implemented in third-party CPU's).

1.5 PDP-11

- Added support for DC11, RC11, KE11A, KG11A.
- Added modem control support for DL11.
- Added ASCII character support for all 8b devices.

2. Bugs Fixed

Please see the revision history on http://simh.trailing-edge.com or
in the source module sim_rev.h.
2011-04-15 08:35:43 -07:00
Bob Supnik
56a7d31770 Notes For V3.7
1. New Features

1.1 3.7-0

1.1.1 SCP

- Added SET THROTTLE and SET NOTHROTTLE commands to regulate simulator
  execution rate and host resource utilization.
- Added idle support (based on work by Mark Pizzolato).
- Added -e to control error processing in nested DO commands (from
  Dave Bryan).

1.1.2 HP2100

- Added Double Integer instructions, 1000-F CPU, and Floating Point
  Processor (from Dave Bryan).
- Added 2114 and 2115 CPUs, 12607B and 12578A DMA controllers, and
  21xx binary loader protection (from Dave Bryan).

1.1.3 Interdata

- Added SET IDLE and SET NOIDLE commands to idle the simulator in wait
  state.

1.1.4 PDP-11

- Added SET IDLE and SET NOIDLE commands to idle the simulator in wait
  state (WAIT instruction executed).
- Added TA11/TU60 cassette support.

1.1.5 PDP-8

- Added SET IDLE and SET NOIDLE commands to idle the simulator in wait
  state (keyboard poll loop or jump-to-self).
- Added TA8E/TU60 cassette support.

1.1.6 PDP-1

- Added support for 16-channel sequence break system.
- Added support for PDP-1D extended features and timesharing clock.
- Added support for Type 630 data communications subsystem.

1.1.6 PDP-4/7/9/15

- Added SET IDLE and SET NOIDLE commands to idle the simulator in wait
  state (keyboard poll loop or jump-to-self).

1.1.7 VAX, VAX780

- Added SET IDLE and SET NOIDLE commands to idle the simulator in wait
  state (more than 200 cycles at IPL's 0, 1, or 3 in kernel mode).

1.1.8 PDP-10

- Added SET IDLE and SET NOIDLE commands to idle the simulator in wait
  state (operating system dependent).
- Added CD20 (CD11) support.

2. Bugs Fixed

Please see the revision history on http://simh.trailing-edge.com or
in the source module sim_rev.h.
2011-04-15 08:35:37 -07:00
Bob Supnik
6149cc7e06 Notes For V3.7
1. New Features

1.1 3.7-0

1.1.1 SCP

- Added SET THROTTLE and SET NOTHROTTLE commands to regulate simulator
  execution rate and host resource utilization.
- Added idle support (based on work by Mark Pizzolato).
- Added -e to control error processing in nested DO commands (from
  Dave Bryan).

1.1.2 HP2100

- Added Double Integer instructions, 1000-F CPU, and Floating Point
  Processor (from Dave Bryan).
- Added 2114 and 2115 CPUs, 12607B and 12578A DMA controllers, and
  21xx binary loader protection (from Dave Bryan).

1.1.3 Interdata

- Added SET IDLE and SET NOIDLE commands to idle the simulator in wait
  state.

1.1.4 PDP-11

- Added SET IDLE and SET NOIDLE commands to idle the simulator in wait
  state (WAIT instruction executed).
- Added TA11/TU60 cassette support.

1.1.5 PDP-8

- Added SET IDLE and SET NOIDLE commands to idle the simulator in wait
  state (keyboard poll loop or jump-to-self).
- Added TA8E/TU60 cassette support.

1.1.6 PDP-1

- Added support for 16-channel sequence break system.
- Added support for PDP-1D extended features and timesharing clock.
- Added support for Type 630 data communications subsystem.

1.1.6 PDP-4/7/9/15

- Added SET IDLE and SET NOIDLE commands to idle the simulator in wait
  state (keyboard poll loop or jump-to-self).

1.1.7 VAX, VAX780

- Added SET IDLE and SET NOIDLE commands to idle the simulator in wait
  state (more than 200 cycles at IPL's 0, 1, or 3 in kernel mode).

1.1.8 PDP-10

- Added SET IDLE and SET NOIDLE commands to idle the simulator in wait
  state (operating system dependent).
- Added CD20 (CD11) support.

2. Bugs Fixed

Please see the revision history on http://simh.trailing-edge.com or
in the source module sim_rev.h.
2011-04-15 08:35:32 -07:00
Bob Supnik
53d02f7fa7 Notes For V3.7-0
1. New Features

1.1 3.7-0

1.1.1 SCP

- Added SET THROTTLE and SET NOTHROTTLE commands to regulate simulator
  execution rate and host resource utilization.
- Added idle support (based on work by Mark Pizzolato).
- Added -e to control error processing in nested DO commands (from
  Dave Bryan).

1.1.2 HP2100

- Added Double Integer instructions, 1000-F CPU, and Floating Point
  Processor (from Dave Bryan).
- Added 2114 and 2115 CPUs, 12607B and 12578A DMA controllers, and
  21xx binary loader protection (from Dave Bryan).

1.1.3 Interdata

- Added SET IDLE and SET NOIDLE commands to idle the simulator in wait
  state.

1.1.4 PDP-11

- Added SET IDLE and SET NOIDLE commands to idle the simulator in wait
  state (WAIT instruction executed).
- Added TA11/TU60 cassette support.

1.1.5 PDP-8

- Added SET IDLE and SET NOIDLE commands to idle the simulator in wait
  state (keyboard poll loop or jump-to-self).
- Added TA8E/TU60 cassette support.

1.1.6 PDP-1

- Added support for 16-channel sequence break system.
- Added support for PDP-1D extended features and timesharing clock.
- Added support for Type 630 data communications subsystem.

1.1.6 PDP-4/7/9/15

- Added SET IDLE and SET NOIDLE commands to idle the simulator in wait
  state (keyboard poll loop or jump-to-self).

1.1.7 VAX, VAX780

- Added SET IDLE and SET NOIDLE commands to idle the simulator in wait
  state (more than 200 cycles at IPL's 0, 1, or 3 in kernel mode).

1.1.8 PDP-10

- Added SET IDLE and SET NOIDLE commands to idle the simulator in wait
  state (operating system dependent).
- Added CD20 (CD11) support.

2. Bugs Fixed

Please see the revision history on http://simh.trailing-edge.com or
in the source module sim_rev.h.
2011-04-15 08:35:25 -07:00
Bob Supnik
dc871fa631 Notes For V3.6-0
The save/restore format has been updated to improve its reliability.
As a result, save files prior to release 3.0 are no longer supported.

The text documentation files are obsolete and are no longer included
with the distribution.  Up-to-date PDF documentation files are
available on the SimH web site.

1. New Features

1.1 3.6-0

1.1.1 Most magnetic tapes

- Added support for limiting tape capacity to a particular size in MB

1.1.2 IBM 7090/7094

- First release

1.1.3 VAX-11/780

- Added FLOAD command, loads system file from console floppy disk

1.1.4 VAX, VAX-11/780, and PDP-11

- Added card reader support (from John Dundas)

1.1.5 PDP-11

- Added instruction history

2. Bugs Fixed

Please see the revision history on http://simh.trailing-edge.com or
in the source module sim_rev.h.
2011-04-15 08:35:15 -07:00