FTN4 PROGRAM DCMON(3,50),92903-16200 REV.1913 781212 C C C NAME: DCMON DATACAP MONITOR PROGRAM C SOURCE: &DCMON 92903-18201 C BINARY: %DCMON ----NONE--- PART OF RDCMON 92903-16200 C C PGMR: DANIEL POT/FRANCOIS GAULLIER HPG C C C ************************************************************** C * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1978. ALL RIGHTS * C * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, RE- * C * PRODUCED, OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITH- * C * OUT THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * C ************************************************************** C C C **************************************************************** C * * C * THIS PROGRAM IS SCHEDULED EACH TIME ONE OF THE F2, F3, F5 * C * F6, F7 OR F8 SOFT KEY ON THE 2645/2648 CRT TERMINAL IS * C * USED. * C * THOSE SOFT KEY ARE LOADED LIKE THIS BY 'DCMON' IN THE * C * SUBROUTINE 'DCSFK'. * C * THIS PROGRAM IS ALSO SCHEDULED EACH TIME ONE THE DATACAP * C * PROGRAM (I.E.: TGP, TMPGN, TMP ) TERMINATES IN ORDER TO * C * RESTORE THE SOFT KEY FOR THE NEXT TASK THAT THE USER WILL * C * REQUEST. * C * * C * INTEGER DCMON, DATA DCMON/2HDC,2HMO,2HN / * C * CALL EXEC(100030B,DCMON,LU,P1) * C * GOTO XXX DCMON IS NO RP'ED * C * RETURN OK: DCMON HAS BEEN SCHEDULED. * C * * C * :RU,DCMON,,P1,P2 * C * * C * P1 FUNCTION PARAMETER * C * * C * P1 = 0 -------> PRINT GENERATOR SCREEN * C * P1 = 1 -------> PRINT TMP SCREEN * C * * C * P1 = 2 -------> RU,TMPX ( X = P2 ) * C * P1 = 3 -------> RU,LTMPX,,TSE ( X = P2 ) * C * P1 = 4 -------> CALL ETMSP(TMPX,98) ( X = P2 ) * C * * C * * C * TMP COPY NUMBER X (1 OR 2) IS DEFINED BY P2 * C * * C **************************************************************** C C DIMENSION IPARM(5),IMESA(30),TMPX(3),LTMPX(3),PARM(4) . ,TSE(3),COMAD(35),ON(2),CRLF(3),EROR(8) . ,BADCH(11),BUSY(19),BUSI(16),NOVA(17) . ,IREG(2),DRCTY(128),IPOB(3),IBORT(32) C INTEGER TMPX,PARM,TSE,COMAD,ON,CRLF,EROR,BADCH . ,BUSY,BUSI,AREG,BREG,DRCTY EQUIVALENCE (REG,IREG,AREG),(IREG(2),BREG) LOGICAL ISBTW INTEGER DORMT C C-----FIXED CHARACTER STRINGS C C-----PROGRAM NAMES C DATA TMPX/2HTM,2HP ,2H / DATA TSE/2HTS,2HE ,2H / DATA LTMPX/2HLT,2HMP,2H / DATA ON/2HON,2H, / C C-----FORMAT MODE OFF, MEMORY UNLOCK, BLOCK MODE OFF, UNLOCK KEYBOARD C-----HOME UP CURSOR, CLEAR DISPLAY C DATA IMESA/15530B,15555B,15446B,65460B,41040B,15542B,15510B, .15512B/ DATA IBORT/15530B,15555B,15446B,65460B,41040B,15542B,15510B, .15512B,15446B,62102B,40B, .2HO.,2HK ,2HTO,2H S,2HTO,2HP ,2HTM,2HP ,2H ?,2H ,2H(Y, .2H/N,2H) ,2H: ,20040B,15446B,62100B,15504B,15504B,15504B, .20137B/ DATA CRLF/6412B,6412B,15512B/ DATA EROR/15446B,62103B,2HER,2HRO,2HR!,15446B,2Hd@,2H / DATA BADCH/2HBa,2Hd ,2Han,2Hsw,2Her,2H. ,15510B,15446B . ,2Ha+,2H29,2HC_/ DATA BUSY/2HTh,2He ,2HTM,2HP ,2His,2H a,2Hlr . ,2Hea,2Hdy,2H s,2Hta,2Hrt,2Hed,2H. ,5*2H / DATA BUSI/2HTh,2He ,2HTM,2HP ,2His . ,2H s,2Hhu,2Ht ,2Hdo,2Hwn,2H. ,5*2H / DATA NOVA/2HTh,2He ,2HTM,2HP ,2His . ,2H n,2Hot,2H d,2Hef,2Hin,2Hed,2H. ,5*2H / C C C-----GET TERMINAL LOGICAL UNIT # AND FUNCTION C CALL RMPAR(IPARM) LUCRT=LOGLU(I) CALL EXEC(3,2200B+LUCRT,0) IFONC=IPARM(2) IF(IFONC.EQ.1) GOTO 2100 IF(.NOT.ISBTW(IFONC,2,4)) GOTO 20 C C-----PRINT SCREEN ON THE CRT AND PROGRAM S.F.K. --2645A-- C CALL DCSFK(LUCRT,0) GOTO 9999 C C-----START TMP/TMPD, START TSE FOR TMP/TMPD OR STOP TMP/TMPD C 20 INOMB=2H1 IF(IPARM(3).NE.0) INOMB=2H2 CALL EXEC(2,LUCRT,IMESA,8) CALL MOVCA(INOMB,1,TMPX,4,1) CALL MOVCA(INOMB,1,LTMPX,5,1) IADRS=IDGET(TMPX) IF(IFONC.EQ.4) GOTO 2005 IF(IADRS.EQ.0) GOTO 30 ISTUS=DORMT(TMPX) IF(ISTUS.NE.0.AND.IFONC.EQ.2) GOTO 30 IF(ISTUS.EQ.0.AND.IFONC.EQ.3) GOTO 30 CALL BLAN(COMAD,1,60) CALL MOVEW(EROR,COMAD,8) IF(IFONC.EQ.2) CALL MOVEW(BUSY,COMAD(9),19) IF(IFONC.EQ.3) CALL MOVEW(BUSI,COMAD(9),16) I=30 C-----PRINT TMP SCREE, PRINT ERROR MESSAGE AND TERMINATE 220 CALL DCSFK(LUCRT,3) CALL EXEC(2,LUCRT,COMAD,I) GOTO 9999 C C-----STOP TMP COPY IF RUNNING C 2005 IF(TMPX(2) .EQ. 2HP2) IBORT(19)=2HPD CALL EXEC(2,LUCRT,IBORT,32) 2008 CALL REIO(1,500B+LUCRT,I,-1) CALL EXEC(2,LUCRT,CRLF,3) K=IGET1(I,1) IF(K .EQ. 1HY) GOTO 2020 IF(K .EQ. 1HN .OR. K .EQ. 1H ) GOTO 2050 CALL MOVEW(EROR,COMAD,8) CALL MOVEW(BADCH,COMAD(9),11) CALL EXEC(2,LUCRT,COMAD,19) GOTO 2008 2020 CALL ETMSP(TMPX,98) 2050 CALL EXEC(3,2200B+LUCRT,0) C-----PRINT TMP SCREEN AND EXIT 2100 CALL DCSFK(LUCRT,3) GOTO 9999 C C-----SET PARAMETERS AND SCHEDULE CALLED PROGRAM C 30 IF(IADRS.NE.0) GOTO 35 CALL MOVEW(EROR,COMAD,8) CALL MOVEW(NOVA,COMAD(9),17) I=25 GOTO 220 C C-----BUILD "ON,... " COMMAND, SET CRT LU, ... C 35 CALL BLAN(COMAD,1,40) CALL MOVEW(ON,COMAD,2) COMAD(6)=2H, COMAD(7)=IASC(LUCRT) C C-----PREPARE TO SCHEDULE TMP C IF(IFONC.NE.2) GOTO 40 CALL MOVEW(TMPX,COMAD(3),2) GOTO 100 40 CALL MOVEW(LTMPX,COMAD(3),3) COMAD(8)=2H, C C-----PREPARE TO SCHEDULE LTMP,,TSE C CALL MOVEW(TSE,COMAD(9),3) GOTO 100 C C-----EXECUTION OF THE SCHEDULE C 100 LENGH=ISUPB(COMAD,20) I=MESSS(COMAD,2*LENGH) IF(I.EQ.0) GOTO 150 CALL DCSFK(LUCRT,0) CALL EXEC(2,LUCRT,COMAD,-LENGH) C C-----WAIT UNTIL THE CRT LU IS LOCK AND THEN COMPLETE C DO NOT WAIT MORE THAN 1 MINUTE IN ANY CASE. C 150 K=0 160 CALL EXEC(12,0,2,0,-1) K=K+1 IF(LURQW(LUCRT) .NE. 0) GOTO 9999 IF(K .LT. 60) GOTO 160 C C-----END OF PROGRAM C 9999 END END$