*COMDECK ZEXBDL 
_ 
********************************************* 
*                                           * 
*     DEFINE AS MANY POINTERS               * 
*     AS POSSIBLE                           * 
*                                           * 
********************************************* 
? 
_ 
*              ---- COUPLER CONTROL BLOCK ----
? 
      NHCCBSIZE := BHLAST + 1;              _ SET CCB SIZE FROM LAST WD?
      PTLINA := MILTB;                      _MODEM STATE PTR ADDR      ?
_?
      /B0S32 := /B0S16 + 1; 
      BEGINX + $D := MAIN$;                 _ SYSTEM INIT              ?
*IF DEF,HLIP
_ 
*               ---- TRUNK CONTROL BLOCK ---- 
? 
      NHTRCBSIZE := TRLAST + 1;             _ SET TRCB SIZE FROM LST WD?
*ENDIF
_************************************ 
*     SET UP POST MORTEM DELIMITERS * 
************************************* 
? 
      QENTLIM := $20; 
_ 
*              * *  INITIALIZE WORKLISTS FOR OPS LEVEL PROGRAMS  * *
? 
_ 
*              * *  CONSOLE PROGRAM  * *
? 
      BYWLCB[B0CHWL ].BYNAME    := $434F; 
*IF DEF,CONSOLE,2 
      BYWLCB[B0CHWL ].BYPRADDR  := /ENTRY(PBCONSOLE); 
      BYWLCB[B0CHWL ].BYPAGE    := /PGNUM(PBCONSOLE); 
*IF -DEF,CONSOLE,2
      BYWLCB[B0CHWL ].BYPRADDR  := /ENTRY(PBILL); 
      BYWLCB[B0CHWL ].BYPAGE    := /PGNUM(PBILL); 
      BYWLCB[B0CHWL ].BYMAXCNT  := 1; 
      BYWLCB[B0CHWL ].BYINC     := 2; 
      BYWLCB[B0CHWL ].BYFEINC   := 1; 
      BYWLCB[B0CHWL ].BYRELEASE := /TRUE; 
_ 
**           * * BLOCK PROTOCOL INTERFACE PACKAGE * * 
? 
      BYWLCB[B0BIP  ].BYNAME    := $4250; 
      BYWLCB[B0BIP  ].BYPRADDR  := /ENTRY(PBBLOCKTRANSPORT);
      BYWLCB[B0BIP  ].BYPAGE    := /PGNUM(PBBLOCKTRANSPORT);
      BYWLCB[B0BIP  ].BYMAXCNT  := 2; 
      BYWLCB[B0BIP  ].BYINC     := 1; 
      BYWLCB[B0BIP  ].BYFEINC   := 0; 
      BYWLCB[B0BIP  ].BYBACKUP  := /TRUE; 
_ 
*              * *  MLIA INTERRUPT HANDLER  * * 
? 
      BYWLCB[B0MLWL ].BYNAME    := $4D4C; 
      BYWLCB[B0MLWL ].BYPRADDR  := /ENTRY(PBMLIAOPS); 
      BYWLCB[B0MLWL ].BYPAGE    := /PGNUM(PBMLIAOPS); 
      BYWLCB[B0MLWL ].BYMAXCNT  := 10;
      BYWLCB[B0MLWL ].BYINC     := 5; 
      BYWLCB[B0MLWL ].BYFEINC   := 0; 
      BYWLCB[B0MLWL ].BYBACKUP  := /TRUE; 
_ 
*              * *  SERVICE MODULE  * * 
? 
      BYWLCB[B0SMWL ].BYNAME    := $534D; 
      BYWLCB[B0SMWL ].BYPRADDR  := /ENTRY(PNSMWL);
      BYWLCB[B0SMWL ].BYPAGE    := /PGNUM(PNSMWL);
      BYWLCB[B0SMWL ].BYMAXCNT  := 1; 
      BYWLCB[B0SMWL ].BYINC     := 3; 
      BYWLCB[B0SMWL ].BYFEINC   := 0; 
      BYWLCB[B0SMWL ].BYBACKUP  := /TRUE; 
_ 
*              * *  TIMING SERVICES  * *
? 
      BYWLCB[B0TIWL ].BYNAME    := $5453; 
      BYWLCB[B0TIWL ].BYPRADDR  := /ENTRY(PBTIMAL); 
      BYWLCB[B0TIWL ].BYPAGE    := /PGNUM(PBTIMAL); 
      BYWLCB[B0TIWL ].BYMAXCNT  := 1; 
      BYWLCB[B0TIWL ].BYINC     := 1; 
      BYWLCB[B0TIWL ].BYFEINC   := 0; 
      BYWLCB[B0TIWL ].BYBACKUP  := /TRUE; 
_ 
*              * *  LINE INITIALIZER  * * 
? 
      BYWLCB[B0LIWL ].BYNAME    := $4C49; 
      BYWLCB[B0LIWL ].BYPRADDR  := /ENTRY(PTLINIT); 
      BYWLCB[B0LIWL ].BYPAGE    := /PGNUM(PTLINIT); 
      BYWLCB[B0LIWL].BYMAXCNT   := 3; 
      BYWLCB[B0LIWL ].BYINC     := 3; 
      BYWLCB[B0LIWL ].BYFEINC   := 0; 
      BYWLCB[B0LIWL ].BYBACKUP  := /TRUE; 
_ 
*              * *  SET UP REMAINDER OF WORKLISTS  * *
? 
      BYWLCB[MMEWLQ ].BYNAME    := $4D58; 
      BYWLCB[MMEWLQ ].BYINC     := 3; 
      BYWLCB[MMEWLQ ].BYFEINC   := 0; 
      BYWLCB[MMEWLQ ].BYBACKUP  := /TRUE; 
  
      BYWLCB[B0SMTMR].BYNAME    := $5354; 
      BYWLCB[B0SMTMR].BYINC     := 3; 
      BYWLCB[B0SMTMR].BYFEINC   := 0; 
      BYWLCB[B0SMTMR].BYBACKUP  := /TRUE; 
  
      BYWLCB[B0T200 ].BYINC     := 2; 
      BYWLCB[B0T200 ].BYFEINC   := 1; 
      BYWLCB[B0T200 ].BYRELEASE := /TRUE; 
  
      BYWLCB[B0TTYP ].BYINC     := 1; 
      BYWLCB[B0TTYP ].BYFEINC   := 0; 
      BYWLCB[B0TTYP ].BYRELEASE := /TRUE; 
  
      BYWLCB[B0TTYN ].BYINC     := 1; 
      BYWLCB[B0TTYN ].BYFEINC   := 0; 
      BYWLCB[B0TTYN ].BYRELEASE := /TRUE; 
  
      BYWLCB[B0LPWL ].BYINC     := 1; 
      BYWLCB[B0LPWL ].BYFEINC   := 0; 
      BYWLCB[B0LPWL ].BYRELEASE := /TRUE; 
  
  
      BTMONOWN.BTTIMER := 4;           _ SET UP WATCHDOG TIMER         ?
   _******************************* 
   *                              * 
   *     SET UP CBTIMTBL          * 
   *                              * 
   *******************************? 
      CBTIMTBL[C0LCBTMSCN ].CBTIMER  := $02;
      CBTIMTBL[C0LCBTMSCN ].CBINTVAL := $01;
      CBTIMTBL[C0LCBTMSCN ].CBPADDR  := /PGNUM(PBLCBTMSCN); 
      CBTIMTBL[C0LCBTMSCN ].CBADDR   := /ENTRY(PBLCBTMSCN); 
*IF DEF,TUP 
      CBTIMTBL[C0TUP      ].CBTIMER  := $02;
      CBTIMTBL[C0TUP      ].CBINTVAL := $01;
      CBTIMTBL[C0TUP      ].CBPADDR  := /PGNUM(PBTUP);
      CBTIMTBL[C0TUP      ].CBADDR   := /ENTRY(PBTUP);
*ENDIF
*IF -DEF,TUP
      CBTIMTBL[C0TUP      ].CBTIMER  := 0;
      CBTIMTBL[C0TUP      ].CBINTVAL := 0;
      CBTIMTBL[C0TUP      ].CBPADDR  := /PGNUM(PBILL);
      CBTIMTBL[C0TUP      ].CBADDR   := /ENTRY(PBILL);
*ENDIF
*IF DEF,PERFORM 
      CBTIMTBL[C0PSTAT    ].CBTIMER  := /STATPERIOD;
      CBTIMTBL[C0PSTAT    ].CBINTVAL := /STATPERIOD;
      CBTIMTBL[C0PSTAT    ].CBPADDR  := /PGNUM(PNPSTAT);
      CBTIMTBL[C0PSTAT    ].CBADDR   := /ENTRY(PNPSTAT);
*ENDIF
*IF DEF,CONSOLE 
      CBTIMTBL[C0IOTMR    ].CBTIMER  := $02;
      CBTIMTBL[C0IOTMR    ].CBINTVAL := $01;
      CBTIMTBL[C0IOTMR    ].CBPADDR  := /PGNUM(PBIOTMR);
      CBTIMTBL[C0IOTMR    ].CBADDR   := /ENTRY(PBIOTMR);
*ENDIF
      CBTIMTBL[C0T1SEC    ].CBTIMER  := $02;
      CBTIMTBL[C0T1SEC    ].CBINTVAL := $02;
      CBTIMTBL[C0T1SEC    ].CBPADDR  := /PGNUM(PMT1SEC);
      CBTIMTBL[C0T1SEC    ].CBADDR   := /ENTRY(PMT1SEC);
      CBTIMTBL[C0CECNT    ].CBTIMER  := /CNCEPERIOD;
      CBTIMTBL[C0CECNT    ].CBINTVAL := /CNCEPERIOD;
      CBTIMTBL[C0CECNT    ].CBPADDR  := /PGNUM(PNCECNT);
      CBTIMTBL[C0CECNT    ].CBADDR   := /ENTRY(PNCECNT);
      CBTIMTBL[C0SMTMR    ].CBTIMER  := $02;
      CBTIMTBL[C0SMTMR    ].CBINTVAL := $02;
      CBTIMTBL[C0SMTMR    ].CBPADDR  := /PGNUM(PNSMTMR);
      CBTIMTBL[C0SMTMR    ].CBADDR   := /ENTRY(PNSMTMR);
      CBTIMTBL[C0SPARE    ].CBTIMER  := 0;
      CBTIMTBL[C0SPARE    ].CBINTVAL := 0;
      CBTIMTBL[C0SPARE    ].CBADDR   := /NIL; 
_?
      PFCOUNT := 14;                        _DUMP PERFORMANCE 8*14 SEC ?
_?
*IF,DEF,PERFORM 
_ 
*               ---- PERFORMANCE MEASUREMENTS TIMING ---- 
? 
      CBTIMTBL[C0PERF].CBTIMER  := PFINTVAL * 2;
      CBTIMTBL[C0PERF].CBINTVAL := PFINTVAL * 2;
      CBTIMTBL[C0PERF].CBPADDR  := /PGNUM(PBPERFORM); 
      CBTIMTBL[C0PERF].CBADDR   := /ENTRY(PBPERFORM); 
*ENDIF
_ 
********************************************* 
*                                           * 
*        TIP TYPE TABLES                    * 
*                                           * 
********************************************* 
? 
_?
_                 MLIA                                                 ?
_?
      BJTIPTYPT [ N0MLIA    ].BJQTYPE := /B0QNEXTSEG; 
      BJTIPTYPT [ N0MLIA    ].BJLISTIX := B0MLWL; 
_?
_                 CONSOLE                                              ?
_?
      BJTIPTYPT [ N0CONSOLE ].BJQTYPEN := /B0QNEXTSEG;
      BJTIPTYPT [ N0CONSOLE ].BJLISTIX := B0CHWL; 
      BJTIPTYPT[ N0CONSOLE ].BJTCBSIZE := /B0S32; 
_?
_                 LINE INITIALIZER                                     ?
_?
      BJTIPTYPT [ N0LINIT   ].BJLISTIX := B0LIWL; 
      BJTIPTYPT [ N0LINIT   ].BJTPMUX2 := /PGNUM(PTLMUX2);
      BJTIPTYPT [ N0LINIT   ].BJTEMUX2 := /ENTRY(PTLMUX2);
_ 
****************************************
*                                      *
*     TERMINAL CHARACTERISTICS TABLE   *
*                (TYPE)                *
*                                      *
****************************************
? 
_?
        _        CONSOLE                ? 
      NJTECT[ N0TCONSOLE ].NJTIPTY        := N0CONSOLE; 
_?
        _      COUPLER                  ? 
      NJTECT[ N0TCOUPLER ].NJTIPTY        := N0COUPLER; 
_ 
************************************************************************
*                                                                      *
*              * *  FIXED TERMINAL CONTROL BLOCKS   * *                *
*                                                                      *
************************************************************************
? 
_ 
*              ----  M L I A   T C B  ----
? 
      CGTCBS[0].BSTCLASS  := N0TMLIA;       _TERMINAL CLASS            ?
      CGTCBS[0].BSDEVTYPE := N1INTDEV;      _INTERNAL DEVICE           ?
_?
      /TCBMLIA := CGTCBS;                   _ ADDRESS OF TCB           ?
_ 
*              ----  C O N S O L E   T C B   ---- 
? 
      CGTCBS[1].BSTCLASS  := N0TCONSOLE;    _TERMINAL CLASS            ?
      CGTCBS[1].BSDEVTYPE := N1INTDEV;      _INTERNAL DEVICE           ?
_?
      /TCBCONS := CGTCBS + /SIZTCB * 1;     _ ADDRESS OF TCB           ?
_?
_?
      /ICHSUBLCB := 3;
_?
      /ICHSUBLCB := /ICHSUBLCB + 1; 
_?
_     THE VALUES IN JKTMASK ARE THE SAME AS THOSE IN JKMASK            ?
_?
      JKMASK[1 ] :=      0;        JKTMASK[1 ] :=      0; 
      JKMASK[2 ] :=      1;        JKTMASK[2 ] :=      1; 
      JKMASK[3 ] :=      5;        JKTMASK[3 ] :=      5; 
      JKMASK[4 ] :=     $D;        JKTMASK[4 ] :=     $D; 
      JKMASK[5 ] :=    $1D;        JKTMASK[5 ] :=    $1D; 
      JKMASK[6 ] :=    $7D;        JKTMASK[6 ] :=    $7D; 
      JKMASK[7 ] :=    $1D;        JKTMASK[7 ] :=    $1D; 
      JKMASK[8 ] :=    $1D;        JKTMASK[8 ] :=    $1D; 
      JKMASK[9 ] :=    $FF;        JKTMASK[9 ] :=    $FF; 
      JKMASK[10] :=   $1FF;        JKTMASK[10] :=   $1FF; 
      JKMASK[11] :=   $3FF;        JKTMASK[11] :=   $3FF; 
      JKMASK[12] :=   $7FF;        JKTMASK[12] :=   $7FF; 
      JKMASK[13] :=   $FFF;        JKTMASK[13] :=   $FFF; 
      JKMASK[14] :=  $1FFF;        JKTMASK[14] :=  $1FFF; 
      JKMASK[15] :=  $3FFF;        JKTMASK[15] :=  $3FFF; 
      JKMASK[16] := $7FEF;         JKTMASK[16] := $7FEF;
      JKMASK[17] :=  $FFFF;        JKTMASK[17] :=  $FFFF; 
*IF DEF,CONSOLE 
_***********************************************************************
*     PERIPHERAL DEVICE CONTROLLER TABLE                               *
***********************************************************************?
      JACT[/TTY].JARETRY     := 10; 
      JACT[/TTY].JAAVALUE       := $20; 
      JACT[/TTY].JAMASK := $FFFD; 
      JACT[/TTY].JAIOWL[/TRUE ] := B0TTYP;
      JACT[/TTY].JAIOWL[/FALSE] := B0TTYN;
_?
      JACT[/TTY].JAQCHOSEN := /J1SUPQ;
*ENDIF
_?
*IF DEF,TUP 
_***********************************************************************
*     TEST UTILITY PACKAGE TABLE                                       *
***********************************************************************?
      JUTUPTABLE.JUTUPIN := J1TUPBFRS;
      JUTUPTABLE.JUTUPOUT:= J1TUPBFRS+32; 
      JUTUPTABLE.JUPRPIN := JUTUPTABLE+JULRPIN; 
      JUTUPTABLE.JUPRPOUT:= JUTUPTABLE+JULRPOUT;
      JUTUPTABLE.JUREGSAVE := JUTUPTABLE+JUTREGS; 
_?
     JUTUPTABLE.
      JULRPIN.JCCOMMAND := /J3READ; 
     JUTUPTABLE.
      JULRPIN.JCCOMPL   := /J3NOCOMPL;
     JUTUPTABLE+
      JULRPOUT.JCIMMEDFLG := /TRUE; 
      JUTUPTABLE. 
      JULRPOUT.JCCOMFLG   := /TRUE; 
     JUTUPTABLE.
      JULRPIN.JCLIO := /J2TUPINPUT; 
     JUTUPTABLE.
      JULRPIN.JCPD := /NODEVICE;
     JUTUPTABLE.
      JULRPIN.JCPOINTER := J1TUPBFRS; 
     JUTUPTABLE.
      JULRPIN.JCBUFSZE  := BECTLBK + (2*/SIZBECTLBK); 
     JUTUPTABLE.
      JULRPIN.JCENTRYCODE := B0DUMMY; 
_?
     JUTUPTABLE.
      JULRPOUT.JCCOMMAND := /J3WRITE; 
     JUTUPTABLE.
      JULRPOUT.JCCOMPL   := /J3NOCOMPL; 
     JUTUPTABLE.
      JULRPOUT.JCIMMEDFLG := /TRUE; 
      JUTUPTABLE. 
      JULRPOUT.JCCOMFLG   := /TRUE; 
     JUTUPTABLE.
      JULRPOUT.JCLIO     := /J2TUPOUTPUT; 
     JUTUPTABLE.
      JULRPOUT.JCPD      := /NODEVICE;
     JUTUPTABLE.
      JULRPOUT.JCPOINTER := J1TUPBFRS+32; 
     JUTUPTABLE.
      JULRPOUT.JCBUFSZE := BECTLBK + (2*/SIZBECTLBK); 
     JUTUPTABLE.
      JULRPOUT.JCENTRYCODE := B0DUMMY;
_?
      FOR /I := 1 TO 64 DO
      J1TUPBFRS[1] := J1FRSTCHAR*$101;
      J1TUPBFRS[33]:= J1FRSTCHAR*$101;
      J1TUPBFRS[/I] := $2020; 
      J1TUPBFRS[2] := $8000;
      J1TUPBFRS[34]:= $8000;
      J1TUPBFRS[3] := J1CRLF; 
      J1TUPBFRS[35]:= J1CRLF; 
      J1TUPBFRS[32]  := J1TUPBFRS;      _CHAIN TUP I/O BUFFERS? 
      J1TUPBFRS[64]  := J1TUPBFRS+32;   _TO THEMSELVES        ? 
_***********************************************************************
*     ADDRESS COMPARISON TABLE                                         *
***********************************************************************?
_?
      JGTESTABLE[/TRUE ,/TRUE ,/TRUE ] := 0;
      JGTESTABLE[/FALSE,/FALSE,/FALSE] := 7;
      JGTESTABLE[/TRUE ,/FALSE,/TRUE ] := 2;
      JGTESTABLE[/TRUE ,/FALSE,/FALSE] := 4;
      JGTESTABLE[/FALSE,/TRUE ,/FALSE] := 5;
      JGTESTABLE[/FALSE,/TRUE ,/TRUE ] := 3;
      JGTESTABLE[/FALSE,/FALSE,/TRUE ] := 6;
      JGTESTABLE[/TRUE ,/TRUE ,/FALSE] := 1;
_?
      JEBPTABLE.JEREGSAVE := JEBPTABLE+JESAVEAREA-10; 
_***********************************************************************
*     OPS PROGRAM START ADDRESSES                                      *
***********************************************************************?
      JZOPSBASE[B0CHWL ] := PBCONSOLE;
      JZOPSBASE[B0BIP  ] := PBBLOCKTRANSPORT; 
      JZOPSBASE[B0MLWL ] := PBMLIAOPS;
*IF -DEF,HIP,1
      JZOPSBASE[B0COWL ] := PBILL;     _ILLEGAL CALL TO HIP            ?
*IF DEF,HIP,1 
      JZOPSBASE[B0COWL ] := PTHIPOPS; 
      JZOPSBASE[B0SMWL ] := PNSMWL; 
      JZOPSBASE[B0TIWL ] := PBTIMAL;
*CALL ZEXOPS
      JZOPSBASE[B0LIWL ] := PTLINIT;
*ENDIF
_?
*IF DEF,CONSOLE 
_***********************************************************************
*     OPS LEVEL LOGICAL I/O REQUEST PACKET                             *
***********************************************************************?
   JCOPSLRP.JCCOMMAND := /J3WRITE;
   JCOPSLRP.JCCOMPL   := /J3NOCOMPL;
      JCOPSLRP.JCRELBUFLG  := /TRUE;
      JCOPSLRP.JCRELPRPFLG := /TRUE;
      JCOPSLRP.JCPRIFLG    := /TRUE;
      JCOPSLRP.JCCHAINFLG  := /TRUE;
      JCOPSLRP.JCCOMFLG    := /TRUE;
   JCOPSLRP.JCLIO := /J2SUPOUT; 
   JCOPSLRP.JCBUFSZE := BECTLBK + (2*/SIZBECTLBK);
   JCOPSLRP.JCENTRYCODE := B0DUMMY; 
   JCOPSLRP.JCUSRCODE  := 0;
   JCOPSLRP.JCPD := /NODEVICE;
_?
_***********************************************************************
*     CONSOLE INTERRUPT HANDLER LOGICAL I/O REQUEST PACKET             *
***********************************************************************?
   RCLRP.JCCOMMAND     := /J3WRITE; 
   RCLRP.JCCOMPL       := /J3NOCOMPL; 
      RCLRP.JCRELBUFLG  := /TRUE; 
      RCLRP.JCRELPRPFLG := /TRUE; 
      RCLRP.JCPRIFLG    := /TRUE; 
      RCLRP.JCCHAINFLG  := /TRUE; 
      RCLRP.JCCOMFLG    := /TRUE; 
   RCLRP.JCLIO         := /J2SUPOUT;
   RCLRP.JCBUFSZE  := BECTLBK + (2*/SIZBECTLBK);
   RCLRP.JCENTRYCODE := B0DUMMY;
   RCLRP.JCPD          := /NODEVICE;
_?
_***********************************************************************
*     SET CONSOLE MODE LOGICAL I/O REQUEST PACKET                      *
***********************************************************************?
   RCLRP1.JCCOMMAND     := /J3WRITE;
   RCLRP1.JCCOMPL       := /J3NOCOMPL;
      RCLRP1.JCRELBUFLG  := /TRUE;
      RCLRP1.JCRELPRPFLG := /TRUE;
      RCLRP1.JCCHAINFLG  := /TRUE;
      RCLRP1.JCIMMEDFLG  := /TRUE;
      RCLRP1.JCCOMFLG    := /TRUE;
   RCLRP1.JCLIO         := /J2SUPOUT; 
   RCLRP1.JCBUFSIZ  := BECTLBK + (2*/SIZBECTLBK); 
   RCLRP1.JCENTRYCODE := B0DUMMY; 
   RCLRP1.JCPD          := /NODEVICE; 
*ENDIF
*IF DEF,TUP 
_?
_***********************************************************************
*     SNAPSHOT REGISTERS LOGICAL I/O REQUEST PACKET                    *
***********************************************************************?
   RCLRP2.JCCOMMAND     := /J3WRITE;
   RCLRP2.JCCOMPL       := /J3NOCOMPL;
      RCLRP2.JCRELBUFLG  := /TRUE;
      RCLRP2.JCRELPRPFLG := /TRUE;
      RCLRP2.JCCHAINFLG  := /TRUE;
      RCLRP2.JCCOMFLG    := /TRUE;
   RCLRP2.JCLIO         := /J2SNP2; 
   RCLRP2.JCBUFSZE  := BECTLBK + (2*/SIZBECTLBK); 
   RCLRP2.JCENTRYCODE := B0DUMMY; 
   RCLRP2.JCPD          := /NODEVICE; 
_***********************************************************************
*     SNAPSHOT CORE LOGICAL I/O REQUEST PACKET                         *
***********************************************************************?
_?
   SCLRP.JCCOMMAND      := /J3WRITE;
   SCLRP.JCCOMPL        := /J3NOCOMPL;
      SCLRP.JCRELBUFLG  := /TRUE; 
      SCLRP.JCRELPRPFLG := /TRUE; 
      SCLRP.JCCHAINFLG  := /TRUE; 
      SCLRP.JCCOMFLG    := /TRUE; 
   SCLRP.JCLIO          := /J2SNP1; 
   SCLRP.JCPD           := /NODEVICE; 
   SCLRP.JCBUFSZE  := BECTLBK + (2*/SIZBECTLBK);
   SCLRP.JCENTRYCODE := B0DUMMY;
*ENDIF
_?
_***********************************************************************
*                 INITIALIZATION OF LINE TYPE TABLES                   *
************************************************************************
? 
_?
  FOR /I := 3 TO NKISR  DO
    BEGIN 
    NBLTYT[ N0LDIAG, /I ].NBINT2 := $FFFF;
    NBLTYT[ N0L1   , /I ].NBINT2 := $FFFF;
    NBLTYT[ N0L2   , /I ].NBINT2 := $FFFF;
    NBLTYT[ N0L3   , /I ].NBINT2 := $FFFF;
    NBLTYT[ N0L4   , /I ].NBINT2 := $FFFF;
    NBLTYT[ N0L5   , /I ].NBINT2 := $FFFF;
    NBLTYT[ N0L6   , /I ].NBINT2 := $FFFF;
    NBLTYT[ N0L7   , /I ].NBINT2 := $FFFF;
    NBLTYT[ N0L8   , /I ].NBINT2 := $FFFF;
    NBLTYT[ N0L9   , /I ].NBINT2 := $FFFF;
    NBLTYT[ N0LA   , /I ].NBINT2 := $FFFF;
    NBLTYT[ N0LAST , /I ].NBINT2 := $FFFF;
    END;
_ 
*              ---- SET UP CLEAR AND DISABLE COMMANDS ----
? 
   FOR /I := N0LDIAG TO N0LAST DO 
   BEGIN
     NBLTYT[/I,NKCLRL].NBINT2 := $0000; 
     NBLTYT[/I,NKDISL].NBINT2 := $0000; 
   END; 
_?
   _LINE TYPE 0 (N0LDIAG) USED FOR  ON LINE DIAGNOSTICS ONLY.LINE      ?
   _CHARACTERISTICS ARE TAYLORED DINAMICALLY DURING EXECUTION          ?
_?
   NBLTYT [N0LDIA,2     ].NBINT1:=MILT0; _ MODEM STATES PTR. TABLE ADDR?
   NBLTYT [N0LDIA,NKINIL].NBINT1:=$0020; _ INIT.    SET (ISON)         ?
   NBLTYT [N0LDIA,NKENBL].NBINT1:=$8840; _ ENABLE   SET (DTR, RTS, ISR)?
   NBLTYT [N0LDIA,NKINPT].NBINT1:=$0200; _ INPUT    SET (ION)          ?
   NBLTYT [N0LDIA,NKDOUT].NBINT1:=$0100; _ DIR.OUT  SET (OON)          ?
   NBLTYT [N0LDIA,NKOBT ].NBINT1:=$8800; _ OBT      SET (RTS, DTR)     ?
   NBLTYT [N0LDIA,NKINOU].NBINT1:=$0100; _ IN.AFT.O SET (OON) AND      ?
   NBLTYT [N0LDIA,NKINOU].NBINT2:=$FDFF; _          RESET(ION)         ?
   NBLTYT [N0LDIA,NKENDI].NBINT2:=$FDFF; _ TERM.INP RESET(ION)         ?
   NBLTYT [N0LDIA,NKENDO].NBINT2:=$FEFF; _ TERM.OUT RESET(OON)         ?
   NBLTYT [N0LDIA,NKSTAT].NBINT1:=$0020; _STATUS SET ISON              ?
   NBLTYT [N0LDIA,NKISR ].NBINT1:=$0040; _REQUEST STATUS SET ISR       ?
_?
   _LINE TYPE 1 (N0L1),SWITCHED,2WIRE,HDX,CONTROLLED CARRIER,201 MODEM,?
   _2560-1 CLA,TURN AROUND REQUIRED                                    ?
_?
   NBLTYT [N0L1,  1     ].NBINT1:=$2440; _ LINE CHARACTERISTICS        ?
   NBLTYT [N0L1,  1     ].NBINT2:=$BFBF; _ ALL CMD.RESET(RSYN,NSYN,ISR)?
   NBLTYT [N0L1,  2     ].NBINT1:=MILT1; _ MODEM STATES PTR. TABLE ADDR?
   NBLTYT [N0L1,  NKTURN].NBINT2:=$7FFF; _ TURN     RESET(RTS)         ?
   NBLTYT [N0L1,  NKINIL].NBINT1:=$0020; _ INIT     SET (ISON)         ?
   NBLTYT [N0L1,  NKENBL].NBINT1:=$0860; _ ENABLE  SET (DTR,ISON,ISR)  ?
   NBLTYT [N0L1,  NKINPT].NBINT1:=$4200; _ INPUT    SET (RSYN,ION)     ?
   NBLTYT [N0L1,  NKINPT].NBINT2:=$7EFF; _          RESET(RTS,OON)     ?
   NBLTYT [N0L1,  NKDOUT].NBINT1:=$8100; _ DIR.OUT  SET(RTS,OON)       ?
   NBLTYT [N0L1,  NKDOUT].NBINT2:=$FDFF; _          RESET(ION)         ?
   NBLTYT [N0L1  ,NKOBT ].NBINT1:=$0800; _ OBT      SET (DTR)          ?
   NBLTYT [N0L1,  NKINOU].NBINT1:=$C100; _ IN.AFT.O SET(RTS,RSYN,OON   ?
   NBLTYT [N0L1,  NKINOU].NBINT2:=$FDFF; _          RESET(ION)         ?
   NBLTYT [N0L1,  NKENDI].NBINT2:=$FDFF; _ TERM.INP RESET(ION)         ?
   NBLTYT [N0L1,  NKENDO].NBINT2:=$7EFF; _ TERM.OUT RESET(RTS,OON)     ?
   NBLTYT [N0L1,  NKCLRL].NBINT1:=$0400; _ BUSY OUT THE MODEM FOR CLEAR?
   NBLTYT [N0L1,  NKSTAT].NBINT1:=$0020; _STATUS SET ISON              ?
   NBLTYT [N0L1,  NKISR ].NBINT1:=$0040; _REQUEST STATUS SET ISR       ?
_?
   _LINE TYPE 2 (N0L2),DEDICATED,4 WIRE,FDX,(HDX PROTOCOL ) 201 MODEM, ?
   _2560-1 CLA,TURN AROUND REQUIRED,CONTROLLED CARRIER                 ?
_?
   NBLTYT [N0L2,  1     ].NBINT1:=$2E40; _ LINE CHARACTERISTICS        ?
   NBLTYT [N0L2,  1     ].NBINT2:=$BFBF; _ ALLCMDS. RESETRSYN,NSYN,ISR? 
   NBLTYT [N0L2,  2     ].NBINT1:=MILT1; _ MODEM STATES PTR. TABLE ADDR?
   NBLTYT [N0L2,  NKTURN].NBINT2:=$7FFF; _ TURN LINE RESET(RTS)        ?
   NBLTYT [N0L2,  NKINIL].NBINT1:=$0020; _ INIT     SET (ISON)         ?
   NBLTYT [N0L2,  NKENBL].NBINT1:=$0860; _ ENABLE  SET (DTR,ISON,ISR)  ?
   NBLTYT [N0L2,  NKINPT].NBINT1:=$4200; _ INPUT     SET(RSYN,ION)     ?
   NBLTYT [N0L2,  NKINPT].NBINT2:=$FEFF; _           RESET(OON)        ?
   NBLTYT [N0L2,  NKDOUT].NBINT1:=$8100; _ DIR.OUTPT SET(RTS,OON)      ?
   NBLTYT [N0L2,  NKDOUT].NBINT2:=$FDFF; _           RESET(ION)        ?
   NBLTYT [N0L2  ,NKOBT ].NBINT1:=$0800; _ OBT       SET (DTR)         ?
   NBLTYT [N0L2,  NKINOU].NBINT1:=$C100; _ IN.AFT.O  SET(RTS,RSYN,OON) ?
   NBLTYT [N0L2,  NKINOU].NBINT2:=$FDFF; _           RESET(ION)        ?
   NBLTYT [N0L2,  NKENDI].NBINT2:=$FDFF; _ TERM.INP. RESET(ION)        ?
   NBLTYT [N0L2,  NKENDO].NBINT2:=$7EFF; _ TERM.OUT. RESET(RTS,OON)    ?
   NBLTYT [N0L2,  NKSTAT].NBINT1:=$0020; _ STATUS SET ISON             ?
   NBLTYT [N0L2,  NKISR ].NBINT1:=$0040; _ REQUEST STATUS SET ISR      ?
_?
   _LINE TYPE 3 (N0L3),DEDICATED,4WIRE,FDX,CONSTANT CARRIER,201 MODEM, ?
   _2560-1 CLA,NO TURN AROUND REQUIRED                                 ?
_?
   NBLTYT [N0L3,  1     ].NBINT1:=$0A40; _ LINE CHARACTERISTICS        ?
   NBLTYT [N0L3,  1     ].NBINT2:=$BFBF; _ ALL CMD.RESET(RSYN,NSYN,ISR)?
   NBLTYT [N0L3,  2     ].NBINT1:=MILT3; _ MODEM STATES PTR. TABLE ADDR?
   NBLTYT [N0L3,  NKINIL].NBINT1:=$0020; _ INIT     SET (ISON)         ?
   NBLTYT [N0L3,  NKENBL].NBINT1:=$8860; _ ENABLE SET(RTS,DTR,ISON,ISR)?
   NBLTYT [N0L3,  NKINPT].NBINT1:=$4200; _ INPUT    SET(RSYN,ION   )   ?
   NBLTYT [N0L3,  NKDOUT].NBINT1:=$0100; _ DIR.OUT  SET(OON        )   ?
   NBLTYT [N0L3,  NKOBT ].NBINT1:=$8800; _ OBT      SET (RTS AND DTR)  ?
   NBLTYT [N0L3,  NKINOU].NBINT1:=$4100; _ IN.AFT.O SET(RSYN,OON)      ?
   NBLTYT [N0L3,  NKINOU].NBINT2:=$FDFF; _          RESET(ION)         ?
   NBLTYT [N0L3,  NKENDI].NBINT2:=$FDFF; _ TERM.INP RESET(ION)         ?
   NBLTYT [N0L3,  NKENDO].NBINT2:=$FEFF; _ TERM OUT RESET(OON)         ?
   NBLTYT [N0L3,  NKSTAT].NBINT1:=$0020; _ STATUS SET ISON             ?
   NBLTYT [N0L3,  NKISR ].NBINT1:=$0040; _ REQUEST STATUS SET ISR      ?
_?
  _ * * * * * * LINE TYPES 4 AND 5 ARE NOT DEFINED * * * * * * * * * * ?
_?
   _LINE TYPE 6 (N0L6),SWITCHED,2 WIRE,FDX,CONSTANT CARRIER,103E MODEM ?
   _2561-1 CLA,NO TURN AROUND REQUIRED                                 ?
_?
   NBLTYT [N0L6,  1     ].NBINT1:=$0021; _ LINE CHARACTERISTICS        ?
   NBLTYT [N0L6,  1     ].NBINT2:=$FFBF; _ ALL CMDS. RESET(ISR)        ?
   NBLTYT [N0L6,  2     ].NBINT1:=MILT6; _ MODEM STATES PTR. TABLE ADDR?
   NBLTYT [N0L6,  NKINIL].NBINT1:=$0020; _ INIT     SET (ISON)         ?
   NBLTYT [N0L6,  NKINIL].NBINT2:=$FBFF; _ RESET TERMINAL BUSY         ?
   NBLTYT [N0L6,  NKENBL].NBINT1:=$8860; _ ENABLE SET(RTS,DTR,ISON,ISR)?
   NBLTYT [N0L6,  NKINPT].NBINT1:=$0200; _ INPUT     SET(ION)          ?
   NBLTYT [N0L6,  NKDOUT].NBINT1:=$0100; _ DIR.OUTPT SET(OON)          ?
   NBLTYT [N0L6  ,NKOBT ].NBINT1:=$0800; _ OBT       SET (DTR)         ?
   NBLTYT [N0L6,  NKINOU].NBINT1:=$0100; _ IN.AFT.O  SET(OON)          ?
   NBLTYT [N0L6,  NKENDI].NBINT2:=$FDFF; _ TERM.INPT RESET(ION)        ?
   NBLTYT [N0L6,  NKENDO].NBINT2:=$FEFF; _ TERM.OUTP RESET(OON)        ?
   NBLTYT [N0L6,  NKCLRL].NBINT1:=$0400; _BUSY OUT THE MODEM FOR CLEAR ?
   NBLTYT [N0L6,  NKSTAT].NBINT1:=$0020; _ STATUS SET ISON             ?
   NBLTYT [N0L6,  NKISR ].NBINT1:=$0040; _ REQUEST STATUS SET ISR      ?
_?
   _LINE TYPE 7 (N0L7),DEDICATED,2 WIRE,FDX,CONSTANT CARRIER,103E MODEM?
   _2561-1 CLA, NO TURNAROUND REQUIRED                                 ?
_?
   NBLTYT [N0L7,  1     ].NBINT1:=$0821; _ LINE CHARACTERISTICS        ?
   NBLTYT [N0L7,  1     ].NBINT2:=$FFBF; _ ALL CMDS  RESET(ISR)        ?
   NBLTYT [N0L7,  2     ].NBINT1:=MILT6; _ MODEM STATES PTR. TABLE ADDR?
   NBLTYT [N0L7,  NKINIL].NBINT1:=$0020; _ INIT     SET (ISON)         ?
   NBLTYT [N0L7,  NKINIL].NBINT2:=$FBFF; _ RESET TERMINAL BUSY         ?
   NBLTYT [N0L7,  NKENBL].NBINT1:=$8860; _ ENABLE SET(RTS,DTR,ISON,ISR)?
   NBLTYT [N0L7,  NKINPT].NBINT1:=$0200; _ INPUT     SET(ION)          ?
   NBLTYT [N0L7,  NKDOUT].NBINT1:=$0100; _ DIR.OUTPT SET(OON)          ?
   NBLTYT [N0L7  ,NKOBT ].NBINT1:=$0800; _ OBT       SET (DTR)         ?
   NBLTYT [N0L7,  NKINOU].NBINT1:=$0100; _ IN.AFT.O. SET(OON)          ?
   NBLTYT [N0L7,  NKENDI].NBINT2:=$FDFF; _ TERM.INP. RESET(ION)        ?
   NBLTYT [N0L7,  NKENDO].NBINT2:=$FEFF; _ TERM.OUT. RESET(OON)        ?
   NBLTYT [N0L7,  NKCLRL].NBINT1:=$0400; _BUSY OUT THE MODEM FOR CLEAR ?
   NBLTYT [N0L7,  NKDISL].NBINT1:=$0400; _BUSY OUT THE MODEM FOR DISAB.?
   NBLTYT [N0L7,  NKSTAT].NBINT1:=$0020; _ STATUS SET ISON             ?
   NBLTYT [N0L7,  NKISR ].NBINT1:=$0040; _ REQUEST STATUS SET ISR      ?
_?
   _ * * * * * * * * LINE TYPES 8 AND 9 ARE NOT DEFINED * * * * * * * *?
_?
   _LINE TYPE A (N0LA),DEDICATED,4 WIRE,FDX,CONSTANT CARRIER,201 MODEM,?
   _2563-1 CLA,NO TURN AROUND REQUIRED                                 ?
_?
   NBLTYT [N0LA,  1     ].NBINT1:=$0A43; _ LINE CHARACTERISTICS        ?
   NBLTYT [N0LA,  1     ].NBINT2:=$AFBF; _ ALL CMDS RESET(RSYN,NSYN,ISR?
   NBLTYT [N0LA,  2     ].NBINT1:=MILTA; _ MODEM STATES PTR. TABLE ADDR?
   NBLTYT [N0LA,  NKINIL].NBINT1:=$0820; _ INIT     SET (ISON,DTR)     ?
   NBLTYT [N0LA,  NKENBL].NBINT1:=$88C7;_ ENABLE SET(RTS,DTR,FLG,ISR) ? 
   NBLTYT [N0LA,  NKINPT].NBINT1:=$4A07; _ INPUT    SET(RSYN,ION,DTR)  ?
   NBLTYT [N0LA,  NKDOUT].NBINT1:=$0907; _ DIR.OUTP SET(OON,DTR)       ?
   NBLTYT [N0LA  ,NKOBT ].NBINT1:=$8807; _ OBT      SET (RTS, DTR)     ?
   NBLTYT [N0LA,  NKINOU].NBINT1:=$4100; _ IN.AFT.O SET(RSYN,OON)      ?
   NBLTYT [N0LA,  NKINOU].NBINT2:=$FDFF; _          RESET(ION)         ?
   NBLTYT [N0LA,  NKENDI].NBINT2:=$FDFF; _ TERM.INP RESET(ION)         ?
   NBLTYT [N0LA,  NKENDO].NBINT2:=$FEFF; _ TERM.OUT RESET(OON)         ?
   NBLTYT [N0LA,  NKSTAT].NBINT1:=$0020; _ STATUS SET ISON             ?
   NBLTYT [N0LA,  NKISR ].NBINT1:=$0040; _ REQUEST STATUS SET ISR      ?
_?
_***********************************************************************
         INITIALIZATION OF LINE TYPE SEGMENT  POINTERS TABLE           *
***********************************************************************?
_?
      /I1:= 0;
      FOR /I := N0LDIAG TO N0LAST DO
      BEGIN 
        NELTP [/I] := NBLTYT + /I1; 
        /I1  := /I1 + (2 * NKISR);
      END;
_ 
                    LINE SPEED =  800 BPS (LOW RANGE ASYNC AUTO RECOGN) 
? 
      NICTCT [N0800 ].NIRSR   := 1; 
      NICTCT [N0800 ].NIRSPED := 2; 
      NICTCT [N0800 ].NITSR   := 1; 
      NICTCT [N0800 ].NITSPED := 2; 
      NICTCT [N0800 ].NISTOP  := /N01BIT; 
_ 
                    LINE SPEED = 3200 BPS (HIGH RANGE ASYNC AUTO RECOGN)
? 
      NICTCT [N03200].NIRSR   := 1; 
      NICTCT [N03200].NIRSPED := $B;
      NICTCT [N03200].NITSR   := 1; 
      NICTCT [N03200].NITSPED := $B;
      NICTCT [N03200].NISTOP  := /N01BIT; 
_ 
                    LINE SPEED = 110   BAUD 
? 
      NICTCT [N0110 ].NIRSR   := $2;
      NICTCT [N0110 ].NIRSPED := $A;
      NICTCT [N0110 ].NITSR   := $2;
      NICTCT [N0110 ].NITSPED := $A;
      NICTCT [N0110 ].NISTOP  := /N02BITS;
_ 
                    LINE SPEED = 134.5 BAUD 
? 
      NICTCT [N0134 ].NIRSR   := 2; 
      NICTCT [N0134 ].NIRSPED := $E;
      NICTCT [N0134 ].NITSR   := 2; 
      NICTCT [N0134 ].NITSPED := $E;
      NICTCT [N0134 ].NISTOP  := /N01BIT; 
_ 
                    LINE SPEED = 150   BAUD 
? 
      NICTCT [N0150 ].NIRSR   := 2; 
      NICTCT [N0150 ].NIRSPED := 1; 
      NICTCT [N0150 ].NITSR   := 2; 
      NICTCT [N0150 ].NITSPED := 1; 
      NICTCT [N0150 ].NISTOP  := /N01BIT; 
_ 
                    LINE SPEED = 300   BAUD 
? 
      NICTCT [N0300 ].NIRSR   := 2; 
      NICTCT [N0300 ].NIRSPED := 3; 
      NICTCT [N0300 ].NITSR   := 2; 
      NICTCT [N0300 ].NITSPED := 3; 
      NICTCT [N0300 ].NISTOP  := /N01BIT; 
_ 
                    LINE SPEED = 600   BAUD 
? 
      NICTCT [N0600 ].NIRSR   := 2; 
      NICTCT [N0600 ].NIRSPED := 7; 
      NICTCT [N0600 ].NITSR   := 2; 
      NICTCT [N0600 ].NITSPED := 7; 
      NICTCT [N0600 ].NISTOP  := /N01BIT; 
_ 
                    LINE SPEED = 1200  BAUD 
? 
      NICTCT [N01200].NIRSR   := 1; 
      NICTCT [N01200].NIRSPED := 1; 
      NICTCT [N01200].NITSR   := 1; 
      NICTCT [N01200].NITSPED := 1; 
      NICTCT [N01200].NISTOP  := /N01BIT; 
_ 
                    LINE SPEED = 2400  BAUD 
? 
      NICTCT [N02400].NIRSR   := 1; 
      NICTCT [N02400].NIRSPED := 3; 
      NICTCT [N02400].NITSR   := 1; 
      NICTCT [N02400].NITSPED := 3; 
      NICTCT [N02400].NISTOP  := /N01BIT; 
_ 
                    LINE SPEED = 4800  BAUD 
? 
      NICTCT [N04800].NIRSR   := 1; 
      NICTCT [N04800].NIRSPED := 7; 
      NICTCT [N04800].NITSR   := 1; 
      NICTCT [N04800].NITSPED := 7; 
      NICTCT [N04800].NISTOP  := /N01BIT; 
_ 
                    LINE SPEED = 9600  BAUD 
? 
      NICTCT [N09600].NIRSR   := 1; 
      NICTCT [N09600].NIRSPED := $F;
      NICTCT [N09600].NITSR   := 1; 
      NICTCT [N09600].NITSPED := $F;
      NICTCT [N09600].NISTOP  := /N01BIT; 
_ 
                    LINE SPEED = 19200 BPS
? 
      NICTCT [N01920].NIRSR   := $3;
      NICTCT [N01920].NIRSPED := $7;
      NICTCT [N01920].NITSR   := $3;
      NICTCT [N01920].NITSPED := $7;
      NICTCT [N01920].NISTOP  := /N01BIT; 
_ 
                    LINE SPEED = 38400 BPS
? 
      NICTCT [N03840].NIRSR   := $3;
      NICTCT [N03840].NIRSPED := $F;
      NICTCT [N03840].NITSR   := $3;
      NICTCT [N03840].NITSPED := $F;
      NICTCT [N03840].NISTOP  := /N01BIT; 
  
  
  
_**********************************************************************?
      NGQ := 2; 
  
_ 
**************************************************
*                                                *
*        SYSTEM VARIABLES INITIALIZATION         *
*                                                *
**************************************************
? 
_ 
************************************************************************
            **TCB LENGTHS ARRAY** 
************************************************************************
? 
      TCBLENGTH[/B0TS0] := /TCBSZ0 ;
      TCBLENGTH[/B0TS1] := /TCBSZ1 ;
      TCBLENGTH[/B0TS2] := /TCBSZ2 ;
      TCBLENGTH[/B0TS3] := /TCBSZ3 ;
      TCBLENGTH[/B0TS4] := /TCBSZ4 ;
      TCBLENGTH[/B0TS5] := /TCBSZ5 ;
      TCBLENGTH[/B0TS6] := /TCBSZ6 ;
      TCBLENGTH[/B0TS7] := /TCBSZ7 ;
_ 
************************************************************************
             **BUFFER LENGTHS ARRAY** 
************************************************************************
? 
      BUFLENGTH[/B0S0] := /BUFSZ0 ; 
      BUFLENGTH[/B0S1] := /BUFSZ1 ; 
      BUFLENGTH[/B0S2] := /BUFSZ2 ; 
      BUFLENGTH[/B0S3] := /BUFSZ3 ; 
_ 
************************************************************************
             **BUFFER LCD ARRAY** 
************************************************************************
? 
      BUFLCD[/B0S0] := /BFLCD0; 
      BUFLCD[/B0S1] := /BFLCD1; 
      BUFLCD[/B0S2] := /BFLCD2; 
      BUFLCD[/B0S3] := /BFLCD3; 
_ 
************************************************************************
            ***INITIALIZE BUFFER CONTROL BLOCKS***
************************************************************************
? 
_ 
*              ---- 8 WORD BUFFERS ---- 
? 
      BECTLBK[/B0S0].BESIZE := /B0S0;       _SIZE INDEX                ?
      BECTLBK[/B0S0].BEMSK  := /BUFSZ0 - 1; _SIZE OF BUFFER - 1        ?
_ 
*              ---- 16 WORD BUFFERS ----
? 
      BECTLBK[/B0S1].BESIZE := /B0S1;       _SIZE INDEX                ?
      BECTLBK[/B0S1].BEMSK  := /BUFSZ1 - 1; _SIZE OF BUFFER - 1        ?
_ 
*              ---- 32 WORD BUFFERS ----
? 
      BECTLBK[/B0S2].BESIZE := /B0S2;       _SIZE INDEX                ?
      BECTLBK[/B0S2].BEMSK  := /BUFSZ2 - 1; _SIZE OF BUFFER - 1        ?
_ 
*              ---- 64 WORD BUFFERS ----
? 
      BECTLBK[/B0S3].BESIZE := /B0S3;       _SIZE INDEX                ?
      BECTLBK[/B0S3].BEMSK  := /BUFSZ3 - 1; _SIZE OF BUFFER - 1        ?
_?
_ 
************************************************************************
            ** SET UP BUFFER AREA POINTERS ** 
************************************************************************
? 
*IF DEF,TUP,1 
      TOTUP     := 1;                       _TUP FLAG FOR SYSTEM USE   ?
*IF DEF,CONSOLE,1 
      TOCONSOLE := 1;                       _CONSOLE FLAG FOR SYSTEM   ?
      B3NBUF := 50;                         _BUFFERS RELEASED PHASE 1  ?
      B3SBUF := NCB;                        _SET BUFFER(S) TO *NCB*    ?
_ 
************************************************************************
             **SET UP FIRMWARE BUFFER LEVEL THRESHOLD** 
************************************************************************
? 
      INITBF := NCB;                        _ADDR FOR SAMP AND PINIT   ?
_ 
*              ---- SET UP THRESHOLD LEVELS ----
? 
      BFTHRESH[B0T1   ] := 40;              _ CONSOLE SNAPSHOT CHECK   ?
      BFTHRESH[B0T2   ] := 40;              _ CONSOLE SNAPSHOT CHECK   ?
      BFTHRESH[B0THDLY] := 40;              _ COPY TO CONSOLE          ?
      BFTHRESH[B0THCT ] := 30;              _ TCB ALLOCATION           ?
      BFTHRESH[B0TH3LV] := 50;              _ LOW PRIORITY DATA        ?
      BFTHRESH[B0TH2LV] := 40;              _ HIGH PRIORITY DATA       ?
      BFTHRESH[B0TH1LV] := 30;              _ SVM MSG DOWNLINE         ?
      BFTHRESH[B0THTIM] := 15;              _ CLA STATUS HANDLER       ?
      BFTHRESH[B0THDIS] := 16;              _ SVM MSG UPLINE           ?
      BFTHRESH[B0THMUX] := 15;              _ MUX THRESHOLD            ?
_ 
************************************************************************
            ** SERVICE MODULE MESSAGE GENERATION LIMIT ** 
************************************************************************
? 
      CNCELIMIT := /CNCELIMIT ; 
_ 
************************************************************************
             **SET BUFFER INDEX CORRESPONDENCE TABLE**
************************************************************************
? 
      B0S8  := BECTLBK;                     _ ADDRESS OF 8 WORD CONTROL?
      B0S16 := BECTLBK + /SIZBECTLBK;       _ ADDRESS OF 16 WD CONTROL ?
      B0S32 := BECTLBK + (2*/SIZBECTLBK);   _ ADDRESS OF 32 WD CONTROL ?
      B0S64 := BECTLBK + (3*/SIZBECTLBK);   _ ADDRESS OF 64 WD CONTROL ?
_ 
************************************************************************
            ** SET UP SIZES OF MISCELLANEOUS SIZE PARAMETERS ** 
************************************************************************
? 
      R0BUFSZE  := BECTLBK + (2*/SIZBECTLBK); _ ADDRESS OF 32 WD CNTL  ?
      S0BUFSZE  := BECTLBK + (2*/SIZBECTLBK); _ ADDRESS OF 32 WD CNTL  ?
      R1SZE     := BECTLBK + (2*/SIZBECTLBK); _ ADDRESS OF 32 WD CNTL  ?
      R1SBFSIZE := BECTLBK + (2*/SIZBECTLBK); _ ADDRESS OF 32 WD CNTL  ?
      BETPSIZE  := BECTLBK + (2*/SIZBECTLBK); _ ADDRESS OF 32 WD CNTL  ?
      TPBUFLENGTH := 32;
      BEDBSIZE  := BECTLBK + (3*/SIZBECTLBK); _ ADDRESS OF 64 WD CNTL  ?
_*****************************
*                            *
*   STRUCTURE SERVICES ZAP   *
*                            *
*****************************?
      J0T2BFSZE := BECTLBK + /SIZBECTLBK;   _ 16 WORD BUFFERS          ?
_?
_ 
*     ----- PAGE NUMBER FOR PGHALT AND PGSWITCH ----- 
? 
      BPGSWITCH[P1PBHALT    ]          := /PGNUM(PGHALT); 
_ 
*     ----- PAGE NUMBER FOR MULTIPLEX SUBSYSTEM ----- 
? 
      SYSPGE := (/PGNUM (PMWOLP) DIV 4) * 4;_REMOVE LOW ORDER 2 BITS    ? 
*IF DEF,BSC 
_ 
*     ----- PAGE NUMBER FOR PGCNFCARD ROUTINE ----- 
? 
      T7PGCNFCARD := /PGNUM (PGCNFCARD);
*ENDIF
*IF -DEF,BSC
*IF DEF,HASPTIP 
_ 
*     ----- PAGE NUMBER FOR PGCNFCARD ROUTINE ----- 
? 
      T7PGCNFCARD := /PGNUM (PGCNFCARD);
*ENDIF
_?
_?
