• Keine Ergebnisse gefunden

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 5

67

C

ECHOS INTERACTIVE CONSOLE OPERATOR INPUT

C

NOTE THAT THE DEBUG LOG FILE AND STATISTICAL FILE LOCAL NAMES 89

10

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,US

14

COMMON /RMC0M/NB(20),HA,INSTAK(20),0UTSTAK(20),ENDCN,SHUTD,INTRRSP

15

COMMON /RMCOM/INTRCHR,CHANRST,CHANCLR

16 17

NOTE THAT THE TEXT AREAS ARE SEPARATE FOR DATA AND SUPERVISORY

18

MESSAGES. THEIR SIZES ARE CHOSEN FOR THE LARGEST EXPECTED SUPERVISORY

19

MESSAGE,ARBITRARILY SUPPORTING UP TO 314 CHARACTERS OF DEVICE

20

INPUT DATA.

2 1

23 22

COMMON /RMCOM/TA(63),STAK(20),0VRFLHA(8,20),0VRFLTA(63,8,20),US1

24

COMMON /RMC0M/IABN(20),SMHA,SMTA(63),SSM(8),MC,LFN,ABT,ACT,TLC

25

EXTERNAL REPREV,CHKSUM

27 26

2829 3031 3233 34

INITIALIZE AND SET CONSTANTS

C

SET UP LOCAL FILE NAME FOR NETREL CALLS DATA LFN/L"RELJ0B'7

C

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 CONNECTION

42

43 4445

DATA INSTAK, 0UTSTAK/20*0,20*0/

46

K IS THE APPLICATION BLOCK NUMBER COUNTER

47 48

DATA K/20*1/

49 50

51 52 53

THESE 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 R

56 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 FILES

115 116

CALL RECOVR(REPREV,0"277",L0CF(CHKSUM))

117 118

119

C SET UP ALL OTHER VARIABLES AND CONSTANTS

121 120

CALL SETUP

122 123

124

C ESTABLISH ACCESS TO THE NETWORK AND BEGIN DEBUG LOG

125

C FILE CREATION

126 127

CALL NETON("RHV2",NSUP,NSTAT,1,20)

128 129

130

C TEST FOR ACCESS COMPLETION

132 131

IF (NSTAT.NE.O) THEN

1 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=0

144

SYNC=0

145

CALL LOOKSM (SHUTDWN,L,SYNC)

146 147

148

C RETURN FROM FC/ACK/R

149 150

17 IF (L.EQ.1) THEN

1 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 R

PROGRAM 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 9

2 171

ELSE

2 172

GO TO 551

2 173

END IF

2 174 2 175

2 176

C RETURN FROM FC/INA/R

2 177

178

ELSE IF (L.EQ.5) THEN

179

GO TO 9

180 181

182

C RETURN FROM CON/CB/R

183

184

ELSE IF (L.EQ.6) THEN

185

GO TO 9

186 187

188

C RETURN FROM FC/NAK/R

189

190

ELSE IF (L.EQ.7) THEN

191

GO TO 9

193 192

194

C RETURN FROM ERR/LGL/R

195 196

ELSE IF (L.EQ.8) THEN

197

GO TO 9

199 198

200

C RETURN FROM HOP/XX/R

201 202

ELSE IF (L.EQ.9) THEN

203

GO TO 9

205 204

206

C RETURN FROM CON/END/R

207

208

ELSE IF (L.EQ.10) THEN

209

GO TO 9

210 211

212

C RETURN FROM SHU/INS/R

213 214

ELSE IF (L.EQ.11) THEN

215

GO TO 554

216 217

218

C RETURN FROM BI/MARK/R

219 220

ELSE IF (L.EQ.12) THEN

221

GO TO 551

222 223

224

C RETURN FROM BAD BLOCK

225 226

ELSE

Figure 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 777

228

END IF

229 230

231

INITIALIZE CONNECTION BY SENDING OUTPUT

232 233 41

LASTBLK=1

234 235

236

SEND IDENTIFYING BANNER AS FIRST OUTPUT AFTER INITIAL CONNECTION

237 238

SEND=1

239

HA=DSHDR1

240

CALL NSTORE(HA,L"ABHADR",ACN)

241

TA(1)="1RMV2 VER3"

242

TA(2)=0

243

CALL OUTPT (SEND)

244

245 246

NOTE THAT ALL CONNECTIONS ARE SERVICED AS FULL-DUPLEX ON THE

247

APPLICATION PROGRAM'S END

248 249 40

CALL PROMPT (SEND)

250

LASTBLK=0

251 39

CALL OUTPT (SEND)

252

IF (SEND .EQ. 0) GO TO 38

253

IF (STAK(ACN) .EQ. 1) THEN

254

SEND=0

255

GO TO 39

256

ELSE IF (LASTBLK.EQ.1) THEN

257

GO TO 40

258

ELSE

259

GO TO 9

260

END IF

261 262

263

PAUSE TO ALLOW OUTPUT QUEUE TO CLEAR

264 265 38

CALL NETWAIT(2,1)

266

SHUTDWN=0

267

SYNC=0

268

CALL LOOKSM (SHUTDWN,L,SYNC)

269

IF (L.EQ.1) THEN

1 270

SEND=0

1 271

GO TO 39

1 272

ELSE IF (L.EQ.2) THEN

1 273

IF(INTRCHR.EQ.O) THEN

2 274

GO TO 9

2 275

ELSE

2 276

GO TO 551

2

277 278 279280 281282 283

END 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 R

PROGRAM 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 778

344

IF (ABT.EQ.0.AND.ABHIBU.NE.1) GO TO 9

345 346

347

TEST FOR THROW-AWAY INPUT

348 349

IF(ABHCAN.EQ.I) GO TO 40

350 351

352

TEST FOR TYPE-IN OF ENDCN COMMAND

353 354

IF(TAd).EQ.ENDCN) GO TO 444

356 355

357

TEST FOR TYPE-IN OF SHUTD COMMAND

358 359

IF(TAd).EQ.SHUTD) GO TO 666

360 361

362

PROCESS ECHOABLE TEXT

363 364

CALL PACK (SEND)

365

GO TO 39

366 367

368

PROCESS USER BREAKS

369 370

551 IF((CHANCLR.EQ.1).AND.(CHANRST.EQ.D) THEN

371 372

373

TELL THE DEVICE OPERATOR WHAT HAPPENED 1 3 7 5

374

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)=0

393

CALL NSTORE(SMTA,L"PFCSFC",CONEND)

394

CALL NSTORE(SMTA,L"RC",0)

395 396

397

PASS CONNECTION DIRECTLY TO IAF WITHOUT DIALOG

Figure 7-2. Program Portion of RMV3 (Sheet 7 of 24)

^S

7-8

60499500 R