1
0
mirror of https://github.com/simh/simh.git synced 2026-01-14 07:39:29 +00:00

4898 Commits

Author SHA1 Message Date
Lars Brinkhoff
b1389741e5 VAX: Add UW device to 8600 and 8200.
The VAXstation 100 "unibus window" interface board should work with
any Unibus VAX.
2024-04-04 17:34:38 -10:00
Mark Pizzolato
464e1f9ef4 Unibus VAXen: Run working diagnostic supervisor Privileged Architecture tests
- The VAX 11/780 runs the VAX Diagnostic Supervisor the EVKAE (Privilege
   Architecture Exercisor) tests cleanly.
   All other Unibus VAXen execute different instructions in EVKAE
   Test 8 (KERNEL STACK NOT VALID) subtest 2 when compared to the 11/780.
   On these processors a REI instruction with reserved operands is invoked and
   this causes a failure of this subtest for these processors.
   We avoid this diagnostic test that fails.
- The VAX 8200 has some issues with the VAX Diagnostic Supervisor.
   Specifically, the EVKAA (Hardware Core Instruction) test uses the processor
   interval timer to measure the passage of time and expects the interrupts
   that are generated to occur at IPL 24 (0x18).  Meanwhile, the actual
   hardware is documented to generate Interval Timer interrupts at
   IPL 22 (0x16).  EVKAA fails when interrupts occur at IPL 22(0x16).
   If the processor is is built with Interval Timer interrupts at IPL 24(0x18),
   then EVKAA passes, but the EVKAE (Privileged Architecture Exercisor)
   Interval Timer test fails since the interval timer interrupts occur at
   IPL 24(0x18) and not at IPL 22(0x16).
   Once operating systems are running, operating system behavior will
   generally be unaffected if Interval Timer interrupts occur at a higher
   IPL than the OS expects, so the VAX 8200 is built that way and we avoid
   the diagnostic that fails.
- The DEC supplied instruction diagnostics actually time the execution of
   instructions being tested using the interval timer and the time of day
   clock.  When instructions take too long, they fail the test.  The
   VAX 11/730 simulator actually fails some of these instruction tests when
   run at precisely .3 the instruction rate of the VAX/11 780.  We therefore
   adjust the nocalibrate execution rate to 320K vs the VAX 11/780 running
   at 1000K.
2024-04-04 10:19:03 -10:00
Mark Pizzolato
c6de567cf6 All VAXen: Add -O option to SET HISTORY logging to file
- Extend maximum instruction history to 2 million
- -O option in history logging to a file allows only capturing at most
   the last n instructions written to a log file.  Otherwise, the
   default is to log all executed instructions to the log file which will
   consume prodigious amounts of storage.
2024-04-04 10:10:47 -10:00
Mark Pizzolato
81e2719d90 TIMER: Cleanup Inconsistencies and Throttling and IDLE activities
- Make time at sim> prompt consistent when in nocalibrate mode.
- Disable asynch operations when in nocalibrate mode so that all events
   occur consistently.
- Make sure that all throttling modes produce consistent behavior
  related to all timing activities including clock ticks and TMXR port
  speed timing.
- Expose all timer and throttling state variables via simh REGisters
- Only allow throttling to start execution one time.  Throttling can't
   be changed once instruction execution has started.
- Clarification of SHOW CLOCK variable units
- Avoid competing gratuitous keyboard polls with simulators
- Properly enable catchup ticks
- Fix second boot while idling
- Improve calibration while idling
- Report complete timer state when impossible timer conditions exist
   that will cause a simulator abort.
- Leave memory 0 after pre-calibration instruction execution rate.
2024-04-04 10:09:57 -10:00
Mark Pizzolato
b404ccd050 SCP: Make debug timestamps consistent when in NOCALIBRATE mode 2024-04-04 09:56:18 -10:00
Mark Pizzolato
b6f02f3e0c APPVEYOR: Properly avoid saving binaries during Pull Request CI build 2024-03-29 08:18:37 -10:00
ken rector
4692068925 sigma: Implement CM (Chaining Modifier) flag to IOP simulation in sigma_io.c 2024-03-27 21:29:23 -07:00
B. Scott Michel
f7dfefee72 SCP: sprint_val comma bug
- Fix comma separator code segmentation fault: "ndigit - 3" can become a
  very large unsigned number for ndigit < 3.
2024-03-21 13:55:52 -10:00
Peter Schorn
eab060315e AltairZ80: Updated docs to include latest devices 2024-03-20 13:52:58 -10:00
Mark Pizzolato
0ff0d0f8a3 SCP: Enhance EXAMINE address range output
1 - Summarize repeated memory contents so that the memory range with a
      given value only emits 2 lines of output
2 - Allow ^C (SIGINT) to potentially abort long running EXAMINE output
2024-03-20 13:46:14 -10:00
ken rector
93fe10c1e2 SIGMA: Fix three kinds of error in I/O modules.
Discovered while getting standalone System Exerciser to run:

IO: DVT_NOTDEV macro incorrect, Device mapping algorithm creates false
      dispatch points.
      This mapped Multi Unit Controller and Single Unit Controller to same
      device.
DP, DP, MT, RAD:  Test for non-existent device returns wrong status.
DP, DK, MT: TIO status should return non-operational for unattached device.
2024-03-20 09:13:38 -10:00
Patrick Linstruth
b523caac82 AltairZ80: Enable interrupt event after BOOT 2024-03-20 08:51:36 -10:00
Richard Cornwell
c856f48634 SIM_CARD: Fixed issues caused by last commit to sim_card.c 2024-03-20 08:50:57 -10:00
Patrick Linstruth
57f055b34f AltairZ80: Adds SET CPU RESIZEMEMORY and other
Changing the CPU type or MEMORY size/configuration causes memory
resources mapped by other devices to be removed. This is not made
clear by "HELP CPU" and the user has no feedback that this is
happening.

This PR does the following:

1) HELP SET CPU shows that SET CPU MEMORY requires a value.
2) Feedback is provided if the value is omitted or not properly formatted.
3) Unmapped memory resources caused by a SET CPU command are displayed
   on the SIMH console.
4) Adds a SET CPU RESIZEMEMORY command that resizes system memory
   without unmapping other device memory resources.
2024-03-20 08:44:46 -10:00
Patrick Linstruth
d19d3f9b8d ALTAIRZ80: Adds JAIR devices to simulator
Josh's Altair/IMSAI Replacement (JAIR) is a single board computer
(SBC) for the S100 bus. I created this device to assist a friend
with getting IMP and CBBS working on his JAIR. Without having a
JAIR myself, AltairZ80 to the rescue!

The following devices are added:

JAIR   - The main JAIR board I/O and ROM
JAIRS0 - Serial Port 0 (COM1)
JAIRS1 - Serial Port 1 (COM2)
JAIRP  - Parallel Port

This was a bit challenging because the JAIR uses an on-board SD
card with FAT file system to hold its BIOS and CP/M disk images.
The ATTACH command is used to mount SD card images to the
simulator. The simulator emulates the SD card interface for
read/writing SD card sectors. These images are easily mounted on
a Mac making moving files around easy. I do not know about Windows.
These same images can be written to an SD card and used with real
JAIR hardware, which may be useful for JAIR owners.

The serial and parallel ports fully support TMXR. Host serial ports
and sockets may be attached to these devices.

I am working on a GitHub repository containing an SD card image and
init script that will boot CP/M 2.2 on the JAIR simulator.

Is this device one that should be added to AltairZ80?
2024-03-20 08:38:08 -10:00
Patrick Linstruth
ada4b67d07 ALTAIRZ80: Add 1K RAM to SOL20 device
The Sol-20 provides 1K RAM at C800. This was discovered to be missing
when issuing a "SET CPU 24K" command. Without the CPU providing RAM
at C800, the Sol-20 would not function. This PR corrects the problem
by having the SOL20 device provide its own 1K RAM at C800.
2024-03-20 08:24:05 -10:00
Mark Pizzolato
779ab3a570 ALTAIRZ80: Add support to build m68k code on Itanium under VMS 2024-01-27 13:43:24 -10:00
Mark Pizzolato
01e66b0818 ALTAIRZ80: Properly check for failed return from time() API 2024-01-27 13:39:12 -10:00
Mark Pizzolato
493a58b4bf ALTAIRZ80: Avoid use of possible keyword "readonly" on some compilers 2024-01-27 13:38:03 -10:00
Mark Pizzolato
aa8f75fc48 SWTP6800: Correct type of value returned by sim_load routine 2024-01-27 10:08:10 -10:00
Mark Pizzolato
07b3741ea4 ID16 & ID32: Correct type of values returned by lpt_spc and lpt_vfu routines 2024-01-27 10:06:41 -10:00
Paul Koning
80a5ba7efe SOCKET: Support FreeBSD change of SD_* symbolx from defines to an enum 2024-01-27 09:51:25 -10:00
Mark Pizzolato
da37924c8c BESM6: Fix new compiler found issues 2024-01-17 16:38:42 -10:00
Mark Pizzolato
720531073a DISK: Avoid use of possible keyword "readonly" on some compilers
DEC C (HP C) has readonly as a keyword.
2024-01-15 06:07:31 -10:00
Mark Pizzolato
656e489ee2 TIMER: Add VMS support for sim_os_process_cpu_time 2024-01-15 06:07:31 -10:00
Mark Pizzolato
f4089b330e SCP: Add host processor core and thread info to SHOW VERSION output 2024-01-14 13:04:31 -10:00
Mark Pizzolato
fca6bace44 SCP: Add asynchronous and processed event counters
- Add abort if sim_aio_activate is called when running with ASYNC disabled
2024-01-09 06:07:33 -10:00
Mark Pizzolato
acafbac518 FIO: Add Files/Lines/Size totals in CheckSourceCode output 2024-01-09 05:55:04 -10:00
David Gesswein
5d4e7edd2b PDP8: Fix missing clock pre-calibration instruction set due to typo 2024-01-09 05:55:04 -10:00
Mark Pizzolato
4dfb3508bf ETHER: Make sure SET NOASYNC is effective for Ethernet devices
- Make sure that asynchronous mode can't be changed if devices using
   sim_ether are already attached.
- Add missing DEV_ETHER type flag for the only sim_ether using device
   that didn't already have it.
2024-01-06 14:55:06 -10:00
Mark Pizzolato
54f55777f5 SCP: Minor message text and formatting cleanup 2024-01-05 09:50:48 -10:00
Mark Pizzolato
0a79762388 SCP: Remove remnants of previously removed async TMXR pieces 2024-01-05 09:09:22 -10:00
Mark Pizzolato
c8cb7a875e TIMER: Provide API to determine host OS Process CPU times 2024-01-02 18:24:00 -10:00
Richard Cornwell
e8cf41bd0e I7000: Group update for IBM 7000 series simulators.
I7010 updated to pass diagnostics.
        I7080 updated to pass diagnostics.
        I7090 updated to better pass 9IOT
              updated to allow Stress and other applications to run better.
        Updated card punch to allow input of card decks for overpunching.
2023-12-31 12:16:27 -10:00
Richard Cornwell
4c3d2a43e7 KA10: Fix RH10/20 to allow access to registers during transfer. 2023-12-31 09:12:48 -10:00
Richard Cornwell
8093ee9070 KA10: Fix random hang on DP disk drives. 2023-12-31 09:12:48 -10:00
Richard Cornwell
be86e3cdcd KA10: Poll quicker for Chaosnet packet when there's traffic. 2023-12-31 09:10:13 -10:00
Richard Cornwell
cef873f6f3 B5500: Make sure Lines per page gets initialized properly. 2023-12-31 09:10:13 -10:00
Mark Pizzolato
6a7cfce9fd 3B2: Avoid compiler warning when building 64bit targets 2023-12-30 13:33:04 -10:00
Mark Pizzolato
d8e0e04dc8 CONSOLE: Show keyboard map info for Ascii FS character as ^\ 2023-12-30 13:31:31 -10:00
Paul Koning
ee34e29511 PDP11: fix disassembly of reg,src instructions
This corrects the disassembly of MUL, DIV, ASH, and ASHC so it works
correctly when the register is not R0.
2023-12-18 10:34:59 -10:00
Mark Pizzolato
a8ff8110e4 FIO: Fix sim_get_filelist potential problem when directory contents change
- Avoid inconsistencies in the internal cache when directory contents change
- Cleanup FIO testing and add tests for new filename comparison routine
2023-12-17 10:27:53 -10:00
Mark Pizzolato
197ff62587 SCP: Leverage a memory file while producing examine output 2023-12-06 09:49:05 -10:00
B. Scott Michel
6d11ae4e6d SOCK: Properly NUL terminate CIDR ACL check string while parsing 2023-12-06 08:32:50 -10:00
Mark Pizzolato
f4f302982e TAPE: Fix potential buffer overflow when staging an in memory ANSI tape image 2023-12-04 10:57:52 -10:00
Mark Pizzolato
6d376b2fd9 ALL simulators with instruction history support: Minor history enhancements
- Issue reasonable error message explaining invalid SET CPU HISTORY=n input
- Let SIGINT (^C) abort SHOW HISTORY output
2023-12-04 10:57:31 -10:00
Christian Gauger-Cosgrove
42d6f414fc PDP11, VAX: Add MSCP RD33 and various SDI ESE SSD disk types to RQ devices 2023-11-16 11:33:52 -10:00
Mark Pizzolato
2c0b465275 VAX: Explain idling sim_interval decrement
- Explain reasoning for idle decrement
- Fix TODR debug output for all simulators with a TODR register
2023-11-16 11:33:52 -10:00
Lars Brinkhoff
04b2795982 PDP11, VAX, KS10: Speed up Chaosnet polling when there is traffic. 2023-11-16 11:19:38 -10:00
Mark Pizzolato
810ec6300d SCP: Add visible countdown for the SLEEP command 2023-11-16 09:47:03 -10:00