home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1992 March / Source_Code_CD-ROM_Walnut_Creek_March_1992.iso / usenet / altsrcs / 4 / 4012 < prev    next >
Encoding:
Text File  |  1991-09-09  |  39.9 KB  |  939 lines

  1. Newsgroups: alt.sources
  2. Path: wupost!zaphod.mps.ohio-state.edu!think.com!news.bbn.com!mips2!bubba!jtsillas
  3. From: jtsillas@bubba.ma30.bull.com (James Tsillas)
  4. Subject: mxgdb 1.0.3 (part 9/10)
  5. Organization: Bull HN, Worldwide Information Systems, Billerica, Mass., USA
  6. Distribution: alt
  7. Date: 6 Sep 91 14:46:57
  8. Message-ID: <JTSILLAS.91Sep6144657@bubba.ma30.bull.com>
  9. Sender: news@mips2.ma30.bull.com (Usenet News Manager)
  10.  
  11. ---- Cut Here and feed the following to sh ----
  12. #!/bin/sh
  13. # this is mxgdb.09 (part 9 of a multipart archive)
  14. # do not concatenate these parts, unpack them in order with /bin/sh
  15. # file mxgdb/gdb.c continued
  16. #
  17. if test ! -r _shar_seq_.tmp; then
  18.     echo 'Please unpack part 1 first!'
  19.     exit 1
  20. fi
  21. (read Scheck
  22.  if test "$Scheck" != 9; then
  23.     echo Please unpack part "$Scheck" next!
  24.     exit 1
  25.  else
  26.     exit 0
  27.  fi
  28. ) < _shar_seq_.tmp || exit 1
  29. if test ! -f _shar_wnt_.tmp; then
  30.     echo 'x - still skipping mxgdb/gdb.c'
  31. else
  32. echo 'x - continuing file mxgdb/gdb.c'
  33. sed 's/^X//' << 'SHAR_EOF' >> 'mxgdb/gdb.c' &&
  34. X *  > check the use list to create a list of directories for searching
  35. X *    source files.
  36. X *  > ask dbx for the source file and display it if it exists.
  37. X *  > open the command initialization file and executed the commands;
  38. X *    if Tstartup is true, remove the initialization file.
  39. X */
  40. void debug_init()
  41. {
  42. X    static visited = False;
  43. X
  44. X    if (!visited) {
  45. X    visited = True;
  46. X    dbx_init(xdbxinit);
  47. X    if (Tstartup)
  48. X        unlink(xdbxinit);
  49. X    strcpy(xdbxinit, "");
  50. X    }
  51. }
  52. X
  53. /*
  54. X *  This is a callback procedure invoked everytime when input is pending
  55. X *  on the file descriptor to dbx.
  56. X *  o reads all the data available on the file descriptor line by line
  57. X *    into local variable 'string' and global variable 'output'.
  58. X *    'output' records the entire dbx output whereas 'string' records
  59. X *    only the data read in this invocation of read_dbx().
  60. X *  o in Echo mode, the contents in 'string' is edited by filter()
  61. X *    before it gets displayed on the dialog window.
  62. X *  o once the dbx prompt is read, calls parse() to analyse the dbx output
  63. X *    and take appropriate action.
  64. X */
  65. /* ARGSUSED */
  66. void read_dbx(master, source, id)
  67. XXtPointer master;
  68. int       *source;
  69. XXtInputId *id;
  70. {
  71. X    static char *output = NULL;     /* buffer for dbx output */
  72. X    static char *next_string = NULL;
  73. X    static char *command;
  74. X    char     *string = NULL;
  75. X    char     s[LINESIZ];
  76. X    Boolean     more;
  77. X    
  78. X    more = True;
  79. X    while (more) {
  80. X    Prompt = False;
  81. X    /* keep reading until no more or until prompt arrives */
  82. X    while (more = fgets(s, LINESIZ, dbxfp) && !Prompt) {
  83. X        if (debug)
  84. X        fprintf(stderr, "=>%s", s);
  85. X        /* receive prompt? */
  86. X        if (!strncmp(s, dbxprompt, strlen(dbxprompt))) {
  87. X        Prompt = True;
  88. X        /* more stuff behind prompt? */
  89. X        if (s[strlen(dbxprompt)])
  90. X            /* remember it */
  91. X            next_string = XtNewString(s+strlen(dbxprompt));
  92. X        /* destroy contents */
  93. X        strcpy(s, "");
  94. X        }
  95. X        string = concat(string, s);
  96. X        strcpy(s, "");
  97. X    }
  98. X    output = concat(output, string);
  99. X    command = get_command();
  100. X        
  101. X    if (Echo) {
  102. X        filter(string, output, command);
  103. X        if (Prompt) AppendDialogText(xdbxprompt);
  104. X    }
  105. X    if (string) {
  106. X        XtFree(string);
  107. X        string = NULL;
  108. X    }
  109. X    if (next_string) {
  110. X        string = concat(string, next_string);
  111. X        XtFree(next_string);
  112. X        next_string = NULL;
  113. X    }
  114. X    if (Prompt) {
  115. X        parse(output, command);
  116. X        delete_command();
  117. X        XtFree(output);
  118. X        output = NULL;
  119. X    }
  120. X    }
  121. }
  122. X
  123. /*  Write string s to dbx, and flush the output.  */
  124. X
  125. void write_dbx(s)
  126. char *s;
  127. {
  128. X    if (debug)
  129. X        fprintf(stderr, ">>%s", s);        /* (PW) see what is sent to GDB */
  130. X        
  131. X    fputs(s, dbxfp);
  132. X    fflush(dbxfp);
  133. }
  134. X
  135. /*  Sends a command to dbx and read the corresponding output, directly
  136. X *  invoking the Xt input procedure, read_dbx().
  137. X */
  138. void query_dbx(command)
  139. char *command;
  140. {
  141. X    write_dbx(command);
  142. X    insert_command(command);
  143. X
  144. X    Echo = False;
  145. X    Prompt = False;
  146. X    while (!Prompt)
  147. X        read_dbx();
  148. X
  149. X    Parse = True;    /* Always reset Parse and Echo to True */
  150. X    Echo = True;
  151. }
  152. SHAR_EOF
  153. echo 'File mxgdb/gdb.c is complete' &&
  154. chmod 0664 mxgdb/gdb.c ||
  155. echo 'restore of mxgdb/gdb.c failed'
  156. Wc_c="`wc -c < 'mxgdb/gdb.c'`"
  157. test 7504 -eq "$Wc_c" ||
  158.     echo 'mxgdb/gdb.c: original size 7504, current size' "$Wc_c"
  159. rm -f _shar_wnt_.tmp
  160. fi
  161. # ============= mxgdb/mxgdb.c ==============
  162. if test -f 'mxgdb/mxgdb.c' -a X"$1" != X"-c"; then
  163.     echo 'x - skipping mxgdb/mxgdb.c (File already exists)'
  164.     rm -f _shar_wnt_.tmp
  165. else
  166. > _shar_wnt_.tmp
  167. echo 'x - extracting mxgdb/mxgdb.c (Text)'
  168. sed 's/^X//' << 'SHAR_EOF' > 'mxgdb/mxgdb.c' &&
  169. static char rcsid[] = "$Id: mxgdb.c,v 1.1 1991/08/23 16:34:22 jtsillas Exp $";
  170. X
  171. /*****************************************************************************
  172. X *
  173. X *  xdbx - X Window System interface to the dbx debugger
  174. X *
  175. X *  Copyright 1989 The University of Texas at Austin
  176. X *  Copyright 1990 Microelectronics and Computer Technology Corporation
  177. X *
  178. X *  Permission to use, copy, modify, and distribute this software and its
  179. X *  documentation for any purpose and without fee is hereby granted,
  180. X *  provided that the above copyright notice appear in all copies and that
  181. X *  both that copyright notice and this permission notice appear in
  182. X *  supporting documentation, and that the name of The University of Texas
  183. X *  and Microelectronics and Computer Technology Corporation (MCC) not be 
  184. X *  used in advertising or publicity pertaining to distribution of
  185. X *  the software without specific, written prior permission.  The
  186. X *  University of Texas and MCC makes no representations about the 
  187. X *  suitability of this software for any purpose.  It is provided "as is" 
  188. X *  without express or implied warranty.
  189. X *
  190. X *  THE UNIVERSITY OF TEXAS AND MCC DISCLAIMS ALL WARRANTIES WITH REGARD TO
  191. X *  THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
  192. X *  FITNESS, IN NO EVENT SHALL THE UNIVERSITY OF TEXAS OR MCC BE LIABLE FOR
  193. X *  ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
  194. X *  RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
  195. X *  CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
  196. X *  CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  197. X *
  198. X *  Author:      Po Cheung
  199. X *  Created:       March 10, 1989
  200. X * 
  201. X *****************************************************************************
  202. X * 
  203. X *  xxgdb - X Window System interface to the gdb debugger
  204. X *  
  205. X *     Copyright 1990 Thomson Consumer Electronics, Inc.
  206. X *  
  207. X *  Permission to use, copy, modify, and distribute this software and its
  208. X *  documentation for any purpose and without fee is hereby granted,
  209. X *  provided that the above copyright notice appear in all copies and that
  210. X *  both that copyright notice and this permission notice appear in
  211. X *  supporting documentation, and that the name of Thomson Consumer
  212. X *  Electronics (TCE) not be used in advertising or publicity pertaining
  213. X *  to distribution of the software without specific, written prior
  214. X *  permission.  TCE makes no representations about the suitability of
  215. X *  this software for any purpose.  It is provided "as is" without express
  216. X *  or implied warranty.
  217. X *
  218. X *  TCE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
  219. X *  ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT
  220. X *  SHALL TCE BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES
  221. X *  OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
  222. X *  WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
  223. X *  ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
  224. X *  SOFTWARE.
  225. X *
  226. X *  Adaptation to GDB:  Pierre Willard
  227. X *  XXGDB Created:       December, 1990
  228. X *
  229. X *****************************************************************************
  230. X
  231. /*  mxgdb.c
  232. X *
  233. X *    Contain main program and initialization, command line options handling,
  234. X *    and resource database management.
  235. X *
  236. X *    Syntax():        Print an error message if xdbx is invoked with an
  237. X *            incorrect number of arguments.
  238. X *    main_init():    Initialization routine.
  239. X *    gdboptions():    Construct command line arguments for dbx.
  240. X *    main():        Main program.
  241. X */
  242. X
  243. #   include <stdio.h>
  244. #   include <sys/param.h>
  245. #if defined(SYSV) && defined(Mips)
  246. #   include <unistd.h>
  247. #endif
  248. #include "global.h"
  249. #include "bitmaps.h"
  250. #include <X11/Shell.h>
  251. X
  252. #define Offset(field) (XtOffset(MxgdbResources *, field))
  253. X
  254. char            cwd[MAXPATHLEN];        /* The current working directory */
  255. XXtAppContext      app_context;         /* application context */
  256. Widget      toplevel;         /* top level widget */
  257. Display        *display;        /* connection to X server */
  258. MxgdbResources     app_resources;        /* application resources of xdbx */
  259. char         xdbxinit[LINESIZ];    /* initialization file name */
  260. Boolean        Tstartup = False;    /* if True, remove xdbxinit */
  261. Boolean        debug = False;        /* debug mode for xdbx */
  262. X
  263. X
  264. static XtResource resources[] = {
  265. X  { "useCommandDialog", "UseCommandDialog", XtRBoolean, sizeof(Boolean),
  266. X      Offset(useCommandDialog), XtRImmediate, (caddr_t)False },
  267. X  { "bell", "Bell", XtRBoolean, sizeof(Boolean), 
  268. X     Offset(bell), XtRImmediate, (caddr_t)False },
  269. X  { "delimiters", "Delimiters", XtRString, sizeof(char *), 
  270. X     Offset(delimiters), XtRImmediate, (caddr_t)NULL },
  271. X  { "prompt", "Prompt", XtRString, sizeof(char *), 
  272. X     Offset(prompt), XtRImmediate, (caddr_t)NULL },
  273. X  { "stop_color", "StopColor", XtRPixel, sizeof(Pixel), 
  274. X     Offset(stop_color), XtRString, "Red" },
  275. X  { "arrow_color", "ArrowColor", XtRPixel, sizeof(Pixel), 
  276. X     Offset(arrow_color), XtRString, "Blue" },
  277. X  { "updown_color", "UpdownColor", XtRPixel, sizeof(Pixel), 
  278. X     Offset(updown_color), XtRString, "Blue" },
  279. X  { "bomb_color", "bombColor", XtRPixel, sizeof(Pixel), 
  280. X     Offset(bomb_color), XtRString, "Red" },
  281. X  { "bigicon", "Xdbxoptions", XtRBoolean, sizeof(Boolean), 
  282. X     Offset(bigicon), XtRImmediate, (caddr_t)False },
  283. X  { "debug", "Xdbxoptions", XtRBoolean, sizeof(Boolean), 
  284. X     Offset(debug), XtRImmediate, (caddr_t)False },
  285. X  { "includeDir", "Dbxoptions", XtRString, sizeof(char *), 
  286. X     Offset(includeDir), XtRImmediate, (caddr_t)NULL},
  287. X  { "cfile", "Dbxoptions", XtRString, sizeof(char *), 
  288. X     Offset(cfile), XtRImmediate, (caddr_t)NULL },
  289. X  { "startup", "Dbxoptions", XtRString, sizeof(char *), 
  290. X     Offset(startup), XtRImmediate, (caddr_t)NULL },
  291. X  { "tstartup", "Dbxoptions", XtRString, sizeof(char *), 
  292. X     Offset(tstartup), XtRImmediate, (caddr_t)NULL },
  293. };
  294. X
  295. X
  296. static XrmOptionDescRec options[] = {
  297. X    { "-bigicon","bigicon",    XrmoptionNoArg, "True" },
  298. X    { "-debug",    "debug",    XrmoptionNoArg, "True" },
  299. X    { "-d",    "includeDir",    XrmoptionSepArg, NULL },
  300. };
  301. X
  302. static void Syntax(call)
  303. char *call;
  304. {
  305. X    fprintf(stderr,
  306. X        "Usage: %s [-toolkitoptions] [-gdboptions] [objfile [corefile]]\n",
  307. X        call);
  308. X    exit(1);
  309. }
  310. X
  311. Cursor xterm, top_left_arrow;
  312. X
  313. /*  Set window manager hints to indicate display accepts input.
  314. X *  Initialize routines in source.c, signs.c and parser.c.
  315. X *  Disable window resize of fileWindow.
  316. X *  Get the name of the dbx command initialization file.
  317. X */
  318. static void main_init()
  319. {
  320. X    XWMHints    wmhints;
  321. X    char    title[100];
  322. X
  323. X    display = XtDisplay(toplevel);
  324. X
  325. X    sprintf(title, "mxgdb 1.0.3");
  326. X    XStoreName(display, XtWindow(toplevel), title);
  327. X    XSetIconName(display, XtWindow(toplevel), "mxgdb");
  328. X
  329. X    xterm = XCreateFontCursor(display, XC_xterm);
  330. X    top_left_arrow = XCreateFontCursor(display, XC_top_left_arrow);
  331. X    XDefineCursor(display, XtWindow(sourceWindow), xterm);
  332. X    XDefineCursor(display, XtWindow(dialogWindow), xterm);
  333. X
  334. X    wmhints.input = True;
  335. X    if (app_resources.bigicon)
  336. X    wmhints.icon_pixmap = XCreateBitmapFromData(display, XtWindow(toplevel),
  337. X        mxgdb64_bits, mxgdb64_width, mxgdb64_height);
  338. X    else
  339. X    wmhints.icon_pixmap = XCreateBitmapFromData(display, XtWindow(toplevel),
  340. X        mxgdb48_bits, mxgdb48_width, mxgdb48_height);
  341. X    wmhints.flags = IconPixmapHint | InputHint;
  342. X    XSetWMHints(display, XtWindow(toplevel), &wmhints);
  343. X
  344. X    if (!app_resources.delimiters || 
  345. X    !strcmp(app_resources.delimiters, ""))
  346. X    app_resources.delimiters = XtNewString(DELIMITERS);
  347. X    if (app_resources.prompt && strcmp(app_resources.prompt, ""))
  348. X    xdbxprompt = app_resources.prompt;
  349. X    else
  350. X    xdbxprompt = XtNewString(XDBXPROMPT);
  351. X    debug = app_resources.debug;
  352. X
  353. X    strcpy(xdbxinit, ".gdbinit");
  354. X    if (access(xdbxinit, R_OK) == -1) {
  355. X        sprintf(xdbxinit, "%s/%s", (char *) getenv("HOME"), ".gdbinit");
  356. X        if (access(xdbxinit, R_OK) == -1) {
  357. X        strcpy(xdbxinit, "");
  358. X    }
  359. X    }
  360. X    
  361. X    source_init();
  362. X    signs_init();
  363. X    parser_init();
  364. }
  365. X
  366. X
  367. /*  Reconstruct command line arguments for calling gdb.
  368. X *  Return the argument list for gdb and new value of argc.
  369. X */
  370. static char **gdboptions(argc, argv, app_resources)
  371. X    int  *argc;
  372. X    char **argv;
  373. X    MxgdbResources *app_resources;
  374. {
  375. X    char **gdbargv;
  376. X    char *temp = "mxgdb.XXXXXX";
  377. X    int  i=0;
  378. X
  379. X    gdbargv = (char **) XtMalloc (MAXARGS * sizeof(char *));
  380. X    for (i=0; i < *argc; i++)
  381. X    gdbargv[i] = argv[i];
  382. X    gdbargv[i++] = "-fullname";    /* see gdb_regex.h */
  383. X    if (app_resources->includeDir) { /* Include directory */
  384. X    gdbargv[i++] = "-d ";
  385. X    gdbargv[i++] = app_resources->includeDir;
  386. X    }
  387. X    if (app_resources->cfile) {    /* Core file */
  388. X    gdbargv[i++] = "-c";
  389. X    gdbargv[i++] = app_resources->cfile;
  390. X    }
  391. X    if (strcmp(xdbxinit, "")) {        /* .dbxinit or ~/.dbxinit exists */
  392. X    gdbargv[i++] = "-nx";
  393. X    }
  394. X    if (app_resources->startup) {    /* overwrites dbxinit */
  395. X    Tstartup = False;
  396. X    strcpy(xdbxinit, app_resources->startup);
  397. X    }
  398. X    if (app_resources->tstartup) {    /* overwrites dbxinit */
  399. X    Tstartup = True;
  400. X    strcpy(xdbxinit, app_resources->tstartup);
  401. X    }
  402. X    gdbargv[i] = NULL;
  403. X    *argc = i;
  404. X    return gdbargv;
  405. }
  406. X
  407. void main(argc, argv)
  408. int argc;
  409. char **argv;
  410. {
  411. X    char     **gdbargv;
  412. X    Arg args[10];
  413. X
  414. X    getcwd((char *)cwd, MAXPATHLEN);
  415. X    trap_signals();
  416. X
  417. X    XtSetArg(args[0], XmNkeyboardFocusPolicy, XmPOINTER);
  418. X    toplevel = XtAppInitialize(&app_context, "Mxgdb", options, XtNumber(options), &argc, argv, NULL, args, 1);
  419. X
  420. X    if (argc > 3) Syntax(argv[0]);
  421. X    
  422. X    XtGetApplicationResources(toplevel, &app_resources, resources,
  423. X                              XtNumber(resources), NULL, 0);
  424. X
  425. X    CreateSubWindows(toplevel);
  426. X    XtRealizeWidget(toplevel);
  427. X
  428. X    main_init();
  429. X
  430. X    AppendDialogText("MXGDB Alpha-version 1.0.3\nMXGDB comes with ABSOLUTELY NO WARRANTY.\n");
  431. X
  432. X   
  433. X    gdbargv = gdboptions(&argc, argv, &app_resources);
  434. X    callgdb(argc, gdbargv);
  435. X    
  436. X    if(app_resources.useCommandDialog)
  437. X      XtManageChild(commandDialog);
  438. X
  439. X    XtAppMainLoop(app_context);
  440. }
  441. X
  442. X
  443. SHAR_EOF
  444. chmod 0664 mxgdb/mxgdb.c ||
  445. echo 'restore of mxgdb/mxgdb.c failed'
  446. Wc_c="`wc -c < 'mxgdb/mxgdb.c'`"
  447. test 9950 -eq "$Wc_c" ||
  448.     echo 'mxgdb/mxgdb.c: original size 9950, current size' "$Wc_c"
  449. rm -f _shar_wnt_.tmp
  450. fi
  451. # ============= mxgdb/bitmaps.c ==============
  452. if test -f 'mxgdb/bitmaps.c' -a X"$1" != X"-c"; then
  453.     echo 'x - skipping mxgdb/bitmaps.c (File already exists)'
  454.     rm -f _shar_wnt_.tmp
  455. else
  456. > _shar_wnt_.tmp
  457. echo 'x - extracting mxgdb/bitmaps.c (Text)'
  458. sed 's/^X//' << 'SHAR_EOF' > 'mxgdb/bitmaps.c' &&
  459. /* $Id: bitmaps.c,v 1.1 1991/08/23 16:34:18 jtsillas Exp $ */
  460. X
  461. /*****************************************************************************
  462. X *
  463. X *  xdbx - X Window System interface to the dbx debugger
  464. X *
  465. X *  Copyright 1989 The University of Texas at Austin
  466. X *  Copyright 1990 Microelectronics and Computer Technology Corporation
  467. X *
  468. X *  Permission to use, copy, modify, and distribute this software and its
  469. X *  documentation for any purpose and without fee is hereby granted,
  470. X *  provided that the above copyright notice appear in all copies and that
  471. X *  both that copyright notice and this permission notice appear in
  472. X *  supporting documentation, and that the name of The University of Texas
  473. X *  and Microelectronics and Computer Technology Corporation (MCC) not be 
  474. X *  used in advertising or publicity pertaining to distribution of
  475. X *  the software without specific, written prior permission.  The
  476. X *  University of Texas and MCC makes no representations about the 
  477. X *  suitability of this software for any purpose.  It is provided "as is" 
  478. X *  without express or implied warranty.
  479. X *
  480. X *  THE UNIVERSITY OF TEXAS AND MCC DISCLAIMS ALL WARRANTIES WITH REGARD TO
  481. X *  THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
  482. X *  FITNESS, IN NO EVENT SHALL THE UNIVERSITY OF TEXAS OR MCC BE LIABLE FOR
  483. X *  ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
  484. X *  RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
  485. X *  CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
  486. X *  CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  487. X *
  488. X *  Author:      Po Cheung
  489. X *  Created:       April 9, 1990
  490. X *
  491. X *****************************************************************************/
  492. X
  493. /*  bitmaps.c
  494. X *
  495. X *    Contain bitmap data for a 48x48 and a 64x64 mxgdb icon, and the 
  496. X *    stop sign, execution arrow, up-down arrow, and bomb sign used 
  497. X *    in the source window. Also contains the data for all the command
  498. X *      buttons. The widths and height are in bitmaps.h.
  499. X */
  500. X
  501. /* bitmap data for 48x48 mxgdb icon */
  502. X
  503. char mxgdb48_bits[] = {
  504. X   0xff, 0x0f, 0x00, 0x00, 0x00, 0xf0, 0xfe, 0x1f, 0x00, 0x00, 0x00, 0xf0,
  505. X   0xfc, 0x3f, 0x00, 0x00, 0x00, 0x78, 0xfc, 0x3f, 0x00, 0x00, 0x00, 0x3c,
  506. X   0xf8, 0x7f, 0x00, 0x02, 0x00, 0x3c, 0xf0, 0xff, 0x00, 0x02, 0x00, 0x1e,
  507. X   0xe0, 0xff, 0x01, 0x04, 0x00, 0x0f, 0xe0, 0xff, 0x01, 0x04, 0x80, 0x07,
  508. X   0xc0, 0xff, 0xe3, 0xff, 0xc0, 0x03, 0x80, 0xff, 0x1f, 0x01, 0xc7, 0x03,
  509. X   0x00, 0xff, 0x27, 0x01, 0xf8, 0x01, 0x00, 0xff, 0xcf, 0x60, 0xf0, 0x10,
  510. X   0x00, 0xfe, 0x1f, 0x90, 0xf8, 0x10, 0x00, 0xfc, 0x3f, 0x90, 0xbc, 0x08,
  511. X   0x00, 0xfc, 0x7f, 0x60, 0x3c, 0x07, 0x00, 0xfe, 0xff, 0x03, 0x1e, 0x02,
  512. X   0x00, 0xfe, 0xff, 0x04, 0x0f, 0x02, 0x00, 0xff, 0xff, 0x85, 0x07, 0x04,
  513. X   0x80, 0xff, 0xff, 0xc3, 0xc3, 0x04, 0x80, 0xdf, 0xff, 0xe7, 0x23, 0x05,
  514. X   0x84, 0x9f, 0xff, 0xef, 0x25, 0x09, 0xc8, 0x19, 0xff, 0xf7, 0xc4, 0x08,
  515. X   0xf0, 0x18, 0xfe, 0x7b, 0x03, 0x08, 0xc0, 0x1f, 0xfc, 0x3d, 0x00, 0x08,
  516. X   0xc0, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xc0, 0x1f, 0x78, 0x7f, 0x00, 0x08,
  517. X   0xf0, 0x98, 0xbd, 0xff, 0x00, 0x08, 0xc8, 0x59, 0xde, 0xff, 0x61, 0x08,
  518. X   0x84, 0x5f, 0xef, 0xff, 0x91, 0x04, 0x80, 0x9f, 0xc7, 0xff, 0x93, 0x04,
  519. X   0x80, 0x9f, 0x87, 0xff, 0x67, 0x04, 0x00, 0xdf, 0x03, 0xff, 0x0f, 0x02,
  520. X   0x00, 0xfe, 0x19, 0xfe, 0x1f, 0x02, 0x00, 0xfe, 0x24, 0xfe, 0x1f, 0x07,
  521. X   0x00, 0x7c, 0x24, 0xfc, 0xff, 0x08, 0x00, 0x78, 0x18, 0xfa, 0x7f, 0x10,
  522. X   0x00, 0x3c, 0x00, 0xf2, 0xff, 0x10, 0x00, 0xde, 0x00, 0xfc, 0xff, 0x00,
  523. X   0x00, 0x8f, 0x0f, 0xe0, 0xff, 0x01, 0x80, 0x87, 0xf0, 0xff, 0xff, 0x03,
  524. X   0x80, 0x87, 0x00, 0x84, 0xff, 0x07, 0xc0, 0x43, 0x00, 0x84, 0xff, 0x07,
  525. X   0xe0, 0x21, 0x00, 0x02, 0xff, 0x0f, 0xf0, 0x00, 0x00, 0x02, 0xfe, 0x1f,
  526. X   0x78, 0x00, 0x00, 0x00, 0xfc, 0x3f, 0x78, 0x00, 0x00, 0x00, 0xfc, 0x3f,
  527. X   0x3c, 0x00, 0x00, 0x00, 0xf8, 0x7f, 0x1e, 0x00, 0x00, 0x00, 0xf0, 0xff};
  528. X
  529. X
  530. /* bitmap data for 64x64 mxgdb icon */
  531. X
  532. char mxgdb64_bits[] = {
  533. X   0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfe, 0xff, 0x01, 0x00,
  534. X   0x00, 0x00, 0x00, 0xf8, 0xfc, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x7c,
  535. X   0xf8, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x3e, 0xf8, 0xff, 0x07, 0x00,
  536. X   0x00, 0x00, 0x00, 0x1f, 0xf0, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x80, 0x0f,
  537. X   0xe0, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x80, 0x0f, 0xc0, 0xff, 0x3f, 0x00,
  538. X   0x00, 0x00, 0xc0, 0x07, 0xc0, 0xff, 0x3f, 0x00, 0x01, 0x00, 0xe0, 0x03,
  539. X   0x80, 0xff, 0x7f, 0x00, 0x02, 0x00, 0xf0, 0x01, 0x00, 0xff, 0xff, 0x00,
  540. X   0x04, 0x00, 0xf8, 0x00, 0x00, 0xfe, 0xff, 0x01, 0x04, 0x00, 0xf8, 0x00,
  541. X   0x00, 0xfe, 0xff, 0x01, 0x04, 0x00, 0x7c, 0x00, 0x00, 0xfc, 0xff, 0xff,
  542. X   0xff, 0x01, 0x3e, 0x04, 0x00, 0xf8, 0xff, 0x07, 0x00, 0x1e, 0x1f, 0x04,
  543. X   0x00, 0xf0, 0xff, 0x0f, 0x00, 0xe0, 0x0f, 0x04, 0x00, 0xf0, 0xff, 0x0f,
  544. X   0x80, 0x81, 0x07, 0x02, 0x00, 0xe0, 0xff, 0x1f, 0x40, 0xc2, 0x07, 0x01,
  545. X   0x00, 0xc0, 0xff, 0xbf, 0x41, 0xe2, 0x8b, 0x01, 0x00, 0xc0, 0xff, 0x7f,
  546. X   0x82, 0xf1, 0xd1, 0x00, 0x00, 0xe0, 0xff, 0xff, 0x02, 0xf8, 0x60, 0x00,
  547. X   0x00, 0xf0, 0xff, 0xff, 0x01, 0x7c, 0x40, 0x00, 0x00, 0xf8, 0xfe, 0xff,
  548. X   0x01, 0x7c, 0x80, 0x00, 0x00, 0xfc, 0xfc, 0xff, 0x03, 0x3e, 0x80, 0x00,
  549. X   0x00, 0xfc, 0xfc, 0xff, 0x03, 0x1f, 0x00, 0x01, 0x00, 0xfe, 0xf8, 0xff,
  550. X   0x87, 0x0f, 0x03, 0x01, 0x00, 0xff, 0xf0, 0xff, 0xcf, 0x87, 0x04, 0x02,
  551. X   0x08, 0xff, 0xe0, 0xff, 0xcf, 0x87, 0x04, 0x02, 0x10, 0xe7, 0xe0, 0xff,
  552. X   0xe7, 0x03, 0x03, 0x02, 0xe0, 0xe3, 0xc0, 0xff, 0xf3, 0x01, 0x00, 0x04,
  553. X   0x80, 0xff, 0x80, 0xff, 0xf9, 0x00, 0x00, 0x04, 0x80, 0xff, 0x00, 0xff,
  554. X   0xfc, 0x00, 0x00, 0x04, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07,
  555. X   0x80, 0xff, 0x00, 0x7e, 0xfe, 0x01, 0x00, 0x04, 0x80, 0xff, 0x00, 0x3e,
  556. X   0xff, 0x1b, 0x00, 0x04, 0xe0, 0xe3, 0x00, 0x9f, 0xff, 0x27, 0x00, 0x04,
  557. X   0x10, 0xe7, 0xb0, 0xcf, 0xff, 0x2f, 0x30, 0x02, 0x08, 0xff, 0xc8, 0xe7,
  558. X   0xff, 0x1f, 0x48, 0x02, 0x00, 0xff, 0xe8, 0xe7, 0xff, 0x1f, 0x48, 0x02,
  559. X   0x00, 0xfe, 0xf0, 0xc3, 0xff, 0x3f, 0x30, 0x01, 0x00, 0xfc, 0xf0, 0xc1,
  560. X   0xff, 0x3f, 0x00, 0x01, 0x00, 0xfc, 0xf8, 0x80, 0xff, 0x7f, 0x80, 0x00,
  561. X   0x00, 0xf8, 0x7c, 0x00, 0xff, 0xff, 0x80, 0x00, 0x00, 0xf0, 0x7c, 0x18,
  562. X   0xfe, 0xff, 0xc1, 0x00, 0x00, 0xe0, 0x3e, 0x24, 0xfe, 0xff, 0x61, 0x00,
  563. X   0x00, 0xc0, 0x1f, 0x24, 0xfc, 0xff, 0xd3, 0x00, 0x00, 0x80, 0x0f, 0x18,
  564. X   0xf8, 0xff, 0x8f, 0x01, 0x00, 0xc0, 0x07, 0x00, 0xf4, 0xff, 0x0f, 0x01,
  565. X   0x00, 0xe0, 0x0f, 0x00, 0xe4, 0xff, 0x1f, 0x02, 0x00, 0xf0, 0x39, 0x00,
  566. X   0xf8, 0xff, 0x1f, 0x04, 0x00, 0xf0, 0xc9, 0x03, 0xc0, 0xff, 0x3f, 0x04,
  567. X   0x00, 0xf8, 0x08, 0xfc, 0xff, 0xff, 0x7f, 0x04, 0x00, 0x7c, 0x04, 0x00,
  568. X   0x01, 0xff, 0x7f, 0x00, 0x00, 0x3e, 0x02, 0x00, 0x01, 0xff, 0xff, 0x00,
  569. X   0x00, 0x3e, 0x00, 0x00, 0x01, 0xfe, 0xff, 0x01, 0x00, 0x1f, 0x00, 0x80,
  570. X   0x00, 0xfc, 0xff, 0x03, 0x80, 0x0f, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x03,
  571. X   0xc0, 0x07, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x07, 0xe0, 0x03, 0x00, 0x00,
  572. X   0x00, 0xf0, 0xff, 0x0f, 0xe0, 0x03, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x1f,
  573. X   0xf0, 0x01, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x1f, 0xf8, 0x00, 0x00, 0x00,
  574. X   0x00, 0xc0, 0xff, 0x3f, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x7f,
  575. X   0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff};
  576. X
  577. X
  578. /* bitmap data for stop sign */
  579. X
  580. char stop_bits[] = {
  581. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0xa0, 0x03, 0xb8, 0x0e,
  582. X   0xa8, 0x0a, 0xa8, 0x0a, 0xa8, 0x0a, 0x18, 0x08, 0x10, 0x08, 0x30, 0x0c,
  583. X   0xe0, 0x07, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00};
  584. X
  585. /* bitmap data for arrow sign */
  586. X
  587. char arrow_bits[] = {
  588. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x01, 0x80, 0x03,
  589. X   0xff, 0x07, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x07, 0x80, 0x03, 0x80, 0x01,
  590. X   0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
  591. X
  592. X
  593. /* bitmap data for up-down (outlined arrow) sign */
  594. X
  595. char updown_bits[] = {
  596. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x01, 0x80, 0x03,
  597. X   0xff, 0x06, 0x01, 0x0c, 0x01, 0x0c, 0xff, 0x06, 0x80, 0x03, 0x80, 0x01,
  598. X   0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
  599. X
  600. X
  601. /* bitmap data for bomb sign */
  602. X
  603. char bomb_bits[] = {
  604. X   0x00, 0x00, 0x69, 0x00, 0x94, 0x00, 0x8a, 0x00, 0xc0, 0x01, 0xc5, 0x01,
  605. X   0xf0, 0x07, 0xf0, 0x07, 0xf8, 0x0f, 0xf8, 0x0d, 0xf8, 0x0d, 0xf8, 0x0d,
  606. X   0xf0, 0x06, 0xf0, 0x07, 0xc0, 0x01, 0x00, 0x00};
  607. X
  608. /* bitmap data for the command buttons */
  609. X
  610. char pageR_bits[] = {
  611. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0xc0, 0x07, 0x00,
  612. X   0x40, 0x0f, 0x00, 0x40, 0x1e, 0x00, 0x40, 0x3c, 0x00, 0x40, 0x78, 0x00,
  613. X   0x40, 0xf0, 0x00, 0x40, 0xe0, 0x01, 0x40, 0xc0, 0x03, 0x40, 0x80, 0x07,
  614. X   0x40, 0x80, 0x07, 0x40, 0xc0, 0x03, 0x40, 0xe0, 0x01, 0x40, 0xf0, 0x00,
  615. X   0x40, 0x78, 0x00, 0x40, 0x3c, 0x00, 0x40, 0x1e, 0x00, 0x40, 0x0f, 0x00,
  616. X   0xc0, 0x07, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
  617. X
  618. char pageL_bits[] = {
  619. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0xe0, 0x03,
  620. X   0x00, 0xf0, 0x02, 0x00, 0x78, 0x02, 0x00, 0x3c, 0x02, 0x00, 0x1e, 0x02,
  621. X   0x00, 0x0f, 0x02, 0x80, 0x07, 0x02, 0xc0, 0x03, 0x02, 0xe0, 0x01, 0x02,
  622. X   0xe0, 0x01, 0x02, 0xc0, 0x03, 0x02, 0x80, 0x07, 0x02, 0x00, 0x0f, 0x02,
  623. X   0x00, 0x1e, 0x02, 0x00, 0x3c, 0x02, 0x00, 0x78, 0x02, 0x00, 0xf0, 0x02,
  624. X   0x00, 0xe0, 0x03, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
  625. X
  626. char step_bits[] = {
  627. X   0x00, 0xc0, 0x00, 0x00, 0xe0, 0x01, 0x00, 0xf0, 0x03, 0x00, 0xf0, 0x07,
  628. X   0x00, 0xf8, 0x0f, 0x00, 0xf8, 0x0f, 0x00, 0xf8, 0x1f, 0x00, 0xf8, 0x1f,
  629. X   0x00, 0xf8, 0x1f, 0x00, 0xf8, 0x1f, 0x00, 0xf0, 0x1f, 0x00, 0xf0, 0x1f,
  630. X   0x00, 0xe0, 0x1f, 0x00, 0x80, 0x1f, 0x00, 0x00, 0x1f, 0x18, 0x00, 0x0f,
  631. X   0x3c, 0x00, 0x0e, 0x3e, 0x00, 0x00, 0x7f, 0x80, 0x0f, 0x7f, 0x80, 0x0f,
  632. X   0x7f, 0x80, 0x0f, 0xff, 0x00, 0x07, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00};
  633. X
  634. char next_bits[] = {
  635. X   0x00, 0xc0, 0x00, 0x00, 0x20, 0x01, 0x00, 0x30, 0x03, 0x00, 0x10, 0x06,
  636. X   0x00, 0x18, 0x08, 0x00, 0x08, 0x08, 0x00, 0x08, 0x18, 0x00, 0x08, 0x10,
  637. X   0x00, 0x08, 0x10, 0x00, 0x08, 0x10, 0x00, 0x10, 0x10, 0x00, 0x10, 0x10,
  638. X   0x00, 0x60, 0x10, 0x00, 0x80, 0x19, 0x00, 0x00, 0x19, 0x18, 0x00, 0x0b,
  639. X   0x24, 0x00, 0x0e, 0x22, 0x00, 0x00, 0x41, 0x80, 0x0f, 0x41, 0x80, 0x08,
  640. X   0x40, 0x80, 0x08, 0x80, 0x00, 0x07, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00};
  641. X
  642. char print_bits[] = {
  643. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x0e, 0x60,
  644. X   0x1c, 0x07, 0x70, 0xb8, 0x83, 0x60, 0xf0, 0x01, 0x61, 0xe0, 0x00, 0x62,
  645. X   0xe0, 0xf8, 0x67, 0xf0, 0x01, 0x62, 0xb8, 0x03, 0x61, 0x1c, 0x87, 0x60,
  646. X   0x0e, 0x0e, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  647. X   0xde, 0x93, 0x74, 0x52, 0x92, 0x25, 0xd2, 0x93, 0x26, 0xde, 0x91, 0x24,
  648. X   0x42, 0x92, 0x24, 0x42, 0x92, 0x24, 0x42, 0x92, 0x24, 0x00, 0x00, 0x00};
  649. X
  650. char down_bits[] = {
  651. X   0x00, 0x00, 0xe0, 0x03, 0x20, 0x02, 0x20, 0x02, 0x20, 0x02, 0x20, 0x02,
  652. X   0x20, 0x02, 0x20, 0x02, 0x20, 0x02, 0x20, 0x02, 0x3c, 0x1e, 0x08, 0x08,
  653. X   0x10, 0x04, 0x20, 0x02, 0x40, 0x01, 0x80, 0x00};
  654. X
  655. char up_bits[] = {
  656. X   0x80, 0x00, 0x40, 0x01, 0x20, 0x02, 0x10, 0x04, 0x08, 0x08, 0x3c, 0x1e,
  657. X   0x20, 0x02, 0x20, 0x02, 0x20, 0x02, 0x20, 0x02, 0x20, 0x02, 0x20, 0x02,
  658. X   0x20, 0x02, 0x20, 0x02, 0x20, 0x02, 0xe0, 0x03};
  659. X
  660. char stack_bits[] = {
  661. X   0x00, 0x00, 0x00, 0x00, 0xfc, 0x7f, 0x00, 0x04, 0x00, 0xee, 0x04, 0x00,
  662. X   0xa2, 0xfc, 0x7f, 0xee, 0x04, 0x00, 0x28, 0x04, 0x00, 0x2e, 0xfc, 0x7f,
  663. X   0x00, 0x04, 0x00, 0x04, 0x04, 0x00, 0x44, 0xfc, 0x7f, 0x84, 0x54, 0x55,
  664. X   0xfc, 0xad, 0x2a, 0x80, 0x54, 0x55, 0x40, 0xfc, 0x7f, 0x00, 0x04, 0x00,
  665. X   0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x04, 0x02, 0x00, 0x04, 0x00,
  666. X   0x00, 0x04, 0x02, 0x00, 0x04, 0x00, 0x00, 0x04, 0x02, 0x00, 0x00, 0x00};
  667. X
  668. char cont_bits[] = {
  669. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x27, 0xfa, 0xa2, 0x68, 0x22,
  670. X   0x82, 0xa8, 0x22, 0x82, 0x28, 0x23, 0x82, 0x28, 0x22, 0x82, 0x28, 0x22,
  671. X   0xa2, 0x28, 0x22, 0x1c, 0x27, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  672. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x7c, 0x00, 0x0c, 0xaa, 0xf8, 0x17,
  673. X   0xaa, 0x00, 0x20, 0x02, 0x01, 0x40, 0x02, 0x01, 0xc0, 0x82, 0xf8, 0x67,
  674. X   0xc6, 0xf0, 0x37, 0x7c, 0x00, 0x1c, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00};
  675. X
  676. char finish_bits[] = {
  677. X   0x00, 0x00, 0x00, 0x08, 0x4f, 0x22, 0x04, 0x41, 0x26, 0x04, 0x47, 0x2a,
  678. X   0x04, 0x41, 0x32, 0x02, 0x41, 0x22, 0x04, 0x41, 0x22, 0x04, 0x00, 0x00,
  679. X   0x04, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x88, 0x01,
  680. X   0x00, 0x88, 0x01, 0x00, 0x88, 0x01, 0x08, 0x88, 0x01, 0x10, 0x88, 0x01,
  681. X   0x10, 0x88, 0x01, 0x10, 0x8f, 0x07, 0x20, 0x02, 0x06, 0x10, 0x04, 0x03,
  682. X   0x10, 0x88, 0x01, 0x10, 0xd0, 0x00, 0x08, 0x60, 0x00, 0x00, 0x00, 0x00};
  683. X
  684. char run_bits[] = {
  685. X   0x00, 0x00, 0x00, 0x7c, 0x42, 0x21, 0x84, 0x42, 0x23, 0x84, 0x42, 0x25,
  686. X   0x7c, 0x42, 0x29, 0x24, 0x42, 0x31, 0x44, 0x42, 0x21, 0x84, 0x42, 0x21,
  687. X   0x84, 0x3c, 0x21, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x3f, 0x80, 0x80, 0x01,
  688. X   0x80, 0x80, 0x01, 0x80, 0x80, 0x01, 0x80, 0x80, 0x01, 0x80, 0x80, 0x01,
  689. X   0xf0, 0x80, 0x0f, 0x20, 0x00, 0x06, 0x40, 0x00, 0x03, 0x80, 0x80, 0x01,
  690. X   0x00, 0xc1, 0x00, 0x00, 0x62, 0x00, 0x00, 0x34, 0x00, 0x00, 0x18, 0x00};
  691. X
  692. char disp_bits[] = {
  693. X   0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x30, 0x06, 0x00, 0x08, 0x08, 0x00,
  694. X   0x04, 0x10, 0x20, 0x24, 0x12, 0x30, 0x62, 0x23, 0x21, 0xc2, 0x21, 0x22,
  695. X   0xc2, 0xa1, 0x27, 0x62, 0x23, 0x22, 0x24, 0x22, 0x21, 0x04, 0x10, 0x70,
  696. X   0x08, 0x08, 0x00, 0x30, 0x06, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00,
  697. X   0x38, 0xe2, 0x1c, 0x48, 0x12, 0x24, 0x48, 0x12, 0x24, 0x48, 0xf2, 0x1c,
  698. X   0x48, 0x82, 0x04, 0x48, 0x82, 0x04, 0x38, 0x72, 0x04, 0x00, 0x00, 0x00};
  699. X
  700. char undisp_bits[] = {
  701. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x01, 0x01,
  702. X   0x00, 0x00, 0x00, 0x40, 0x00, 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x08,
  703. X   0x00, 0x00, 0x00, 0x20, 0x00, 0x08, 0x00, 0x00, 0x00, 0x20, 0x00, 0x08,
  704. X   0x00, 0x00, 0x00, 0x40, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
  705. X   0x00, 0x54, 0x00, 0x00, 0x00, 0x00, 0x2a, 0x4d, 0x77, 0x6a, 0x55, 0x51,
  706. X   0xaa, 0x55, 0x77, 0x2a, 0x55, 0x14, 0x2e, 0x4d, 0x17, 0x00, 0x00, 0x00};
  707. X
  708. char clear_bits[] = {
  709. X   0x00, 0x54, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x40, 0x00, 0x04,
  710. X   0x00, 0x00, 0x00, 0x20, 0x00, 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10,
  711. X   0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x08,
  712. X   0x00, 0x00, 0x00, 0x40, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
  713. X   0x00, 0x54, 0x00, 0x00, 0x00, 0x00, 0x5c, 0xdc, 0x7b, 0x44, 0x44, 0x4a,
  714. X   0x44, 0xdc, 0x7b, 0x44, 0x44, 0x2a, 0xdc, 0x5d, 0x4a, 0x00, 0x00, 0x00};
  715. X
  716. char prints_bits[] = {
  717. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  718. X   0xc0, 0x30, 0x20, 0xd4, 0x39, 0x30, 0x88, 0x1f, 0x21, 0x3e, 0x0f, 0x22,
  719. X   0x08, 0xcf, 0x27, 0x94, 0x1f, 0x22, 0xc0, 0x39, 0x21, 0xc0, 0x30, 0x70,
  720. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  721. X   0x00, 0x00, 0x00, 0xee, 0x4a, 0x57, 0xaa, 0x5a, 0x22, 0xee, 0x6a, 0xfa,
  722. X   0x62, 0x4a, 0x22, 0xa2, 0x4a, 0x52, 0xa2, 0x4a, 0x02, 0x00, 0x00, 0x00};
  723. X
  724. char args_bits[] = {
  725. X   0x00, 0x00, 0x00, 0x88, 0xc7, 0x71, 0x94, 0x28, 0x0a, 0xa2, 0x28, 0x08,
  726. X   0xa2, 0x27, 0x78, 0xbe, 0xa2, 0x43, 0xa2, 0x24, 0x42, 0xa2, 0x28, 0x42,
  727. X   0xa2, 0xc8, 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  728. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x04, 0x10, 0xcc, 0x02, 0x20,
  729. X   0x78, 0x02, 0x20, 0x30, 0x02, 0x20, 0x78, 0x02, 0x20, 0xcc, 0xa2, 0x22,
  730. X   0x84, 0x04, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
  731. X
  732. char locals_bits[] = {
  733. X   0x00, 0x00, 0x00, 0x30, 0x00, 0x18, 0x08, 0x00, 0x20, 0x08, 0x00, 0x20,
  734. X   0x08, 0x00, 0x20, 0x10, 0x00, 0x10, 0x10, 0x00, 0x10, 0x08, 0x00, 0x20,
  735. X   0x10, 0x00, 0x10, 0x90, 0x99, 0x11, 0x88, 0x99, 0x21, 0x08, 0x00, 0x20,
  736. X   0x08, 0x00, 0x20, 0x30, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  737. X   0x00, 0x00, 0x00, 0x84, 0x31, 0x13, 0x44, 0x8a, 0x14, 0x44, 0x8a, 0x14,
  738. X   0x44, 0x8a, 0x17, 0x44, 0x8a, 0x14, 0x9c, 0xb1, 0x74, 0x00, 0x00, 0x00};
  739. X
  740. /* The bitmap data for the triton logo. */
  741. X
  742. char triton_bits[] = {
  743. X   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  744. X   0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0xff, 0x13, 0x00, 0x00, 0xc0,
  745. X   0x03, 0x00, 0x00, 0xfe, 0x09, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0xfc,
  746. X   0x05, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0xf8, 0x0b, 0x00, 0x00, 0xc0,
  747. X   0x03, 0xf8, 0x3f, 0xf0, 0x17, 0x00, 0x00, 0xc0, 0x03, 0xf8, 0x5f, 0xe0,
  748. X   0x2f, 0x00, 0x00, 0xc0, 0x03, 0xf8, 0x2f, 0xc0, 0x5f, 0x00, 0x00, 0xc0,
  749. X   0x03, 0xf8, 0x17, 0x80, 0xbf, 0x00, 0x00, 0xc0, 0x03, 0xf8, 0x2f, 0x00,
  750. X   0x7f, 0x01, 0x00, 0xc0, 0x03, 0xf8, 0x5f, 0x00, 0xfe, 0x02, 0x00, 0xc0,
  751. X   0x03, 0xf8, 0xbf, 0x00, 0xfc, 0x05, 0x00, 0xc0, 0x03, 0xf8, 0x7f, 0x01,
  752. X   0xf8, 0x0b, 0x00, 0xc0, 0x03, 0xb8, 0xff, 0x02, 0xf0, 0x17, 0x00, 0xc0,
  753. X   0x03, 0x18, 0xff, 0x05, 0xe0, 0x2f, 0x00, 0xc0, 0x63, 0x08, 0xfe, 0x0b,
  754. X   0xe0, 0x2f, 0x00, 0xc0, 0xa3, 0x00, 0xfc, 0x17, 0xc0, 0x5f, 0x00, 0xc0,
  755. X   0x63, 0x01, 0xf8, 0x2f, 0xc0, 0x5f, 0x00, 0xc0, 0xe3, 0x02, 0xf0, 0x5f,
  756. X   0xc0, 0x5f, 0x00, 0xc0, 0xe3, 0x05, 0xe0, 0xbf, 0xc0, 0x5f, 0x00, 0xc0,
  757. X   0xe3, 0x0b, 0xc0, 0x7f, 0xc1, 0x5f, 0x00, 0xc0, 0xe3, 0x17, 0x80, 0xff,
  758. X   0xe2, 0x6f, 0x00, 0xc0, 0xe3, 0x2f, 0x00, 0xff, 0xff, 0x17, 0x00, 0xc0,
  759. X   0xe3, 0x5f, 0x00, 0xfe, 0xff, 0x0b, 0x00, 0xc0, 0xe3, 0xbf, 0x00, 0xfc,
  760. X   0xff, 0x17, 0x00, 0xc0, 0xe3, 0x7f, 0x01, 0xf8, 0xff, 0x2f, 0x00, 0xc0,
  761. X   0xe3, 0xff, 0x02, 0xf0, 0xff, 0x5f, 0x00, 0xc0, 0xe3, 0xfc, 0x05, 0xf0,
  762. X   0xff, 0x3f, 0x00, 0xc0, 0x63, 0xf8, 0x0b, 0xf0, 0xff, 0x07, 0x00, 0xc0,
  763. X   0x23, 0xf0, 0x17, 0xf0, 0xff, 0x03, 0x00, 0xc0, 0x03, 0xe0, 0x2f, 0xf0,
  764. X   0xff, 0x03, 0x00, 0xc0, 0x03, 0xc0, 0xff, 0xf8, 0xff, 0x05, 0x00, 0xc0,
  765. X   0x03, 0x80, 0xff, 0xff, 0xff, 0x0b, 0x00, 0xc0, 0x03, 0x00, 0xff, 0xff,
  766. X   0xff, 0x17, 0x00, 0xc0, 0x03, 0x00, 0xfe, 0xff, 0xff, 0x2f, 0x00, 0xc0,
  767. X   0x03, 0x00, 0xfc, 0xff, 0xcf, 0x5f, 0x00, 0xc0, 0x03, 0x00, 0xf8, 0xdf,
  768. X   0x87, 0xbf, 0x00, 0xc0, 0x03, 0x00, 0xf0, 0x8f, 0x03, 0x7f, 0x01, 0xc0,
  769. X   0x03, 0x00, 0xc0, 0x07, 0x03, 0xfe, 0x02, 0xc0, 0x03, 0x00, 0x00, 0x00,
  770. X   0x02, 0xfc, 0x05, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0b, 0xc0,
  771. X   0x03, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x17, 0xc0, 0x03, 0x00, 0x00, 0x00,
  772. X   0x00, 0xe0, 0x2f, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x5f, 0xc0,
  773. X   0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0xbf, 0xc0, 0x03, 0x00, 0x00, 0x00,
  774. X   0x00, 0x00, 0x7f, 0xc1, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xc2,
  775. X   0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xc5, 0x03, 0x00, 0x00, 0x00,
  776. X   0x00, 0x00, 0xf8, 0xcb, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xd7,
  777. X   0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xef, 0x03, 0x00, 0x00, 0x00,
  778. X   0x00, 0x00, 0xc0, 0xdf, 0xff, 0xf1, 0x1f, 0xff, 0xf1, 0x1f, 0xff, 0xbf,
  779. X   0xff, 0xf1, 0x1f, 0xff, 0xf1, 0x1f, 0xff, 0x7f, 0x83, 0x31, 0x18, 0x83,
  780. X   0x31, 0x18, 0x83, 0xff, 0x83, 0x31, 0x18, 0x83, 0x31, 0x18, 0x83, 0xfd,
  781. X   0xf3, 0x31, 0x1f, 0xf3, 0x31, 0x1f, 0xf3, 0xf9, 0xf3, 0x31, 0x1f, 0xf3,
  782. X   0x31, 0x1f, 0xf3, 0xf1, 0xf3, 0x31, 0x1f, 0xf3, 0x31, 0x1f, 0xf3, 0xf1,
  783. X   0x33, 0x30, 0x03, 0x33, 0x30, 0x03, 0x33, 0xf0, 0x33, 0x30, 0x03, 0x33,
  784. X   0x30, 0x03, 0x33, 0xb0, 0xf3, 0x3f, 0xff, 0xf3, 0x3f, 0xff, 0xf3, 0x3f,
  785. X   0xf3, 0x3f, 0xff, 0xf3, 0x3f, 0xff, 0xf3, 0x3f};
  786. X
  787. SHAR_EOF
  788. chmod 0664 mxgdb/bitmaps.c ||
  789. echo 'restore of mxgdb/bitmaps.c failed'
  790. Wc_c="`wc -c < 'mxgdb/bitmaps.c'`"
  791. test 19079 -eq "$Wc_c" ||
  792.     echo 'mxgdb/bitmaps.c: original size 19079, current size' "$Wc_c"
  793. rm -f _shar_wnt_.tmp
  794. fi
  795. # ============= mxgdb/gdb_handler.c ==============
  796. if test -f 'mxgdb/gdb_handler.c' -a X"$1" != X"-c"; then
  797.     echo 'x - skipping mxgdb/gdb_handler.c (File already exists)'
  798.     rm -f _shar_wnt_.tmp
  799. else
  800. > _shar_wnt_.tmp
  801. echo 'x - extracting mxgdb/gdb_handler.c (Text)'
  802. sed 's/^X//' << 'SHAR_EOF' > 'mxgdb/gdb_handler.c' &&
  803. /* $id: gdb_handler.c,v 1.9 1991/08/07 21:30:40 jtsillas Exp $ */
  804. X
  805. /*****************************************************************************
  806. X *
  807. X *  xdbx - X Window System interface to the dbx debugger
  808. X *
  809. X *  Copyright 1989 The University of Texas at Austin
  810. X *  Copyright 1990 Microelectronics and Computer Technology Corporation
  811. X *
  812. X *  Permission to use, copy, modify, and distribute this software and its
  813. X *  documentation for any purpose and without fee is hereby granted,
  814. X *  provided that the above copyright notice appear in all copies and that
  815. X *  both that copyright notice and this permission notice appear in
  816. X *  supporting documentation, and that the name of The University of Texas
  817. X *  and Microelectronics and Computer Technology Corporation (MCC) not be 
  818. X *  used in advertising or publicity pertaining to distribution of
  819. X *  the software without specific, written prior permission.  The
  820. X *  University of Texas and MCC makes no representations about the 
  821. X *  suitability of this software for any purpose.  It is provided "as is" 
  822. X *  without express or implied warranty.
  823. X *
  824. X *  THE UNIVERSITY OF TEXAS AND MCC DISCLAIMS ALL WARRANTIES WITH REGARD TO
  825. X *  THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
  826. X *  FITNESS, IN NO EVENT SHALL THE UNIVERSITY OF TEXAS OR MCC BE LIABLE FOR
  827. X *  ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
  828. X *  RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
  829. X *  CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
  830. X *  CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  831. X *
  832. X *  Author:      Po Cheung
  833. X *  Created:       March 10, 1989
  834. X * 
  835. X *****************************************************************************
  836. X * 
  837. X *  xxgdb - X Window System interface to the gdb debugger
  838. X *  
  839. X *     Copyright 1990 Thomson Consumer Electronics, Inc.
  840. X *  
  841. X *  Permission to use, copy, modify, and distribute this software and its
  842. X *  documentation for any purpose and without fee is hereby granted,
  843. X *  provided that the above copyright notice appear in all copies and that
  844. X *  both that copyright notice and this permission notice appear in
  845. X *  supporting documentation, and that the name of Thomson Consumer
  846. X *  Electronics (TCE) not be used in advertising or publicity pertaining
  847. X *  to distribution of the software without specific, written prior
  848. X *  permission.  TCE makes no representations about the suitability of
  849. X *  this software for any purpose.  It is provided "as is" without express
  850. X *  or implied warranty.
  851. X *
  852. X *  TCE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
  853. X *  ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT
  854. X *  SHALL TCE BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES
  855. X *  OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
  856. X *  WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
  857. X *  ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
  858. X *  SOFTWARE.
  859. X *
  860. X *  Adaptation to GDB:  Pierre Willard
  861. X *  XXGDB Created:       December, 1990
  862. X *
  863. X *****************************************************************************
  864. X
  865. /*  gdb_handler.c
  866. X *
  867. X *    WARNING : gdb_handler.c is included by handler.c for GDB.
  868. X *
  869. X *    Contain action handlers for the parser to invoke upon a dbx command.
  870. X *
  871. X *    updown_handler():        Update file, line label, updown arrow position.
  872. X *    debug_handler():        Check directory use list, display main source file.
  873. X *    pwd_handler():        Update current working directory.
  874. X *    search_handler():        Adjust source file to display matched line.
  875. X *    display_info_handler(): Update display window.
  876. X *    break_handler():        Place stop sign on line or function or address specified.
  877. X *    info_dir_handler():    Update search directory list. 
  878. X *    directory_handler():    Update search directory list. 
  879. X *    list_handler():        Adjust source file to display result. 
  880. X *    info_line_handler():    Update current file. 
  881. X *    clear_handler():        Remove stop sign.
  882. X *    display_handler():    Update display window.
  883. X *    info_break_handler():    Update stop signs.
  884. X *    cd_handler():            Record current working directory.
  885. X *    frame_curr_handler():    Update current function name.
  886. X *    exec_handler():        Update file, line label, arrow position.
  887. X *    done_handler():        Progrm execution completed, clear breakpoints
  888. X *    source_handler():        Exec commands of source file specified.
  889. X *    query_dbx_echo():        Send command with echo on.
  890. X */
  891. X
  892. #include <Xm/Xm.h>
  893. #include <Xm/Label.h>
  894. #include <Xm/PushB.h>
  895. X
  896. #ifdef SYSV 
  897. #   include <signal.h>
  898. #endif
  899. X
  900. void query_dbx_echo();
  901. X
  902. /*  
  903. X *  Display an outlined arrow to locate the calling routine in a stack
  904. X *  frame.
  905. X *  The appropriate file with the calling routine is displayed and the
  906. X *  file variable is set accordingly.
  907. X */
  908. void updown_handler()
  909. {
  910. X    char command[LINESIZ], *func, *file;
  911. X    int     line;
  912. X
  913. X    line = Token.line;
  914. X    func = XtNewString(Token.func);
  915. X    if (line <= 0) line = 1;
  916. X    LoadCurrentFile();
  917. X    if (displayedFile)
  918. X    file = displayedFile->pathname;
  919. X    if (line <= 0 || func == NULL || file == NULL)
  920. X        {
  921. X        XtFree(func);
  922. X        return;
  923. X        }
  924. X        
  925. X    if (displayedFile && strcmp(file, displayedFile->pathname)) {
  926. X    LoadFile(file);
  927. X    }
  928. X    updown.line = line;
  929. X    strcpy(updown.func, func);
  930. X    if (displayedFile)
  931. X        strcpy(updown.file, displayedFile->pathname);
  932. SHAR_EOF
  933. true || echo 'restore of mxgdb/gdb_handler.c failed'
  934. fi
  935. echo 'End of  part 9'
  936. echo 'File mxgdb/gdb_handler.c is continued in part 10'
  937. echo 10 > _shar_seq_.tmp
  938. exit 0
  939.