Bell 32V development
[unix-history] / usr / src / cmd / adb / main.c
index 6d7c7fa..f53df41 100644 (file)
@@ -6,6 +6,7 @@
  */
 
 #include "defs.h"
  */
 
 #include "defs.h"
+SCCSID(@(#)main.c      2.2);
 
 
 MSG            NOEOR;
 
 
 MSG            NOEOR;
@@ -14,10 +15,10 @@ INT         mkfault;
 INT            executing;
 INT            infile;
 CHAR           *lp;
 INT            executing;
 INT            infile;
 CHAR           *lp;
-INT            maxoff;
-INT            maxpos;
-INT            sigint;
-INT            sigqit;
+L_INT          maxoff;
+L_INT          maxpos;
+ADDR           sigint;
+ADDR           sigqit;
 INT            wtflag;
 L_INT          maxfile;
 L_INT          maxstor;
 INT            wtflag;
 L_INT          maxfile;
 L_INT          maxstor;
@@ -26,7 +27,7 @@ L_INT         datsiz;
 L_INT          datbas;
 L_INT          stksiz;
 STRING         errflg;
 L_INT          datbas;
 L_INT          stksiz;
 STRING         errflg;
-INT            exitflg;
+L_INT          exitflg;
 INT            magic;
 L_INT          entrypt;
 
 INT            magic;
 L_INT          entrypt;
 
@@ -41,11 +42,13 @@ CHAR                printbuf[];
 CHAR           *printptr;
 
 
 CHAR           *printptr;
 
 
-L_INT  round(a,b)
-L_INT          a, b;
+L_INT
+round(a,b)
+REG L_INT a, b;
 {
 {
-       L_INT           w;
-       w = ((a+b-1)/b)*b;
+       REG L_INT w;
+       w = (a/b)*b;
+       IF a!=w THEN w += b; FI
        return(w);
 }
 
        return(w);
 }
 
@@ -63,27 +66,34 @@ error(n)
 {
        errflg=n;
        iclose(); oclose();
 {
        errflg=n;
        iclose(); oclose();
-       longjmp(erradb,1);
+#ifndef EDDT
+       reset();
+#endif
 }
 
 fault(a)
 {
        signal(a,fault);
 }
 
 fault(a)
 {
        signal(a,fault);
+#ifndef EDDT
        lseek(infile,0L,2);
        lseek(infile,0L,2);
+#endif
        mkfault++;
 }
 
 /* set up files and initial address mappings */
 INT argcount;
 
        mkfault++;
 }
 
 /* set up files and initial address mappings */
 INT argcount;
 
+#ifndef EDDT
 main(argc, argv)
 main(argc, argv)
+#else
+eddt(argc, argv)
+#endif
 REG STRING     *argv;
 REG INT                argc;
 {
 REG STRING     *argv;
 REG INT                argc;
 {
-       maxfile=1L<<24; maxstor=1L<<16;
+       maxfile=1L<<24; maxstor=1L<<31;
+       mkioptab();
 
 
-       gtty(0,&adbtty);
-       gtty(0,&usrtty);
        WHILE argc>1
        DO      IF eqstr("-w",argv[1])
                THEN    wtflag=2; argc--; argv++;
        WHILE argc>1
        DO      IF eqstr("-w",argv[1])
                THEN    wtflag=2; argc--; argv++;
@@ -105,13 +115,18 @@ REG INT           argc;
        var[VARS] = stksiz;
        var[VART] = txtsiz;
 
        var[VARS] = stksiz;
        var[VART] = txtsiz;
 
+#ifndef EDDT
        IF (sigint=signal(SIGINT,01))!=01
        THEN    sigint=fault; signal(SIGINT,fault);
        FI
        sigqit=signal(SIGQUIT,1);
        IF (sigint=signal(SIGINT,01))!=01
        THEN    sigint=fault; signal(SIGINT,fault);
        FI
        sigqit=signal(SIGQUIT,1);
-       setjmp(erradb);
+       setexit();
+#endif
        IF executing THEN delbp(); FI
        executing=FALSE;
        IF executing THEN delbp(); FI
        executing=FALSE;
+#ifdef EDDT
+       prints(DBNAME);
+#endif
 
        LOOP    flushbuf();
                IF errflg
 
        LOOP    flushbuf();
                IF errflg
@@ -125,7 +140,11 @@ REG INT            argc;
                lp=0; rdc(); lp--;
                IF eof
                THEN    IF infile
                lp=0; rdc(); lp--;
                IF eof
                THEN    IF infile
-                       THEN    iclose(); eof=0; longjmp(erradb,1);
+#ifndef EDDT
+                       THEN    iclose(); eof=0; reset();
+#else
+                       THEN    iclose(); eof=0;
+#endif
                        ELSE    done();
                        FI
                ELSE    exitflg=0;
                        ELSE    done();
                        FI
                ELSE    exitflg=0;
@@ -135,9 +154,10 @@ REG INT            argc;
        POOL
 }
 
        POOL
 }
 
+#ifndef EDDT
 done()
 {
        endpcs();
        exit(exitflg);
 }
 done()
 {
        endpcs();
        exit(exitflg);
 }
-
+#endif