Commit graph

26 commits

Author SHA1 Message Date
B. Scott Michel
bad1e0e565
IMLAC: Type consistency warnings. (#430)
* IMLAC: Type consistency warnings.

* Remove unintentional changes

* Remove extra braces

* CUR_AC -> AC (revert)
2025-01-13 12:09:25 -05:00
B. Scott Michel
d9d0e8bd74 CMake: Updates
Issue #294: "apple silicon build problem(s?)": If the "--flavor/-f" flag
is not specified on the command line, then complain loudly, print help
and exit. The script used to default to "Unix Makefiles".

Updates:

- Add missing "-DHAVE_LIBPNG" compiler command line define when the PNG
  library is detected/present for screen capture support.

- Add "clang64" to the list of MinGW64 platforms for which the
  .travis/deps.sh script can install build dependencies.

- Add PThread4W_FOUND to the condition that sets async I/O for Win32
  when using vcpkg for build dependencies.

- Add vs2022-x64, vs2019-x64 and vs2017-x64 build environments to
  build 64-bit Windows executables.

- Use simulator AIO only where needed by the simulator (i.e., the
  simulator calls/uses AIO_CHECK_EVENT in sim_instr())

  - Add "USES_AIO" flag to add_simulator() to mark a simulator that
    acutally uses asynchronous I/O.

  - Build "_aio" SIMH core library variants that have AIO turned on,
    link with the "_aio" variant when a simulator sets USES_AIO.

  - Emit a warning message when WITH_ASYNC is False (CMake configuration
    option) to notify the user/developer that some functionality will be
    crippled.

  Affected simulator builds: 3b2 family, PDP-6, PDP-11, VAX family,
  IMLAC and TT2500. The makefile and cmake/generate.py also updated
  to remain in sync with CMake.

  N.B.: Simulators still link with the underlying platform's threading
  library. SEL32 requires pthreads or equivalent threading library,
  independent of AIO.

- cmake/cmake-builder.sh

  - New "--no-aio" flag: Build simulators without async I/O.

  - New "--no-aio-intrinsics" flag: Don't build async I/O using compiler
    compare-exchange, atomic load intrinsics.

- cmake/cmake-builder.ps1

  - New "-noaio" flag: Build simulators without async I/O.

  - New "-noaiointrinsics" flag: Don't build async I/O using compiler
    compare-exchange, atomic load intrinsics.

CMake 3.28.1 INTERFACE_LINK_LIBRARIES behavior change: The file name
must now be an absolute path. Relative paths no longer accepted.
Internally, SIMH enforces this if CMAKE_VERSION >= 3.19, when REAL_PATH
was first implemented.
2024-02-01 12:51:13 -05:00
B. Scott Michel
8b14bb69be
CMake build infrastructure II (#53)
* CMake build infrastructure

The squashed commit that builds and packages releases for the SIMH
simulator suite with CMake, version 3.14 or newer.

See README-CMake.md for documentation.
2023-05-17 20:18:42 -04:00
Lars Brinkhoff
021413a2d7 IMLAC: Add breakpoints for memory reads and writes. 2023-05-10 09:24:56 -04:00
Mark Pizzolato
decbe5b76b Various simulators: Set line endings to CRLF for consistency, remove stray tabs
Project standard source code has tabs converted to spaces and CRLF line
endings.

Other text files have CRLF line endings.
2023-03-19 16:51:27 -04:00
Lars Brinkhoff
96ac1c4ba0 IMLAC: Fix wrong instruction mask for decoding. 2022-03-11 09:27:07 +01:00
Lars Brinkhoff
e9b083508b IMLAC: Call display library directly; use new display_line API. 2021-03-29 20:36:59 +02: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
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
Lars Brinkhoff
b471f16a0a IMLAC: Use sim_video stubs rather than #ifdefs. 2020-11-25 09:22:26 +01:00
Lars Brinkhoff
bf2dabdebf IMLAC: Fix compiler warnings. 2020-11-24 14:33:58 +01:00
Lars Brinkhoff
222c9d91b4 IMLAC: Improve debug output. 2020-11-04 14:41:19 +01:00
Mark Pizzolato
ae825c9afb All: Declare sim_stop_messages as an array SCPE_BASE long
This avoids a potential invalid pointer dereference when formatting
the return value from sim_instr() if it is < SCPE_BASE but greater
than the previously defined static array size.sizeof

Update simh.doc to reflect this generic change.
2020-09-02 15:56:07 -07:00
Lars Brinkhoff
4ab34c58af IMLAC: Add F11 to toggle full screen. 2020-07-08 08:28:41 +02:00
Lars Brinkhoff
375caac45c IMLAC: Remove unused variable. 2020-06-26 16:58:28 +02:00
Lars Brinkhoff
da76d6eca1 IMLAC: Also load block register when loading DPC.
Not doing this will make jumps fail when the display processor is
started from an adress larger than 7777.
2020-06-26 16:57:32 +02:00
Lars Brinkhoff
ab1a922af0 IMLAC: Implement CPU instruction execution history. 2020-06-26 16:57:23 +02:00
Lars Brinkhoff
23a2b5883c IMLAC: Implement PTR, paper tape reader. 2020-06-20 16:01:00 +02:00
Lars Brinkhoff
ee3bd8f39c IMLAC: Fix two minor bugs.
- Display PC masked to be inside core memory.
- Do not sign extend characters read from TTY.
2020-06-19 21:57:12 +02:00
Lars Brinkhoff
a91679d6f5 IMLAC: Fix data switches. 2020-06-16 14:21:35 +02:00
Lars Brinkhoff
4cac65af40 IMLAC: Fix keyboard TYPE=CONSOLE. 2020-06-15 18:05:13 +02:00
Lars Brinkhoff
629f138fea IMLAC: Add MIT bell device.
A hardware device particular to MIT with some kind of bell sound.
2020-06-15 12:44:41 +02:00
Lars Brinkhoff
1d3d20e999 IMLAC: Fix bug in long vector instruction.
X and Y were swapped.
2020-06-14 19:55:12 +02:00
Lars Brinkhoff
50266704ca IMLAC: Implement 8-level return stack for display processor.
Needed by Maze.
2020-06-14 18:50:48 +02:00
Lars Brinkhoff
582afd9250 IMLAC: Fix bug in shift/rotate instructions. 2020-06-14 16:19:32 +02:00
Lars Brinkhoff
f95ac7ddbd IMLAC: Simulator for Imlac PDS-1. 2020-06-12 16:05:50 +02:00