The FORTRAN code in RMV3 produces several entries i n fi l e O U T P U T. F i g u r e 7 - 4 s h o w s t h e d e b u g l o g file listing produced by the AIP code in RMV3. The m e s s a g e t r a f fi c l i s t e d i n t h i s fi l e c a n b e c o m p a r e d with the program logic documented in figure 7-2 to produce a processing flow diagram for the connection i n v o l v e d . F i g u r e 7 - 5 s h o w s t h e s t a t i s t i c a l fi l e listing produced by the AIP code in RMV3.
R M V 3 . < J o b n a m e c o m m a n d . USER(APPL1,PASS,FAM1)
CHARGE(0059,2934657) ATTACH(RMV)
FTN5(I=RMV,L0=S/-A)
L D S E T ( L I B = N E T I 0 D ) < U s e s d e b u g a n d s t a t i s t i c a l fi l e o p t i o n a l c o d e v e r s i o n o f A I P.
G E T ( R E L J O B ) < F i l e c o n t a i n i n g N O S c o m m a n d s f o r N E T R E L c a l l . LGO.
REWIND(ZZZZZSN) \
1 D i s p o s e s o f l o c a l fi l e s c o n t a i n i n g s t a t i s t i c a l fi l e a n d d e b u g l o g fi l e D L F P ( I = 0 ) > b y c o p y i n g t h e fi r s t o n e t o O U T P U T a n d e x e c u t i n g t h e p o s t p r o c e s s o r t o
\ c o m p l e t e l y l i s t t h e c o n t e n t s o f t h e s e c o n d o n e . COPY(ZZZZZSN) /
Figure 7-1. Command Portion of RMV3 Job
60499500 R 7-1
PROGRAM RMV3 74/74 OPT=0,ROUND= A/ S/ M/-D,-DS FTN 5.1+599 83/08/05. 11.38.17 PAGE 1 DO=-LONG/-OT,ARG=-COMMON/-FIXED,CS= USER/-FIXED,DB=-TB/-SB/-SL/ ER/-ID/-PMD/-ST,PL=5000
FTN5,I=RMV,L=0UTPUT,L0=S/-A.
1
2 PROGRAM RMV3
3
4
C
NAM 1 REFERENCE MANUAL SAMPLE PROGRAM 567
C
ECHOS INTERACTIVE CONSOLE OPERATOR INPUTC
NOTE THAT THE DEBUG LOG FILE AND STATISTICAL FILE LOCAL NAMES 8910
ARE NOT REQUIRED ON THE PROGRAM STATEMENT GIVEN ABOVE.
11
IMPLICIT INTEGER(A-Z)12
COMMON /RMC0M/K(20),LASTBLK,I,S,NSUP,SMHDR,DSHDR,DSHDR1,NACN(20)13
COMMON /RMCOM/CONEND,ROMARK,ACN,ABN(20),SM(20),ABL(20),ABHIBU,US14
COMMON /RMC0M/NB(20),HA,INSTAK(20),0UTSTAK(20),ENDCN,SHUTD,INTRRSP15
COMMON /RMCOM/INTRCHR,CHANRST,CHANCLR16 17
NOTE THAT THE TEXT AREAS ARE SEPARATE FOR DATA AND SUPERVISORY18
MESSAGES. THEIR SIZES ARE CHOSEN FOR THE LARGEST EXPECTED SUPERVISORY19
MESSAGE,ARBITRARILY SUPPORTING UP TO 314 CHARACTERS OF DEVICE20
INPUT DATA.2 1
23 22
COMMON /RMCOM/TA(63),STAK(20),0VRFLHA(8,20),0VRFLTA(63,8,20),US124
COMMON /RMC0M/IABN(20),SMHA,SMTA(63),SSM(8),MC,LFN,ABT,ACT,TLC25
EXTERNAL REPREV,CHKSUM27 26
2829 3031 3233 34INITIALIZE AND SET CONSTANTS
C
SET UP LOCAL FILE NAME FOR NETREL CALLS DATA LFN/L"RELJ0B'7C
FILE RELJOB CONTAINS THE FOLLOWING COMMANDS:35 36
RELJOB.37
USER(APPL1,PASS,FAM1)38
CHARGE(0059,2934657)39
DLFP(1=0)40 41
THIS IS THE CIRCULAR OUTPUT STACK FOR EACH CONNECTION42
43 4445
DATA INSTAK, 0UTSTAK/20*0,20*0/
46
K IS THE APPLICATION BLOCK NUMBER COUNTER47 48
DATA K/20*1/49 50
51 52 53THESE ARE NSUP WORD FIELD MASKS DATA S/0"02000000000000000000'7
54
DATA I/0"04000000000000000000"/55
DATA MC/0,,00000000007777777777'7/ ^ S j ^
Figure 7-2. Program Portion of RMV3 (Sheet 1 of 24)
7-2
60499500 R56 5758 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 8788 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103104 105 106 107 108 109 110 111 112
PROGRAM RMV3 74/74 OPT=0,ROUND= A/ S/ M/-D,-DS FTN 5.1+599 83/08/05. 11.38.17 PAGE 2
C THESE ARE BREAK-PROCESSING FLAGS DATA INTRCHR,CHANRST,CHANCLR/0,0,0/
C THIS INITIALIZES THE FLOW CONTROL ALGORITHM FOR ALL C POSSIBLE CONNECTIONS
DATA ABL,NB,NACN,ACN,ABHIBU,STAK/20*0,20*0,20*0,0,0,20*0/
C PACK MASK FOR CHARACTERS THAT COMPRISE OPERATOR END-CONNECTION C COMMAND FOR NORMAL DISCONNECTION PROCESSING
C WHICH IS THE CAPITALIZED COMMAND ENDCN IN 12-BIT BYTES DATA ENDCN/0"01050116010401030116"/
C PACK MASK FOR CHARACTERS THAT COMPRISE OPERATOR SHUTDOWN C COMMAND FOR NORMAL PROGRAM TERMINATION PROCESSING, C WHICH IS THE CAPITALIZED COMMAND SHUTD IN 12-BIT BYTES
DATA SHUTD/0"01230110012501240104 '7
C PACK A CONSTANT FOR SUPERVISORY MESSAGE HEADER WORDS DATA SMHDR/0"03000000000004000001"/
C PACK A CONSTANT HEADER WORD FOR DISPLAY CODED OUTPUT
C OF BLOCK TYPE 2. NOTE THAT THE NO-FORMAT-EFFECTOR BIT IS NOT SET C BECAUSE ALL OUTPUT TO THE DEVICE GENERATED BY THE PROGRAM CONTAINS C A FORMAT EFFECTOR CHARACTER.
DATA DSHDR/0"0200000000Q020000024(7
C NOTE THAT ONLY 10 CHARACTERS OF OUTPUT ARE PERMITTED BY
C THE TLC DECLARED, PLUS A ZERO TERMINATOR WORD FOR THE LOGICAL LINE.
C PACK A CONSTANT HEADER WORD FOR DISPLAY CODED OUTPUT
C OF BLOCK TYPE 1. NOTE THAT THE NO-FORMAT-EFFECTOR BIT IS NOT SET C BECAUSE ALL OUTPUT TO THE DEVICE GENERATED BY THE PROGRAM CONTAINS C A FORMAT EFFECTOR CHARACTER.
DATA DSHDR1/0"01000000000020000024"/
C AGAIN, ONLY 10 CHARACTERS ARE PERMITTED, PLUS A TERMINATOR WORD.
C CREATE MASK FOR UNIT SEPARATOR INSERTION CODE
DATA US,US1/0"00370000000000000000",0,,70370000000000000000,7
Figure 7-2. Program Portion of RMV3 (Sheet 2 of 24)
60499500 R
7-3
PROGRAM RMV3 74/74 OPT=0,ROUND= A/ S/ M/-D,-DS FTN 5.1+599 83/08/05. 11.38.17 PAGE 3
113 114
C SET UP REPRIEVAL CODE TO SALVAGE DEBUG AND STATISTICAL FILES115 116
CALL RECOVR(REPREV,0"277",L0CF(CHKSUM))117 118
119
C SET UP ALL OTHER VARIABLES AND CONSTANTS121 120
CALL SETUP122 123
124
C ESTABLISH ACCESS TO THE NETWORK AND BEGIN DEBUG LOG125
C FILE CREATION126 127
CALL NETON("RHV2",NSUP,NSTAT,1,20)128 129
130
C TEST FOR ACCESS COMPLETION132 131
IF (NSTAT.NE.O) THEN1 1 3 3 PRINT 100, NSTAT
1 1 3 4 100 FORMAT (' NSTAT = ',020)
1 1 3 5 STOP 111
1 1 3 6 END IF
1 1 3 7 1 1 3 8
1 1 3 9 C UPDATE NSUP FLAGS, THEN PERFORM CONNECTION ESTABLISHMENT PROCESSING 1 1 4 0 C AND DISPOSE OF OTHER SUPERVISORY MESSAGES RECEIVED.
1 141
142
15 CALL NETWAIT(4095,0)143
16 SHUTDWN=0144
SYNC=0145
CALL LOOKSM (SHUTDWN,L,SYNC)146 147
148
C RETURN FROM FC/ACK/R149 150
17 IF (L.EQ.1) THEN1 1 5 1 GO TO 9
1 1 5 2 1 1 5 3
1 1 5 4 C RETURN FROM CON/REQ/R 1 1 5 5
1 1 5 6 ELSE IF (L.EQ.2) THEN
1 1 5 7 GO TO 15
1 1 5 8 1 1 5 9
1 1 6 0 C RETURN FROM FC/INIT/R 1 1 6 1
1 1 6 2 ELSE IF (L.EQ.3) THEN
1 1 6 3 GO TO 41
1 1 6 4 1 1 6 5
1 1 6 6 C RETURN FROM INTR/USR/R 1 1 6 7
1 1 6 8 ELSE IF (L.EQ.4) THEN
1 1 6 9 IF(INTRCHR.EQ.O) THEN
Figure 7-2. Program Portion of RMV3 (Sheet 3 of 24)
7-4
60499500 RPROGRAM RMV3 74/74 OPT=0,ROUND= A/ S/ M/-D,-DS FTN 5.1+599 83/08/05. 11.38.17 PAGE 4
2 170
GO TO 92 171
ELSE2 172
GO TO 5512 173
END IF2 174 2 175
2 176
C RETURN FROM FC/INA/R2 177
178
ELSE IF (L.EQ.5) THEN179
GO TO 9180 181
182
C RETURN FROM CON/CB/R183
184
ELSE IF (L.EQ.6) THEN185
GO TO 9186 187
188
C RETURN FROM FC/NAK/R189
190
ELSE IF (L.EQ.7) THEN191
GO TO 9193 192
194
C RETURN FROM ERR/LGL/R195 196
ELSE IF (L.EQ.8) THEN197
GO TO 9199 198
200
C RETURN FROM HOP/XX/R201 202
ELSE IF (L.EQ.9) THEN203
GO TO 9205 204
206
C RETURN FROM CON/END/R207
208
ELSE IF (L.EQ.10) THEN209
GO TO 9210 211
212
C RETURN FROM SHU/INS/R213 214
ELSE IF (L.EQ.11) THEN215
GO TO 554216 217
218
C RETURN FROM BI/MARK/R219 220
ELSE IF (L.EQ.12) THEN221
GO TO 551222 223
224
C RETURN FROM BAD BLOCK225 226
ELSEFigure 7-2. Program Portion of RMV3 (Sheet 4 of 24)
/ $ f P ^ *
60499500 R 7-5
PROGRAM RMV3 74/74 OPT=0,ROUND= A/ S/ M/-D,-DS FTN 5.1+599 83/08/05. 11.38.17 PAGE 5
227
GO TO 777228
END IF229 230
231
INITIALIZE CONNECTION BY SENDING OUTPUT232 233 41
LASTBLK=1234 235
236
SEND IDENTIFYING BANNER AS FIRST OUTPUT AFTER INITIAL CONNECTION237 238
SEND=1239
HA=DSHDR1240
CALL NSTORE(HA,L"ABHADR",ACN)241
TA(1)="1RMV2 VER3"242
TA(2)=0243
CALL OUTPT (SEND)244
245 246
NOTE THAT ALL CONNECTIONS ARE SERVICED AS FULL-DUPLEX ON THE247
APPLICATION PROGRAM'S END248 249 40
CALL PROMPT (SEND)250
LASTBLK=0251 39
CALL OUTPT (SEND)252
IF (SEND .EQ. 0) GO TO 38253
IF (STAK(ACN) .EQ. 1) THEN254
SEND=0255
GO TO 39256
ELSE IF (LASTBLK.EQ.1) THEN257
GO TO 40258
ELSE259
GO TO 9260
END IF261 262
263
PAUSE TO ALLOW OUTPUT QUEUE TO CLEAR264 265 38
CALL NETWAIT(2,1)266
SHUTDWN=0267
SYNC=0268
CALL LOOKSM (SHUTDWN,L,SYNC)269
IF (L.EQ.1) THEN1 270
SEND=01 271
GO TO 391 272
ELSE IF (L.EQ.2) THEN1 273
IF(INTRCHR.EQ.O) THEN2 274
GO TO 92 275
ELSE2 276
GO TO 5512
277 278 279280 281282 283END IF
ELSE IF (L.EQ.3) THEN GO TO 41
ELSE IF (L.EQ.4) THEN GO TO 38
ELSE IF (L.EQ.5) THEN GO TO 9
i ^ ^ j V
Figure 7-2. Program Portion of RMV3 (Sheet 5 of 24)
7-6
60499500 RPROGRAM RMV3 74/74 OPT=0,ROUND= A/ S/ M/-D,-DS FTN 5.1+599 83/08/05. 11-3€1.17 PAGE 6
1 284 ELSE IF (L.EQ.6) THEN
1 285 GO TO 15
1 286 ELSE IF (L.EQ.7) THEN
1 287 GO TO 9
1 288 ELSE IF (L.EQ.8) THEN
1 289 GO TO 9
1 290 ELSE IF (L.EQ.9) THEN
1 291 GO TO 9
1 292 ELSE IF (L.EQ.10) THEN
1 293 GO TO 15
1 294 ELSE IF (L.EQ.11) THEN
1 295 GO TO 554
1 296 ELSE IF (L.EQ.12) THEN
1 297 GO TO 551
1 298 ELSE
1 299 GO TO 38
1 300 END IF
1 301
1 302
1 303 PAUSE FOR INPUT DATA OR A SUPERVISORY MESSAGE
1 304
305 306 307
9 CALL NETWAIT(4095,0)
308 TEST FOR QUEUED MESSAGES OR DATA BLOCKS
309
310 777 IF((NSUP.AND.S).NE.O) GO TO 16
311 312
313 FETCH QUEUED INPUT FROM A DEVICE
314
315 ALN=1
316 CALL NETGETL(ALN,HA,TA,10)
317 318
319 UNPACK THE BLOCK HEADER FOR THE DELIVERED INPUT BLOCK
320
321 778 ABT=NFETCH(HA,L"ABHABT")
322 ACT=NFETCH(HA,L"ABHACT")
323 ACN=NFETCH(HA,L"ABHADR")
324 ABHXPT=NFETCH(HA,L"ABHXPT")
325 ABHTRU=NFETCH(HA,L"ABHTRU")
326 ABHCAN=NFETCH(HA,L"ABHCAN")
327 ABHIBU=NFETCH(HA,L"ABHIBU")
328 TLC=NFETCH (HA,L,,ABHTLC")
329 330
331 BRANCH TO PROCESS DATA BLOCK OR SYNCHRONOUS SUPERVISORY MESSAGE
332
333 IF (ABT.EQ.3) THEN
1 334 SYNC=1
1 335 CALL LOOKSM (SHUTDWN,L,SYNC)
1 336 GO TO 17
1 337 END IF
1 338
1 339
1 340 MAKE ANOTHER ATTEMPT TO FETCH QUEUED BLOCK
Figure 7-2. Program Portion of RMV3 (Sheet 6 of 24)
60499500 R
7-7
PROGRAM RMV3 74/74 OPT=0,ROUND= A/ S/ M/-D,-DS FTN 5.1+599 83/08/05. 11.38.17 PAGE 7 1 341
342
IF (ABT.EQ.0.AND.ABHIBU.EQ.1) CALL NETGET(ACN,HA,TA,63)343
IF (ABT.EQ.0.AND.ABHIBU.EQ.1) GO TO 778344
IF (ABT.EQ.0.AND.ABHIBU.NE.1) GO TO 9345 346
347
TEST FOR THROW-AWAY INPUT348 349
IF(ABHCAN.EQ.I) GO TO 40350 351
352
TEST FOR TYPE-IN OF ENDCN COMMAND353 354
IF(TAd).EQ.ENDCN) GO TO 444356 355
357
TEST FOR TYPE-IN OF SHUTD COMMAND358 359
IF(TAd).EQ.SHUTD) GO TO 666360 361
362
PROCESS ECHOABLE TEXT363 364
CALL PACK (SEND)365
GO TO 39366 367
368
PROCESS USER BREAKS369 370
551 IF((CHANCLR.EQ.1).AND.(CHANRST.EQ.D) THEN371 372
373
TELL THE DEVICE OPERATOR WHAT HAPPENED 1 3 7 5374
IF (INTRCHR.EQ.3) TA(1)=" BREAK 1 "1 3 7 6 IF (INTRCHR.EQ.4) TA(1)=" BREAK 2 "
1 3 7 7 HA=DSHDR1
1 3 7 8 TA(2)=0
1 3 7 9 CALL NSTORE(HA,L"ABHADR",ACN)
1 3 8 0 LASTBLK=1
1 381 SEND=1
1 3 8 2 CALL OUTPT(SEND)
1 3 8 3 CHANCLR=CHANRST=INTRCHR=0
1 3 8 4 GO TO 40
1 3 8 5 ELSE
1 3 8 6 GO TO 9
1 3 8 7 END IF
1 3 8 8 1 3 8 9
1 3 9 0 DISCONNECT THIS TERMINAL DEVICE 1 3 9 1
392
444 SMTA(1)=SMTA(2)=0393
CALL NSTORE(SMTA,L"PFCSFC",CONEND)394
CALL NSTORE(SMTA,L"RC",0)395 396
397
PASS CONNECTION DIRECTLY TO IAF WITHOUT DIALOGFigure 7-2. Program Portion of RMV3 (Sheet 7 of 24)