This commit introduces dozens of changes to make the 3B2-700 simulator
fully functional and ready for wider use. In addition to 3B2-700
availability, this commit includes a tremendous amount of refactoring
of the 3B2-400 and common code to make the project structure easier to
maintain and reason about.
One final important change: ROM files are no longer included in the
source code. 3B2 ROM images must be obtained separately and loaded
into the simulator before boot.
Changes:
- The 3b2 target has been aliased to 3b2-400
- The formerly named 3b2-600 project has become 3b2-700
- SCSI QIC tape support has been added to sim_scsi.c
- Header files have been reworked to reduce complexity of includes
- Common code has been consolidated
- Timer code has been unified
- General cleanup of codebase
- Fixed condition codes m6800.c from Roberto Sancho Villa
- Add additional FDC lfd-400 from Roberto Sancho Villa
- Add additional OS's (FLEX 1.0, FDOS 1.0, DOS68, MiniDOS, and MiniDOS-MPX)
to software support
- Add additional disk formats to software support dc-4.c from Roberto
Sancho Villa
- Add CPU history
- Fix LOAD/DUMP to support binary and hex
- Fix fprintf_sym to disassemble 6800 code correctly
- Add EXAMINE/DEPOSIT to CPU Memory
- Fixed disasm to space the register
- Add SET_FLAG(IF) to IRQ – fixed error in handling IRQ from
Roberto Sancho Villa
These devices start disabled and will be that way in essentially all
working systems, but there apparently was a DECnet Phase V
support for this device, so it is added to all systems. The DPV
should now be readily testable.
As mentioned in #1152. That PR will fix the DUP device.
This commit is explicitly released from any license restriction
mentioned in the LICENSE.txt of the github.com/simh/simh
master branch changes.
Some dependent packages on some platforms may also define HAVE_DLOPEN
and that definition may have different syntax or semantics. This change
avoids the potential symbol conflict.
As reported in #1098
For some strange reason, Ubuntu 21.10 delivers various libraries as
either direct link libraries (".a") or shared objects (".so") where
historically essentially everything was shared objects..
- 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
This change introduces initial support for the AT&T 3B2 Rev 3 platform, based
around the WE32200 CPU with up to 64MB of RAM and SCSI disk and tape support.
This simulator is experimental and not yet supported. It will not be built by
default, but can be built with:
make 3b2-600
Or by using the 3B2-600 Windows Visual Studio project.
This change lays the groundwork for adding support for Rev 3 3B2 models,
which includes the Model 500, Model 600, and Model 1000.
Rather than use the fixed strings "400" and "1000" in file names, the
strings "rev2" and "rev3" will be used, which allows greater flexibility
to implement various system configurations more easily.
Additionally, this change adds a copy of the Debug Monitor (DEMON) ROM
image for the Rev 2 board, to be used soon in a later checkin.
Some compiler & linkers on some platforms don't dynamically provide
a way to determine the library search path, so if /lib and /usr/lib exist
as directories they are added to the end of the library search path.
As reported in #1026
Any graphics done within any simulator is done via explicit SDL APIs.
If a host has SDL available, the natural mechanisms used to reference
SDL pieces will automatically create the proper references to the
available SDL components.
Change test for -e (exists) instead of -d (directory) so that the .git
entry is detected correctly and git version stamp logic runs as in any
other git repo. The .git entry is a file when the repo is a submodules
and possibly other obscure cases like multiple worktrees.
fixes#988
Custom TTL design by Marvin Minsky. There are two displays: one
raster scan for bitmapped characters, and another random scan for
vector graphics. There is also a keyboard, and a UART for talking
to a host computer.
The computer is normally booted off a ROM which reads and starts a
secondary loader from the UART. The loader is responsible for reading
the payload, which comes in checksummed blocks. The LOAD command
accepts files in same format.