ASMB,R,L,C HED (FMGR) MAIN: RTE-L/20 FILE MANAGER * NAME: FMGR * SOURCE: 92071-18310 * RELOC: 92071-16310 * PGMR: M.L.K. * MOD: E.D.B. * * *************************************************************** * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1980. 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,1,90 92071-16310 REV.2041 800807 * * GLOBAL DATA * ENT CAMS., P.TR ENT .IDAD ENT TMP., SC.L, CR.L ENT C.BUX, C.BUF, C.DLM ENT INT., N.OPL, P.RAM, P.CNT ENT CUSE., CAD., U.CMD, SCR. ENT ECH, ECHF., NO.RD, ONE.C ENT G0.., P.6, P.7, SVCOD, XPAND, .E.R ENT O.BUF, I.BUF, CAM.I, CAM.O, BUF. * * EXTERNAL SUBROUTINES * EXT CALL. EXT RMPAR, SAVST * * LOADR COMMANDS * LOD 2,SG,7 7 SEGMENTS SUP SKP * * FMGR MAIN CODE * FMGR NOP * JSB RMPAR GET SCHEDULING PARAMETERS DEF *+2 DEF P.RAM STORE IN P.RAM TEMPORARILY * JSB SAVST SAVE THE RUN STRING DEF *+1 UNTIL IN.IT * JSB CALL. CALL IN.IT DEF *+3 DEF INSEG SEGMENT NAME DEF ZERO ROUTINE NUMBER SKP * * COMMAND LOOP * * 1. CALL THE COMMAND READ AND PARSE ROUTINE * 2. EXECUTE THE APPROPRIATE ACTION ROUTINE * 3. ISSUE EXPANDED MESSAGE (IF NECESSARY) * 4. CLOSE THE INPUT AND OUTPUT DCBS * 5. GO TO 1. * LOOP JSB CALL. CALL PARSE DEF *+3 DEF PARSG SEGMENT NAME DEF ZERO ROUTINE NUMBER * JSB CALL. CALL ACTION ROUTINE DEF *+3 DEF CUSE. SEGMENT NAME DEF CAD. ROUTINE NUMBER * LDA NO.RD GET NO READ FLAG SZA IF COMMAND ALREADY SET UP, JMP LOOP THEN CONTINUE LOOP (DON'T INTERFERE) * LDA P.6 GET USER ERROR CODE SZA,RSS IF NOT SET, JMP NXCMD THEN CONTINUE * LDA XPAND GET ERROR EXPANSION FLAG SZA,RSS IF NOT SET, JMP NXCMD THEN CONTINUE * CLA,INA SET COMMAND STA ECH LENGTH TO 1 CCA SET NO READ FLAG STA NO.RD TO EXECUTE COMMAND IN C.BUF LDA QUEST GET COMMAND TO EXPAND ERROR STA C.BUF PUT IN COMMAND BUFFER JMP LOOP CONTINUE LOOP * * DETERMINE WHETHER TO CONTINUE OR EXIT * NXCMD LDA ONE.C GET ONE COMMAND FLAG SZA,RSS IF NOT SET, JMP LOOP THEN CONTINUE LOOP * CLA,INA SET COMMAND STA ECH LENGTH TO 1 CCA SET NO READ FLAG STA NO.RD TO EXECUTE COMMAND IN C.BUF LDA EXIT GET COMMAND TO EXIT STA C.BUF PUT IN COMMAND BUFFER JMP LOOP AND CONTINUE LOOP * * LOCAL STORAGE AREA * ZERO NOP * PARSG ASC 1,1 SUFFIX FOR SEGMENT CONTAINING PAR.. INSEG ASC 1,2 SUFFIX FOR SEGMENT CONTAINING IN.IT * QUEST ASC 1,?? ERROR EXPANSION COMMAND EXIT ASC 1,EX FMGR EXIT COMMAND SKP * * FILE MANAGER GLOBAL STORAGE AREA * * TRANSFER STACK AND POINTER * CAMS. BSS 61 TRANSFER FILE STACK (6 WORDS PER ENTRY) P.TR DEF CAMS. POINTER TO POSITION IN TRANSFER STACK * * SEGMENT CONTROL * .IDAD NOP ID SEGMENT ADDRESS OF CURRENT SEGMENT * * LIST NAMR BUFFER (ORDERED) * TMP. NOP CHARS #1 AND #2 OF LIST NAMR NOP CHARS #3 AND #4 OF LIST NAMR NOP CHARS #5 AND #6 OF LIST NAMR SC.L NOP SECURITY CODE OF LIST NAMR CR.L NOP CARTRIDGE/LU OF LIST NAMR * * COMMAND INPUT BUFFER (ORDERED) * C.BUX ASC 1, : CONTAINS A COLON FOR ECHO C.BUF BSS 40 INPUT BUFFER C.DLM NOP POINTER TO DELIMITER FOLLOWING COMMAND * * ARRAYS SET AND USED DURING PARSING (ORDERED) * INT. OCT 1 INTERACTIVE FLAG; 0= NOT INT, #0= INTERACTIVE N.OPL BSS 10 SUBPARAMETER LIST FOR 1ST TWO PARAMETERS P.RAM BSS 64 PARSED PARAMETER LIST; 4 WORDS PER PARAMETER P.CNT NOP PARAMETER COUNT CUSE. NOP SEGMENT NAME (FROM PARSE) CAD. NOP ROUTINE NUMBER (FROM PARSE) U.CMD NOP 1ST AND 2ND CHARACTERS OF COMMAND SCR. NOP 3RD AND 4TH CHARACTERS OF COMMAND NOP 5TH AND 6TH CHARACTERS OF COMMAND ECH NOP WORD COUNT FOR ECHO ECHF. NOP ECHO FLAG; 0= NO ECHO, #0= NEEDS ECHO NO.RD NOP NO READ FLAG; 0= NO READ, #0= MUST READ NEXT COMND ONE.C NOP ONE COMMAND FLAG; 0= MULTIPLE COMMANDS, #0= ONE COMMAND SKP * * GLOBALS AND SEVERITY CODE (ORDERED) * G0.. BSS 40 0G THRU 9G DEC 3 10G (ALWAYS ASCII) BSS 5 1P THRU 5P P.6 NOP 6P = LAST ERROR CODE P.7 NOP 7P = USER'S COPY OF SEVERITY CODE SVCOD NOP FMGR'S COPY OF SEVERITY CODE XPAND NOP ERROR EXPANSION FLAG .E.R NOP INTERNAL GLOBAL ERROR * * GLOBAL DCB'S AND BUFFERS * O.BUF BSS 144 GENERAL OUTPUT DCB I.BUF BSS 144 GENERAL INPUT DCB CAM.I BSS 144 COMMAND INPUT DCB CAM.O BSS 1 LOG LU BUF. BSS 129 GENERAL DISC BUFFER * A EQU 0 B EQU 1 * END EQU * * END FMGR