added PDX constant
[unix-history] / usr / src / usr.bin / pascal / px / vars.h
index 6310e20..45b0431 100644 (file)
@@ -1,6 +1,6 @@
 /* Copyright (c) 1979 Regents of the University of California */
 
 /* Copyright (c) 1979 Regents of the University of California */
 
-/* static char sccsid[] = "@(#)vars.h 1.2 %G%"; */
+/* static char sccsid[] = "@(#)vars.h 1.8 %G%"; */
 
 #include <stdio.h>
 
 
 #include <stdio.h>
 
 #define        BITSPERBYTE     8
 #define        BITSPERLONG     (BITSPERBYTE * sizeof(long))
 #define HZ             60
 #define        BITSPERBYTE     8
 #define        BITSPERLONG     (BITSPERBYTE * sizeof(long))
 #define HZ             60
-#define        TRUE            1
-#define        FALSE           0
 #define        MAXLVL          20
 #define NAMSIZ         76
 #define MAXFILES       32
 #define PREDEF         2
 #define        MAXLVL          20
 #define NAMSIZ         76
 #define MAXFILES       32
 #define PREDEF         2
+#ifdef VAX
 #define STDLVL         ((struct iorec *)(0x7ffffff1))
 #define GLVL           ((struct iorec *)(0x7ffffff0))
 #define STDLVL         ((struct iorec *)(0x7ffffff1))
 #define GLVL           ((struct iorec *)(0x7ffffff0))
+#else
+#define STDLVL         ((struct iorec *)(0xfff1))
+#define GLVL           ((struct iorec *)(0xfff0))
+#endif VAX
 #define FILNIL         ((struct iorec *)(0))
 #define INPUT          ((struct iorec *)(&input))
 #define OUTPUT         ((struct iorec *)(&output))
 #define FILNIL         ((struct iorec *)(0))
 #define INPUT          ((struct iorec *)(&input))
 #define OUTPUT         ((struct iorec *)(&output))
 #define        PX      0       /* normal run of px */
 #define        PIX     1       /* load and go */
 #define        PIPE    2       /* bootstrap via a pipe */
 #define        PX      0       /* normal run of px */
 #define        PIX     1       /* load and go */
 #define        PIPE    2       /* bootstrap via a pipe */
+#define        PDX     3       /* invoked by the debugger "pdx" */
 #define releq 0
 #define relne 2
 #define rellt 4
 #define relgt 6
 #define relle 8
 #define relge 10
 #define releq 0
 #define relne 2
 #define rellt 4
 #define relgt 6
 #define relle 8
 #define relge 10
+typedef enum {FALSE, TRUE} bool;
 
 /*
  * interrupt and allocation routines
 
 /*
  * interrupt and allocation routines
@@ -68,6 +73,7 @@
 extern long createtime;
 extern char *PALLOC();
 extern char *malloc();
 extern long createtime;
 extern char *PALLOC();
 extern char *malloc();
+extern long time();
 extern intr();
 extern memsize();
 extern except();
 extern intr();
 extern memsize();
 extern except();
@@ -75,11 +81,15 @@ extern syserr();
 extern liberr();
 
 /*
 extern liberr();
 
 /*
- * stack routines
+ * stack routines and structures
  */
  */
+struct sze8 {
+       char element[8];
+};
 extern short pop2();
 extern long pop4();
 extern double pop8();
 extern short pop2();
 extern long pop4();
 extern double pop8();
+extern struct sze8 popsze8();
 extern char *pushsp();
 
 /*
 extern char *pushsp();
 
 /*
@@ -91,7 +101,7 @@ union progcntr {
        short *sp;
        unsigned short *usp;
        long *lp;
        short *sp;
        unsigned short *usp;
        long *lp;
-       double *dp;
+       double *dbp;
        struct hdr *hdrp;
 };
 \f
        struct hdr *hdrp;
 };
 \f
@@ -162,6 +172,7 @@ struct stack {
        struct hdr {
                long framesze;  /* number of bytes of local vars */
                long nargs;     /* number of bytes of arguments */
        struct hdr {
                long framesze;  /* number of bytes of local vars */
                long nargs;     /* number of bytes of arguments */
+               bool tests;     /* TRUE => perform runtime tests */
                short offset;   /* offset of procedure in source file */
                char name[1];   /* name of active procedure */
        } *entry;
                short offset;   /* offset of procedure in source file */
                char name[1];   /* name of active procedure */
        } *entry;
@@ -180,9 +191,9 @@ union disply {
  * formal routine structure
  */
 struct formalrtn {
  * formal routine structure
  */
 struct formalrtn {
-       char            *entryaddr;
-       long            cbn;
-       struct disp     disp[2*MAXLVL];
+       char            *fentryaddr;            /* formal entry point */
+       long            fbn;                    /* block number of function */
+       struct disp     fdisp[ MAXLVL ];        /* saved at first passing */
 };
 
 /*
 };
 
 /*
@@ -193,10 +204,12 @@ extern struct disp        *_dp;           /* ptr to active frame */
 extern long            _lino;          /* current line number */
 extern int             _argc;          /* number of passed args */
 extern char            **_argv;        /* values of passed args */
 extern long            _lino;          /* current line number */
 extern int             _argc;          /* number of passed args */
 extern char            **_argv;        /* values of passed args */
-extern long            _nodump;        /* 1 => no post mortum dump */
+extern bool            _nodump;        /* TRUE => no post mortum dump */
+extern bool            _runtst;        /* TRUE => runtime tests */
 extern long            _mode;          /* execl by PX, PIPE, or PIX */
 extern long            _stlim;         /* statement limit */
 extern long            _stcnt;         /* statement count */
 extern long            _mode;          /* execl by PX, PIPE, or PIX */
 extern long            _stlim;         /* statement limit */
 extern long            _stcnt;         /* statement count */
+extern long            _seed;          /* random number seed */
 extern char            *_maxptr;       /* maximum valid pointer */
 extern char            *_minptr;       /* minimum valid pointer */
 extern long            *_pcpcount;     /* pointer to pxp buffer */
 extern char            *_maxptr;       /* maximum valid pointer */
 extern char            *_minptr;       /* minimum valid pointer */
 extern long            *_pcpcount;     /* pointer to pxp buffer */