ASMB,R,Q,C HED FMGR - RTE FILE MANAGER MAIN * NAME: FMGR * SOURCE: 92067-18186 * 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. * * *************************************************************** * * MODIFICATION RECORD: * * DATE REASON * 1) 780227 TO ADD GLOBALS 8P,9P FOR SESSION MONITOR (BL) * 2) 780302 TO ADD COMMAND STACKING CAPABILITY (DLB) * NAM FMGR,3,90 92067-16185 REV.2026 800428 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. ENT S.TTY,S.CAP,M3FLG,CLOPN SUP * NEW CODE ADDED 780302 (DLB) ENT TPSK.,NXTK.,EDSK.,CRSK. SPC 1 TPSK. DEF BUFFR NXTK. DEF MESS2 CRSK. DEF BUFFR EDSK. DEF ENDBF BUFFR BSS 140 ORG BUFFR DEC 1 ASC 1,** YOU MUST EXECUTE A COMMAND BEFORE A :EC COMMAND MESS2 OCT 400 ORR ENDBF EQU *-1 * END OF NEW CODE ADDED 780302 (DLB) 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 INITIALIZE SEGMENT INI1. JSB MSS. INIT SEGMENT COMES HERE IF DEF *+2 SYSTEM INITIALIZE 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 RESPONSE DEF *+2 SEND FMGR 004 DEF .4 JMP INI1. TRY AGAIN CAL?? LDA .4 ?? CALL FROM INIT-SET MS TO 4 STA MS TO FORCE 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 INITIALIZE 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 PARAMETERS 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 INITIALIZE 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 M3FLG NOP CLOPN 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 S.TTY BSS 1 8P *780227* S.CAP BSS 1 9P *780227* .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