|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T d
Length: 2989 (0xbad) Types: TextFile Names: »debug.c«
└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987 └─⟦this⟧ »EUUGD18/General/Abermud/debug.c«
/* ** */ #include "kernel.h" #include "condact.h" #include <signal.h> #ifdef RCSID static char RCS[] = "$Header: debug.c,v 1.1 89/03/13 09:36:03 rsalz Exp $"; #endif /* RCSID */ TABLE debug_command[] = { "exit", 0, "asave", 1, /* Most fo this is irrelevant crud * till we get game booting */ "aload", 2, /* off world startup data files and * not code segs */ "osave", 3, "oload", 4, "msave", 5, "mload", 6, "mlist", 7, "alist", 8, "olist", 9, "plist", 10, "medit", 11, "aedit", 12, "oedit", 13, "pedit", 14, "minsert", 15, "ainsert", 16, "oinsert", 17, "pinsert", 18, "spawn", 19, "vlist", 20, "vsave", 22, "ctrap", 21, NULL, -1 }; int TFindCode(tptr, name) register TABLE *tptr; register char *name; { for (; tptr->t_name; tptr++) if (EQ(tptr->t_name, name)) return tptr->t_code; return -1; } dgetinput(prmpt, bfr) char *prmpt, *bfr; { sig_alon(); key_input(prmpt, 60); sig_aloff(); strcpy(bfr, key_buff); } dcommand() { char x[80]; while (1) { dgetinput("DEBUG:1/04>", x); switch (TFindCode(debug_command, x)) { case -1: bprintf("Unknown Debug command.\n"); break; case 0: bprintf("Exiting Debugger.\n"); return; case 7: mlist(); break; case 8: alist(); break; case 9: olist(); break; case 10: plist(); break; case 19: spawn(); break; case 20: vlist_dbg(); break; case 21: signal(SIGINT, SIG_DFL); break; case 22: vsave(); break; default: bprintf("Not yet implemented...\n"); } } } debug2() { dcommand(); } dgetnum(prmpt, rl, ru) char *prmpt; int rl, ru; { char bf[81]; int v; while (1) { dgetinput(prmpt, bf); sscanf(bf, "%d", &v); if (v >= rl && v <= ru) return v; bprintf("Sorry - invalid , range is %d..%d.\n", rl, ru); } } mlist() { int a, b, c; a = countmsg(); b = dgetnum("From:", 0, a); c = dgetnum("To:", b, a); for (; b <= c; b++) { bprintf("%d]%s\n", b, messages[b]); pbfr(); } } countmsg() { register char **p; for (p = messages; *p; p++) ; return p - messages; } alist() { } olist() { register int ct; for (ct = 0; ct < numobs; ct++) { bprintf("%s\n", oname(ct)); pbfr(); } } plist() { } spawn() { bprintf("Spawning personal universe...."); closeworld(); spawned = 1; bprintf("Welcome to your personal universe...\n"); } vlist_dbg() { register int ct; closeworld(); for (ct = 0; verbtxt[ct]; ct++) { bprintf("%-20s:%d\n", verbtxt[ct], verbnum[ct]); if (ct % 20) pbfr(); } } vsave() { register FILE *a; register int ct; if ((a = fopen("voc.dmp", "w")) == NULL) bprintf("Cannot open voc.dmp\n"); else { for (ct = 0; verbtxt[ct]; ct++) fprintf(a, "%s %d\n", verbtxt[ct], verbnum[ct]); fclose(a); } }