       SPL,L,O
!     NAME:   G1CEX 
!     SOURCE: 92067-18427 
!     RELOC:  92067-16425 
!     PGMR:   G.A.A.
! 
!  ***************************************************************
!  * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979.  ALL RIGHTS     *
!  * RESERVED.  NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED,      *
!  * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT*
!  * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY.       *
!  ***************************************************************
! 
       NAME G1CEX(8) "92067-16425 REV.1903 790206"
! 
       LET CLOSE,                           \CLOSE FILE SUB.
           POST,                            \FLUSH FILE BUFFERS SUB.
           G1OPN,                           \LOCAL OPEN SUB.
           EXEC,                            \DON'T KNOW WHAT THIS IS
           PRTN,                            \PRAMETER RETURN ROUTINE
           G1OMS,                           \SEND MESSAGE SUB.
           RMPAR                            \GET PARAMETERS 
                 BE SUBROUTINE,EXTERNAL 
! 
       LET LOGLU                            \GET TERMINAL LU
                  BE FUNCTION,EXTERNAL
       LET G1SUB,                           \SEGMENT FLAG ADDRESS 
           G0JDN,                           \JOB SHUT DOWN FLAG 
           G0SDN,                           \SPOOL SHUT DOWN FLAG 
           G0DCB,                           \MASTER DCB 
           G0TTY,                           \TERMINAL LU+ECHO 
           G0END,                           \"GASP END" 
           G0NRD,                           \INPUT STRING LENGTH
           G0CAP,                           \CAPABILITY 
           G0BUF                            \INPUT BUFFER ADDRESS 
                 BE INTEGER,EXTERNAL
! 
       LET G0RTN                            \RETURN PARAMETER 
                 BE INTEGER,GLOBAL
G1CEX:  SUBROUTINE(N) GLOBAL
       IF N # -1 THEN CALL G1OMS(G0END) 
       CALL POST(G0DCB)                     !POST DCB IF NEEDED 
!      IFNOT G0JDN THEN GO TO EX            !IF BOTH
!      IFNOT G0SDN THEN GO TO EX            !JOB AND SPOOL SHUT 
       CALL G1OPN(G0DCB,I,"JO")             !DOWN CLOSE BOTH FILES
       CALL CLOSE(G0DCB)                    !AND
       CALL G1OPN(G0DCB,I,"SP")             !DO NORMAL TERM 
       CALL CLOSE(G0DCB)
       CALL PRTN(G0RTN)                     !PASS BACK THE FLAG 
       CALL EXEC(6) 
! 
!      SPOOL OR JOB OR BOTH STILL ACTIVE
!      SO SAVE RESOURCES AND TERMINATE
! 
EX:    CALL EXEC(22,2)                      !DON'T SWAP ALL OF MEM
       G1SUB_0                              !CLEAR SEGMENT FLAG 
       CALL PRTN(G0RTN)                     !PASS BACK THE RETURN FLAG
       CALL EXEC(6,0,1,0) 
       I_$$1                                !GET THE LU 
       CALL RMPAR(G0BUF)                    !GET PARAMETERS 
       G0CAP _ 0
       IF G0BUF = -63 THEN G0CAP _ 63       !CAPABILITY FOR ACCTS PROGRAM 
       IF I > 20000K THEN I_0               !IF ASCII THEN IGNOR
       IFNOT [G0TTY_(I AND 77K)] THEN G0TTY_LOGLU(I)
       G0TTY_G0TTY+400K                     !SET THE ECHO BIT 
       CALL EXEC(14,1,G0BUF,-32)
       G0NRD_ .B.                           !GET TURN ON STRING AND SAVE IT 
       RETURN 
       END
       END
       END$ 
                                                                                                                                                                                                                                        