FTN4 PROGRAM TGP1(5), 92903-16352 REV.1913 790126 1030 C C SOURCE 92903-18352 C 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 PRGMR : JEAN CHARLES MIARD (HPG) C C********************************************************************* C* * C* THIS IS A SEGMENT OF THE TGP PROGRAM USED TO * C* ANALYZE THE ANSWERS THE USER HAS GIVEN IN THE SCREENS 0,1,2 * C* 3,4, 41, AND 5 . * C* THE ANSWERS AFTER A CHECK ARE STORED IN IFORM. * C* * C* * C* FOLLOWING ARE THE DIFFERENT WAYS TO EXECUTE THIS * C* SEGMENT ACCORDING TO INDIC VALUE : * C* * C* INDIC = 0 : NORMAL PATH . ANALYSE ISCRN SCREEN ANSWERS . * C* OR COMING FROM TGP11 AN ERROR HAS OCCURED IN * C* OPENING THE DATA BASE REGET SCREEN #3 * C* = 1 : WHEN COMING FROM TGP10 . A TRANSACTION SPEC * C* HAS BEEN READ (MODE L OR M) BUT AN ERROR * C* OCURED DURING READ . ISKIP CONTAINS ERROR CODE * C* SET INDIC TO 4 AND REPRINT SCREEN # 3 . * C* = 2 : WHEN COMING FROM TGP11 . A DATA BASE HAS BEEN * C* SUCCESSFULLY OPENED GO TO PRINT SCREEN # 5 . * C* = 3 : WHEN COMING FROM TGP10 . A TRANSACTION SPEC * C* HAS BEEN SUCCESFULLY READ . * C* = 4 : SEE INDIC=1 AFTER PRINTING SCREEN 3 THE ISKIP * C* ERROR MESSAGE IS PRINTED . * C* =-77 A HELP MESSAGE MUST BE PRINTED * C* = 99 ABORT TGP * C* * C* * C* * C********************************************************************* C C C ****** DECLARATIONS COMMON VARIABLES ********* C COMMON ILU,ISCRN,IQST,ISKIP,INDIC COMMON IFORM(766) COMMON JFORM(1400) COMMON MFORM(16) COMMON LFORM(39) COMMON ITT COMMON IKEY(26,3) COMMON IUMAX,IMMAX COMMON IMODB COMMON ILITE(15) COMMON IMAI(45,5) COMMON IMFLG,IMAS,IMDT,IMKY COMMON KFORM(2704) COMMON ILIBR(61) COMMON NIMAG C C LOCAL VARIABLES ********** C DIMENSION ITGP0(3),ITGP10(3),ITGP11(3),ITGP13(3),ITGP3(3) DIMENSION JOUT(10),IFN(9),MNAM(3) DIMENSION IHP3(6),IHP4(6),IHP41(7),IRSET(8) DIMENSION NOMON(10),IERROR(6) C EQUIVALENCE(NOF,KFORM(531)) C LOGICAL JPAR,ISBTW,GETBK,OKABT,ISBIT C C DATA VALUES : C DATA JBYTES/140/ DATA JWORDS/70/ DATA ITGP0/2HTG,2HP0,2H / DATA ITGP10/2HTG,2HPI,2H0 / DATA ITGP11/2HTG,2HPI,2H1 / DATA ITGP13/2HTG,2HPI,2H3 / DATA ITGP3/2HTG,2HP3,2H / DATA MNAM/2HDC,2HMO,2HN / DATA IFN/5,6,7,8,9,4,2,3,1/ DATA IHP3/0,2,7,3,4,5/ DATA IHP4/1,6,7,8,9,10/ DATA IHP41/1,6,7,0,8,9,10/ DATA IRSET/15530B,15555B,15446B,2Hk0,2HB ,15542B,15510B,15512B/ DATA NOMON/2H'D,2HCM,2HON,2H' ,2HNO,2HT ,2HPR,2HES,2HEN,2HT / DATA IERROR/2HER,2HRO,2HR ,2H ,2H ,2H / C C********************************************************************* C C ACCORDING TO INDIC VALUE GO TO THE REQUIRED PORTION OF TGP1 C C********************************************************************* IF(INDIC.NE.1) GO TO 20 INDIC=0 GO TO 227 20 IF(INDIC.NE.2) GO TO 25 INDIC=0 GO TO 526 25 IF(INDIC.NE.3) GO TO 30 INDIC=0 GO TO 222 30 IF(INDIC.NE.4) GO TO 35 INDIC=0 GO TO 230 35 IF(INDIC.NE.-77) GO TO 40 INDIC=0 GO TO 3062 40 IF(INDIC.EQ.99) GO TO 990 C C C********************************************************************* C C INDIC = 0 GET THE ANSWERS IN THE SCREEN C C********************************************************************* C 15 IF(ISBTW(ISCRN,3,4)) ITLOG=2 IF(ISCRN.EQ.3) ITLOG=36 IF(ISCRN.EQ.4) ITLOG=34 IF(ISCRN.EQ.41) ITLOG=22 IF(.NOT.(GETBK(ILU,KFORM,ITLOG))) GO TO 10 C C ERROR IN GETTING ANSWERS REPRINT SCREEN C 17 CALL EXEC(8,ITGP0) C C********************************************************************* C C GO TO ANALYSE USER ANSWERS TO SCREEN # ISCRN C C********************************************************************* C 10 IF(ISCRN.EQ.41) GO TO 4100 GO TO (100,400,200,500,600) ISCRN C C********************************************************************* C C SCREEN # 0 ANSWERS (EXPLANATORY SCREEN) C C********************************************************************* C 100 IF(ISCRN.EQ.1) GO TO 300 NOF=1 IF(JPAR(KFORM,ITLOG,NOF,JOUT,2,IFLG,JVAL)) GO TO 3000 ISCRN=3 CALL EXEC(8,ITGP0) C C********************************************************************* C C SCREEN # 3 ANSWERS (MODE OF OPERATION) C C********************************************************************* C C MODE OF OPERATION C 200 NOF=1 IF(JPAR(KFORM,ITLOG,NOF,JOUT,1,IFLG,JVAL)) GO TO 3000 JVAL1=-1 IF(JOUT.EQ.2HC ) JVAL1=1 IF(JOUT.EQ.2HM ) JVAL1=2 IF(JOUT.EQ.2HL ) JVAL1=3 IF(JOUT.EQ.2HB ) JVAL1=4 IF(JOUT.NE.2HE ) GO TO 203 ISCRN=1 CALL EXEC(8,ITGP0) 203 IF(JVAL1.EQ.-1) GO TO 250 CALL MOVCA(JOUT,1,IFORM,13,1) IF(JVAL1.EQ.1) IUMAX=0 IF(JVAL1.EQ.1) IMMAX=0 IF(JVAL1.EQ.2) CALL BLANC(LFORM(22),15) C C TRANSACTION SPEC NAME OR # C NOF=NOF+1 IF(JPAR(KFORM,ITLOG,NOF,JOUT,6,IFLG,JVAL)) GO TO 3000 IF((ISBTW(JVAL1,2,3)).AND.(IFLG.NE.0)) GO TO 260 IF(.NOT.(ISBTW(JVAL1,2,3)).AND.(IFLG.EQ.0)) GO TO 580 IF(IFLG.EQ.0) GO TO 207 IF(IFLG.NE.1) GO TO 205 IF((JVAL.LT.1).OR.(JVAL.GT.9999)) GO TO 550 GO TO 207 205 IF(ISBTW(IGET1(JOUT,1),1HA,1HZ)) GO TO 265 207 CALL MOVEW(JOUT,IFORM(8),3) C C TRANSACTION SPEC SECURITY CODE C NOF=NOF+1 IF(JPAR(KFORM,ITLOG,NOF,JOUT,6,IFLG,JVAL)) GO TO 3000 IF((ISBTW(JVAL1,2,3)).AND.(IFLG.NE.0)) GO TO 260 IF(.NOT.(ISBTW(JVAL1,2,3)).AND.(IFLG.GT.1)) GO TO 555 IF(JVAL.EQ.-32768) GO TO 555 CALL MOVEW(JOUT,IFORM(11),3) C C FILE NAME C NOF=NOF+1 IF(JPAR(KFORM,ITLOG,NOF,JOUT,6,IFLG,JVAL)) GO TO 3000 IF((ISBTW(JVAL1,2,3)).AND.(IFLG.NE.0)) GO TO 260 IF(.NOT.(ISBTW(JVAL1,2,3)).AND.(IFLG.EQ.0)) GO TO 262 CALL MOVEW(JOUT,IFORM(14),3) C C CARTRIDGE # C NOF=NOF+1 IF(JPAR(KFORM,ITLOG,NOF,JOUT,6,IFLG,JVAL)) GO TO 3000 IF(ISBTW(JVAL1,2,3).AND.(IFLG.NE.0)) GO TO 260 IF(IFLG.GT.1) GO TO 264 IF(JVAL.EQ.-32768) GO TO 264 CALL MOVEW(JOUT,IFORM(17),3) C C LIST FILE NAME C NOF=NOF+1 IF(JPAR(KFORM,ITLOG,NOF,JOUT,6,IFLG,JVAL)) GO TO 3000 IF((JVAL1.NE.3).AND.(IFLG.NE.0)) GO TO 260 IF(JVAL1.NE.3) GO TO 209 C C DEFAULT LIST FILE IS INTERACTIVE LU C IF(IFLG.NE.0) GO TO 210 ISKIP=ILU GO TO 209 C C A LIST FILE NAME HAS BEEN GIVEN CHECK FILE EXIST ,IS TYPE 0 C GET THE LU # IN THE IDCB . C 210 IF(OPEN(KFORM,ISTAT,JOUT).LT.0) GO TO 212 IF(ISTAT.NE.0) GO TO 211 ISKIP=KFORM(4) CALL CLOSE(KFORM) GO TO 209 C C FILE TYPE IS NOT 0 C 211 IMES=4 CALL CLOSE(KFORM) GO TO 232 C C ERROR IN OPENING THE FILE C 212 IMES=0 IF(ISTAT.EQ.-6) IMES=20 IF(IMES.EQ.0) CALL JASC(ISTAT,JOUT,1,6) GO TO 232 C 209 CALL MOVEW(JOUT,IFORM(20),3) C C IF MODE OF OPERATION IS "B" PRINT SCREEN 19 C IF(JVAL1.NE.4) GO TO 199 CALL BLANC(ILIBR,61) ISCRN=20 INDIC=0 CALL EXEC(8,ITGP3) C C IF MODE OF OPERATION IS "L" OR "M" GO TO READ FORM C 199 IF(JVAL1.GT.1) GO TO 225 C C HERE POINT OF RETURN FORM TGP10 IF MODE OF OP. WAS L OR M C TRANS. SPEC HAS BEEN READ C 222 JVAL=IGET1(IFORM,13) D GO TO 224 C-----IF "M", BLANK THE LIBRARY HEADER IF(JVAL.EQ.2HM ) CALL BLAN(LFORM,43,30) C C IF MODE OF OPERATION IS "L" GO TO PRINT SPECS C IF((JVAL.EQ.2HM ).OR.(JVAL.EQ.2HC )) GO TO 223 INDIC=4278 CALL EXEC(8,ITGP13) C C IF MODE OF OPERATION IS "C" OR "M" INITIALISE BUFFERS C 223 CALL NUL(ILITE,14) CALL NUL(IMAI,225) IMFLG=0 IMAS=0 IMDT=0 IMKY=0 CALL NUL(IKEY,78) KFORM(1060)=0 C C INITIALISE SOURCE BUFFERS ONLY FOR CREATE C CALL BLANC(ILIBR,61) IF(JVAL.NE.2HC ) GO TO 224 INDIC=0 DO 706 I=21,766 706 IFORM(I)=2H CALL BLANC(JFORM,1400) CALL BLANC(LFORM,39) CALL BLANC(MFORM,16) DO 714 I=1,20 714 JFORM(66+(I-1)*JWORDS)=0 C C INITIALISE SFK'S TO THE DEFAULT SET C C KEY # C IFORM(44)=2H1 IFORM(60)=2H 2 IFORM(77)=2H3 IFORM(93)=2H 4 IFORM(110)=2H5 IFORM(126)=2H 6 IFORM(143)=2H7 IFORM(159)=2H 8 IFORM(176)=2H9 C C FUNCTION # AND TERMINATOR C IFORM(53)=2HAD IFORM(54)=2HX IFORM(69)=2H S IFORM(70)=2HUX IFORM(86)=2HMP IFORM(87)=2HX IFORM(102)=2H D IFORM(103)=2HVX IFORM(119)=2HEQ IFORM(120)=2HX IFORM(135)=2H A IFORM(136)=2HBX IFORM(152)=2HRC IFORM(153)=2HX IFORM(168)=2H S IFORM(169)=2HVX IFORM(185)=2HTC IFORM(186)=2HX C C SFK'S LABELS C DO 720 I=1,9 CALL FILAB(I,0,IFN(I),IFORM) 720 CONTINUE C C CALL NEXT SCREEN C 224 ISCRN=4 CALL EXEC(8,ITGP0) C C GO TO READ FORM C 225 CALL EXEC(8,ITGP10) C C RETURN FROM TGP10 AN ERROR HAS OCCURED IN READING SPEC REPRINT C SCREEN 3 SET INDIC TO 4 TO PRINT LATER THE ERROR . C 227 ISCRN=3 INDIC=4 CALL EXEC(8,ITGP0) C C ERRORS ON READING FORM C 230 IMES=0 IF(ISKIP.EQ.1) IMES=15 IF(ISKIP.EQ.2) IMES=16 IF(ISKIP.EQ.5) IMES=17 IF(ISKIP.EQ.6) IMES=18 IF(ISKIP.EQ.-6) IMES=20 IF(ISKIP.EQ.7) IMES=21 IF(ISKIP.EQ.8) IMES=24 NOF=2 IF((IMES.NE.15).AND.(IMES.NE.17)) GO TO 231 NOF=4 231 IF(IMES.EQ.20) NOF=4 IF(IMES.EQ.21) NOF=3 IF(IMES.NE.0) GO TO 232 IMES=19 CALL JASC(ISKIP,JOUT,1,6) 232 CALL MES01(IMES,NOF,JOUT) GO TO 15 C C ERROR PROCESSING SCREEN # 3 C 250 CALL MES01(1,NOF) GO TO 15 260 CALL MES01(10,NOF) GO TO 15 261 CALL MES01(11,NOF) GO TO 15 262 CALL MES01(12,NOF) GO TO 15 263 CALL MES01(13,NOF-1) GO TO 15 264 CALL MES01(14,NOF) GO TO 15 265 CALL MES01(22,NOF) GO TO 15 C C********************************************************************* C C SCREEN # 1 ANSWERS (EXPLANATORY SCREEN) C C********************************************************************* C 300 NOF=1 IF(JPAR(KFORM,ITLOG,NOF,JOUT,2,IFLG,JVAL)) GO TO 3000 ISCRN=2 CALL EXEC(8,ITGP0) C C********************************************************************* C C SCREEN # 2 ANSWERS (EXPLANATORY SCREEN) C C********************************************************************** C 400 NOF=1 IF(JPAR(KFORM,ITLOG,NOF,JOUT,2,IFLG,JVAL)) GO TO 3000 ISCRN=5 CALL EXEC(8,ITGP0) C C********************************************************************* C C SCREEN # 4 ANSWERS (TRANS. IDENTIFICATION AND TYPE) C C********************************************************************** C C C SPECS NAME C 500 NOF=1 IF(JPAR(KFORM,ITLOG,NOF,JOUT,6,IFLG,JVAL)) GO TO 3000 IF(IFLG.EQ.0) GO TO 580 IF(ISBTW(IGET1(JOUT,1),1HA,1HZ)) GO TO 265 CALL MOVEW(JOUT,IFORM(29),3) C C SPECS NUMBER C NOF=NOF+1 IF(JPAR(KFORM,ITLOG,NOF,JOUT,4,IFLG,JVAL)) GO TO 3000 IF(IFLG.EQ.0) GO TO 550 IF(IFLG.NE.1) GO TO 550 IF((JVAL.LT.1).OR.(JVAL.GT.9999)) GO TO 550 502 CALL MOVEW(JOUT,IFORM(32),2) C C SPECS SECURITY CODE C NOF=NOF+1 IF(JPAR(KFORM,ITLOG,NOF,JOUT,6,IFLG,JVAL)) GO TO 3000 IF(IFLG.GT.1) GO TO 555 IF(JVAL.EQ.-32768) GO TO 555 CALL MOVEW(JOUT,IFORM(34),3) ITT=0 C C-----LOGGING? C 510 NOF=NOF+1 IF(JPAR(KFORM,ITLOG,NOF,JOUT,1,IFLG,JVAL)) GO TO 3000 IF((IFLG.NE.0).AND.(JOUT(1).NE.2HX )) GO TO 585 CALL MOVCA(JOUT,1,IFORM,74,1) IF(JOUT.EQ.2HX ) CALL SETBT(ITT,2,1) C C USER WRITTEN MODULES ? C 520 NOF=NOF+1 IF(JPAR(KFORM,ITLOG,NOF,JOUT,1,IFLG,JVAL)) GO TO 3000 IF((IFLG.NE.0).AND.(JOUT(1).NE.2HX )) GO TO 585 IF(JOUT(1).EQ.2HX ) CALL SETBT(ITT,0,1) CALL MOVCA(JOUT,1,IFORM,73,1) C C DATA BASE NAME C NOF=NOF+1 IF(JPAR(KFORM,ITLOG,NOF,JOUT,5,IFLG,JVAL)) GO TO 3000 IF((IFLG.NE.0).AND.(NIMAG.EQ.1)) GO TO 586 IF(IFLG.NE.0) CALL SETBT(ITT,1,1) CALL MOVCA(JOUT,1,IFORM,75,5) IFORM(40)=IAND(IFORM(40),177400B) IFORM(40)=IFORM(40)+40B C C DATA BASE SECURITY CODE C NOF=NOF+1 IF(JPAR(KFORM,ITLOG,NOF,JOUT,5,IFLG,JVAL)) GO TO 3000 IF(IFLG.EQ.0) GO TO 525 IF(IFLG.NE.1) GO TO 570 IF(JVAL.LT.1) GO TO 570 525 IF(ISBIT(ITT,1)) GO TO 5250 IF(IFLG.NE.0) GO TO 260 GO TO 5255 5250 IF(IFLG.NE.1) GO TO 570 5255 CALL MOVCA(JOUT,1,IFORM,81,5) C C IF DATA BASE ACESSED GO TO TGP11 TO OPEN IT ISKIP=D.B. SEC. CODE C IF(.NOT.ISBIT(ITT,1)) GO TO 526 ISKIP=JVAL INDIC=0 CALL EXEC(8,ITGP11) C C RETURN FROM TGP11 : DATA BASE SUCCESFULY OPENED C C C PRINT SCREEN # 41 C 526 ISCRN=41 CALL EXEC(8,ITGP3) C C SCREEN # 4 ERROR PROCESSING C 550 CALL MES01(2,NOF) GO TO 15 555 CALL MES01(3,NOF) GO TO 15 570 CALL MES01(6,NOF) GO TO 15 580 CALL MES01(7,NOF) GO TO 15 585 CALL MES01(9,NOF) GO TO 15 586 CALL MES01(5,NOF) GO TO 15 C C********************************************************************* C C SCREEN # 41 : DATA CAPTURE TERMINAL FEATURE SPECIFICATIONS C C********************************************************************* C C-----STRIP PRINTER C 4100 NOF=1 C FIRST CLEAR BITS 3,4,5,6,7 IN ITT ITT=IAND(ITT,177407B) NOPTN=0 IF(JPAR(KFORM,ITLOG,NOF,JOUT,1,IFLG,JVAL)) GO TO 3000 IF(JOUT(1) .NE. 1H .AND. JOUT(1) .NE. 1HX)GO TO 4110 IF(JOUT(1) .EQ. 1HX)NOPTN=NOPTN+1 IF(JOUT.EQ.1HX) CALL SETBT(ITT,3,1) CALL MOVCA(JOUT,1,IFORM,1515,1) C C-----ERROR LABEL C NOF=NOF+1 IF(JPAR(KFORM,ITLOG,NOF,JOUT,12,IFL1,JVAL)) GO TO 3000 IF(IFLG .EQ. 0 .AND. IFL1 .NE. 0)GO TO 4111 CALL MOVCA(JOUT,1,IFORM,1520,12) IF((IFL1.EQ.0) .AND. (IFLG.NE.0)) * CALL MOVCA(IERROR,1,IFORM,1520,12) C C-----ALPHA KEYBOARD C NOF=NOF+1 IF(JPAR(KFORM,ITLOG,NOF,JOUT,1,IFLG,JVAL)) GO TO 3000 IF(JOUT(1) .NE. 1H .AND. JOUT(1) .NE. 1HX)GO TO 4110 CALL MOVCA(JOUT,1,IFORM,1516,1) IF(JOUT.EQ.1HX) CALL SETBT(ITT,6,1) C C-----ALPHA DISPLAY C NOF=NOF+1 IF(JPAR(KFORM,ITLOG,NOF,JOUT,1,IFLG,JVAL)) GO TO 3000 IF(JOUT(1) .NE. 1H .AND. JOUT(1) .NE. 1HX)GO TO 4110 CALL MOVCA(JOUT,1,IFORM,1517,1) IF(JOUT.EQ.1HX) CALL SETBT(ITT,7,1) C C-----CARD READER/TYPE III BADGE C NOF=NOF+1 IF(JPAR(KFORM,ITLOG,NOF,JOUT,1,IFLG,JVAL)) GO TO 3000 IF(JOUT(1) .NE. 1H .AND. JOUT(1) .NE. 1HX)GO TO 4110 IF(JOUT(1) .EQ. 1HX)NOPTN=NOPTN+1 CALL MOVCA(JOUT,1,IFORM,1518,1) IF(JOUT.EQ.1HX) CALL SETBT(ITT,4,1) C C-----TYPE V BADGE C NOF=NOF+1 IF(JPAR(KFORM,ITLOG,NOF,JOUT,1,IFLG,JVAL)) GO TO 3000 IF(JOUT(1) .NE. 1H .AND. JOUT(1) .NE. 1HX)GO TO 4110 IF(JOUT(1) .EQ. 1HX .AND. NOPTN .EQ. 2)GO TO 4112 CALL MOVCA(JOUT,1,IFORM,1519,1) IF(JOUT.EQ.1HX) CALL SETBT(ITT,5,1) C C-----PRINT SCREEN # 5 C ISCRN=6 CALL EXEC(8,ITGP0) C C SCREEN #41 ERROR PROCESSING C C C "FIELD MUST BE BLANK OR X" C 4110 CALL MES01(9,NOF) GO TO 15 C C "FIELD MUST BE BLANK" C 4111 CALL MES01(10,NOF) GO TO 15 C C "ONLY 2 OF THE "#" ITEMS MAY BE SPECIFIED" C 4112 CALL MES01(23,1) GO TO 15 C C C********************************************************************* C C SCREEN # 5 ANSWERS (EXPLANATORY SCREEN) C C********************************************************************* C 600 NOF=1 IF(JPAR(KFORM,ITLOG,NOF,JOUT,2,IFLG,JVAL)) GO TO 3000 ISCRN=3 CALL EXEC(8,ITGP0) C C*********************************************************************** C C CALL NEXT SCREEN C 1000 CALL EXEC(8,ITGP0) C C********************************************************************* C C C********************************************************************* C C 2645 SOFT FUNCTION KEY PROCESSING C C********************************************************************* C C IFLG=5 MEANS NON PRINTABLE ASCII C 3000 IF(IFLG.EQ.4) IFLG=5 IF(IFLG.NE.5) GO TO 3007 CALL MES01(8,NOF) GO TO 15 C C IFLG=6 MEANS ILLEGAL PARSE C 3005 IF(IFLG.NE.6) GO TO 3007 STOP 500 C C IFLG=7 MEANS HELP C 3007 IF(IFLG.NE.7) GO TO 3010 IF((ISCRN.GT.2).AND.(ISCRN.NE.5)) GO TO 3061 3006 JOUT=20040B JOUT(2)=15542B CALL EXEC(2,ILU,JOUT,2) GO TO 15 3061 INDIC=-77 GO TO 17 3062 IF(ISCRN.EQ.4) GO TO 3050 IMES=IHP3(NOF) GO TO 3060 3050 IMES=IHP4(NOF) IF(IMODB.EQ.1) IMES=IHP41(NOF) 3060 CALL HLP01(IMES,NOF) GO TO 15 C C IFLG=8 MEANS LAST SCREEN C 3010 IF(IFLG.NE.8) GO TO 3017 IF(ISCRN.EQ.0) GO TO 3015 IF(ISCRN.EQ.1 .OR. ISCRN.EQ.4) GO TO 3011 IF(ISCRN.EQ.2) GO TO 3012 IF(ISCRN.EQ.3) GO TO 30121 IF(ISCRN.EQ.41) GO TO 3013 IF(ISCRN.EQ.5) GO TO 3014 GO TO 3015 3011 ISCRN=3 GO TO 3015 3012 ISCRN=ISCRN-1 GO TO 3015 30121 ISCRN=0 GO TO 3015 3013 ISCRN=4 IF(ISBIT(ITT,1)) CALL DBCLS(0,ISTAT) GO TO 3015 3014 ISCRN=2 GO TO 3015 3015 CALL EXEC(8,ITGP0) C C-----ABORT KEY PRESSED? C 3017 IF(OKABT(ILU)) GO TO 990 C-----NO, RESCHEDULE TGP0. CALL EXEC(8,ITGP0) C-----YES, ABORT PROGRAM C-----WAS A DATA BASE USED? 990 IF(.NOT.ISBIT(ITT,1)) GO TO 992 C-----YES, (IE, TRANS. TYPE 2 OR 3) CLOSE DATA BASE CALL DBCLS(0,ISTAT) C-----RESET TERMINAL. 992 CALL EXEC(2,ILU,IRSET,8) C-----RE-SCHEDULE 'DCMON' CALL EXEC(100000B+24,MNAM,ILU) GO TO 995 993 GO TO 999 C-----"DCMON NOT PRESENT" 995 CALL EXEC(2,ILU,NOMON,10) GO TO 999 C-----END OF SEGMENT 996 CALL TGP 999 END END$