With additional Medley calls to KEYACTION (below), they should work in TTYIN (i.e., XCL and Interlisp EXECs).
I didn't try TEDIT.
They are unrecognized in SEDIT. (In any case, their use there probably is pretty restricted by the nature of SEDIT.)
(KEYACTION 'KEYPAD8 '(("Meta,^" 56 NOLOCKSHIFT) . IGNORE))
(KEYACTION 'KEYPAD6 '(("Meta,>" 54 NOLOCKSHIFT) . IGNORE))
(KEYACTION 'KEYPAD4 '(("Meta,<" 52 NOLOCKSHIFT) . IGNORE))
(KEYACTION 'KEYPAD2 '(("Meta,^J" 50 NOLOCKSHIFT) . IGNORE))
Unify the LispDisplayRequested... and lispDisplayRequested...
variables from the SDL and X11 display modules.
Move the storage definitions for LispDisplayRequested... to main.c
leaving external references in the modules that utilize them.
The implementation of various JUMP opcodes tried to use a common tail
that did a POP and branched to the next opcode. While the extra gotos
probably aren't harmful, neither are they beneficial to code size or speed.
* Update buildRelease workflow to use sdl2-2.30.11 on MacOS
* In buildRelease workflow, update Macos build for SDL to use -DMAIKO_DISPLAY_SDL=2 instead of =ON
A missing check for the applicability of a versioned file cache
caused loadups to fail in the case where the modification timestamp
of a directory and its parent were identical, and the file being
looked up had the same name (when lowercased) as the directory it was
contained within. E.g., looking up TEDIT in library/tedit/ where
the modification times of library and library/tedit were identical.
The inode number of the directory containing the file must be the
same as the inode number of the directory the cache was built from.
Redesign of exit status handling, instead of overloading the FAST flag
of (LOGOUT fast), add an optional 2nd argument, EXITSTATUS.
Retains compatability, with behavior unchanged, between new emulator
and older sysouts which do not pass the second argument to LISPFINISH.
Newer sysouts, which pass the 2nd argument, will continue to work with
older emulators though will not get the exit status set.
These changes add (LOGOUT <number>) to the traditional
(LOGOUT) and (LOGOUT T) calls. If an integer <number> is provided
it will be used as the exit status code, while NIL and T result
in an EXIT_SUCCESS.
If the argument passed is none of NIL, T, or a number, the exit
status code will be a generic EXIT_FAILURE (typically 1).
(LOGOUT) and (LOGOUT T) virtual memory behavior is unaffected.
When a <number> is passed Lisp will exit without saving the
virtual memory state, as is the case for (LOGOUT T), although
this behavior is determined by Lisp rather than the Maiko emulator.
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.
At some point option "-t" was introduced as an abbreviation for
"-title" but "-t" was already in use, though undocumented, for overriding
the timer interval. This commit changes the command line timer option
to "-timer" and adds "timer" to the options that are processed from
the X11 resources.
Two problems fixed:
* only in the case of a software cursor is it necessary to check if
the bit being altered is within the region of the display covered by
the cursor, and if it is, the cursor must be hidden before operating
on the screen bitmap
* SDL as well as X requires modifications to the screen bitmap be
flushed to the actual display.
When the target for a PILOTBITBLT operation is the display bitmap,
and the display bitmap is not memory-mapped from the actual display,
the display subsystem needs to be notified to flush the Lisp display
bitmap to the display so that changes are immediately visible.
The mechanism was present for X11 displays but needed to be implemented
for SDL displays.
The variable MaikoGitVersion will contain a git revision from the head of the source tree
along with an indication if the status was "dirty". If git is not present on the system
or the directory that the build happened in was not under git control the version will be
"none".
Files gcfinal.c and testool.c both contain literal TAB characters embedded
in printf() format strings in an attempt to align output.
The output formatting depends on the user's simulated tab settings and
therefore may not produce the expected results.
The output formatting is rewritten to make tab characters unnecessary.
File rawcolordefs.h was completely missing.
Both llcolordefs.h and rawcolordefs.h must be included in subr.c if -DCOLOR
Make newColorizeFont8() local to rawcolor.c
Options for requested width, height, and pixel scaling and window title can
be shared between display subsystems.
Include correct header for local sdl function definitions rather than
manually duplicating a reference for init_SDL().
Correct a typo in comments on build_lisp_map().