BSD 4 development
authorBill Joy <wnj@ucbvax.Berkeley.EDU>
Mon, 26 May 1980 13:59:41 +0000 (05:59 -0800)
committerBill Joy <wnj@ucbvax.Berkeley.EDU>
Mon, 26 May 1980 13:59:41 +0000 (05:59 -0800)
Work on file usr/src/cmd/apl/apl.h

Synthesized-from: CSRG//cd1/4.0

usr/src/cmd/apl/apl.h [new file with mode: 0644]

diff --git a/usr/src/cmd/apl/apl.h b/usr/src/cmd/apl/apl.h
new file mode 100644 (file)
index 0000000..49ca562
--- /dev/null
@@ -0,0 +1,334 @@
+#include <stdio.h>
+
+double *test1;
+double gamma();
+/*
+ *  A P L
+ */
+
+/*
+ *  Magic numbers
+ */
+
+#define OPERBOXSIZE 76
+
+#define MRANK  8                       /* Size of dimension buffer     */
+#define CANBS  300                     /* Size of input buffer         */
+#define STKS   50                      /* Size of stack increment      */
+#define NLS    100                     /* Size of namelist             */
+#define NAMS   24                      /* Size of name buffer          */
+#define OBJS   500                     /* Size of compiled expr buffer */
+#define MAGIC  0100554                 /* Magic word for WS file       */
+
+/*
+ *  Magic words
+ */
+
+#define        EDIT_ED "/usr/bin/ed"
+#define        EDIT_EX "/usr/ucb/ex"
+#define EDIT_VI "/usr/ucb/vi"
+
+/*
+ *  Debug modes
+ */
+#define FULLD 1
+
+#ifdef FULLD
+#define SOMED SOMED
+#endif
+
+#ifdef SHORTD
+#define SOMED SOMED
+#endif
+
+/*
+ *  Derived constants
+ */
+
+#define        SDAT    sizeof datum
+#define        SINT    sizeof integ
+
+/*
+ *  Interpreter Op Codes
+ */
+
+#define EOF    (-1)
+#define EOL    0
+
+#define ADD    1
+#define PLUS   2
+#define SUB    3
+#define MINUS  4
+#define MUL    5
+#define SGN    6
+#define DIV    7
+#define RECIP  8
+#define MOD    9
+#define ABS    10
+#define MIN    11
+#define FLOOR  12
+#define MAX    13
+#define CEIL   14
+#define PWR    15
+#define EXP    16
+#define LOG    17
+#define LOGE   18
+#define CIR    19
+#define PI     20
+#define COMB   21
+#define FAC    22
+
+#define DEAL   23
+#define RAND   24
+#define DRHO   25
+#define MRHO   26
+#define DIOT   27
+#define MIOT   28
+#define ROT0   29
+#define REV0   30
+#define DTRN   31
+#define MTRN   32
+#define DIBM   33
+#define MIBM   34
+
+#define GDU    35
+#define GDUK   36
+#define GDD    37
+#define GDDK   38
+#define EXD    39
+#define SCAN   40
+#define EXDK   41
+#define SCANK  42
+#define IPROD  43
+#define OPROD  44
+#define QUAD   45
+#define QQUAD  46
+#define BRAN0  47
+#define BRAN   48
+#define DDOM   49
+#define MDOM   50
+
+#define COM    51
+#define RED    52
+#define COMK   53
+#define REDK   54
+#define ROT    55
+#define REV    56
+#define ROTK   57
+#define REVK   58
+#define CAT    59
+#define RAV    60
+#define CATK   61
+#define RAVK   62
+
+#define PRINT  63
+#define QUOT   64
+#define ELID   65
+#define CQUAD  66
+#define COMNT  67
+#define INDEX  68
+#define HPRINT 69
+
+#define LT     71
+#define LE     72
+#define GT     73
+#define GE     74
+#define EQ     75
+#define NE     76
+#define AND    77
+#define OR     78
+#define NAND   79
+#define NOR    80
+#define NOT    81
+#define EPS    82
+#define MEPS   83
+#define REP    84
+#define TAKE   85
+#define DROP   86
+#define ASGN   88
+#define IMMED  89
+
+
+#define NAME   90
+#define CONST  91
+#define FUN    92
+#define ARG1   93
+#define ARG2   94
+#define AUTO   95
+#define REST   96
+
+#define COM0   97
+#define RED0   98
+#define EXD0   99
+#define SCAN0  100
+#define BASE   101
+#define MENC   102     /*      monadic encode  */
+
+/*
+ *  Immediate sub-op codes
+ */
+
+#define        CLEAR   1
+#define        DIGITS  2
+#define        ED_IT   3
+#define        ERASE   4
+#define        FNS     5
+#define        FUZZ    6
+#define        READ    7
+#define        ORIGIN  8
+#define        VARS    9
+#define        WIDTH   10
+#define        DEBUG   11
+#define OFF    12
+#define LOAD   13
+#define SAVE   14
+#define COPY   15
+#define CONTIN 16
+#define LIB    17
+#define DROPC  18
+#ifdef SOMED
+#define        SYMBOLS 19
+#endif
+#define        EX_IT   20
+#define EX_VI  21
+#define ASCII  22
+#define APL    23
+#define CSH    24
+
+/*
+ *  Types
+ */
+
+#define        DA      1       /* Numeric data (?) */
+#define        CH      2       /* Character data (?) */
+#define        LV      3       /* Used for most data items */
+#define        QD      4       /* Quad (assignment to (?)) */
+#define        QQ      5       /* Quote-quad */
+#define        IN      6       /* ??? */
+#define        EL      7       /* Literal data (??) */
+#define        NF      8       /* Name of function with no args */
+#define        MF      9       /* Monadic function */
+#define        DF      10      /* Dyadic function */
+#define QC     11
+
+/*
+ *  Idiosyncracies
+ */
+
+#define data   double
+#define unsignd        unsigned
+
+/*
+ *  Structures
+ */
+
+struct {
+       char    c[8];
+};
+
+struct env {
+       double  fuzz;
+       int     iorg;
+       int     digits;
+       int     width;
+} thread;
+
+struct item {
+       char    rank;
+       char    type;
+       int     size;
+       int     index;
+       data    *datap;
+       int     dim[MRANK];
+};
+
+struct nlist {
+       char    use;
+       char    type;   /* == LV */
+       int     *itemp;
+       char    *namep;
+       int     label;
+} nlist[NLS];
+
+struct lablist {
+       char    *lname;
+       int     lno;
+       struct  lablist *nextll;
+} labldefs;
+
+struct {
+       char    rank;
+       char    type;
+       int     size;
+       int     dimk;
+       int     delk;
+       int     dim[MRANK];
+       int     del[MRANK];
+       int     idx[MRANK];
+} idx;
+
+struct {
+       char    *name;
+       int     line;
+} now_xeq;
+
+struct item **sp, **stack, **staktop;  /* Internal run-time stack */
+
+/*
+ *  Externals
+ */
+
+data   zero;
+data   one;
+data   pi;
+data   maxexp;
+data   datum;
+data   getdat();
+
+int    cs_size;                        /* Current stack size      */
+
+int    (*exop[])();
+
+double floor();
+double ceil();
+double log();
+double sin();
+double cos();
+double atan();
+double atan2();
+double sqrt();
+double exp();
+double gamma();
+double ltod();
+
+int    integ;
+int    signgam;
+int    column;
+int    intflg;
+int    echoflg;
+int    ifile;
+int    wfile;
+int    ofile;
+int    funlc;
+int    debug;
+int    ttystat[3];
+int    stime[2];
+char   *pcp;
+int     rowsz;
+int    mencflg;
+char    *mencptr;
+char   *memstart;
+int pt;
+int syze;
+int pas1;
+
+char   *continu;
+
+struct charbox {
+       char a1,a2;
+};
+
+struct asoperbox {
+       unsigned char letters[2];
+       int     returnchar
+};