FTN4,L C C *************************************************************** C * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979. ALL RIGHTS * C * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, * C * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT* C * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * C *************************************************************** C C C SOURCE PART NUMBER : 92067-18362 C C RELOCATABLE PART NUMBER : 92067-16361 C C PROGRAMER(S) : J.M.N. C C C ACMND - COMMAND DISPATCH ROUTINE C C CALLING SEQUENCE: CALL ACMND(IEXIT) C WHERE C IEXIT = 1 IF COMMAND IS EXIT (RETURNED) C C ACERRS: -205 INVALID COMMAND C C SUBROUTINE ACMND(IEXIT) ,92067-16361 REV.2013 800131 DIMENSION NEXT(3) COMMON /ACOM2/ LRTRN,LRTR2,LGOTO,ITYPE,ITTYT,LTOSEG,NAMSG(3) COMMON /ACOM6 /LOC(6),IRN,IPFLG,IRN2 COMMON /ACOM3/LIST(10),LDCB(144),LLIST,LLDCB(144),ITTY,ITDCB(144) COMMON /ACOM4/ICMND(40) COMMON /ACOM7/IPBUF(11),ISTRC,JPBUF(11) COMMON /ACOMA /ISRCH,ISR1,ISR2 COMMON /ACOMD/ICLASS,KPB,KRR,KRRR,IDSES,MYCAP,MYDIR,MYGID LOGICAL ISRCH EQUIVALENCE (IPB1,IPBUF) DATA NEXT/2HNE,2HXT,2H? / C C RESET SEARCH FLAG C 50 ISRCH=.FALSE. C C IF SHUT DOWN PRINT "SHUT DOWN" IF(IPFLG.GE.0) GO TO 70 IF(IPFLG.EQ.-2) GO TO 60 CALL ACWRI(10H SHUT DOWN ,5 ) GO TO 70 60 CALL ACWRI(14H ACCTS PURGED ,7 ) C C PROMPT WITH "NEXT?" C 70 CALL ACPRM(NEXT,3) C C READ AND PARSE THE COMMAND C CALL ACREI(ICMND,IERR) ISTRC=1 CALL NAMR(IPBUF,ICMND,80,ISTRC) C C CHECK IF COMMAND IS ASCII C IF(IAND(IPBUF(4),3).NE.3) GO TO 100 ASSIGN 100 TO LRTR2 ASSIGN 1300 TO LRTRN C C SAVE THE COMMAND C ICNMD=IPB1 C C CHECK FOR A VALID ACCTS COMMAND C IF(IPB1.EQ.2HNE) GO TO 150 IF(IPB1.EQ.2HAL) GO TO 150 IF(IPB1.EQ.2HLI) CALL ACLNK (2H4 ,1) IF(IPB1.EQ.2HPU) GO TO 150 IF(IPB1.EQ.2HSD) GO TO 200 IF(IPB1.EQ.2HSU) GO TO 200 IF(IPB1.EQ.2HTE) CALL ACLNK (2H5 ,2) IF(IPB1.EQ.2HRE) GO TO 200 IF(IPB1.EQ.2HEX) GO TO 800 IF(IPB1.EQ.2H/E) GO TO 800 IF(IPB1.EQ.2H/A) GO TO 800 IF(IPB1.EQ.2HUN) CALL ACLNK (2H5 ,3) IF(IPB1.EQ.2HLO) GO TO 200 IF(IPB1.EQ.2HHE) GO TO 700 IF(IPB1.EQ.2HTR) GO TO 1200 IF(IPB1.EQ.2HPA) CALL ACLNK(2H3 ,7) C C PROCESS INVALID COMMAND C 100 IERR=-205 105 CALL RNRQ(140004B,IRN2,ISTAT) GO TO 120 110 CONTINUE 120 CALL ACERR(IERR) GO TO 50 C C CHECK IF HE IS A GROUP MANAGER C 150 IF(MYCAP.EQ.63) GO TO 300 C C CHECK IF HE IS SYSTEM MANAGER C 200 IF(IDSES.EQ.7777B) GO TO 300 250 CALL ACERR(46) GO TO 50 300 CALL RNRQ(1,IRN2,ISTAT) IF(IPB1.EQ.2HNE) CALL ACLNK (2H2 ,1) IF(IPB1.EQ.2HAL) GO TO 2300 ITT=0 IF(IPB1.EQ.2HPU) GO TO 900 ITT=2 IF(IPB1.EQ.2HRE) GO TO 900 IF(IPB1.EQ.2HLO) GO TO 1500 IF(IPB1.EQ.2HSD) GO TO 1100 IF(IPB1.NE.2HSU.OR.IPFLG.GE.0) RETURN 400 IPFLG=1 ASSIGN 1300 TO LRTR2 CALL ACLNK (2H1 ,4) 700 CALL ACHLP (ICMND,ISTRC) RETURN 800 IEXIT=1 RETURN 900 CALL NAMR(IPBUF,ICMND,80,ISTRC) IF(IAND(IPBUF(4),3).NE.3) GO TO 100 ITEMP=IPB1/256 IF(IDSES.EQ.7777B) GO TO 950 IF(ICNMD.NE.2HPU.OR.ITEMP.NE.125B) GO TO 250 950 IF(ITEMP.EQ.101B.AND.ICMND.EQ.2HPU) GO TO 1000 IF(ITEMP.NE.125B.AND.ITEMP.NE.107B) GO TO 100 IF(ITEMP.EQ.125B) IT=1+ITT IF(ITEMP.EQ.107B) IT=2+ITT CALL ACLNK (2H3 ,IT) C C PURGE ACCOUNTS C 1000 CALL ACLNK (2H4 ,3) 1100 CALL ACLNK (2H4 ,2) 1200 IERR=0 CALL ACXFR(ICMND,ISTRC,IERR) IF(IERR.EQ.0) GO TO 1300 IF(IERR.EQ.10) IERR=0 CALL ACERR(IERR) 1300 CALL RNRQ(140004B,IRN2,ISTAT) GO TO 1320 1310 CONTINUE 1320 RETURN C C LOAD CALL MUST SHUT DOWN FIRST C 1500 CALL NAMR(LIST,ICMND,80,ISTRC) LIST(4)=IAND(LIST(4),3) CALL NAMR(IPBUF,ICMND,80,ISTRC) JP=2 IF(IPB1.EQ.2HAL) JP=3 IF(LIST(4).EQ.1.AND.LIST(1).EQ.0) GO TO 1600 C C OPEN SOURCE FILE C CALL ACOPL(IERR,1,0) IF(IERR.NE.0) GO TO 105 1550 ASSIGN 1600 TO LRTRN ASSIGN 1700 TO LRTR2 CALL ACLNK (2H4 ,4) 1600 ASSIGN 1650 TO LRTRN ASSIGN 100 TO LRTR2 CALL ACLNK (2H2 ,JP) 1650 ASSIGN 1300 TO LRTRN GO TO 400 1700 GO TO 50 2300 CALL NAMR(IPBUF,ICMND,80,ISTRC) IF(IAND(IPBUF(4),3).NE.3) GO TO 100 ITEMP=IPB1/256 IF(ITEMP.EQ.125B) CALL ACLNK(2H3 ,5) IF(ITEMP.EQ.107B) CALL ACLNK(2H3 ,6) IF(IDSES.NE.7777B) GO TO 250 IF(ITEMP.EQ.101B) CALL ACLNK(2H5 ,1) GO TO 100 END