Commit graph

3910 commits

Author SHA1 Message Date
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
Mark Pizzolato
845a4d8f0e SCP: Silence compiler warning about potential sprintf buffer truncation 2020-11-16 11:36:34 -08:00
Mark Pizzolato
9cb93a64f2 SCP: Slow down debug output writes when the debug fd is non blocking
This problem only appears when debug output is prodigious.  That
prodigious activity is already dramatically affecting timing, so adding
additional delays to allow the debug output to catch up won't
make anything worse.

It appears that we could jump over the C runtime implementation of
fwrite() and do an explicit write() system call and retry that until it
succeeds, but this approach would have two negative consequences:
1) it would jump over other buffered data that the C runtime fwrite()
    may have pending due to output produced by other than debug
    activities, thus emitting output out of order.
2) Windows doesn't have a direct system call used by its C runtime
    for write(), but merely implements write() as part of the C runtime
    and as it turns out that write() returns an int vs a ssize_t type
    result.  An explicit cast could address this, but point 1 would still
    be a concern.

As discussed in #957
2020-11-16 11:09:23 -08:00
Mark Pizzolato
b0ac93294e SCP: Add FLUSH_INTERVAL register to override the default 30 second buffer flush
As indirectly discussed for debug output to a file in #957
2020-11-15 14:28:25 -08:00
Mark Pizzolato
ba5e18e963 SCP: Assure that debug output is aways completely written via fwrite
Previously, the status returned by fwrite() while writing debug output
was ignored and all debug output was presumed to be correctly written.

This change tolerates incomplete writes performed by the C runtime
and retries the remaining writes as long as the retries take.

This change completely presumes that the C runtime fwrite() returns
correct information when the data has not been completely written.
That of course will likely depend on the OS level write function
returning correct informatoin from the write() system call that
fwrite() depends on.

Timing concerns while emitting debug output have always been a
problem since even composing any debug output is likely to be much
more work than basic instruction execution off the current single
instruction.  Clock calibration probably will be fundamentally unreliable.

As discussed in #957
2020-11-13 22:29:32 -08:00
Mark Pizzolato
267f2548a6 IMD: Fix compiler warning in sim_debug statement 2020-11-13 21:11:19 -08:00
Richard Cornwell
43412d227f KA10: Updated reader/punch for new translation tables. 2020-11-09 19:33:32 -05:00
Richard Cornwell
c86bd2271f B5500: Updated reader/punch for new translation tables. 2020-11-09 19:33:03 -05:00
Richard Cornwell
47dbc558a2 CARD: Updated translation table. 2020-11-09 19:32:36 -05:00
Howard M. Harte
78d6650acd sim_imd: clean up debug output. 2020-11-07 19:58:56 +00:00
Mark Pizzolato
c2059b0708 CARD: Improved help output distinguishing reader vs punch attach syntax 2020-11-06 11:55:20 -08:00