Commit graph

4536 commits

Author SHA1 Message Date
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
Mark Pizzolato
7f289b85f6 CARD: Update help to indicate multiple files may be attached at one time 2020-11-06 10:16:48 -08:00
Mark Pizzolato
9b1dea3a13 CARD: Minor adjustments for v3.x compatibility 2020-11-06 09:42:18 -08:00
Lars Brinkhoff
222c9d91b4 IMLAC: Improve debug output. 2020-11-04 14:41:19 +01:00
Mark Pizzolato
07d37f6d9e TMXR: Clarify comments on API description and variable names
This is all around the tmxr_set_get_modem_bits() API.
This change is non operational, but this clarification would avoid the
mistake made when someone uses or thinks about changing that
API in the future.
2020-11-03 07:58:42 -08:00
Mark Pizzolato
e3572e1a9f TMXR: Fix modem status bit retrieval to also return DTR and RTS
The prior change disabled returning DTR and RTS which the documented
interface was quite specific about actively returning.

The only user of this API which actually cared about DTR and RTS was
the in the pdp11_dmc module.

As reported in #951
2020-11-02 16:42:56 -08:00
Mark Pizzolato
f9ce5ae8ff SCP: Add whitespace ignore option to file and string content comparisons 2020-11-01 16:27:47 -08:00
Mark Pizzolato
462f5a51b8 SCP: Extend file compare functionality to expose where file differences start 2020-11-01 14:58:47 -08:00
Mark Pizzolato
6748a2c66f SCP: Extend TYPE/CAT command to support offset and line count limit 2020-11-01 14:54:12 -08:00
Mark Pizzolato
80abfe0412 doc: Update "Writing a Simulator" to describe details about sim_interval 2020-11-01 10:40:26 -08:00
Mark Pizzolato
ddcc280a17 CONSOLE: Add binary mode option when opening the LOG file. 2020-11-01 09:47:22 -08:00
Mark Pizzolato
a02b87625c CONSOLE: Add REGister reflecting console character output count 2020-11-01 09:41:40 -08:00
Richard Cornwell
2a87c499f0 KA10: Remove redundant include of time.h. 2020-10-31 11:56:24 -04:00
Richard Cornwell
a9500f5630 I7000: Remove redundant include of time.h. 2020-10-31 11:56:01 -04:00
Richard Cornwell
00c40dca89 B5500: Remove redundant include of time.h 2020-10-31 11:54:40 -04:00
Richard Cornwell
4d03ac67f6 KA10: Fixed some WAITS issues with III display. 2020-10-31 11:54:03 -04:00
Mark Pizzolato
0d6f1ce362 All VAX: Remove redundant include of time.h 2020-10-30 14:17:24 -07:00
Mark Pizzolato
2676404b36 3B2, BESM6, PDP10, PDP11: Remove redundant include of time.h 2020-10-30 14:16:52 -07:00
Peter Schorn
199adf7641 AltairZ80: Additional updates for SCP internal time base 2020-10-30 09:52:56 +01:00
Mark Pizzolato
e1ca936ab9 PDP10-KA, PDP10-KL: Adopt internal SCP internal time base 2020-10-29 13:35:55 -07:00
Mark Pizzolato
8d6219325a I7010, I7070, I7080, I7090: Adopt internal SCP internal time base 2020-10-29 13:34:05 -07:00
Mark Pizzolato
c9c3f8568a PDP10: Adopt internal SCP internal time base 2020-10-29 13:32:42 -07:00
Mark Pizzolato
263e0e7ed5 AltairZ80, BESM6, I7094: Adopt internal SCP internal time base 2020-10-29 13:28:41 -07:00
Mark Pizzolato
9c1f4beae3 SCP: Migrate to use SCP internal timer base reference 2020-10-29 13:06:36 -07:00
Mark Pizzolato
a41f081e81 TIMER: Add a generic time API to return the SCP time base 2020-10-29 12:57:47 -07:00