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

4842 Commits

Author SHA1 Message Date
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
Mark Pizzolato
3d23b5b3c6 SEL32: Run tests with SET CLOCK NOCALIBRATE for stable host independent results 2023-01-18 11:52:48 -10:00
Mark Pizzolato
1baed4f7d4 PDP11: Properly set DC, DL and DLCJ unit relationships to TMXR structures
Fix problem reported on DC device by Alan Kirby
2023-01-18 01:54:37 -10:00
Mark Pizzolato
c9647f9869 Visual Studio Projects: Add HAVE_LIBEDIT to projects that somehow missed this before 2023-01-17 03:31:04 -10:00
Mark Pizzolato
5699bb9f59 frontpaneltest: Add simulator startup sleep option to allow debugger attach 2023-01-16 18:15:05 -10:00
Mark Pizzolato
78ebb4fe84 CONSOLE: Add appropriate unit names to remote console units based on roles 2023-01-16 18:11:14 -10:00
Mark Pizzolato
e741e64b0e TIMER: Add debug output for unexpected timer state 2023-01-16 18:10:16 -10:00
Mark Pizzolato
d8e986bd65 FRONTPANEL: Fix mutex sequencing in sim_panel_set_display_callback_interval()
- Allow NULL switches argument in sim_panel_mount()
- Add thread names to help identify threads while debugging
- Make mutexes PTHREAD_MUTEX_ERRORCHECK while debugging
2023-01-16 17:05:19 -10:00
Mark Pizzolato
3edcea7de0 SCP: Be sure to close (implicitly flushing) debug output on abort() 2023-01-16 16:57:14 -10:00
Mark Pizzolato
a1172690a0 FIO: Avoid potential buffer overrun while formatting file modify time
Silence over aggressive compiler warning.
2023-01-16 16:56:26 -10:00
Mark Pizzolato
88c6f7847f ETHER: Avoid errant stderr output while determining NIC MAC address
Also add grep -E as an alternate output filter
2023-01-16 16:50:30 -10:00
Mark Pizzolato
7bfe28957e SDS: Optimize frontpanel register access and add clock precalibration setup 2023-01-12 08:55:16 -10:00
Mark Pizzolato
c23351ae07 FRONTPANEL: Avoid deadlocks in error path logic when shutting down 2023-01-12 08:51:31 -10:00
Mark Pizzolato
3907d9d56a Visual Studio Projects: Avoid file in use during parallel builds 2023-01-09 20:58:00 -10:00
Mark Pizzolato
ac8e5d23b8 README: Update current features
Revise windows-build dependency version
2023-01-09 15:45:08 -10:00
Mark Pizzolato
7a4ded8380 FRONTPANEL: Avoid potential deadlock when shutting down a panel application 2023-01-09 15:43:25 -10:00
Mark Pizzolato
2e2270ccc7 SCP: Reasonably format output after EOF return from read_line_p 2023-01-07 08:07:06 -10:00
Mark Pizzolato
4bbc3dfd1c TIMER: Add SET CLOCK NOCALIBRATE mode
NOCALIBRATE mode allows all activity of a simulator run to occur with
precisely consistent event timing.  In this mode, every clock tick takes
precisely the same number of instructions/cycles.  Likewise, the polling
activities for MUX or other poll oriented devices occurs after precisely
the same number of instructions/cycles executed.  As a consequence of
this mode, no effort to align simulated clock ticks (and simulated access
to wall clock time) is made.

This mode might be useful for running diagnostics which expect a
particular relationship between perceived wall clock and instruction
times.  It might also be useful for running test scripts which may want
to compare output of previous executions to to current execution or
to compare execution on arbitrarily different host computers.

In NOCALIBRATE mode, the operator gets to specify the pseudo
execution rate along with the base wall clock time that access to
pseudo wall clock accesses returns.
2023-01-06 09:49:31 -10:00
Mark Pizzolato
f79b03f2b7 SCP: Provide a pseudo environment variable SIM_RUNLIMIT_REMAINING
This is available for simh scripts which may want to display the
runlimit information via:
  sim> echo %SIM_RUNLIMIT_REMAINING%
2023-01-06 09:36:47 -10:00