1
0
mirror of https://github.com/simh/simh.git synced 2026-01-19 09:28:37 +00:00

4945 Commits

Author SHA1 Message Date
Mark Pizzolato
50fa024c9f VAX8600: Convert Console RL02 (device CS) to use sim_disk
This now gets the DEC 144 bad block info properly stored in the last
track of the RL02 disk.
2024-07-16 12:06:01 -10:00
Mark Pizzolato
cbd8bd8a0a SCP : Log various initialization steps with DebugInit enabled
Removed previously added DEPOSIT ALL 0 in precalibrate routine.
That DEPOSIT was added to explicitly restore memory to 0's at simulator
startup, but the several second cost of executing that slowed down
startup of any simulator which had precalibration support.  Anyone who
explicitly cares to have zeroed memory on startup should include such a
command in their own simulator configuration.
2024-07-16 12:05:41 -10:00
Peter Schorn
c7df248f09 SIMH: Fix spelling errors in comments and strings 2024-07-16 12:04:53 -10:00
Mark Pizzolato
32d6b09c8e SCP: Allow glyph parsing to specify a delimiter while whitespace isn't one 2024-07-11 15:42:41 -10:00
Mark Pizzolato
746981b8a0 SCP: Correct restore of disk containers with sim_disk drive type indicated 2024-07-10 12:23:25 -10:00
Mark Pizzolato
5056cd5543 VAX: Correctly process long interval timer delays and fudge TODR reads from ROM 2024-07-10 09:53:32 -10:00
B. Scott Michel
d5a031ae62 IBM1130: Clean potential warnings in ibm1130_cr code
- Fix printf() warnings (format should be long, not int)
  - Signed/unsigned mismatch, size_t for array indexing
  - Comment out the unused trim() function.
2024-07-08 09:48:33 -10:00
B. Scott Michel
ec5b034f3d IBM 1130: Remove undefined static functions. 2024-07-08 09:42:21 -10:00
Olaf Seibert
8ae67882b4 I650: Avoid super-inefficient use of strlen(). 2024-07-08 09:39:15 -10:00
Olaf Seibert
1260113ab9 I650: Avoid allocating large card decks on the stack.
Allocate them dynamically instead.
2024-07-08 09:38:35 -10:00
Mark Pizzolato
3d373184c4 VAX tests: Avoid errors when enabling debug for non-existent devices
Leverage new "IF DEVICE <devname>" condition test
2024-07-08 09:29:45 -10:00
Patrick Linstruth
670a3728ad AltairZ80: Adds CUTER PROM to SOL20 device
SET SOL20 VER=CUTER
2024-07-04 18:13:09 -10:00
Mark Pizzolato
ee7806f20e SCP: Add "IF DEVICE <devicename>" to test the existence/enabled-state of device 2024-07-04 18:11:15 -10:00
Mark Pizzolato
5bfef52c45 Visual Studio Projects: Leverage wineditline support in updated windows-build
- Avoid compiling wineditline library while building every simulator
2024-07-02 20:16:52 -10:00
Charles Horn
7f471eafff I1401: Fix minor typo in error msg 2024-06-27 13:29:18 -10:00
Patrick Linstruth
524a98b235 VIDEO: Add vid_render_set_logical_size() stub
Fixes oversite of missing sim_video stub function.
2024-06-21 11:41:32 -10:00
Mark Pizzolato
6073c022f8 ETHER: Give priority to grep -E vs egrep when determining device mac address 2024-06-21 11:38:12 -10:00
Mark Pizzolato
ebe8fe80c9 makefile: support more robust builds under Android termux 2024-06-21 11:37:04 -10:00
Mark Pizzolato
cc2a00364f SCP: Avoid extra newline output in full SHOW VERSION output 2024-06-21 11:36:08 -10:00
Charles Anthony
da83dab1fb IBM1130: Fix address computation overflow
In sim_instr(), the effective address is computed; for the case of TAG
(index register addressing), the contents of the specified index register
is added to the effective address, but the result is not masked to 16
bits as per the hardware functionality.

Adding a a 16 bit mask operation fixes the issue.
2024-06-12 12:49:00 -10:00
Mark Pizzolato
ca848d92d7 TIMER: Correct K and M rate throttling 2024-06-05 13:51:14 -10:00
Mark Pizzolato
62d7e94266 TIMER: Properly interpret input while setting throttle mode
Allow: n                execute n instructions/cycles per second
           nK              execute n thousand instructions/cycles per second
           nM             execute n million instructions/cycles per second
           n%             occupy x percent of the host CPU capacity
           n/t             sleep for t milliseconds after executing x
                             instructions/cycles
           n{K|M}/t    sleep for t milliseconds after executing x
                             thousand or million instructions/cycles
2024-06-05 11:13:35 -10:00
Mark Pizzolato
e57fdb877b SCP: Properly abort simulator startup when timing info is unreasonable
Erratic host system load conditions can cause timing behaviors to not
be well behaved.
2024-06-03 09:18:27 -10:00
Patrick Linstruth
0d705c98d5 AltairZ80: Adds Cromemco TUART devices
Adds the following devices to AltairZ80:

TUART0: Cromemco FDC controller TUART console port at I/O address 0x00.
TUART1: Cromemco TU-ART port A at I/O address 0x20.
TUART2: Cromemco TU-ART port B at I/I address 0x50.

These devices are fully TMXR capable.
2024-06-03 06:16:41 -10:00
Patrick Linstruth
b2ec2bfd26 AltairZ80: Changes to JAIR devices
This PR makes the following changes to the JAIR devices:

Refactors the service routines into STAT, TX and RX units (thanks @markpizz)
Adds a 128-byte input ring buffer
Corrects a null pointer exception
Adds overrun status bit implementation
Replaces a tab with spaces
2024-06-03 06:11:02 -10:00
Mark Pizzolato
8372d44b60 SCP: Add correct Lock Free asynchronous support for IA64 2024-05-28 13:50:27 -10:00
Mark Pizzolato
24081206a8 SCP: Asynch I/O avoid interlocked instruction on Intel sim_asynch_queue read 2024-05-28 13:48:21 -10:00
Mark Pizzolato
c42efce080 SCP: Clarify Asynch I/O queue debug text and comments
- Add full support DECC on IA64
2024-05-28 13:42:33 -10:00
Patrick Linstruth
318f44eda5 AltairZ80: Adds Cromemco DAZZLER and JS1 devices
Adds Cromemco Dazzler and JS1 joystick devices
Adds vid_render_set_logical_size() to sim_video.c
2024-05-23 15:15:29 -10:00
Patrick Linstruth
a79fc59d06 AltairZ80: Adds Cromemco TUART devices
Adds the following devices to AltairZ80:

TUART0: Cromemco FDC controller TUART console port at I/O address 0x00.
TUART1: Cromemco TU-ART port A at I/O address 0x20.
TUART2: Cromemco TU-ART port B at I/I address 0x50.

These devices are fully TMXR capable.
2024-05-23 13:08:43 -10:00
Richard Cornwell
bcf854ee10 KA10: Fix divide error on KS10, add in some devices.
Fix divide of 0 on KS10 processor.
       Fix write access for auxiliary processor memory.
       Updated support new PIDP10 panel.
       Allow eight Unibux ports on the TEN device.
       Added GE DATANET-760 device to PDP6
       Removed USER mode restriction for idle detection.
       Added Data Disc 6600 Television Display System.
2024-05-21 17:02:00 -10:00
Richard Cornwell
7cd42dce2d I7000: Updated general card reader, printer and magtape
Card reader handle EOF correctly.
         Line printer proper handling of paging.
         Magtape clean up debug message.
         Update 7010, 7070, 7080 for EOF handling.
2024-05-21 14:25:47 -10:00
Richard Cornwell
24c28fc43c B5500: Cleanup some warning from CMAKE. 2024-05-21 14:25:47 -10:00
J. David Bryan
b24bf74f29 SCP: Report optional VM specific release after optional delta in SHOW VERSION
From simh v3.12-5 changes
2024-05-21 14:22:41 -10:00
Mark Pizzolato
5d10f2c724 VAX: Clarify running from ROM test when reading todr_rd
This change only simplifies reading the code.  The functional results
are unchanged
2024-05-21 04:07:00 -10:00
Mark Pizzolato
b19cc2b8ef sim_frontpanel: Correct spelling in comment text 2024-05-21 04:03:58 -10:00
Mark Pizzolato
7ca7f0fb3a SCP: Tolerate quoted LOG(, DEBUG, etc.) filenames which can have spaces 2024-05-03 10:19:46 -10:00
Mark Pizzolato
fbbfe8c987 VAX build tests: Avoid error setting log when debug is disabled 2024-04-29 14:04:16 -10:00
Mark Pizzolato
3bbaab7f5d Visual Studio Projects: Add logic supporting building with different VS2022s
- Multiple VS2022 versions support when windows-build provides it
- Always leverage whatever git version is available locally
2024-04-28 14:12:26 -10:00
Mark Pizzolato
6767c1a9d5 SCP: Allow TYPE command output to be terminated by SIGINT 2024-04-28 14:09:27 -10:00
Mark Pizzolato
c16e379b73 SCP: Cleanup SET ASYNC/NOASYNC status message to use sim_messagef 2024-04-18 16:36:43 -10:00
Mark Pizzolato
d71ce79d13 TMXR: Increase the maximum buffer size for BUFFERed lines to 10 million bytes 2024-04-18 16:35:16 -10:00
Mark Pizzolato
f93994be0a VAXen: Correct wording in the REI comments describing the rules 2024-04-18 16:34:10 -10:00
Mark Pizzolato
997952e712 ETHER: Add build support leveraging libpcap shared object without pcap.h
Some host systems come with the libpcap shared object installed.  If that
is the case, since the default build behavior is to dynamically load libpcap,
builds can now potentially avoid a forced install of the libpcap-devel package.
2024-04-17 11:12:42 -10:00
Mark Pizzolato
b22fb8eefa makefile: Add package install support for Linux systems that have dnf 2024-04-17 11:08:10 -10:00
Mark Pizzolato
f2344dfddc SCP: Add Linux and macOS version to SHOW VERSION output 2024-04-16 18:25:20 -10:00
Mark Pizzolato
4059e7d9f1 README: Update with current info 2024-04-06 12:54:59 -10:00
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