ASMB,R,L,C HED "GRUPM" GET RUN PARAMETERS FROM CALLER 7-76 (DLB) * NAM GRUPM,7 PRE-REL 7-21-76 (DLB) * NAM GRUPM,7 09570-16496 REV. A 761013 NAM GRUPM,7 PRE-REL 771128 (DLB) ENT GRUPM EXT EXEC,PAU.E,NAMR,REIO,.ENTR SPC 1 * *-------------------------------------------------------- * * RELOC. 09570-16496 * SOURCE 09570-18496 * * D. L. BASKINS 13 OCT 76 REV. A * *-------------------------------------------------------- A EQU 0 B EQU 1 SPC 1 * PURPOSE: * TO GET A "RUN STRING" FROM THE SCHEDULING PROGRAM (I.E. FMGR) * CALLED: * CALL GRUPM(IBUF,IENDCR,ISTRCR,IASKMS,MESLN) * WHERE: * IBUF = 40 WORD BUFFER WHERE THE CALLERS STRING WILL BE STORED. * ISTRCR = THE START CHARACTOR IN BUFFER TO BEGIN PARSING. * IENDCR = THE LAST CHARACTOR NUMBER STORED IN STRING BUFFER (IBUF) * IASKMS = THE MESSAGE BUFFER OUTPUTTED TO OPERATOR IF A STRING * BUFFER WAS NOT PASSED BY THE CALLING PROGRAM. * MESLN = THE NEGATIVE NUMBER OF CHARACTORS OR POSITIVE * NUMBER OF WORDS IN "IASKMS" * EXTERNALS USED: * PAU.E = THE LOGICAL UNIT OF TERMINAL FOR OUTPUTTING MESSAGE. * TEST PROGRAM *FTN,L * PROGRAM TEST * DIMENSION IBUF(40),IASKMS(16) * DATA IASKMS/2HIN,2HPU,2HT ,2HTH,2HE ,2HST,2HRI,2HNG,2H O,2HF * 1,2H Y,2HOU,2HR ,2HDR,2HEA,2HMS/,MESLN/16/ * LU = ITMLU(IBATCH) * CALL GRUPM (IBUF,IENDCR,ISTRCR,IASKMS,MESLN) * LEN = (IENDCR+1)/2 * LENST = ISTRCR-1 * WRITE (LU,100) LENST,(IBUF(I),I=1,LEN) * 100 FORMAT("THE PASSED STRING WAS AS FOLLOWS, MINUS "I2" CHARACTORS" * 1,/,40A2) * STOP * END * END$ * NOTES: * THE STRING CAN COME FROM TWO PLACES. ONE IS FROM THE OPERATOR. * IN THIS CASE THE "ISTRCR" IS RETURNED = 1. TWO IS FROM THE CALLING * PROGRAM SUCH AS THE "FMGR". IN THIS CASE THE PASSED STRING IS * PASSED THUR SYSTEM MEMORY WITH A ":RUN,PROGM,," IN FRONT OF THE * BUFFER OF INTEREST. THEREFORE THIS SUBROUTINE WILL RETURN A START * CHARACTOR (ISTRCR) = 13 SO THE CALL MAY BEGIN HIS PARSE AT THE * 4TH PARAMETER DELIMITED BY COMMAS. THE WHOLE STRING IS LEFT IN * "IBUF" SO THAT THE CALLER MAY PRINT IT OUT IF DESIRED. SPC 1 IBUF NOP DESTINATION BUFFER IENDR NOP BUFFER LENGTH IN CHARACTORS ISTCR NOP STARTING CHARACTOR NUMBER IASKM NOP BUFFER OF OPERATOR MESSAGE MESLN NOP MESSAGE BUFFER LENGTH GRUPM NOP ENTRY POINT JSB .ENTR DEF IBUF TOP OF STACK CLA,INA PRESET START CHAR AS ONE STA START AND SET UP FOR PARSE ROUTINE LDA PAU.E GET THE MESSAGE LOGICAL UNIT # IOR O400 MERGE IN THE PRINT BIT STA LGLU SAVE FOR REIO CALLS JSB EXEC GET STRING FROM SYSTEM DEF *+5 DEF NA14 NO ABORT 14 DEF O1 READ REQUEST DEF IBUF,I INPUT BUFFER DEF DM80 BUFFER LENGTH IN CHARACTORS CLB ABORTED!!, MAKE TLOG = 0 STB IENDR,I SAVE LAST CHARACTOR NUMBER JSB PARSE GO PARSE THE PASSES BUFFER JSB PARSE IGNORE THE 1ST TWO PARAMETERS STB ISTCR,I SET START CHAR IN CASE OF 1 COMMA JSB PARSE GET 3RD PARAMETER LDA PARMB GET PARAMETER VALUE SZA IS PARAMETER = 0? CPA PAU.E OR IS PARAMETER = TERMINAL LU? RSS GO GET NEXT ONE & CHECK IF HAS RUN STRING JMP CKFME MUST BE GOOD PARAMETER, CHECK FUTHER STB ISTCR,I TWO COMMAS, SET NEW STARTING CHARACTOR SPC 1 * NOW CHECK IF THERE IS ANY DATA IN THE RUN STRING SPC 1 CKFMD JSB PARSE NOW GET NEXT PARAMETER CKFME LDA PARMB+3 GET THE PARAMETER TYPE SZA,RSS CHECK IF CONTAINS DATA? JMP CKFMD NO, CHECK IF NEXT PARAMETER CONTAINS DATA JMP DONE YES, EXIT IN BATCH MODE SPC 1 ASK JSB REIO NO, GO ASK OPERATOR DEF *+5 DEF O2 WRITE OUT PROMPT MESSAGE DEF LGLU TERMINAL LU WITH PRINT BIT DEF IASKM,I MESSAGE BUFFER DEF MESLN,I MESSAGE LENGTH JSB REIO NOW GET ANSWER DEF *+5 DEF O1 READ DEF LGLU DEF IBUF,I INPUT BUFFER DEF DM80 BUFFER LENGTH IN CHARACTORS STB IENDR,I SAVE LENGTH FOR CALLER CLA,INA PRESET THE START CHARACTOR TO (1) STA ISTCR,I IN CALLERS PARAMETERS DONE JMP GRUPM,I YES, RETURN SPC 1 * PARSE THE NEXT PARAMETER IN RUN STRING SPC 1 START NOP CURRENT STARTING CHARACTOR NUMBER PARSE NOP ENTRY START & END CHARACTOR ALREADY SET JSB NAMR USE THE SYSTEM PARSE ROUTINE DEF *+5 DEF PARMB OUTPUT PARSE BUFFER (10 WORDS) DEF IBUF,I INPUT STRING BUFFER DEF IENDR,I LENGTH OF STRING BUFFER DEF START AND THE STARTING CHARACTOR SSA CHECK IF NO MORE DATA JMP ASK NO DATA, GO ASK OPERATOR FOR INFO LDB START GET STARTING CHARACTOR NUMBER FOR JMP PARSE,I NEXT PARAMETER IN B-REG SPC 1 O1 OCT 1 O2 OCT 2 O400 OCT 400 DM80 DEC -80 NA14 ABS 100000B+14 LGLU NOP PARMB REP 10 TEN WORDS IN PARSE BUFFER NOP END