1
0
mirror of https://github.com/Interlisp/maiko.git synced 2026-01-13 23:27:12 +00:00
Nick Briggs e251f26816 Improves behavior of display subrs DSPBOUT and SHOWDISPLAY
DSPBOUT is called to output a single character to the "BCPL display",
which is the system text output rather than the bitmapped display.
Under maiko, this is mapped to "stdout". Interlisp-D uses CR as the EOL
character, but that is not appropriate for output to standard output
so CR is translated to LF here.  Standard output is buffered, but there
is no indication of when the output should be flushed, so flush on every
character, since this is a low frequency operation.

SHOWDISPLAY is called to switch between the "BCPL display" and the
bitmapped display.  The current display subsystems are not hooked up
to this subr, but this is a potential place to hook display size changes
in the future, so the code is updated to indicate the parameters passed
in and to set/reset the display initialization state variable.
2024-12-18 12:40:29 -08:00
2020-12-29 11:00:24 -08:00

Maiko

Maiko is the implementation of the Medley Interlisp virtual machine for a byte-coded Lisp instruction set, and some low-level functions for connecting Lisp to a display (via X11 or SDL), the local filesystem, and a network subsystem.

For an overview, see Medley Interlisp Introduction.

See the Medley repository for

Bug reports, feature requests, fixes and improvements, support for additional platforms and hardware are all welcome.

Development Platforms

Development has been primarily on macOS, FreeBSD, and Linux, with testing on Solaris and Windows. Processor architectures i386, x86_64, arm64, arm7l, and SPARC.

Building Maiko

Building with make

Building requires a C compiler (clang preferred), either make or CMake, and X11 client libraries (libx11-dev), or SDL2. For example, using make and X11:

$ sudo apt update
$ sudo apt install clang make libx11-dev
$ cd maiko/bin
$ ./makeright x
  • The build will (attempt to) detect the OS-type and cpu-type. It will build binaries lde and ldex in ../ostype.cputype (with .o files in ../ostype.cputype-x. For example, Linux on a 64-bit x86 will use linux.x86_64, while macOS 11 on a (new M1) Mac will use darwin.aarch64.
  • If you prefer gcc over clang, you will need to edit the makefile fragment for your configuration (makefile-ostype.cputype-x) and comment out the line (with a #) that defines CC as clang and uncomment the line (delete the #) for the line that defines CC as gcc.

Building with CMake

We provide a CMakeLists.txt which provides mostly matching build capabilities to the make setup. CMake options are provided to control the configuration of the Maiko executables:

  • MAIKO_DISPLAY_SDL: [OFF], 2, 3 - selects display subsystem SDL of version specified
  • MAIKO_DISPLAY_X11: [ON], OFF - selects X11 display subsystem
  • MAIKO_NETWORK_TYPE: [NONE], SUN_DLPI, SUN_NIT, NETHUB - network subsystem access
  • MAIKO_RELEASE: [351], various - see maiko/inc/version.h

While SDL3 is selectable, the Maiko code has not yet been updated to work with the SDL3 API.

Building For macOS

  • Building/running on macOS requires either an X server and X client libraries or the SDL2 library. An X-server for macOS (and X11 client libraries) can be freely obtained at https://www.xquartz.org/releases The SDL library is freely available from https://libsdl.org
Languages
C 95.6%
Assembly 3.4%
CMake 0.5%
Shell 0.3%
sed 0.2%