ASMB,R,L,C
      HED FMGR1 
*     NAME:   FMGR1 
*     SOURCE: 92067-18188 
*     RELOC:  92067-16185 
*     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.       *
*  ***************************************************************
* 
      NAM FMGR1,5 92067-16185 REV.1903 760929 
      EXT PARS.,.PARS,REA.C,IFLG.,INI2. 
      EXT $BATM,C.BUF,ABT..,AB..
      EXT NO.RD,.ENTR,P.SEG,SEG.R,TR..,.IDAD
      EXT TTY.,ECHF.,ACTV.,BRKF.,MSS.,IFBRK 
      SUP 
FMGR1 STA .IDAD 
      LDA PARSE    SET THE PARSE ROUTINE ADDRESS
      STA PARS.    IN THE MAINS ADDRESS WORD
      LDA IFLG.    IF INITILIZE 
      SZA,RSS      SKIP 
      JMP P.SEG    ELSE RETURN TO THE MAIN
      JSB PAR      INITILIZE SO CALL
      DEF *+1      TO READ AND PARSE THE STATEMENT
      JMP INI2.    RETURN TO THE INITILIZE CODE 
      SPC 2 
PAR   NOP          READ AND PARSE ENTRY POINT 
      JSB .ENTR 
      DEF PAR      FETCH RETURN ADDRESS 
PAR0  JSB IFBRK     CHECK FOR BREAK PENDING 
      DEF *+1 
      SZA,RSS       IF NO BREAK 
      JMP NOBRK     SKIP MESSAGE
* 
      JSB MSS.      ELSE SEND THE BREAK MESSAGE 
      DEF *+2 
      DEF ZERO
* 
NOBRK LDA BRKF.     IF A BREAK WAS PROCESSED
      SZA           THEN
      JMP ANBRK     GO ANALIZE IT 
* 
PAR1  LDA NO.RD    IF NO READ FLAG SET
      SZA           THEN
      JMP PAR2     BY PASS THE READ CALL
* 
      JSB REA.C    CALL TO READ A COMMAND 
      DEF *+1 
      CCA           SET THE ECHO NOT DONE FLAG
      STA ECHF. 
      JSB .PARS     PARSE THE COMMAND 
      DEF *+1 
      JMP PAR,I     AND RETURN
* 
PAR2  CLB          CLEAR THE NO READ CALL FLAG
      STB NO.RD 
      STB ECHF.     DON'T ECHO INTERNAL CALLS 
      SSA,RSS 
      JMP TRLD
* 
      CLB,INB       SET TO INTERACTIVE INPUT
      LDA TTY.      SAVE THE TTY FLAG 
      STB TTY.      SET IT FOR NOW
      STA TMPM
PARS  JSB .PARS    PARS THE COMMAND 
      DEF *+1 
      LDA TMPM      RESTORE THE TTY FLAG
      STA TTY.
      JMP PAR,I    RETURN TO THE MAIN TO CALL THE SEGMENT 
* 
TRLD  LDA TR
      JMP SEG.R 
* 
ANBRK CLA           CLEAR THE BREAK FLAG
      STA BRKF. 
      LDB ACTV.     IF NOT ACTIVE 
      SZB,RSS       THEN
      JMP PAR1      JUST IGNOR THE FLAG 
* 
      LDB XEQT      ELSE CHECK IF WE ARE IN BATCH 
      ADB D20 
      LDB B,I 
      SSB,RSS       IF NOT IN BATCH 
      JMP PAR1      IGNOR BREAK 
* 
      STA NO.RD     CLEAR THE NO READ FLAG
      DLD $BATM     GET THE BATCH TIME
      CLA           SET A FOR OPERATOR ABORT
      SSB,RSS       IF TIME OUT 
      LDA N2        RESET FOR TIME OUT MESSAGE
      STA TMPM      SET FOR CALL
      JSB AB..      SET UP
      DEF *+3       AN "AB" COMMAND 
      DEF TMPM
      DEF ABTM
      JMP PAR0
* 
XEQT  EQU 1717B 
ABTM  ASC 8, ABEND JOB LIMIT
N2    DEC -2
TMPM  NOP 
TR    DEF * 
      DEF TR..      TR+1
ASAB  ASC 1,AB      TR+2
D20   DEC 20        TR+3
ZERO  NOP           TR+4
PARSE DEF PAR       TR+5
      DEF ABT..     TR+6
A     EQU 0 
B     EQU 1 
      ORG * 
      END FMGR1 
                                                                                                                                                                            