Commit graph

4279 commits

Author SHA1 Message Date
Seth Morabito
74021166d3 3b2: Remove glibc-specific longjmp
At one point in the distant past, there was an unremembered
reason to prefer __libc_longjmp if it was available. It is no
longer needed, and has been removed from glibc in the most recent
versions.

Fixes #1088.
2021-10-23 14:32:10 -07:00
Heinz-Bernd Eggenstein
525215b07e TIMER: Be less aggressive to disable throttling after initial calibration
- removed a somwhat unlikely but possible division-by-zero
- in case the initial throttling calibration measures a slower cps rate than
   the desired cps rate, check whether the measured rate is well below the
   measured peak rate. If so, distrust the measured rate and instead use
   half the peak rate as measured cps rate.
   Otherwise (so measured cps is in the same ballpark as measured peak rate)
   disable throttling

As initially reported in #815
2021-10-23 13:50:48 -07:00
Lars Brinkhoff
1e4401fd84 H316: Call the host interface TX service routine.
The modem and host interface TX services should both be called from
the RTC device, but when the host interface was implemented the call
was not added.
2021-10-21 14:16:23 +02:00
Lars Brinkhoff
5dcc00ea10 H316: Fix debugging host interface messages. 2021-10-21 14:14:21 +02:00
Lars Brinkhoff
4e162c0586 H316: Signal the host/IMP ready bits in the host interface.
This adds a new flag to the host interface UDP packages to indicate
the ready bit of the sender.  The flag comes along all packets, but an
empty packet can be sent to change the ready status without
transmitting data.
2021-10-21 14:14:04 +02:00
Lars Brinkhoff
53e81819e0 H316: Fix reading messages from the host interface.
The 1822 IMP-host interface carefully handshakes every bit
transferred.  Thus the DMC facility can read messages piecewise.  The
IMP uses this to read a 32-bit leader first, and process the rest or
the message in another round.

The IMP expects the 1822 end of message bit not to be set until after
the entire message has been read.
2021-10-21 14:10:20 +02:00
Lars Brinkhoff
3baaf6c028 H316: Fix host interface word counts.
The host interface uses the UDP packet format from the modem
interface, with an additional flags word.  Ensure the flags are
not included in the word count.
2021-10-18 14:25:59 +02:00
Mark Pizzolato
06a8447d26 FIO: Add NetBSD and OpenBSD to platforms that could use mmap and shm APIs
As reported in #1083
2021-10-12 18:53:56 -07:00
Howard M. Harte
08a0ad2d88 2SIO: add support for interrupts.
Add vectored interrupt support for the Altair 2SIO card.
2021-10-11 08:50:29 -07:00
Howard M. Harte
81afea160c AltairZ80: Add support for Z80 Mode 2 interrupts.
Add support for Z80 Mode 2 interrupts to altairz80_cpu.c
Also implement interrupts for the WD179x floppd controller.
2021-10-11 08:50:20 -07:00
Mark Pizzolato
c73474df8d README: Correct Ubuntu build dependencies
This is a trivial correction since if dependencies are missing at build
time what is missing is and how to fix it is properly described in
build time messages.

As reported in #1081
2021-10-06 23:38:08 -07:00
Seth Morabito
976ba05604 3b2: Allow force interrupt if not attached
This commit fixes an issue that caused floppy diagnostics to fail if
the floppy drive unit was not attached. The 3B2 floppy controller has
a "force interrupt" command that should run whether or not the floppy
unit is attached to an image.
2021-10-05 08:50:01 -07:00
Mark Pizzolato
e897dfc3c9 SCP: Fix missing void parameter declarations 2021-09-30 21:08:01 -07:00
Mark Pizzolato
ca4a63929a TAPE: Add more advanced test cases and fixes various ANSI cases
Mostly from Larry Baker
2021-09-30 21:02:43 -07:00
Larry Baker
df851ebf1a TAPE: Add useful verbose output during ANSI tape testing 2021-09-28 14:36:28 -07:00
Mark Pizzolato
fc0ce0f5fb TAPE: Avoid redundant records when creating ANSI binary fixed tape files
As reported by Larry Baker
2021-09-28 14:29:38 -07:00
Mark Pizzolato
7bb96070f1 TAPE: Fix test logic to properly detach tested unit
As reported by Larry Baker
2021-09-27 21:39:58 -07:00
Mark Pizzolato
feec1da242 DISK, TAPE: Add optional library specific DEVICE context structure
- add disk and tape library initialization routines
- cleanup snprintf arguments
- truncate disk container trailing zero sectors when zapping
2021-09-20 12:28:11 -07:00
Mark Pizzolato
2834bfb1f9 SCP: Avoid 'not found' error in tool path locater on Windows 2021-09-20 07:37:14 -07:00
Mark Pizzolato
0bc77c4d90 PDP11, VAX: Add or correct help output for some SET commands
As discussed in #1077
2021-09-10 11:38:37 -07:00
Mark Pizzolato
746e4b9e59 SCSI: Add tape activity specific debug option 2021-09-06 10:28:04 -07:00
Mark Pizzolato
82f9f5b966 SCP: Allow for simulator specific processing of DO commands. 2021-09-06 10:18:36 -07:00
Mark Pizzolato
d57b182701 SCP: Expose _sim_vdebug for use by external libraries 2021-09-06 09:58:41 -07:00
Lars Brinkhoff
a615b89f11 VIDEO: Fix bug in vid_dst_last handling.
The handling of vid_dst_last and vid_data_last was not updated to work
with multiple windows, which can cause window updates to be lost.
2021-09-04 10:02:49 +02:00
Peter Schorn
105975feb4 AltairZ80: Fix reset routine for DJ2D device 2021-08-31 08:48:35 +02:00
Mark Pizzolato
eadf12699b VAX systems with graphics: Properly cleanup on memory allocation errors. 2021-08-28 18:31:35 -07:00
Mark Pizzolato
4c64878f7c ETHER: When opening an unused interface , avoid invoking non existent programs 2021-08-28 13:15:54 -07:00
Mark Pizzolato
153d849c13 ETHER: When gathering host NIC address, avoid invoking non existent programs
Historically on *nix platforms ifconfig was used to find the host system's
interface MAC address.  This isn't always available on all systems since
it's being replaced by the ip command.  We now only invoke commands
that exist.
2021-08-28 05:01:47 -07:00
Mark Pizzolato
6d04cf814a SCP: add sim_get_tool_path to get the expanded path to a local command
This logic was previously within the static SCP function _get_tool_version
and is now exposed for use elsewhere.
2021-08-28 04:27:41 -07:00
Mark Pizzolato
c808256e87 PDP11: Fix model indexes after model table previously got reordered
As reported in #1073
2021-08-24 10:47:01 -07:00
Seth Morabito
9d849283a4 3B2: Interrupt Refactor and DEMON ROM
- This change introduces a full refactor of the interrupt subsystem
  for the system board (SBD) and the I/O bus (CIO). Interrupt decode
  should now be significantly faster, and not require an expensive
  calculation on every step.

- The TIMER device has been split into Rev 2 and Rev 3
  implementations.

- The optional 3B2/400 Debug Monitor ROMs can now be booted by passing
  the "DEMON" argument to the 3B2/400 simulator BOOT command. Any
  of the following will cause the Debug Monitor ROM to be booted
  instead of the standard 3B2/400 ROM:

     sim> BOOT DEMON
     sim> BOOT CPU DEMON
     sim> BOOT DEMON CPU
2021-08-24 06:35:49 -07:00
Mark Pizzolato
d1a720debd BuildROMs: Change name define logic to avoid conflicts
Each of the BOOT_CODE_SIZE, BOOT_CODE_FILENAME and BOOT_CODE_ARRAY names
are replaced whenever a BuildROMs generated file is included.
2021-08-23 13:36:04 -07:00
Mark Pizzolato
ae1472db79 Generated ROM Image includes: Updated for multiple ROM image support
The actual contents of the input ROM binary files and the contents of the
created arrays are unchanged.

Multiple ROM image include files can be included in the same source module
without the need for any #undef BOOT_CODE_SIZE, etc.
2021-08-23 12:26:45 -07:00
Mark Pizzolato
cfac7dee42 BuildROMs: Add simple support for including multiple ROM images
When multiple ROM images are included by the same source module,
 #define variables with names BOOT_CODE_SIZE_n, BOOT_CODE_FILENAME_n
and BOOT_CODE_ARRAY_n will be defined.
2021-08-23 12:20:43 -07:00
Mark Pizzolato
3f3884ddb6 SCP: Fix memory leak when accessing externally defined environment variables 2021-08-23 12:17:18 -07:00
Mark Pizzolato
09db504f65 TAPE: Avoid XCode false positive analysis warning 2021-08-23 12:09:43 -07:00
Mark Pizzolato
c4bbb75303 TMXR: Fix potential memory leak when already out of memory 2021-08-23 12:08:42 -07:00
Mark Pizzolato
64b1223468 DISK: Add sim_disk_erase API 2021-08-17 15:35:51 -07:00
Mark Pizzolato
bc40d08b94 slirp: Make sure to completely initialize the iov on a 0 buffer size return 2021-08-17 15:21:09 -07:00
Mark Pizzolato
730af85397 README: Add missing file system detection type 2021-08-17 15:20:39 -07:00
Mark Pizzolato
4e729165ee FIO: Add sim_byte_swap_data routine to byte swap
This is an unconditional swap which may not be dependent on the
particular endian orientation of the simulated or host system.
2021-08-17 15:20:07 -07:00
Mark Pizzolato
efc79d710a PDP11: Update 11/40 and 11/45 models to reflect MMU was an option 2021-08-15 12:13:20 -07:00
Mark Pizzolato
3bf02304da PDP11: Populate remaining internal device help from pdp11_doc.doc 2021-08-14 23:21:31 -07:00
Mark Pizzolato
d3d3c94485 All VAX: Fix CPU HISTORY MTAB help info 2021-08-14 23:11:27 -07:00
Mark Pizzolato
0bfb902b56 SCP: Enhance hierarchical help prompting
- A prompt answer which exactly matches a topic name is given
  preference over the potential ambiguity of other topics which start
  with the same text.
- Prompt with the parent topic's prompt when a just displayed subtopic
  has no subtopics.
- Allow either ^D or ^Z entered to act as EOF.

These changes reflect the behavior of the VMS help system which the
hierarchical help system is modeled on.
2021-08-14 19:43:41 -07:00
Mark Pizzolato
9166219476 PDP11: Cleanup potential compiler warnings 2021-08-13 09:11:42 -07:00
Mark Pizzolato
f95b20e1f3 SCP: Cleanup potential compiler warnings 2021-08-13 09:09:53 -07:00
Mark Pizzolato
502ebeafc3 DISK: Clarify comments for logic generating attach error messages
as discussed in #1064
2021-08-13 02:35:29 -07:00
Seth Morabito
c02491f733 3B2: Header refactoring and cleanup
This change signficantly improves header hygiene in the 3B2 project by
moving global symbols out of 3b2_defs.h and into the appropriate
individual module header files.

Each compilation unit now includes:

  - its appropriate matching .h file
  - any other .h files necessary for linting and compilation

Each header file in turn includes 3b2_defs.h, which contains truly
global symbols, and which pulls in sim_defs.h and exports global
devices.
2021-08-11 19:43:51 -07:00
Mark Pizzolato
78d3d1b560 SCP: Add register validation tests as part of the SCP library test 2021-08-11 07:28:08 -07:00