ASMB,R,L
*     NAME:   $BMON 
*     SOURCE: 92002-18008 
*     RELOC:  92002-12001 
*     PGMR:   A.M.G.
* 
*  ***************************************************************
*  * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1977.  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 $BMON,7 92002-12001 REV.2001 791022 
      ENT $BMON 
$BMON OCT 0 
* 
*     ********************************************************
*     * NOTE: $BMON = 0 FOR RTEII,III, AND IV-A              *
*     *             = 1 FOR RTEIV-B                          *
*     *                                                      *
*     ********************************************************
* 
      END 
ASMB,R,L,C
      HED FMGR - RTE FILE MANAGER MAIN
*     NAME:   FMGR
*     SOURCE: 92002-18008 
*     RELOC:  92002-16008 
*     PGMR:   G.A.A.
* 
*  ***************************************************************
*  * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1977.  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 FMGR,3,90 92002-16008 REV.1901 760627 
      EXT CLOS.,EXEC,MSS. 
      ENT IFLG.,CAD.,FM.AB,D.,CUSE.,PARS. 
      ENT SEG.R,P.SEG,INI1.,INI2.,I.BUF,O.BUF 
      ENT N.OPL,P.RAM,TTY.,NO.RD,NOCM.,ACTV.
      ENT J.REC,J.NAM,G0..,JRN.,.IDAD 
      ENT TL.P,TM.VL,L.SEG,GT.JB,.R.E.,SCR. 
      SUP 
      SPC 3 
O.BUF BSS 144       GENERAL OUTPUT DCB
I.BUF BSS 144       GENERAL INPUT DCB 
      ORG I.BUF     PUT INITIALIZE CODE IN DCB
FMGR  LDA XEQT      GET THE 
      ADA .12       FIRST TWO 
      LDA A,I       CHARACTERS  OF PGMS 
      STA SEG       NAME AND SET FOR SEGMENT CALLS. 
      JMP ITCAL     GO LOAD THE INITILIZE SEGMENT 
INI1. JSB MSS.      INIT SEGMENT COMES HERE IF
      DEF *+2        SYSTEM INITILIZE IS NEEDED 
      DEF IFLG.       SEND  FMGR 00X (5 OR 3) MESSAGE 
      LDA AS1BL     SET TO LOAD 
      JMP PSEGC     AND LOAD THE PARSE SEGMENT
INI2. CPB ASIN      SEGMENT  RETURNS HERE AFTER 
      JMP SEGLD     READING AND PARSING-EXPECTED INPUT JUMP 
      CPB AS??      WAS ??  INPUT?
      JMP CAL??     YES -GO SET UP AND CALL ?? ROUTINE
      JSB MSS.      NO! ILLEGAL RESPONCE
      DEF *+2        SEND  FMGR 004 
      DEF .4
      JMP INI1.     TRY AGAIN 
CAL?? LDA .4        ?? CALL FROM INIT-SET MS TO 4 
      STA MS          TO FOURCE FMGR 004 MESSAGE
      JMP SEGLD     GO TO GENERAL  CALL ROUTINE 
      SPC 1 
INIT2 LDA MS        HERE AFTER  INIT CALL ON IN 
      SZA            SKIP IF  OK
      JMP INI1.     NO - TRY AGAIN
      SPC 1 
ITCAL CLA           SET UP TO CALL THE INITIALIZE 
      STA CAD.      ROUTINE 
      LDA AS2BL     FIRST ROUTINE IN SEGMENT TWO
      JMP PSEGC     GO LOAD THE SEGMENT AND CALL IT 
      SPC 1 
GT.JB CLA 
      STA CAD.
      LDA AS7BL 
      JMP PSEGC 
      SPC 1 
AS??  ASC 1,??
ASIN  ASC 1,IN
AS2BL ASC 1,2 
AS7BL ASC 1,7 
.4    OCT 4 
.12   DEC 12
TEST  EQU I.BUF+128-* MAKE SURE ABOVE CODE IS IN O.BUF
      ORR 
FM.AB JSB CLOS.     COMMAND LOOP - ENTRY
      DEF *+2           CLOSE 
      DEF I.BUF         INPUT FILE
      JSB CLOS.         CLOSE 
      DEF *+2 
      DEF O.BUF         OUTPUT FILE 
INIT0 LDA AS1BL     INITILIZE SEGMENT CALL ENTRY POINT
      CPA CUSE.         IF PARSE SEGMENT STILL IN 
      JMP P.SEG         CORE THEN SKIP SEGMENT CALL 
PSEGC STA CUSE.         ELSE SET UP 
SEGLD JSB EXEC          AND 
L.SEG EQU SEGLD 
      DEF *+3           LOAD
      DEF .8            PARSE 
      DEF SEG           SEGMENT 
P.SEG LDA J.REC         IF NO MORE JOBS,
      SSA               TERMINATE.
      JMP TERM
P.SG1 CLA           NORMAL PARSE SEGMENT RETURN POINT 
      STA MS            CLEAR THE ERROR FLAG
      JSB PARS.,I       CALL TO READ & PARSE A COMMAND
      DEF *+1 
      SEZ,RSS           E=I = SEGMENT ABSENT
      JMP CALLR         E=0 = ROUTINE IN CORE 
      JMP SEGLD         SEGMENT ABSENT SO GO LOAD 
SEG.R ADA CAD.      ALL SEGMENTS OTHER THAN PARSE 
      LDA A,I 
      STA CAD.       RETURN HERE WITH A= DEF TABLE ADDRESS
CALLR JSB CAD.,I        CALL THE ROUTINE
      DEF *+4          PASSING
      DEF NOCM.         THE NUMBER OF PARAMETRS 
      DEF P.RAM         THE TABLE ADDRESS 
      DEF MS            THE ERROR FLAG ADDRESS
      LDA MS            IF THERE IS NO
      SZA,RSS           ERROR THEN
      JMP IFTST         JUMP
      JSB MSS.          ELSE
      DEF *+2            PRINT
      DEF MS            FMGR MS 
IFTST LDA IFLG.         IF INITILIZE ROUTINE
      SZA               IN CONTROL
      JMP INIT2         GO CONTINUE SYSTEM INITIALIZATION 
      JMP FM.AB         ELSE  READ  THE  NEXT COMMAND 
TERM  JSB EXEC          TERMINATE 
      DEF *+2 
      DEF .6
      SPC 2 
.6    DEC 6 
MS    NOP 
.IDAD NOP 
IFLG. NOP 
NO.RD NOP 
JRN.  BSS 1 
ACTV. DEC 0 
J.REC DEC 0 
J.NAM BSS 3 
SCR.  BSS 1 
* 
*  DO NOT REPOSITION THE FOLLOWING FOUR 
*  ARRAYS!  THE PARSE ROUTINE DEPENDS ON IT.
* 
TTY.  OCT 1 
N.OPL BSS 10
P.RAM BSS 64
NOCM. NOP 
CAD.  NOP 
PARS. NOP 
      BSS 8         0S AND 1S 
G0..  BSS 40        0G THROUGH 9G 
      DEC 3         10G 
      BSS 5         1P THROUGH 5P 
.R.E. BSS 2         6P AND 7P 
.8    DEC 8 
ENDMS ASC 3, $END 
SEG   ASC 2,FMGR
CUSE. ASC 1,
AS1BL ASC 1,1 
D.    ASC 3,D.RTR 
TL.P  OCT 0,0 
TM.VL OCT 0,0 
A     EQU 0 
B     EQU 1 
XEQT  EQU 1717B 
      SPC 3 
      ORG *         LENGTH OF ROUTINE 
      END FMGR
ASMB,R,L
      HED FMGR0 
*     NAME:   FMGR0 
*     SOURCE: 92002-18008 
*     RELOC:  92002-16008 
*     PGMR:   G.A.A.
*  ***************************************************************
*  * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1975.  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 FMGR0,5 92002-16008  740801 
      EXT SEG.R,CAD.,.IDAD
      SPC 1 
FMGR0 STA .IDAD 
      LDA TABL
      JMP SEG.R 
      SPC 1 
TABL  DEF *+1 
      SPC 1 
      EXT PK..
      DEF PK..
      EXT CR..
      DEF CR..
      END FMGR0 
ASMB,R,L,C
      HED FMGR1 
*     NAME:   FMGR1 
*     SOURCE: 92002-18008 
*     RELOC:  92002-16008 
*     PGMR:   G.A.A.
* 
*  ***************************************************************
*  * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1977.  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 92002-16008  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 
ASMB,R,L
      HED FMGR2 
*     NAME:   FMGR2 
*     SOURCE: 92002-18008 
*     RELOC:  92002-16008 
*     PGMR:   G.A.A.
* 
*  ***************************************************************
*  * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1975.  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 FMGR2,5 92002-16008 760622
      EXT SEG.R,CAD.,.IDAD
      SPC 1 
FMGR2 STA .IDAD 
      LDA TABL
      JMP SEG.R 
      SPC 2 
TABL  DEF *+1 
      SPC 1 
      EXT IN.IT 
      DEF IN.IT 
      EXT IN..
      DEF IN..
      EXT MC..
      DEF MC..
      EXT RC..
      DEF RC..
      EXT PU..
      DEF PU..
      END FMGR2 
ASMB,R,L
      HED FMGR3 
*     NAME:   FMGR3 
*     SOURCE: 92002-18008 
*     RELOC:  92002-16008 
*     PGMR:   G.A.A.
* 
*  ***************************************************************
*  * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1975.  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 FMGR3,5 92002-16008 760720
      EXT SEG.R,CAD.,.IDAD
FMGR3 STA .IDAD 
      LDA TABL
      JMP SEG.R 
      SPC 2 
TABL  DEF *+1 
      SPC 1 
      EXT CS..
      DEF CS..
      EXT DL..
      DEF DL..
      END FMGR3 
ASMB,R,L
      HED FMGR4 
*     NAME:   FMGR4 
*     SOURCE: 92002-18008 
*     RELOC:  92002-16008 
*     PGMR:   G.A.A.
* 
*  ***************************************************************
*  * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1975.  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 FMGR4,5 92002-16008 760622
      EXT SEG.R,.IDAD 
      SPC 1 
FMGR4 STA .IDAD 
      LDA TABL
      JMP SEG.R 
      SPC 1 
TABL  DEF *+1 
      SPC 1 
      EXT DU..,ST..,CO..
      DEF CO..
      DEF ST..
      DEF DU..
      EXT LL..,LO..,SV..
      DEF LL..
      DEF LO..
      DEF SV..
      END FMGR4 
ASMB,R,L
      HED FMGR5 
*     NAME:   FMGR5 
*     SOURCE: 92002-18008 
*     RELOC:  92002-16008 
*     PGMR:   G.A.A.
* 
*  ***************************************************************
*  * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1975.  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 FMGR5,5 92002-16008 760622
      EXT SEG.R,.IDAD 
      SPC 1 
FMGR5 STA .IDAD 
      LDA TABL
      JMP SEG.R 
      SPC 1 
TABL  DEF *+1 
      SPC 1 
      EXT RP..
      DEF RP..
      EXT RU..
      DEF RU..
      EXT TL..
      DEF TL..
      EXT PA..,TE..,AN..
      DEF PA..
      DEF TE..
      DEF AN..
      EXT CNT.
      DEF CNT.
      END FMGR5 
ASMB,R,L
      HED FMGR6 
*     NAME:   FMGR6 
*     SOURCE: 92002-18008 
*     RELOC:  92002-16008 
*     PGMR:   G.A.A.
* 
*  ***************************************************************
*  * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1975.  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 FMGR6,5 92002-16008   740801
      EXT SEG.R,.IDAD 
* 
FMGR6 STA .IDAD 
      LDA TABL
      JMP SEG.R 
* 
TABL  DEF *+1 
      EXT JO..
      DEF JO..
      EXT EO..
      DEF EO..
      EXT LG..
      DEF LG..
      EXT OF..
      DEF OF..
      EXT CN..
      DEF CN..
      END FMGR6 
ASMB,R,L
      HED FMGR7 
*     NAME:   FMGR7 
*     SOURCE: 92002-18008 
*     RELOC:  92002-16008 
*     PGMR:   G.A.A.
* 
*  ***************************************************************
*  * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1977.  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 FMGR7,5 92002-16008 760702
      EXT SEG.R,CAD.,.IDAD
FMGR7 STA .IDAD 
      LDA TABL
      JMP SEG.R 
      SPC 2 
TABL  DEF *+1 
      SPC 1 
      EXT NX.JB 
      DEF NX.JB 
      EXT ??..
      DEF ??..
      EXT SY..
      DEF SY..
      END FMGR7 
ASMB,R,L
      HED FMGR8 
*     NAME:   FMGR8 
*     RELOC:  92002-16008 
*     PGMR:   G.A.A.
* 
*  ***************************************************************
*  * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1975.  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 FMGR8,5 92002-16008   740801
      EXT SEG.R,CAD.,.IDAD
FMGR8 STA .IDAD 
      LDA TABL
      JMP SEG.R 
      SPC 2 
TABL  DEF *+1 
      SPC 1 
      EXT SP..
      DEF SP..
      EXT MS..
      DEF MS..
      EXT SA..
      DEF SA..
      END FMGR8 
ASMB,R,L
      HED FMGR9 
*     NAME:   FMGR9 
*     SOURCE: 92002-18008 
*     RELOC:  92002-16008 
*     PGMR:   G.A.A.
* 
*  ***************************************************************
*  * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1977.  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 FMGR9,5 92002-16008 760720
      EXT SEG.R,CAD.,.IDAD
FMGR9 STA .IDAD 
      LDA TABL
      JMP SEG.R 
      SPC 2 
TABL  DEF *+1 
      SPC 1 
      EXT LU..
      DEF LU..
      EXT CL..
      DEF CL..
      EXT LI..
      DEF LI..
      END FMGR9 
ASMB,R,L,C
      HED CA.. ROUTINE
*     NAME:   CA..
*     SOURCE: 92002-18008 
*     RELOC:  92002-16008 
*     PGMR:   G.A.A.
* 
*  ***************************************************************
*  * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1975.  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 CA..,8 92002-16008  760513
      ENT CA..
      EXT N.OPL,.ENTR,.DFER,G0..
      SUP 
* 
*     THIS MODULE OF THE RTE FILE MANAGEMENT PACKAGE CACULATES
*     A VALUE AND STORES IT IN A GLOBAL LOCATION.  IT IS CALLED 
*     WHEN A STATEMENT OF THE FORM: 
* 
*     :CA,#,OPERAND1,OPERATION,OPERAND2,OPERATION,OPERAND3...ETC. 
* 
*     IS ENCOUNTERED. 
* 
*     THE RESULT OF THE OPERATION WILL BECOME GLOBAL '#'. 
* 
*     OPERATION CODES ARE:
* 
*     +             ADD 
*     -             SUBTRACT (1-2)
*     /             DIVIDE   (1/2)
*     *             MULTIPLY (1*2)
*     O             OR       (1 OR 2) 
*     X             EXCLUSIVE OR (1 XOR 2)
*     A             AND          (1 AND 2)
* 
*     THE ORDER OF THE RESULT WILL BE THE MAXIMUM OF THE ORDERS 
*     OF THE OPERANDS. (THE ORDER IS 0=NULL,1=NUMERIC AND 3=ASCII)
*     IN ALL CASES EXCEPT / AND * THE CACULATION IS DONE INDEPENDTLY
*     ON THE THREE WORD VALUES OF THE OPERANDS.  IN THE CASE OF 
*     / AND * THE FIRST WORD OF OPERAND TWO IS USED FOR ALL 
*     THREE WORD OF OPERAND ONE.
* 
*     EVALUATION PROCEEDS FROM LEFT TO RIGHT UNTIL A NULL OPERATION 
*     CODE IS DETECTED.  ANY OTHER PRECEDENCE MUST BE EFFECTED BY 
*     MULTIPLE STATEMENTS.
* 
COUNT NOP 
PRAM  NOP 
ERR   NOP 
CA..  NOP 
      JSB .ENTR     GET THE PRAMS 
      DEF COUNT 
* 
* 
      ISZ PRAM      STEP TO GLOBAL #
      LDA PRAM,I    GET IT
      LDB N.OPL     GET POSSIBLE 'P' FLAG 
      CPB "P"       SET ??
      JMP PTST      YES GO TEST 'P' NUMBER
* 
      SSA,RSS 
      CMA,INA,SZA,RSS IF 0 OR - 
      JMP EREX      TAKE GAS. 
* 
      ADA .9        IF MORE THAN
      SSA           9 
      JMP EREX      TAKE GAS. 
* 
      LDB PRAM,I    GET THE NUMBER
      BLS,BLS       TIMES 4 
PADD  LDA DGLOB     GET THE ADDRESS OF THE
      RAL,CLE,SLA,ERA GLOBAL ARRAY
      LDA A,I 
      ADA B         COMPUTE THE DESTINATION ADDRESS 
      STA DESTT     AND SET IT
      LDB PRAM      SET UP THE TEMP 
      ADB .3        STORE 
      STB TDES      ADDRESS 
      STB PRAM
* 
LOOP  ADB .5        INDEX TO OP 
      LDA B,I       PICK UP OP CODE 
      ADB .3        INDEX TO OP2
      STB PRAM      SET ADDRESS 
      SZA,RSS       IF NO CODE
      JMP EXOK      THEN END OF LINE, GO EXIT 
* 
      AND C377      KEEP FIRST CHARACTER
      CLB,CLE       SET UP THE COMP LOOP
      STB COMP
      STB ADDR
      STB DMCD
      CPA MINUS     SUBTRACT? 
      CCE,RSS       YES SET FLAG AND USE PLUS 
      CPA PLUS      ADD 
      LDB ADA       YES USE ADD INSTR 
      CPA "O"       OR? 
      LDB IOR       YES 
      CPA "X"       XOR?
      LDB XOR       YES 
      CPA "A"       AND?
      LDB AND       YES 
      SZB           ON OF THE ABOVE?
      JMP SETOP     YES GO SET UP 
* 
      CPA "/"       DIVIDE? 
      LDB DIV       YES 
      CPA TIMES     *?
      LDB MPY       YES 
      SZB,RSS       IF STILL NO GO
      JMP EREX     THEN GO EXIT ERROR 
* 
      STB DMCD      SET *, / CODE 
      LDB LDB       SET A LDB BEFORE IT 
      STB COMP      AND 
      LDB PRAM      SET THE OP 2 ADDRESS
      CLE,INB       AFTER THE DIV 
      STB ADDR
      LDB ASR       GET THE ASR INSTRUCTION 
* 
SETOP STB OPCD      SET THE OP CODE 
      LDA NEGAT     IF -
      SEZ           SET 
      STA COMP      A CMA,INA 
      LDA N3        SET THE LOOP COUNT
      STA COUNT 
      LDA TDES      AND THE DESTINATION ADDRESS 
      STA DES 
      LDA A,I       SET THE ORDER CODE
NEGAT CMA,INA 
      ADA PRAM,I    TO THE
      LDB PRAM,I    MAX 
      SSA,RSS       OF THE
      STB DES,I     ORDERS PRESENT
* 
CLOOP ISZ DES      STEP DESTINATION ADDRESS 
      ISZ PRAM      AND SOURCE ADDRESS
      LDB DES       GET ADDRESS TO B
      LDA PRAM,I    OP2 TO A
COMP  CMA,INA /NOP  /LDB B,I    DO IT 
OPCD  ADA B,I       /ASR 16 
DMCD  NOP           /DIV/MPY
ADDR  NOP           /ADDR -PRAM 
      STA DES,I     SET THE RESULT AWAY 
      ISZ COUNT     DONE? 
      JMP CLOOP     NO DO NEXT WORD 
* 
      LDB PRAM      SET UP A FOR
      ADB N3        NEXT OP CODE
      JMP LOOP      AND LOOP
* 
PTST  ADA .36       MUST BE IN RANGE -36<= X < 7
      SSA,RSS       IF NEGATIVE THEN < -36
      CPA .36       DON'T ALLOW ZERO EITHER 
      JMP EREX      ERROR ZERO OR LESS THAN -36 
* 
      ADA N43       TEST FOR  > 7 
      SSA,RSS       OK? 
      JMP EREX      NO  NUMBER TO BIG 
* 
      LDB PRAM,I    GET PRAM AND
      ADB .40       CACULATE THE ADDRESS OFFSET 
      JMP PADD      GO SET IT UP AND DO THE 'CA'
* 
* 
EXOK  LDA TDES,I    AH - SWEET SUCCESS
      STA DESTT,I   SET NEW PRAM IN DESTINATION 
      ISZ TDES
      LDB N.OPL     IF A
      CPB "P"       P CACULATE
      JMP PSET      GO RESET TO RIGHT THING 
* 
      ISZ DESTT     AND 
      JSB .DFER     THEN
DESTT NOP 
TDES  NOP 
EXP   CLA,RSS 
EREX  LDA BADPM     ERROR EXIT
      STA ERR,I     SET ERROR CODE
      JMP CA..,I    EXIT
* 
* 
PSET  LDA TDES,I    GET THE VALUE WORD
      STA DESTT,I   AND SET FOR P 
      JMP EXP       GO EXIT 
* 
DES   NOP 
DGLOB DEF G0..
BADPM DEC 56
ASR   ASR 16
LDB   LDB B,I 
ADA   ADA B,I 
IOR   IOR B,I 
AND   AND B,I 
XOR   XOR B,I 
DIV   OCT 100400
MPY   OCT 100200
"A"   OCT 40400 
"X"   OCT 54000 
"O"   OCT 47400 
"P"   ASC 1,P       P BLANK FOR P TEST
MINUS OCT 26400 
PLUS  OCT 25400 
"/"   OCT 27400 
TIMES OCT 25000 
C377  OCT 177400
.3    DEC 3 
.9    DEC 9 
.5    DEC 5 
.36   DEC 36
.40   DEC 40
N3    DEC -3
N43   DEC -43 
A     EQU 0 
B     EQU 1 
      ORG * 
      END 
ASMB,R,L,C
*     NAME:   C.TAB 
*     SOURCE: 92002-18008 
*     RELOC:  92002-16008 
*     PGMR:   G.A.A.
* 
*  ***************************************************************
*  * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1977.  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 C.TAB,8 92002-16008 760720
      ENT C.TAB 
* 
*     SET UP SEGMENT AND ROUTINE NUMBERS. 
* 
R0    EQU 0 
R1    EQU 400B
R2    EQU R1+R1 
R3    EQU R2+R1 
R4    EQU R3+R1 
R5    EQU R4+R1 
R6    EQU R5+R1 
R7    EQU R6+R1 
R8    EQU R7+R1 
R9    EQU R8+R1 
R10   EQU R9+R1 
      SPC 2 
S0    EQU 60B 
S1    EQU S0+1
S2    EQU S0+2
S3    EQU S0+3
S4    EQU S0+4
S5    EQU S0+5
S6    EQU S0+6
S7    EQU S0+7
S8    EQU S0+8
S9    EQU S0+9
* 
*     THIS IS THE COMMAND DISPATCH TABLE FOR THE FMGR PROGRAM 
*     EACH COMMAND ID IS FOLLOWED BY ITS ADDRESS. 
*     FOR ROUTINES IN THE HOME SEGMENT THIS IS AN ADDRESS (DEF XX)
*     FOR ROUTINES IN OTHER SEGMENTS IT IS THE ASCII SEGMENT
*     SUFFIX IN THE LOW HALF OF THE WORD AND THE ROUTINE
*     NUMBER IN THAT SEGMENT IN THE HIGH HALF OF THE WORD.
*     .PARS BREAKS THESE APART BY THE ADDRESS BEING 0< ADD < 10000B 
*     FOR SEGMENT ADDRESS.
* 
*     COMMANDS WITH THE SIGN BIT SET INDICATE THAT THE COMMAND
*     NEED NOT SATISFY ALL THE SYNTAX RESTRICTIONS IMPOSED ON 
*     OTHER COMMANDS. 
* 
      SPC 2 
C.TAB EQU * 
      NOP 
      DEF TR..
      ASC 1,PK
      ABS S0+R0 
      ASC 1,CR
      ABS S0+R1 
      ASC 1,EX
      EXT EE..
      DEF EE..
      ASC 1,TR
      EXT TR..
      DEF TR..
      ASC 1,MR
      EXT MR..
      DEF MR..
      ASC 1,SE
      EXT SE..
      DEF SE..
      ASC 1,IF
      EXT IF..
      DEF IF..
      ASC 1,AB
      EXT AB..
      DEF AB..
      ASC 1,CA
      EXT CA..
      DEF CA..
      OCT 142120    "DP" WITH SIGN BIT SET
      EXT DP..
      DEF DP..
      OCT 125052    "**" WITH SIGN BIT SET
      DEF COMM
      OCT 125000    "*<NULL>" WITH SIGN BIT SET 
      DEF COMM
      OCT 125040    "*<BLANK>" WITH SIGN BIT SET
      DEF COMM
      ASC 1,IN
      ABS S2+R1 
      ASC 1,MC
      ABS S2+R2 
      ASC 1,DC
      ABS S2+R3 
      ASC 1,PU
      ABS S2+R4 
      ASC 1,CS
      ABS S3+R0 
      ASC 1,DL
      ABS S3+R1 
      ASC 1,CO
      ABS S4+R0 
      ASC 1,ST
      ABS S4+R1 
      ASC 1,DU
      ABS S4+R2 
      ASC 1,LL
      ABS S4+R3 
      ASC 1,LO
      ABS S4+R4 
      ASC 1,SV
      ABS S4+R5 
      ASC 1,RP
      ABS S5+R0 
      OCT 151125    "RU" WITH SIGN BIT
      ABS S5+R1 
      ASC 1,TL
      ABS S5+R2 
      OCT 150101    "PA" WITH SIGN BIT
      ABS S5+R3 
      OCT 152105    "TE" WITH SIGN BIT
      ABS S5+R4 
      OCT 140516    "AN"  WITH SIGN BIT 
      ABS S5+R5 
      ASC 1,CN
      ABS S5+R6 
      ASC 1,JO
      ABS S6+R0 
      ASC 1,EO
      ABS S6+R1 
      ASC 1,LG
      ABS S6+R2 
      ASC 1,LS
      ABS S6+R2 
      ASC 1,RT
      ABS S6+R2 
      ASC 1,OF
      ABS S6+R3 
      ASC 1,RN
      ABS S6+R4 
      ASC 1,??
      ABS S7+R1 
      OCT 151531    ASC SY WITH SIGN BIT SET
      ABS S7+R2 
      ASC 1,SP
      ABS S8+R0 
      ASC 1,MS
      ABS S8+R1 
      ASC 1,SA
      ABS S8+R2 
      ASC 1,LU
      ABS S9+R0 
      ASC 1,CL
      ABS S9+R1 
      ASC 1,LI
      ABS S9+R2 
      NOP 
* 
* 
COMM  NOP 
      LDA COMM,I
      JMP 0,I 
      END 
                                                                                                                                                                                                  