Commit graph

3920 commits

Author SHA1 Message Date
Mark Pizzolato
613625e878 SCP: Correct unit level debug logic to avoid potential segfault 2020-12-28 10:26:45 -08:00
Mark Pizzolato
beaa1e7387 ETHER: Properly support builds when pcap isn't available 2020-12-24 21:38:22 -08:00
Ken Rector
268827d75c SDS: Add Card Reader and Card Punch devices 2020-12-18 23:47:36 -08:00
Mark Pizzolato
746f806bb3 SCP: Merge minor changes from Supnik-Current branch 2020-12-18 10:02:18 -08:00
Bob Supnik
c1ccc54da9 PDP11: Updated document for CPU BEVENT option 2020-12-18 03:40:00 -08:00
Peter Schorn
5f2470904b AltairZ80: Updated M2SIO device 2020-12-17 09:31:53 +01:00
Mark Pizzolato
1f6d0822bd SCP: Clarify description of -A attach switch in the help text
As discussed in #982
2020-12-16 20:07:25 -08:00
Mark Pizzolato
852c0bc1bc SCP: Avoid seeking on attached sequential devices on non seekable files
As reported on #982
2020-12-14 18:48:14 -08:00
Howard M. Harte
c32b3ab054 AltairZ80: HDC-1001: Complete the implementation.
The ADC HDC-1001 in SIMH was incomplete and non-functional.

Finish the simulation to be functional under CP/M 2.2, CP/M 3.0,
and OASIS 5.6.
2020-12-13 16:18:50 -08:00
Howard M. Harte
0eb14db0a7 AltairZ80: wd179x: Improve accuracy of the simulation.
* Properly handle the case when a disk is not attached.
    * Add register access for debugging.
    * Assert DRQ as well as IRQ for software that checks DRQ.
    * Add API to get the number of heads for the currently-selected
      disk.
    * Follow SIMH conventions for debug logging.
    * Add ability to debug IMD from the wd179x debug settings.

Tests:
    * Format and disk access on Cromemco CP/M 2.2, CDOS, 86-DOS,
      MS-DOS 1.25, OASIS 5.6.
2020-12-13 15:41:08 -08:00
Howard M. Harte
313d71b73e sim_imd: Properly calculate IMD sectsize.
The ImageDisk sectsize field was incorrectly set to the number of
bytes in the sector, when it should be an index as follows:

00 =  128 bytes/sector
01 =  256 bytes/sector
02 =  512 bytes/sector
03 = 1024 bytes/sector
04 = 2048 bytes/sector
05 = 4096 bytes/sector
06 = 8192 bytes/sector

Tested disk formatting on MS-DOS 1.25, Cromemco CP/M 2.2,
Cromemco CDOS, OASIS 5.6.
2020-12-13 15:26:04 -08:00
Howard M. Harte
898d7cbdbb AltairZ80: Add Z80 Interrupt Mode register (IM.) 2020-12-12 20:43:21 -08:00
Howard M. Harte
d0c009504b AltairZ80: Add support for the AB Digital B810.
The AB Digital Design B810 RAM card is a 256K Dynamic RAM card
with onboard refresh logic.  AltairZ80 support emulates four of
these cards for a total of 16 banks.

As used for the OASIS operating system, the B810 is configured
with common memory at the low addresses (0000h-3FFFh) with 16
banks of 48K from 4000h-FFFFh.

In order to have the common memory appear from 0000-3FFFh, set
the COMMONLOW register to 1:

D COMMONLOW 1
2020-12-12 20:43:07 -08:00
Mark Pizzolato
bcaf577d21 ETHER: Reorg for warning free build with and without Ethernet support 2020-12-11 07:18:59 -08:00
Mark Pizzolato
2f38b5f779 ETHER: Proper cleanup while getting Linux system id 2020-12-11 07:18:43 -08:00
Mark Pizzolato
e353b910ea TMXR: Fix Coverity identified missing status check 2020-12-11 07:18:27 -08:00
Mark Pizzolato
567005a08d VAXStation3100's: Fix Coverity identified warning 2020-12-11 07:18:06 -08:00
Lars Brinkhoff
fcc7c37d5a CI: Build using GitHub Actions. 2020-12-11 10:38:07 +01:00
Mark Pizzolato
1f9552cbe2 Visual Studio Projects: Cleanup tt2500 project definition 2020-12-04 04:18:36 -08:00
Lars Brinkhoff
0583bdfeda TRAVIS: Update Mac build to use Xcode 12.
Older versions no longer work with Homebrew.
2020-12-03 11:47:52 +01:00
Mark Pizzolato
236ca8206d VAX750: Associate bit fields with TTI and TTO DEVICE REGisters 2020-12-02 14:46:58 -08:00
Mark Pizzolato
c6710ee054 VIDEO: Silence minor compiler warning 2020-12-02 14:45:41 -08:00
Lars Brinkhoff
d5befa75c1 I650, IBM1130, PDP11, PDP18b, VAX, Sigma: Fix set but unused variables. 2020-12-02 14:45:21 -08:00
Lars Brinkhoff
1f76c0ce8a TT2500: Fix unit flags.
The previous commit had some untested last-minute changes.
2020-12-02 20:09:34 +01:00
Lars Brinkhoff
44cc9f3f6d TT2500: Turtle Terminal 2500, from General Turtle Inc.
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.
2020-12-02 08:17:47 +01:00
Mark Pizzolato
a6e6968cfd SCP: Avoid unexpected breakpoint interaction in revised RUN/GO commands 2020-12-01 12:05:42 -08:00
Mark Pizzolato
d21a344757 SCP: Fix RUN command to reliably allow PC to be specified
Previously, the RUN command would gather and set the desired
PC start address, but then it would invoke the reset logic for all
DEVICEs.  The CPU DEVICE's reset routine might reasonably
initialize the PC to a known state which would the overwrite
the PC specified on the RUN command.  This change performs
the reset before setting the PC to the specified value (or it's
previous value if no PC was supplied on the RUN command).
2020-11-30 13:04:15 -08:00
Lars Brinkhoff
52f3a69d98 IMLAC: Sample program: SSV 22.
SSV ("Scroll Saver") was the Imlac console program and terminal
emulator at MIT's Dynamic Modeling group.  It was written mainly by
P. David Lebling.  This copy is from Purdue University, courtesy of
Tom Uban.  SSV is required to run Maze; the game expects to find SSV's
font data in core.
2020-11-29 13:46:33 +01:00
Peter Schorn
6f7d0406ff AltairZ80: Updated documentation for iCOM device 2020-11-29 09:39:29 +01:00
Peter Schorn
5211c1134a AltairZ80: New iCOM device, PTP port command, code cleanup 2020-11-28 14:02:01 +01:00
Lars Brinkhoff
26f9c7a748 IMLAC: Fixes for the display.
Don't open a display window during power-on reset.

Change #ifdefs to USE_DISPLAY.
2020-11-26 14:11:58 +01:00
Mark Pizzolato
5cc86e2440 SCP: Be sure to perform all library close activities whenever exiting 2020-11-26 04:24:55 -08:00
Mark Pizzolato
6a249c6246 makefile: Provide specific advice on macOS about dependent packages 2020-11-25 12:15:50 -08:00
Lars Brinkhoff
970fb8ec95 PDP10, ETHER, VIDEO, VAX: Fix set but unused variables. 2020-11-25 04:50:47 -08:00
Mark Pizzolato
86889c662c makefile: assure that macOS 11 (XCode 12) can use libpthread
If the Xcode environment provides an particular include file, its
related library file will be available at link and presumably run time
2020-11-25 04:43:22 -08:00
Lars Brinkhoff
b471f16a0a IMLAC: Use sim_video stubs rather than #ifdefs. 2020-11-25 09:22:26 +01:00
Lars Brinkhoff
66a426c48e VIDEO: Add stubs for new APIs. 2020-11-25 09:17:14 +01:00
Mark Pizzolato
0fb0ab516d makefile: Add support for XCode 12 on macOS 11
Solves problems reported in #934 and #964
2020-11-24 16:39:55 -08:00
Lars Brinkhoff
bf2dabdebf IMLAC: Fix compiler warnings. 2020-11-24 14:33:58 +01:00
Mark Pizzolato
2571ea5253 SCP: Fixed minor text error in help 2020-11-24 04:46:09 -08:00
Lars Brinkhoff
3fc46f3b57 VIDEO: Allow more than one window.
New sim_video APIs have been added to make it possible for a simulator
to open multiple windows.  Two slightly updated functions are:

t_stat vid_open_window (VID_DISPLAY **vptr, DEVICE *dptr, const char *title, uint32 width, uint32 height, int flags);

Like vid_open, but return a dynamically allocated VID_DISPLAY struct
and return it in *vptr.

t_stat vid_close_all (void);

Close all currently opened windows.

In addition, these new functions correspond completely to the old set
of sim_video functions, except the first argument is a VID_DISPLAY
pointer: vid_close_window, vid_map_rgb_window, vid_draw_window,
vid_refresh_window, vid_set_cursor_window, vid_show_video_window,
vid_is_fullscreen_window, vid_set_fullscreen_window,
vid_set_cursor_position_window.
2020-11-24 13:24:43 +01:00
Richard Cornwell
983b3ae278 KA10: Better fix to RH10/20 for Tops20. 2020-11-19 21:20:30 -05:00
Richard Cornwell
435eb0e599 KA10: Cleanup typos in debug help. 2020-11-19 21:20:09 -05:00
Richard Cornwell
9dd46a8b80 KA10: Fixed bug in I/O instruction assembly 2020-11-19 21:13:44 -05:00
Mark Pizzolato
486505741c TIMER: Fix pre-calibrate 100ms setup bug 2020-11-18 22:53:24 -08:00
Mark Pizzolato
93bff5ea05 SCP: Handle ON processing for stdin supplied commands
Additionally, allow STEP to have ON actions
2020-11-18 15:17:04 -08:00
Mark Pizzolato
8233fdc3c1 TIMER: Run simulator pre-calibration for a minimum of 100ms
Faster host systems today can get very fast instruction execution rates
for a short duration calibration test.  These may be skewed by round
off error, so we now run the calibration for a minimum of 100ms.
2020-11-18 14:47:42 -08:00
Richard Cornwell
03a79b1205 KA10: Fix bug with later versions of TOPS20. 2020-11-17 22:06:44 -05:00
Richard Cornwell
d79cc4c494 KA10: Updated to use DEC029 translation tables. 2020-11-17 22:06:22 -05:00
Richard Cornwell
3a7a27f651 CARD: Added DEC029 translation table. 2020-11-17 22:05:42 -05:00