*DECK     CS
OVERLAY(0,0,OV=6) 
USETEXT  TEXTSS 
USETEXT  TEXTCS 
USETEXT  TXTCTCS
USETEXT  TXTSMCS
USETEXT TXCMDCS 
USETEXT  TXTAPSS
PRGM CS;
# TITLE CS - COMMUNICATION SUPERVISOR.                             #
  
      BEGIN # CS #
      CONTROL PRESET; 
# 
***   CS - COMMUNICATION SUPERVISOR.
* 
*     A. LIM.    81/10/20.
* 
*     THE FUNCTION OF THE MAIN PROGRAM IS TO LOAD AND EXECUTE THE 
*     INITIALIZATION OVERLAY AND TO BE THE SKELETON FOR THE MAIN (0,0)
*     OVERLAY.
* 
*     PRGM CS 
* 
*     ENTRY   NONE. 
* 
*     EXIT    THERE IS NO EXIT IN THE USUAL SENSE.  THE MAIN PROGRAM
*             TRANSFERS CONTROL TO THE INITIALIZATION OVERLAY, WHICH, 
*             WHEN COMPLETE, TRANSFERS CONTROL TO THE PROGRAM EXECUTION 
*             SEQUENCER (*SSSPES*), WHICH NEVER RETURNS.
# 
  
  
  
  
# 
****  PROC CS XREF LIST.
# 
      XREF
        BEGIN 
        PROC CSSDNS;         # CS- DISPATCH NPU SUPERVISION SM         #
        PROC CSTSCT;         # CS- SELECT CORRECT TERMINAL             #
        PROC CSTRCT ; 
        PROC CSTDNQ ; 
        PROC CSTSNR;         # CS- START NCF READ REQUEST              #
        PROC LOADREQ;        # MACREL- CALL SYSTEM LOADER VIA PPU      #
        PROC SSACNI;         # SS- CONTROL NETWORK INTERFACE           #
        PROC SSCRTR;         # SS- REMOVE TIMER REQUEST                #
        PROC SSOCOL;         # SS- CONTROL OVERLAY LOADING             #
        PROC SSOEOP;         # SS- EXECUTE OVERLAY PROGRAM             #
        PROC SSSPAT;         # PROCESS ABNORMAL TERMINATION            #
        PROC SSSPES;         # SS- PROGRAM EXECUTION SEQUENCER         #
        END 
# 
****
# 
  
  
      ARRAY LDREQ [00:00] S(2);        # LOADREQ PARAMETER BLOCK       #
        BEGIN 
        ITEM LDR$NAME   C(00,00,07);                  # OVLY/FILE NAME #
        ITEM LDR$INAM   C(00,00,06) = ["CSLSIT"];     # INIT OVL NAME  #
        ITEM LDR$ZFIL   U(00,36,06) = [0];
        ITEM LDR$RES1   U(00,42,18) = [0];            # UNUSED         #
        ITEM LDR$L1     U(01,00,06) = [O"77"];        # PRIME OVL LEV  #
        ITEM LDR$UNUSED U(01,06,11) = [0];            # L2,N,RES,S,D   #
        ITEM LDR$U      B(01,17,01) = [TRUE];         # LOAD OPTION    #
        ITEM LDR$V      B(01,18,01) = [TRUE];         # OVERLAY LD FLG #
        ITEM LDR$RES2   U(01,19,04) = [0];            # RESERVED       #
        ITEM LDR$E      B(01,23,01) = [TRUE];         # AUTO EXECUTE   #
        ITEM LDR$LWAFWA U(01,24,36) = [0];            # LWA, FWA       #
        END 
  
  
      SSSPAT;                # SET UP AIP TRACE FILE FLUSH UPON ABORT  #
  
  
  
  
  
  
# 
*     CHECK SOURCE OF PROGRAM LOAD.  LOAD AND EXECUTE INITIALIZATION
*     OVERLAY FROM SAME SOURCE. 
# 
      P<LDRINFO> = O"64"; 
      IF NOT LDI$LB[0]
      THEN                             # CS RUNNING FROM A FILE       # 
        BEGIN 
        LDR$NAME[0] = LDI$NAME[0];     # FILE NAME                     #
        LDR$U[0] = FALSE; 
        END 
  
      LOADREQ (LDREQ);       # LOAD AND EXECUTE INITIALIZATION OVERLAY #
  
  
# 
*     THE FOLLOWING SUBROUTINE CALLS ARE NEVER EXECUTED (BECAUSE THERE
*     IS NO RETURN FROM THE *LOADREQ* CALL).  THE CALLS ARE INCLUDED
*     HERE IN ORDER TO FORM THE MAIN (0,0) OVERLAY. 
# 
      SSSPES;                # PROGRAM EXECUTION SEQUENCER             #
  
      SSACNI;                # CONTROL NETWORK INTERFACE               #
  
      SSCRTR;    # REMOVE TIMER REQUEST                                #
  
      CSSDNS;    # DISPATCH NPU SUPERVISION SM                         #
  
      CSTSCT;    # SELECT CORRECT TERMINAL                             #
  
      CSTRCT;                      # RESET CHARACTERISTIC OF TERM      #
  
      CSTDNQ;                      # DISPATCHING NCF DATA              #
  
      CSTSNR;    # START NCF READ REQUEST                              #
  
      SSOCOL;    # CONTROL OVERLAY LOADING                             #
  
      SSOEOP;    # EXECUTE OVERLAY PROGRAM                             #
  
      END  # CS # 
  
      TERM
