1
0
mirror of https://github.com/simh/simh.git synced 2026-01-13 15:27:14 +00:00

4860 Commits

Author SHA1 Message Date
Patrick Linstruth
94de4da6a6 AltairZ80 SOL20: Minor corrections and formatting
While working on the AltairZ80 documentation, I found some problems
with the SOL20 registers and fixed some formatting issues.
Added static and "vdm1_" prefix to "charset" variable in s100_vdm1.c
2023-03-29 14:20:53 -10:00
Patrick Linstruth
796a3e1abc AltairZ80: Adds SOL20 and VDM1 devices
This PR adds support for the Processor Technology VDM-1 display adapter and Sol-20 computer system. The VDM-1 was integrated into the Sol-20 but has been separated out into its own device.

This PR adds the following devices to the AltairZ80 simulator:

VDM1 - Processor Technology VDM-1 display adapter
SOL20 - Processor Technology SOL20 with SOLOS ROMs
SOL20K - SOL20 Keyboard (callback from VDM1)
SOL20T - SOL20 Tape (reads/writes cassette file images)
SOL20S - SOL20 Serial Port (TMXR capable)
SOL20P - SOL20 Printer Port (TMXR capable)
2023-03-29 14:19:51 -10:00
ken rector
498aedefd5 sigma: Correct recognition of pending DP seek interrupt.
This corrects an error that caused SIO reject when SIO occured before
a pending seek interrupt on a different device.
 - Move the interrupt pending test from sigma_io.c into each device.
 - Make the sigma_dp.c test a special case that looks for pending
   seek interrupts.
2023-03-21 17:13:26 -07:00
ken rector
929c8f68dc sigma: COC device, committed two fixes for sigma_coc.c.
sigma: COC device, add LNORDER command option
sigma: COC device, handle transmit long, stop transmit and receive break
2023-03-20 08:57:38 -10:00
ken rector
85b7bfed99 SDS: Reset CR DEVICE cr_eor on disconnect. Caused algol compiler to hang. 2023-03-20 08:57:30 -10:00
Mark Pizzolato
98ea251f0f SCP: Add .editorconfig that reflects the project line ending and tab standars 2023-03-10 15:32:53 -10:00
Mark Pizzolato
829d696c5e Various Simulators: Changed line endings on accessory text files to CRLF
In following simh project standards
2023-03-10 15:32:06 -10:00
Mark Pizzolato
041c0244c9 AltairZ80: Set line endings to CRLF for consistency, remove tabs
Project standard source code has tabs converted to spaces and CRLF line
endings
2023-03-04 17:51:49 -10:00
Patrick Linstruth
1cafc77ed7 AltairZ80: Add sim_clock_precalibrate_commands
Used to initialize SCP timers to prevent problems during simulator startup
when THROTTLE is being used.

/*
 * This sequence of instructions is a mix that mimics
 * a resonable instruction set that is a close estimate
 * to the calibrated result.
 */

static const char *cpu_clock_precalibrate_commands[] = {
    "-m 100 LXI H,200H",
    "-m 103 MVI B,0",
    "-m 105 DCR B",
    "-m 106 MOV M,B",
    "-m 107 INX H",
    "-m 108 JNZ 0105H",
    "-m 10B JMP 0100H",
    "PC 100",
    NULL};
2023-03-04 17:51:49 -10:00
Patrick Linstruth
33ff3e207c AltairZ80: Correct strange line endings in mmd.c
No other changes.
2023-03-04 17:51:49 -10:00
Mark Pizzolato
c7d01273df SCP: Add CheckSourceCode facility to validate simh project standards 2023-03-04 17:51:49 -10:00
Mark Pizzolato
c333a5f886 BESM6: Removed irrelevant include files 2023-03-04 17:51:49 -10:00
Mark Pizzolato
194b313179 SCP: Fold up include files used by all simulators
- Add common system includes used in may places which are allowed
  and thus added directly in sim_defs.h.
- Separate completely private system data structures and system APIs
  for use only by SCP library routines into sim_scp_private.h.
2023-03-04 17:51:49 -10:00
Mark Pizzolato
bdf28cf7f8 SCP: Remove switches from startup argv list when they are digested
export commonly used set_dev_enbdis API in scp.h
2023-03-04 17:51:49 -10:00
Mark Pizzolato
2c9dce6cf2 Various simulators: Set line endings to CRLF for consistency, remove stray tabs
Project standard source code has tabs converted to spaces and CRLF line
endings
2023-03-04 17:49:37 -10:00
Mark Pizzolato
8538161757 PDP11: Remove stray tab characters in DZ, MB & TV 2023-03-04 14:26:04 -10:00
Mark Pizzolato
0429c25ae7 slirp_glue: Set line endings to CRLF for consistency with other simh source 2023-03-04 14:26:04 -10:00
Mark Pizzolato
5483ffbbbd PDP11 and all other simulators: Issue meaningful messages for bad boot args 2023-02-09 15:16:59 -10:00
Mark Pizzolato
5d779942d9 VAXen without console ROMs: Issue meaningful messages for bad boot arguments 2023-02-09 15:16:13 -10:00
Mark Pizzolato
0d0d4a0525 DISK: Issue message, don't abort when container identifies as a CDROM but isn't 2023-02-09 12:10:17 -10:00
Mark Pizzolato
8f963ac5ae 3B2: Fix inconsistent 64bit type name reference 2023-02-07 06:06:59 -10:00
Howard M. Harte
f2431b9214 AltairZ80: ADCS6: Fix uninitialized unit structure
Proper initialization of the ADCS6 unit data structure depended on the
ADCS6 device being enabled.  In cases where the ADCS6 unit was not
enabled, non-debug builds may crash on some host platforms depending on
compiler/memory layout.
2023-02-07 06:05:32 -10:00
Mark Pizzolato
dc792c2731 VAXen with console ROMs: Issue meaningful message for invalid boot command args 2023-02-06 00:02:35 -10:00
Mark Pizzolato
08a7dc8417 TMXR: Migrate SEND & EXPECT structures out of TMLN structure
The TMLN structure now has pointers to the line's SEND and EXPECT
structures which are dynamically allocated at attach time.
2023-02-05 05:39:04 -10:00
Mark Pizzolato
be4552c509 DISK: Fix read only container v0 attach logic SCSI<->MSCP size adjustment 2023-02-04 20:21:20 -10:00
Mark Pizzolato
2e50ada71f FIO: Fix corner case found in sim_relative_path 2023-02-03 09:32:27 -10:00
Mark Pizzolato
9cc538dc7c VAX Unibus Systems: Optionally run diagnostics with uncalibrated clock
- uncalibrated clock mode executes at a precisely specified instruction
  rate relative to pseudo wall clock time independent of the host
  computer's speed or other loads on the host system.
- Provide additional failure state if/when diagnostics fail.
2023-01-31 02:47:31 -10:00
Ken Rector
7c3b293ecf SDS: Fix CR device to properly update status after a disconnect EOM
Experimentation with the SDS 9 Series Algol compiler found a problem in
the card reader.

The Algol card input function reads a complete card with the usual EOM
and WIM loop followed by a disconnect EOM.

A final service is requested after the last column is read to signal
that the card has passed through the reader. If the disconnect EOM
occurs before this service, it cancels it and shuts down the request
as it ought to.  However, the disconnect EOM does not reset the status
READING flag and a subsequent Reader Ready Test fails and loops waiting
for the disconnected reader to become ready.

This change fixes the disconnect EOM case to reset the uptr->STATUS and
end of record flag, cr_eor.
2023-01-30 05:22:42 -10:00
Mark Pizzolato
389199ef71 FRONTPANELTEST: Update to latest sim_frontpanel API change
- Run simulator with clock calibration disabled so that execution rate
  is 1 Mips which the vax ROM diags (the Power up self test) expects
  when running from ROM.
- Record test information in the debug file when debugging.
2023-01-29 16:03:01 -10:00
Mark Pizzolato
f6dafeeed9 FRONTPANEL: Update API and cleanup deadlock and other bugs
- Add separate mutex serializing debug writes
- Change panel destructor to clear panel on successful destruction.
- Debug status info during shutdown/destruction.
- Request number tracking provided in request and response debug output.
- All relevant thread ids recorded to help debug deadlocks.
- Add debug abort interface to close debug file.
- Reliably detect transitions to HALT state
- When in the middle of a transition to HALT state, avoid calling any
  display callback to avoid deadlocks which can occur if the callback
  invokes a subsequent dialog with the simulator.
- More robustly capture the reason for the simulator HALTing.
- Avoid register list updates in the callback thread unless in the HALT state.
2023-01-29 15:59:59 -10:00
Mark Pizzolato
ea07a8e260 CONSOLE: Cleanup Remote Console command interactions
- Fix potential buffer overrun while pending remote command actions
- Add debug abort interface to close debug file
- Flush partially read command line on EOF
- Flush partially read command line when WRU HALTs execution and switches
  to multi-command mode.
- Disable any pending repeat when WRU HALTs execution
2023-01-29 15:57:54 -10:00
Mark Pizzolato
65194f8a5a TIMER: Leverage first time calibration info on subsequent boots
- Also abort simulation if idle delay is crazy big which indicates a
  problem that has already happened.
- Extend calibration initialization debug output to record optional ticks.
2023-01-29 15:57:31 -10:00
Mark Pizzolato
a27f4be593 makefile: Added capability for extended per simulator link options (LNK_OPTS) 2023-01-29 15:50:06 -10:00
Richard Cornwell
9f0d7a1c20 KA10: Fixed TM10A to request first word at issue of write instruction. 2023-01-28 12:48:14 -10:00
Richard Cornwell
023e074293 KA10: Fixed issue with ITS KA quantum clock interrupt.
Start of support for PiDP10 front panel.
      Moved interrupt checking from check_irq_level to clear_interrupt.
      Pending interrupts now saved in IOB_PI.
      Cleanup of KL10 Timer interrupts.
      Minor code cleanup.
2023-01-28 12:46:33 -10:00
Richard Cornwell
11945a883d KA10: Fixed IMP address determination for KS, code cleanup. 2023-01-28 12:29:58 -10:00
Richard Cornwell
a3710a621d KA10: Fixed Chaosnet devices to work properly under ITS. 2023-01-28 12:29:57 -10:00
Mark Pizzolato
cd40bb2820 makefile: avoid using the file function to read the Make.Info file. 2023-01-27 09:02:16 -10:00
Mark Pizzolato
2c9eb951ad makefile: avoid using an intermediate file to get a newline in a variable 2023-01-25 15:58:26 -10:00
Mark Pizzolato
db5a0dc4d3 makefile: make it obvious when git commit id was extracted from an archive 2023-01-25 15:28:51 -10:00
Mark Pizzolato
a9fb4a653e makefile: Properly report archive git commit info when building from an archive 2023-01-25 10:14:15 -10:00
Howard M. Harte
a65d4227df AltairZ80: 2SIO: Fix potential NULL pointer dereference. 2023-01-22 13:55:58 -08:00
Howard M. Harte
3b229b1188 AltairZ80: Add support for NMI interrupts. 2023-01-22 13:41:04 -08:00
Howard M. Harte
425b5650db AltairZ80: Fix width of vectorInterrupt pseudo register. 2023-01-22 12:15:30 -08:00
Tony Lawrence
154d83e663 PDP11: Add definitions for unimplemented registers and fixed debug data write 2023-01-21 09:37:14 -10:00
Mark Pizzolato
a79c583053 TMXR: Remove all SIM_ASYNCH_MUX dependent code
Asynchronous MUX functionality was added long ago and never completely
tested and thus never completed and never actually used.

All of what it was supposed to achieve was independently achieved when
bit rate speed functionality was added.
2023-01-21 09:12:45 -10:00
Mark Pizzolato
a4360bc492 CONSOLE: Fix Remote Console reconfigure logic and properly name all units 2023-01-21 08:05:48 -10:00
Seth Morabito
f70f296e96 fixup! 3b2: Fix for clock drift when idling
Forgot to attribute this commit to Seth Morabito <web@loomcom.com>
as author.

When the 3B2 simulator was set to allow idling, there was significant
clock drift related to the primary timer unit. It turns out that the
simulator was using `AIO_SET_INTERRUPT_LATENCY` and `sim_rtcn_tick_ack`
incorrectly. They are not needed with the structure of system timers in
the 3B2 architecture.
2023-01-18 12:11:29 -10:00
Mark Pizzolato
42598b541a 3b2: Fix for clock drift when idling
When the 3B2 simulator was set to allow idling, there was significant
clock drift related to the primary timer unit. It turns out that the
simulator was using `AIO_SET_INTERRUPT_LATENCY` and `sim_rtcn_tick_ack`
incorrectly. They are not needed with the structure of system timers in
the 3B2 architecture.
2023-01-18 11:58:24 -10:00
Patrick Linstruth
c146c9a447 AltairZ80: Adds -H switch to LOAD command for loading Intel hex files 2023-01-18 11:55:51 -10:00