Commit graph

71 commits

Author SHA1 Message Date
Timothe Litt
0e939d29e8 PDP-10 update
Implement keep-alive and os-requested reload functions of FE.
Preserve HW config flags during (re-) boot.
Allow IPL30 device to interrupt.
Add 18-bit DMA functions.
Implement DMA to/from I/O space.
Optimize DMA memory mapping - once per page, not once per byte.
Teach SHOW IO to report vectors and BR levels as well as CSR addresses.
Add DUP and KDP to Autoconfigure table.
2013-07-04 23:56:24 -04:00
Timothe Litt
c3b1d9abdd Boot ROMs, again
Make the boot ROMs a bit easier to maintain.

Add assertion that the two variants of each are the same size.

Add offsets to the comments so it's easier to see where jumps are going.
2013-06-19 06:05:57 -04:00
Timothe Litt
65ea457d5b PDP-10 tape boot rom update
The boot rom for tape didn't handle a tapes coming on-line, didn't take
the RH/TM/addresses from the FE.  The launcher also didn't handle
autoboot.

Now it does, with the restriction that ITS will only talk to UBA1.
2013-06-19 05:49:07 -04:00
Timothe Litt
2efb0a1d65 Add -A to boot, Document & init FE comm area
The KS10's 8080 interfaces to the OS thru a small communications region.

The documentation is rather lacking, and the 8080 microcode is difficult
to follow.  Many years ago (while still at DEC), I worked it out, and
put definitions into TOPS-10.  They're now here, too.

Also, properly initialize the KLINIK communication words and the
keep-alive word.
2013-06-18 22:42:48 -04:00
Timothe Litt
6076a48f25 PDP-10 RP redux
The KS front end microcode actually reads the wrong alternate HOM block.
Teach the bootstrap to try the wrong one (in case someone counts on
this), but also the correct block.

Implement boot -A to emulate an autoboot - the boot that happens on
power-on or when the boot switch is pressed.  No questions, just boots.
2013-06-18 21:14:32 -04:00
Timothe Litt
c7c5bdead0 PDP-10 RP attach/detach/boot issues
The pdp10_rp emulator had several problems:

1) disks are not recognized properly when they come on-line.  Same issue
as tapes, but not the same code paths.

2) The bootstrap code did not wait for disks to become ready.

3) The bootstrap code did not take the RH CSR address from the front end
(device).  Hence, would not boot if the device address was changed.

4) The bootstrap looked for the second HOM block at block 10 of the
disk.  Unfortunately, it read block 8.  10 is decimal; you need all 10
(decimal) fingers.

Fixes:
1) Implement spin-up delay.  A device that is attached/re-attached comes
on-line a second later.  Replace tests for 'attached' with tests for
up-to-speed.

2) Wait for the drive to become ready after issuing a controller clear.
When it's ready, write the attention summary register to prevent the
un-tended on-line interrupt for looking like an error.

3) Read the RHBASE from main memory instead of storing it there.  Teach
the bootstrap command to put it in memory from the dib, as it did with
the unit.

4) Read the correct block.

FILSER now gets on-line and off-line interrupts.
2013-06-18 16:27:41 -04:00
Timothe Litt
d92fd22d7f RH11/TM0x issues: attach/detach
Tape on-line interrupts weren't happening when a tape was attached or
replace on the TH11/TM0x emulation.

The OS never saw a MOL transition in the case of replacement, where the
detach is implicit.

This patch defers reporting MOL for 100 msec; faster than a human can
change tapes, but long enough for an OS to see the 1->0->1 transition of
MOL.

Further, checks for UNIT_ATT should be for MOL.

This makes GALAXY automatic tape recognition work.
2013-06-17 18:11:05 -04:00
Mark Pizzolato
651780c481 Remove stray tab characters which crept in over time 2013-06-03 06:29:01 -07:00
Mark Pizzolato
f7330bc09d remote compiler warning 2013-06-02 17:07:21 -07:00
Mark Pizzolato
e2b796273a Merge branch 'master' of github.com:simh/simh 2013-05-31 09:41:36 -07:00
Mark Pizzolato
bc49f6b78a Fix for Unibus word DMA from Rob Jarratt 2013-05-31 04:16:42 -07:00
Mark Pizzolato
39c794292d Changed some spaces and indentations 2013-05-29 12:48:19 -07:00
Timothe Litt
3e25042017 Change some tabs to spaces 2013-05-29 14:48:43 -04:00
Timothe Litt
5f26e6011a Add set cpu serial for KS
Allow CPU serial number to be set for KS cpus.

With multiple instances running about, this prevents a lot of confusion,
especially in the error logs.
2013-05-29 13:59:42 -04:00
Timothe Litt
b80fa0ae50 Revert "Add set serial to KS cpu"
This reverts commit 611b7632c9.
2013-05-29 13:52:29 -04:00
Timothe Litt
611b7632c9 Add set serial to KS cpu
With multiple instances, error logging gets confusing when every CPU has
the same serial number.

This makes the CPU serial number settable.  If not set, the old defaults
apply.
2013-05-29 13:50:56 -04:00
Timothe Litt
f5de2f4d22 LP20 emulation was overwriting existing files
When an LP20 is attached to an existing file, the file is opened in
update mode.  Since the initial file position is zero, any existing
output is over-written.  This is not intuitive.

This edit makes the LP20 seek to EOF on attach.

N.B. Other devices may have cousin issues.
2013-05-29 13:43:12 -04:00
Mark Pizzolato
89bd58a6fa Addition of DUP11 simulation to all Unibus simulators (PDP11, PDP10, and all Unibus VAXen) 2013-05-27 16:24:18 -07:00
Mark Pizzolato
c93658f241 Avoid bug in the HP PA-RISC C compiler. (from Mikulas Patocka)
In 32-bit mode, the compiler truncates constants to 32-bit.
We need LL suffix to avoid the truncation.

This behavior is contrary to the C 99 standard which defines
that constants that do not fit into long and unsigned long shall
have long long type.
2013-04-05 12:34:37 -07:00
Mark Pizzolato
d5ca542102 Changed use of compile #defines which start with a _ character to not do this since defined symbols starting with _ are reserved to local compiler/runtime implementations in the C language. This addresses issue #32 2013-03-12 11:07:58 -07:00
Mark Pizzolato
374b13f946 Fixes to infinite loop issues found by Mikulas Patocka 2013-03-05 11:40:33 -08:00
Mark Pizzolato
8f851d2cbc Merge branch 'master' into AsyncTmxr 2013-01-22 17:16:53 -08:00
Mark Pizzolato
34d2e482d3 Changed the PDP10 auto configuration process to configure the traditional PDP10 unibus devices to the fixed addresses they historically had. 2013-01-22 17:14:33 -08:00
Mark Pizzolato
71fcfacafc Added calls to sim_register_clock_unit for simulators with clock devices 2013-01-22 16:07:23 -08:00
Mark Pizzolato
83c1d80194 Merge branch 'master' into AsyncTmxr
Conflicts merged and missing changes in new modules added as needed for clock co-scheduling.
2013-01-21 16:52:42 -08:00
Mark Pizzolato
95033cee15 Declare the console port input and output polling units for most simulators to potentially allow asynchronous console I/O. 2013-01-21 11:31:29 -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
6a5278ec3c Removed the pdp11_dmc from the PDP10 simulator since that combination of hardware was never a legitimate one. 2013-01-05 15:33:59 -08:00
Mark Pizzolato
8395db0573 Fixed the auto configure IO page base address 2013-01-05 15:11:36 -08:00
Mark Pizzolato
b1d306cff8 Fixed devices missed in Auto Configuration for PDP11 simulator. CLK issue initially reported by Matt Burke 2013-01-01 05:54:53 -08:00
Mark Pizzolato
bdcfe994e0 Auto configure documentation and updates for PDP10 system 2012-12-29 07:57:57 -08:00
Mark Pizzolato
2471f3fc73 Convert PDP10 unibus devices to auto configure 2012-12-28 12:27:05 -08:00
Mark Pizzolato
3bcb6c1f3d Merge branch 'master' into AutoConfigure 2012-12-23 07:22:14 -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
7bed091134 Reworked Auto Configure for all Qbus/Unibus devices to have their device address settings table driven from the auto configure code rather than statically defined in many per cpu model include files.
Fixed auto configure bugs which didn't allow Fixed CSR Addresses or Fixed Vectors to be set using the auto configure information.
Fixed display of address and vectors to indicate that the assigned address and/or vector is in the floating set.
Added extended definitions to the auto configure table to reflect all known potential static and floating and static addresses as of VMS V5.5-2
Changed the name of the VAX 11/780 console floppy device name to RXC from RX (which collides with a Unibus name for the RX11).
2012-12-20 13:58:11 -08:00
Mark Pizzolato
50cf91d441 Merge branch 'SerialMux' and compiler suggested cleanup 2012-12-18 09:52:14 -08:00
Mark Pizzolato
b466bdc9c6 Compiler warning cleanup 2012-12-13 13:41:57 -08:00
Mark Pizzolato
a3b0dc38fd Change the semantics of sim_is_active to return a t_bool (which was 98% of how it was used), and added new sim_activate_time to return the time a unit will be activated (the value previously returned). This affected a handful of used of sim_is_active in device implementations which were adjusted to use the sim_activate_time API. 2012-12-12 11:01:00 -08:00
Mark Pizzolato
cb659d6c83 Fix to properly report device attention when a manual detach operation is performed (from Bob Supnik) 2012-12-08 14:30:00 -08:00
Mark Pizzolato
0f8e6cfe95 Cleanup for warning messages produced by the clang C compiler. Mostly adding parentheses in conditional assignments and clarification parentheses in complex boolean expressions. 2012-04-29 11:59:44 -07:00
Mark Pizzolato
57008bb8f5 Cleaned up nested comments 2012-04-27 12:36:03 -07:00
Mark Pizzolato
db9bf32112 Merge of Bob's simh-v3.9-0-rc3 2012-04-23 11:50:43 -07:00
Mark Pizzolato
fffad7c20e Merge changes from v3.9-0 rc1 2012-03-19 16:05:24 -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
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
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
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
3cb7c60d5d 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:40 -07:00