-- OpTable.mesa, edited by Johnsson, January 12, 1979  5:03 PM

DIRECTORY
  OpTableDefs: FROM "OpTableDefs";

OpTable: PROGRAM 
    EXPORTS OpTableDefs =
  BEGIN

  -- generated by OpDefsGenerator 12-Jan-79 17:00

  Q: TYPE = PRIVATE RECORD [
    push: [0..3], pop: [0..7], length: [0..3], mark: BOOLEAN];
  T: BOOLEAN = TRUE; F: BOOLEAN = FALSE;

  OpParms: PRIVATE ARRAY [0..256) OF Q = [
--        NOOP           ME          MRE          MXW   000-003
    Q[0,0,1,F],  Q[1,1,1,F],  Q[1,2,1,F],  Q[0,3,1,F],
--         MXD       NOTIFY        BCAST      REQUEUE   004-007
    Q[0,1,1,F],  Q[0,1,1,F],  Q[0,1,1,F],  Q[0,3,1,F],
--         LL0          LL1          LL2          LL3   010-013
    Q[1,0,1,F],  Q[1,0,1,F],  Q[1,0,1,F],  Q[1,0,1,F],
--         LL4          LL5          LL6          LL7   014-017
    Q[1,0,1,F],  Q[1,0,1,F],  Q[1,0,1,F],  Q[1,0,1,F],
--         LLB         LLDB          SL0          SL1   020-023
    Q[1,0,2,F],  Q[2,0,2,T],  Q[0,1,1,F],  Q[0,1,1,F],
--         SL2          SL3          SL4          SL5   024-027
    Q[0,1,1,F],  Q[0,1,1,F],  Q[0,1,1,F],  Q[0,1,1,F],
--         SL6          SL7          SLB          PL0   030-033
    Q[0,1,1,F],  Q[0,1,1,F],  Q[0,1,2,F],  Q[1,1,1,F],
--         PL1          PL2          PL3          LG0   034-037
    Q[1,1,1,F],  Q[1,1,1,F],  Q[1,1,1,F],  Q[1,0,1,F],
--         LG1          LG2          LG3          LG4   040-043
    Q[1,0,1,F],  Q[1,0,1,F],  Q[1,0,1,F],  Q[1,0,1,F],
--         LG5          LG6          LG7          LGB   044-047
    Q[1,0,1,F],  Q[1,0,1,F],  Q[1,0,1,F],  Q[1,0,2,F],
--        LGDB          SG0          SG1          SG2   050-053
    Q[2,0,2,T],  Q[0,1,1,F],  Q[0,1,1,F],  Q[0,1,1,F],
--         SG3          SGB          LI0          LI1   054-057
    Q[0,1,1,F],  Q[0,1,2,F],  Q[1,0,1,F],  Q[1,0,1,F],
--         LI2          LI3          LI4          LI5   060-063
    Q[1,0,1,F],  Q[1,0,1,F],  Q[1,0,1,F],  Q[1,0,1,F],
--         LI6         LIN1         LINI          LIB   064-067
    Q[1,0,1,F],  Q[1,0,1,F],  Q[1,0,1,F],  Q[1,0,2,F],
--         LIW         LINB        LADRB        GADRB   070-073
    Q[1,0,3,T],  Q[1,0,2,F],  Q[1,0,2,F],  Q[1,0,2,F],
--                                                      074-077
    Q[0,0,0,F],  Q[0,0,0,F],  Q[0,0,0,F],  Q[0,0,0,F],
--          R0           R1           R2           R3   100-103
    Q[1,1,1,F],  Q[1,1,1,F],  Q[1,1,1,F],  Q[1,1,1,F],
--          R4           RB           W0           W1   104-107
    Q[1,1,1,F],  Q[1,1,2,F],  Q[0,2,1,F],  Q[0,2,1,F],
--          W2           WB           RF           WF   110-113
    Q[0,2,1,F],  Q[0,2,2,F],  Q[1,1,3,T],  Q[0,2,3,T],
--         RDB          RD0          WDB          WD0   114-117
    Q[2,1,2,T],  Q[2,1,1,F],  Q[0,3,2,T],  Q[0,3,1,F],
--        RSTR         WSTR         RXLP         WXLP   120-123
    Q[1,2,2,T],  Q[0,3,2,T],  Q[1,1,2,F],  Q[1,1,2,F],
--        RILP         RIGP         WILP         RIL0   124-127
    Q[1,0,2,F],  Q[1,0,2,F],  Q[0,1,2,F],  Q[1,0,1,F],
--         WS0          WSB          WSF         WSDB   130-133
    Q[0,2,1,F],  Q[0,2,2,T],  Q[0,2,3,T],  Q[0,3,2,T],
--         RFC          RFS          WFS          RBL   134-137
    Q[1,1,3,T],  Q[1,2,1,T],  Q[0,3,1,T],  Q[1,2,2,F],
--         WBL         RDBL         WDBL        RXLPL   140-143
    Q[0,3,2,F],  Q[2,2,2,F],  Q[0,4,2,F],  Q[1,1,2,F],
--       WXLPL        RXGPL        WXGPL        RILPL   144-147
    Q[0,2,2,F],  Q[1,1,2,F],  Q[0,2,2,F],  Q[1,0,2,F],
--       WILPL        RIGPL        WIGPL        RSTRL   150-153
    Q[0,1,2,F],  Q[1,0,2,F],  Q[0,1,2,F],  Q[1,3,2,F],
--       WSTRL          RFL          WFL         RFSL   154-157
    Q[0,4,2,F],  Q[1,2,3,T],  Q[0,3,3,T],  Q[1,3,1,T],
--        WFSL           LP         SLDB         SGDB   160-163
    Q[0,4,1,T],  Q[2,1,1,F],  Q[0,2,2,T],  Q[0,2,2,T],
--        PUSH          POP         EXCH        LINKB   164-167
    Q[1,0,1,F],  Q[0,1,1,F],  Q[2,2,1,F],  Q[0,0,2,F],
--         DUP        NILCK       NILCKL        BNDCK   170-173
    Q[2,1,1,F],  Q[1,1,1,F],  Q[2,2,1,F],  Q[1,2,1,F],
--                                                      174-177
    Q[0,0,0,F],  Q[0,0,0,F],  Q[0,0,0,F],  Q[0,0,0,F],
--          J2           J3           J4           J5   200-203
    Q[0,0,1,F],  Q[0,0,1,F],  Q[0,0,1,F],  Q[0,0,1,F],
--          J6           J7           J8           J9   204-207
    Q[0,0,1,F],  Q[0,0,1,F],  Q[0,0,1,F],  Q[0,0,1,F],
--          JB           JW         JEQ2         JEQ3   210-213
    Q[0,0,2,T],  Q[0,0,3,T],  Q[0,2,1,F],  Q[0,2,1,F],
--        JEQ4         JEQ5         JEQ6         JEQ7   214-217
    Q[0,2,1,F],  Q[0,2,1,F],  Q[0,2,1,F],  Q[0,2,1,F],
--        JEQ8         JEQ9         JEQB         JNE2   220-223
    Q[0,2,1,F],  Q[0,2,1,F],  Q[0,2,2,T],  Q[0,2,1,F],
--        JNE3         JNE4         JNE5         JNE6   224-227
    Q[0,2,1,F],  Q[0,2,1,F],  Q[0,2,1,F],  Q[0,2,1,F],
--        JNE7         JNE8         JNE9         JNEB   230-233
    Q[0,2,1,F],  Q[0,2,1,F],  Q[0,2,1,F],  Q[0,2,2,T],
--         JLB         JGEB          JGB         JLEB   234-237
    Q[0,2,2,T],  Q[0,2,2,T],  Q[0,2,2,T],  Q[0,2,2,T],
--        JULB        JUGEB         JUGB        JULEB   240-243
    Q[0,2,2,T],  Q[0,2,2,T],  Q[0,2,2,T],  Q[0,2,2,T],
--       JZEQB        JZNEB          JIB          JIW   244-247
    Q[0,1,2,T],  Q[0,1,2,T],  Q[0,2,3,T],  Q[0,2,3,T],
--         ADD          SUB          MUL          DBL   250-253
    Q[1,2,1,F],  Q[1,2,1,F],  Q[1,2,1,F],  Q[1,1,1,F],
--         DIV         LDIV          NEG          INC   254-257
    Q[1,2,1,F],  Q[1,3,1,F],  Q[1,1,1,F],  Q[1,1,1,F],
--         AND           OR          XOR        SHIFT   260-263
    Q[1,2,1,F],  Q[1,2,1,F],  Q[1,2,1,F],  Q[1,2,1,F],
--        DADD         DSUB        DCOMP       DUCOMP   264-267
    Q[2,4,1,F],  Q[2,4,1,F],  Q[1,4,1,F],  Q[1,4,1,F],
--       ADD01                                          270-273
    Q[1,2,1,F],  Q[0,0,0,F],  Q[0,0,0,F],  Q[0,0,0,F],
--                                                      274-277
    Q[0,0,0,F],  Q[0,0,0,F],  Q[0,0,0,F],  Q[0,0,0,F],
--        EFC0         EFC1         EFC2         EFC3   300-303
    Q[0,0,1,F],  Q[0,0,1,F],  Q[0,0,1,F],  Q[0,0,1,F],
--        EFC4         EFC5         EFC6         EFC7   304-307
    Q[0,0,1,F],  Q[0,0,1,F],  Q[0,0,1,F],  Q[0,0,1,F],
--        EFC8         EFC9        EFC10        EFC11   310-313
    Q[0,0,1,F],  Q[0,0,1,F],  Q[0,0,1,F],  Q[0,0,1,F],
--       EFC12        EFC13        EFC14        EFC15   314-317
    Q[0,0,1,F],  Q[0,0,1,F],  Q[0,0,1,F],  Q[0,0,1,F],
--        EFCB         LFC1         LFC2         LFC3   320-323
    Q[0,0,2,F],  Q[0,0,1,F],  Q[0,0,1,F],  Q[0,0,1,F],
--        LFC4         LFC5         LFC6         LFC7   324-327
    Q[0,0,1,F],  Q[0,0,1,F],  Q[0,0,1,F],  Q[0,0,1,F],
--        LFC8         LFC9        LFC10        LFC11   330-333
    Q[0,0,1,F],  Q[0,0,1,F],  Q[0,0,1,F],  Q[0,0,1,F],
--       LFC12        LFC13        LFC14        LFC15   334-337
    Q[0,0,1,F],  Q[0,0,1,F],  Q[0,0,1,F],  Q[0,0,1,F],
--       LFC16         LFCB          SFC          RET   340-343
    Q[0,0,1,F],  Q[0,0,2,F],  Q[0,1,1,F],  Q[0,0,1,F],
--        LLKB        PORTO        PORTI         KFCB   344-347
    Q[1,0,2,T],  Q[0,1,1,F],  Q[0,0,1,F],  Q[0,0,2,F],
--       DESCB       DESCBS          BLT         BLTL   350-353
    Q[1,0,2,T],  Q[1,1,2,T],  Q[0,3,1,F],  Q[0,5,1,F],
--        BLTC        BLTCL        ALLOC         FREE   354-357
    Q[0,3,1,F],  Q[0,4,1,F],  Q[1,1,1,F],  Q[0,1,1,F],
--        IWDC         DWDC         STOP        CATCH   360-363
    Q[0,0,1,F],  Q[0,0,1,F],  Q[0,0,1,F],  Q[0,0,2,T],
--        MISC       BITBLT      STARTIO         JRAM   364-367
    Q[0,0,2,F],  Q[0,2,1,T],  Q[0,1,1,F],  Q[0,1,1,T],
--         DST          LST         LSTF                370-373
    Q[0,0,2,T],  Q[0,0,2,T],  Q[0,0,2,T],  Q[0,0,0,F],
--          WR           RR          BRK                374-377
    Q[0,1,2,T],  Q[1,0,2,T],  Q[0,0,1,F],  Q[0,0,0,F]];


  pushstack: PUBLIC PROCEDURE [b: [0..256)] RETURNS [[0..3]] =
    BEGIN
    RETURN[OpParms[b].push]
    END;

  popstack: PUBLIC PROCEDURE [b: [0..256)] RETURNS [[0..7]] =
    BEGIN
    RETURN[OpParms[b].pop]
    END;


  instlength: PUBLIC PROCEDURE [b: [0..256)] RETURNS [[0..3]] =
    BEGIN
    RETURN[OpParms[b].length]
    END;

  instaligned: PUBLIC PROCEDURE [b: [0..256)] RETURNS [BOOLEAN] =
    BEGIN
    RETURN[OpParms[b].mark]
    END;

END.