$PAGE "*** COMMAND INTERPRETER'S STACK DECLARATIONS ***"                00010000
   << This is the INCLUDE file for the declarations of   >>             00012000
   << the CI's stack and the associated sizes and        >>             00014000
   << meanings of some of the stack.                     >>             00016000
                                                                        00018000
                                                                        00020000
   << Any change to the CI's stack will impact the       >>             00022000
   << following modules:                                 >>             00024000
   <<                                                    >>             00026000
   <<    UCOP         -  07                              >>             00028000
   <<    CIFILES      -  5A                              >>    <<04706>>00030000
   <<    CIMAIN       -  5B                              >>    <<04706>>00032000
   <<    CIMGR        -  5C                              >>    <<04706>>00034000
   <<    PCREATE      -  63                              >>             00036000
   <<    MORGUE       -  64                              >>             00038000
   <<    UDC          -  82                              >>             00040000
   <<    OPCOMMAND    -  85                              >>             00042000
   <<                                                    >>             00044000
   <<                                                    >>             00046000
   << The following error messages in CATALOG.PUB.SYS    >>             00048000
   << are involved with the information in the CI stack: >>             00050000
   <<                                                    >>             00052000
   <<    CIERR 980    (Command exceeded length limit.)   >>             00054000
   <<    CIERR 988    (Command exceeded maximum number   >>             00056000
   <<                  of continuation lines.)           >>             00058000
   <<    CIERR 1949   (UDC exceeded length limit.)       >>             00060000
   <<                                                    >>             00062000
   << These error messages are parameterized and may     >>             00064000
   << need not be changed if the CI stack changes.       >>             00066000
                                                                        00068000
                                                                        00070000
<< UCOP allocates space for the CI stack.  Typically,    >>             00072000
<< all modules that reference the CI stack are running   >>             00074000
<< on the CI stack.  Thus, only DB-relative declarations >>             00076000
<< are included here.                                    >>             00078000
                                                                        00080000
                                                                        00082000
<< Length Definitions.                                   >>             00084000
                                                                        00086000
EQUATE                                                                  00088000
   CIS'BCOMBUFLEN      << Number of characters in the    >>             00090000
      = 280,           << CI command buffer.             >>             00092000
                                                                        00094000
   CIS'WCOMBUFLEN      << Number of words in CI buffer.  >>             00096000
      = ( CIS'BCOMBUFLEN+1 ) / 2,                                       00098000
                                                                        00100000
   CIS'MAXCOMLEN       << Maximum chars in a command.    >>             00102000
      = CIS'BCOMBUFLEN - 2,                                             00104000
                                                                        00106000
   CIS'MAXCONTLINES    << Maximum number of continuation >>             00108000
      = 29,            << lines in a command.            >>             00110000
                                                                        00112000
   CIS'MAXNUMLINES     << Maximum num of command lines.  >>             00114000
      = CIS'MAXCONTLINES + 1,                                           00116000
                                                                        00118000
                                                                        00120000
   CIS'NUMISCWORDS     << Count of the miscellaneous     >>             00122000
      = 14,            << words in the middle of the CI  >>             00124000
                       << stack.  These include the UDC  >>             00126000
                       << words, the IF words, the Con-  >>             00128000
                       << tinue state stack, the pending >>             00130000
                       << command length, etc.           >>             00132000
                                                                        00134000
                                                                        00136000
   CIS'INITDLSIZE      << Initial DL size for CI stack.  >>             00138000
      = 0,                                                              00140000
                                                                        00142000
                                                                        00144000
   CIS'NUMBPOINTER                                                      00146000
      = 2,             << Count of byte pointers.        >>             00148000
                       << These are for COMMAND IMAGE &  >>             00150000
                       << LAST COMMAND IMAGE.            >>             00152000
                                                                        00154000
   CIS'GLOBSTKSIZE     << CI Global Stack Size in words. >>             00156000
      = CIS'INITDLSIZE  +       << Initial DL size.      >>             00158000
        CIS'WCOMBUFLEN  +       << Command Image.        >>             00160000
        CIS'MAXNUMLINES +       << Line Length Stack.    >>             00162000
        CIS'NUMISCWORDS +       << Misc. Words count.    >>             00164000
        CIS'WCOMBUFLEN;         << Last Command Image.   >>             00166000
                                                                        00168000
                                                                        00170000
                                                                        00172000
<< DB-relative Declarations.                             >>             00174000
                                                                        00176000
BYTE ARRAY                                                              00178000
   CIS'BCOMIMAGE(@)    << Byte pointer to the start of   >>             00180000
      = DB+0;          << CI command buffer.             >>             00182000
                                                                        00184000
LOGICAL ARRAY                                                           00186000
   CIS'WCOMIMAGE(*)    << Actual start of the command    >>             00188000
      = DB+1;          << image buffer.                  >>             00190000
                                                                        00192000
INTEGER ARRAY                                                           00194000
   CIS'LINELENSTACK(*) << Input record lengths.          >>             00196000
      = CIS'WCOMIMAGE( CIS'WCOMBUFLEN );                                00198000
                                                                        00200000
INTEGER                                                                 00202000
   CIS'NEXTMSG         << Currently not used.            >>             00204000
      = CIS'LINELENSTACK + CIS'MAXNUMLINES;                             00206000
                                                                        00208000
INTEGER                                                                 00210000
   CIS'NUMBLANKS       << For DS prompt.                 >>             00212000
      = CIS'NEXTMSG + 1;                                                00214000
                                                                        00216000
LOGICAL ARRAY                                                           00218000
   CIS'UDCSPACE(*)     << UDC information.               >>             00220000
      = CIS'NUMBLANKS + 1;                                              00222000
                                                                        00224000
LOGICAL                << UDC words.                     >>             00226000
   CIS'UDC0 = CIS'UDCSPACE,                                             00228000
   CIS'UDC1 = CIS'UDC0 + 1,                                             00230000
   CIS'UDC2 = CIS'UDC1 + 1,                                             00232000
   CIS'UDC3 = CIS'UDC2 + 1,                                             00234000
   CIS'UDC4 = CIS'UDC3 + 1;                                             00236000
                                                                        00238000
                                                                        00240000
INTEGER                                                                 00242000
   CIS'IFNESTING       << Current IF nesting level.      >>             00244000
      = CIS'UDC4 + 1;                                                   00246000
                                                                        00248000
LOGICAL                                                                 00250000
   CIS'IFSKIP          << Current IF flush flag.         >>             00252000
      = CIS'IFNESTING + 1;                                              00254000
                                                                        00256000
LOGICAL                                                                 00258000
   CIS'ELSESEEN        << Seen an ELSE at this IF level. >>             00260000
      = CIS'IFSKIP + 1;                                                 00262000
                                                                        00264000
LOGICAL                                                                 00266000
   CIS'CIFLAGS         << Various CI flags.              >>             00268000
      = CIS'ELSESEEN + 1;                                               00270000
                                                                        00272000
DOUBLE                                                                  00274000
   CIS'CONTINUSTATESTK << Used by UDC to preserve        >>             00276000
      = CIS'CIFLAGS + 1;     << continue state.          >>             00278000
                                                                        00280000
LOGICAL                                                                 00282000
   CIS'CSTACK          << Second word of Continue Stack. >>             00284000
      = CIS'CONTINUSTATESTK + 1;                                        00286000
                                                                        00288000
INTEGER                                                                 00290000
   CIS'PENDINGCOMLEN   << Length of command just read.   >>             00292000
      = CIS'CONTINUSTATESTK + 2;                                        00294000
                                                                        00296000
BYTE ARRAY                                                              00298000
   CIS'BLASTCOMIMAGE(@)<< Last command--for REDO.        >>             00300000
      = CIS'PENDINGCOMLEN + 1;                                          00302000
                                                                        00304000
LOGICAL ARRAY                                                           00306000
   CIS'LASTCOMIMAGE(*) << Word pointer to start of       >>             00308000
      = CIS'BLASTCOMIMAGE + 1;   << command.             >>             00310000
<< Miscellaneous Bit Field Definitions.                  >>             00312000
                                                                        00314000
DEFINE                                                                  00316000
                                                                        00318000
   CIS'SEQUENCED      << Sequence Numbers flag.          >>             00320000
      = CIS'CIFLAGS.(13:1) #,                                           00322000
                                                                        00324000
                                                                        00326000
   CIS'CONTSTATE                                                        00328000
      = CIS'CSTACK.(14:2) #;                                            00330000
                      << ":CONTINUE" state flag.         >>             00332000
                      << 0 -> No ":CONTINUE" seen.       >>             00334000
                      << 1 -> Just seen ":CONTINUE".     >>             00336000
                      << 2 -> ":CONTINUE" in effect.     >>             00338000
                      << 3 -> Undefined.                 >>             00340000
                                                                        00342000
                                                                        00344000
<< UDC Words definitions.                                >>             00346000
                                                                        00348000
   << CIS'UDC0 -> UDC DST Number.                        >>             00350000
   << CIS'UDC1 -> Old S Register.                        >>             00352000
   << CIS'UDC2 -> Holds UDC Flush flag.                  >>             00354000
   << CIS'UDC3 -> Holds current UDC options.             >>             00356000
   << CIS'UDC4 -> Holds miscellaneous information.       >>             00358000
                                                                        00360000
DEFINE                                                                  00362000
                                                                        00364000
   << CIS'UDC2 Definitions.                              >>             00366000
                                                                        00368000
      CIS'UDCFLUSH                                                      00370000
         = CIS'UDC2.(0:1) #,                                            00372000
                                                                        00374000
                                                                        00376000
   << CIS'UDC3 Definitions.  This impacts both the CI    >>             00378000
   << and UDC modules.                                   >>             00380000
                                                                        00382000
      CIS'OPTLIST       = (0:1) #,                                      00384000
      CIS'OPTLOGON      = (1:1) #,                                      00386000
      CIS'OPTNOHELP     = (2:1) #,                                      00388000
      CIS'OPTNOBREAK    = (3:1) #,                                      00390000
                                                                        00392000
      CIS'UDCLISTOPT    = CIS'UDC3.CIS'OPTLIST #,                       00394000
      CIS'UDCLOGONOPT   = CIS'UDC3.CIS'OPTLOGON #,                      00396000
      CIS'UDCNOHELPOPT  = CIS'UDC3.CIS'OPTNOHELP #,                     00398000
      CIS'UDCNOBREAKOPT = CIS'UDC3.CIS'OPTNOBREAK #,                    00400000
                                                                        00402000
                                                                        00404000
   << CIS'UDC4 Definitions.                              >>             00406000
                                                                        00408000
      CIS'FATALCIERRUDC = ( 0:1) #,                                     00410000
      CIS'EXITBREAK     = ( 1:1) #,                                     00412000
      CIS'BRKDETECTED   = ( 2:1) #,                                     00414000
      CIS'NOPRINTUDC    = ( 3:1) #,                                     00416000
      CIS'IMAGEADJUST   = ( 4:1) #,                                     00418000
      CIS'NESTLEVEL     = (10:6) #,                                     00420000
                                                                        00422000
      CIS'UDCFATALCIERR        = CIS'UDC4.CIS'FATALCIERRUDC #,          00424000
      CIS'UDCEXITBREAK         = CIS'UDC4.CIS'EXITBREAK #,              00426000
      CIS'UDCBREAKDETECTED     = CIS'UDC4.CIS'BRKDETECTED #,            00428000
      CIS'UDCNOPRINT           = CIS'UDC4.CIS'NOPRINTUDC #,             00430000
      CIS'UDCIMAGEADJUST       = CIS'UDC4.CIS'IMAGEADJUST #,            00432000
      CIS'UDCNESTLEVEL         = CIS'UDC4.CIS'NESTLEVEL #;              00434000
                                                                        00436000
                                                                        00438000
                                                                        00440000
<< End of the CI Stack Definitions and Declarations.     >>             00442000
