1: #
   2: /*
   3:  *
   4:  *	UNIX debugger
   5:  *
   6:  */
   7: 
   8: #include "defs.h"
   9: 
  10: 
  11: MSG     NOEOR;
  12: 
  13: INT     mkfault;
  14: INT     executing;
  15: INT     infile;
  16: CHAR        *lp;
  17: INT     maxoff;
  18: INT     maxpos;
  19: INT     sigint;
  20: INT     sigqit;
  21: INT     wtflag;
  22: L_INT       maxfile;
  23: L_INT       maxstor;
  24: L_INT       txtsiz;
  25: L_INT       datsiz;
  26: L_INT       datbas;
  27: L_INT       stksiz;
  28: STRING      errflg;
  29: INT     exitflg;
  30: INT     magic;
  31: L_INT       entrypt;
  32: 
  33: CHAR        lastc;
  34: INT     eof;
  35: 
  36: INT     lastcom;
  37: L_INT       var[36];
  38: STRING      symfil;
  39: STRING      corfil;
  40: CHAR        printbuf[];
  41: CHAR        *printptr;
  42: 
  43: 
  44: L_INT   round(a,b)
  45: L_INT       a, b;
  46: {
  47:     L_INT       w;
  48:     w = ((a+b-1)/b)*b;
  49:     return(w);
  50: }
  51: 
  52: /* error handling */
  53: 
  54: chkerr()
  55: {
  56:     IF errflg ORF mkfault
  57:     THEN    error(errflg);
  58:     FI
  59: }
  60: 
  61: error(n)
  62:     STRING      n;
  63: {
  64:     errflg=n;
  65:     iclose(); oclose();
  66:     longjmp(erradb,1);
  67: }
  68: 
  69: fault(a)
  70: {
  71:     signal(a,fault);
  72:     lseek(infile,0L,2);
  73:     mkfault++;
  74: }
  75: 
  76: /* set up files and initial address mappings */
  77: INT argcount;
  78: 
  79: main(argc, argv)
  80: REG STRING  *argv;
  81: REG INT     argc;
  82: {
  83:     maxfile=1L<<24; maxstor=1L<<16;
  84: 
  85:     gtty(0,&adbtty);
  86:     gtty(0,&usrtty);
  87:     WHILE argc>1
  88:     DO  IF eqstr("-w",argv[1])
  89:         THEN    wtflag=2; argc--; argv++;
  90:         ELSE    break;
  91:         FI
  92:     OD
  93: 
  94:     IF argc>1 THEN symfil = argv[1]; FI
  95:     IF argc>2 THEN corfil = argv[2]; FI
  96:     argcount=argc;
  97:     setsym(); setcor();
  98: 
  99:     /* set up variables for user */
 100:     maxoff=MAXOFF; maxpos=MAXPOS;
 101:     var[VARB] = datbas;
 102:     var[VARD] = datsiz;
 103:     var[VARE] = entrypt;
 104:     var[VARM] = magic;
 105:     var[VARS] = stksiz;
 106:     var[VART] = txtsiz;
 107: 
 108:     IF (sigint=signal(SIGINT,01))!=01
 109:     THEN    sigint=fault; signal(SIGINT,fault);
 110:     FI
 111:     sigqit=signal(SIGQUIT,1);
 112:     setjmp(erradb);
 113:     IF executing THEN delbp(); FI
 114:     executing=FALSE;
 115: 
 116:     LOOP    flushbuf();
 117:         IF errflg
 118:         THEN printf("%s\n",errflg);
 119:              exitflg=errflg;
 120:              errflg=0;
 121:         FI
 122:         IF mkfault
 123:         THEN    mkfault=0; printc(EOR); prints(DBNAME);
 124:         FI
 125:         lp=0; rdc(); lp--;
 126:         IF eof
 127:         THEN    IF infile
 128:             THEN    iclose(); eof=0; longjmp(erradb,1);
 129:             ELSE    done();
 130:             FI
 131:         ELSE    exitflg=0;
 132:         FI
 133:         command(0,lastcom);
 134:         IF lp ANDF lastc!=EOR THEN error(NOEOR); FI
 135:     POOL
 136: }
 137: 
 138: done()
 139: {
 140:     endpcs();
 141:     exit(exitflg);
 142: }

Defined functions

done defined in line 138; used 2 times
fault defined in line 69; used 4 times
main defined in line 79; never used
round defined in line 44; used 4 times
Last modified: 1979-01-10
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 666
Valid CSS Valid XHTML 1.0 Strict