1
0
mirror of https://github.com/Interlisp/maiko.git synced 2026-03-16 14:57:20 +00:00

Compare commits

..

1 Commits

Author SHA1 Message Date
Matt Heffron
966290ff4d Enable runtime controlled debug output.
Currently only in make_X_keymap.
Output is to STDOUT (since the conditional compilation DEBUG did)

Medley branch: mth38--command-line-arg-to-support-maiko-runtime-debug adds command line argument support for this.
2025-02-17 12:35:02 -08:00
4 changed files with 36 additions and 26 deletions

View File

@@ -71,6 +71,8 @@ extern DspInterface currentdsp;
extern int LispKbdFd;
int LispKbdFd = -1;
extern int runtime_debug_level;
extern fd_set LispReadFds;
extern DLword *EmMouseX68K;
@@ -375,6 +377,20 @@ static u_char *make_X_keymap(void) {
table[xcode - 7] = code;
}
if (runtime_debug_level > 0) {
printf("*********************************************************************\n");
printf("(DEFINE-FILE-INFO \036PACKAGE \"INTERLISP\" \036READTABLE \"XCL\" \036 BASE 10)\n");
printf("(SETQ XGetKeyboardMappingTable '(\n");
for (i = 0; i < codecount * symspercode; i += symspercode) {
printf("(%d (", minkey + (i / symspercode));
for (int j = 0; j < symspercode; j++) {
printf(" #X%lx", (unsigned long)mapping[i+j]);
}
printf(" ))\n");
}
printf("\n))\nSTOP\n");
printf("*********************************************************************\n");
}
#ifdef DEBUG
printf("\n\n\tXGetKeyboardMapping table\n\n");
for (i = 0; i < codecount * symspercode; i += symspercode) {

View File

@@ -226,6 +226,8 @@ int save_argc;
char **save_argv;
int display_max = 65536 * 16 * 2;
long runtime_debug_level = 0;
/* diagnostic flag for sysout dumping */
extern unsigned maxpages;
@@ -315,7 +317,7 @@ const char *nethubHelpstring =
const char *nethubHelpstring = "";
#endif
#if MAIKO_OS_LINUX || defined(MAIKO_EMULATE_TIMER_INTERRUPTS) || defined(MAIKO_EMULATE_ASYNC_INTERRUPTS)
#if defined(MAIKO_EMULATE_TIMER_INTERRUPTS) || defined(MAIKO_EMULATE_ASYNC_INTERRUPTS)
extern int insnsCountdownForTimerAsyncEmulation;
#endif
@@ -345,6 +347,7 @@ int main(int argc, char *argv[])
{
int i;
char *envname;
char *rtdebug;
extern int TIMER_INTERVAL;
extern fd_set LispReadFds;
long tmpint;
@@ -601,7 +604,7 @@ int main(int argc, char *argv[])
}
#endif /* MAIKO_ENABLE_NETHUB */
#if MAIKO_OS_LINUX || defined(MAIKO_EMULATE_TIMER_INTERRUPTS) || defined(MAIKO_EMULATE_ASYNC_INTERRUPTS)
#if defined(MAIKO_EMULATE_TIMER_INTERRUPTS) || defined(MAIKO_EMULATE_ASYNC_INTERRUPTS)
else if (!strcmp(argv[i], "-intr-emu-insns")) {
if (argc > ++i) {
errno = 0;
@@ -677,6 +680,14 @@ int main(int argc, char *argv[])
//
//
if ((rtdebug = getenv("LDERUNTIMEDEBUG")) != NULL) {
errno = 0;
runtime_debug_level = strtol(rtdebug, (char **)NULL, 10);
if (errno != 0) {
runtime_debug_level = 0; // default to OFF if erroneous value
}
}
/* Sanity checks. */
#ifdef DOS

View File

@@ -454,11 +454,6 @@ static void int_timer_service(int sig)
/* */
/************************************************************************/
#if MAIKO_OS_LINUX
// for WSL1, which doesn't support setitimer(ITIMER_VIRTUAL ...)
int linux_emulate_timer = 0;
#endif /* MAIKO_OS_LINUX */
static void int_timer_init(void)
{
@@ -494,11 +489,6 @@ static void int_timer_init(void)
/* then attach a timer to it and turn it loose */
timert.it_interval.tv_sec = timert.it_value.tv_sec = 0;
timert.it_interval.tv_usec = timert.it_value.tv_usec = TIMER_INTERVAL;
#if MAIKO_OS_LINUX
// (For WSL1) Capture error output from setittimer to indicate need to emulate timer
linux_emulate_timer =
#endif /* MAIKO_OS_LINUX */
setitimer(ITIMER_VIRTUAL, &timert, NULL);
DBPRINT(("Timer interval set to %ld usec\n", (long)timert.it_value.tv_usec));
@@ -509,7 +499,7 @@ static void int_timer_init(void)
/* */
/* */
/* */
/*
/* */
/* */
/* */
/* */

View File

@@ -173,7 +173,7 @@ static const int n_mask_array[16] = {
extern int TIMER_INTERVAL;
#if MAIKO_OS_LINUX || defined(MAIKO_EMULATE_TIMER_INTERRUPTS) || defined(MAIKO_EMULATE_ASYNC_INTERRUPTS)
#if defined(MAIKO_EMULATE_TIMER_INTERRUPTS) || defined(MAIKO_EMULATE_ASYNC_INTERRUPTS)
# if !defined(MAIKO_TIMER_ASYNC_EMULATION_INSNS_COUNTDOWN)
# define MAIKO_TIMER_ASYNC_EMULATION_INSNS_COUNTDOWN 20000
@@ -181,9 +181,7 @@ extern int TIMER_INTERVAL;
int insnsCountdownForTimerAsyncEmulation = MAIKO_TIMER_ASYNC_EMULATION_INSNS_COUNTDOWN;
static int pseudoTimerAsyncCountdown = MAIKO_TIMER_ASYNC_EMULATION_INSNS_COUNTDOWN;
#if MAIKO_OS_LINUX
extern int linux_emulate_timer;
#endif /* MAIKO_OS_LINUX */
#endif
void dispatch(void) {
@@ -284,12 +282,10 @@ nextopcode:
#endif /* PCTRACE */
/* quick_stack_check();*/ /* JDS 2/12/98 */
#if MAIKO_OS_LINUX || defined(MAIKO_EMULATE_TIMER_INTERRUPTS) || defined(MAIKO_EMULATE_ASYNC_INTERRUPTS)
#if MAIKO_OS_LINUX
if (linux_emulate_timer) {
#endif /* MAIKO_OS_LINUX */
if (--pseudoTimerAsyncCountdown <= 0) {
Irq_Stk_Check = 0;
#if defined(MAIKO_EMULATE_TIMER_INTERRUPTS) || defined(MAIKO_EMULATE_ASYNC_INTERRUPTS)
if (--pseudoTimerAsyncCountdown <= 0) {
Irq_Stk_Check = 0;
Irq_Stk_End = 0;
#if defined(MAIKO_EMULATE_ASYNC_INTERRUPTS)
IO_Signalled = TRUE;
@@ -298,9 +294,6 @@ nextopcode:
emscripten_sleep(1);
#endif
pseudoTimerAsyncCountdown = insnsCountdownForTimerAsyncEmulation;
#if MAIKO_OS_LINUX
}
#endif /* MAIKO_OS_LINUX */
}
#endif