SIGN.F4 F40 V23 13-NOV-72 14:04 PAGE 1 1 C *****************************SIGN MAKER*********************** 2 C WRITTEN BY IRWIN L. GOVERMAN BRANDEIS '75 3 C USES RANDOM ACCESS FILE IN 1,4 CALLED "SIGN.LIB" 4 C PROGRAM ASSUMES UNIT#5 IS USER TELETYPE 5 C READS SYMBOL LIBRARY ON UNIT#1 AND WRITES SIGN 6 C ON DEVICE "LPT" WHICH IS NORMALLY 3. 7 C 8 C 9 C 10 C 11 C 12 C 13 C 14 C 15 C 16 C 17 C----------------MAIN PROGRAM--------------------------- 18 C 19 DOUBLE PRECISION LINBF,BLANKS,NEWSYM 20 DIMENSION LINBF(10,12,8),NEWSYM(8), 21 1 IBUFF(13),ISYM(62), INDREM(10),ICMND(9) 22 LOGICAL FFORM,ERASE,DEFLG,NOFLG 23 DATA NEWSYM/8*'???????'/ 24 C 25 C THIS IS THE AREA THAT THE PROGRAM EXPECTS SIGN.LIB TO BE IN 26 DATA PROJ/O1/,PROG/O4/ 27 C 28 C INITIALIZE COUNTER OF SIGNS AND THE FLAG THAT TELLS THAT A 29 C PRINT HAS JUST BEEN DONE 30 DATA ISICNT/0/,IPRFLG/1/ 31 C 32 C THESE ARE THE AVAILABLE SYMBOLS, BACKARROW AND SQUARE 33 C BRACKETS ARE IN OCTAL BECAUSE THE COMPILER DOESN'T RECOGNIZE 34 C THEM. 35 DATA ISYM/'A','B','C','D','E','F','G','H','I', 36 1 'J','K','L','M','N','O','P','Q','R','S', 37 2 'T','U','V','W','X','Y','Z',' ','0','1','2','3','4', 38 3 '5','6','7','8','9','.',',','?','-','$','*', 39 4 '=','&','<','>','+','/','!','''',':','#', 40 5 '"','^',O575004020100 ,'%',';','(',')', 41 6 O555004020100,O565004020100/ 42 C 43 C THIS IS THE LIST OF AVAILBLE COMMANDS. 44 DATA ICMND/'ERASE','INLIN','H','PRINT',' ','EXIT','DEFSY', 45 1 'INSIG','WIPE '/ 46 C 47 C THIS IS THE DEV. NO. THAT THE SIGNS ARE WRITTEN ON. 48 LPT=3 49 C 50 DATA BLANKS/' '/ 51 DATA FFORM,ERASE,DEFLG,NOFLG/4*.FALSE./ 52 C 53 C OPEN UP THE LIBRARY OF SYMBOLS SIGN.F4 F40 V23 13-NOV-72 14:04 PAGE 2 54 CALL DEFINE FILE(1,56,NERD,'SIGN.LIB',PROJ,PROG) 55 C 56 C NOTIFY USER THAT HELP IS AVAILABLE 57 WRITE(5,2) 58 2 FORMAT(' TYPE "H" FOR HELP',/) 59 C 60 C THIS IS WHERE THE INTERACTIVE PART STARTS. INDICATE READINESS 61 C FOR COMMAND BY TYPING A STAR, AND WAIT. 62 1 WRITE (5,3) 63 3 FORMAT (' *',$) 64 C 65 C ACCEPT A COMMAND 66 READ(5,4)INDO 67 4 FORMAT(A5) 68 C 69 C CHECK FOR BLANK, NO NEED TO SEARCH COMMAND LIST. 70 IF(INDO.EQ.' ')GO TO 1 71 C 72 C CHECK THE COMMAND INPUT AGAINST VALID COMMANDS. 73 DO 5 J=1,9 74 5 IF(INDO.EQ.ICMND(J)) GO TO 6 75 C 76 C NOT A RECOGNIZED COMMAND 77 WRITE(5,7)INDO 78 7 FORMAT(' ?NOT A COMMAND: ',A5) 79 WRITE(5,2) 80 C 81 C LOOP BACK FOR ANOTHER COMMAND 82 GO TO 1 83 C 84 C JUMP TO SPECIFIED PLACE 85 6 GO TO (100,200,300,400,900,600,700,800,1000),J 86 C 87 C 88 C 89 C 90 C 91 C ***ERASE*** 92 C 93 C CHECK TO SEE IF THERE IS AN UNPRINTED SIGN OPEN, AND 94 C THAT IT CONTAINS DATA (LINCNT NOT EQUAL TO ZERO) 95 100 IF(LINCNT.NE.0.AND.IPRFLG.EQ.0)GO TO 101 96 WRITE(5,103) 97 103 FORMAT(' ?NO SIGN IN CORE',/) 98 C 99 C LOOP BACK FOR ANOTHER COMMAND 100 GO TO 1 101 C 102 C DID HE INCLUDE NUMBER IN COMMAND STRING? 103 101 REREAD 113,INDO 104 IF(INDO.NE.0)GO TO 117 105 113 FORMAT(5X,I) 106 C SIGN.F4 F40 V23 13-NOV-72 14:04 PAGE 3 107 C NO, GET IT NOW 108 WRITE(5,102) 109 102 FORMAT(' WHAT LINE NUMBER? ',$) 110 READ (5,106)INDO 111 106 FORMAT(I) 112 C 113 C CHECK FOR EXISTENCE OF SUCH A LINE 114 117 IF(INDO.LE.0)GO TO 111 115 IF(LINCNT-INDO)111,120,120 116 111 WRITE(5,112)INDO 117 112 FORMAT(' ?LINE #',I2,' DOES NOT EXIST') 118 C 119 C LOOP BACK FOR ANOTHER COMMAND 120 GO TO 1 121 C 122 C STORE CURRENT VALUE OF LINCNT IN TEMP, JUMP TO INLINE 123 C TO REPLACE LINE. ERASE IS FLAG TO RETURN HERE 124 120 ITEMP=LINCNT 125 WRITE(5,126) 126 126 FORMAT('+(NEW) ',$) 127 LINCNT=INDO-1 128 ERASE=.TRUE. 129 GO TO 200 130 C 131 C JUMP BACK HERE AND RESTORE EVERYTHING TO ORIGINAL STATE 132 125 LINCNT=ITEMP 133 ERASE=.FALSE. 134 C 135 C LOOP BACK FOR ANOTHER COMMAND 136 GO TO 1 137 C 138 C 139 C 140 C 141 C 142 C 143 C ***INLINE*** 144 C 145 C INCREMENT LINCNT 146 200 LINCNT=LINCNT+1 147 C 148 C CHECK AGAINST THE MAXIMUM NO. OF LINES. 149 IF(LINCNT.LE.10)GO TO 297 150 WRITE(5,242) 151 242 FORMAT(' ?TOO MANY LINES- "PRINT" THE SIGN.',/) 152 GO TO 298 153 C 154 C INITIALIZE CHARACTER COUNTER 155 297 ICRCNT=0 156 C 157 C CHECK TO SEE IF WE HAVE TO JUMP TO FILE-OPEN SECTION. 158 C IF IPRFLG=1 THEN A PRINT HAS BEEN DONE AND WE MUST OPEN 159 IF(IPRFLG)202,203,202 SIGN.F4 F40 V23 13-NOV-72 14:04 PAGE 4 160 C 161 C SET IRET SO WE RETURN HERE AFTER THE OPENING. 162 202 IRET=1 163 C 164 C JUMP TO OPENING PROCEDURE. 165 GO TO 500 166 C 167 C IF THIS IS AN INSIGN, USE THE SECOND OUTPUT FORMAT. 168 203 IF(FFORM)GO TO 280 169 WRITE(5,204)ISICNT,LINCNT 170 204 FORMAT('+SIGN:'I2,' LINE:',I2,' STRING:',$) 171 GO TO 283 172 280 WRITE(5,855)LINCNT 173 C 174 C READ THE INPUT STRING, CHECK FOR ^Z (EOF) 175 C THE EOF MEANS THAT THE USER HAS FINISHED INPUT TO INSIGN. 176 283 READ(5,205,END=298,ERR=298)IBUFF 177 205 FORMAT(13A1) 178 C 179 C CHECK FOR STRING DELIMITER 180 IF (IBUFF(13).EQ.' ')GO TO 276 181 206 WRITE(5,207) 182 207 FORMAT(' ?TOO MANY CHARACTERS --LINE NOT COMPILED') 183 C 184 C ERROR TRAP FOR INLINE AND INSIGN 185 C CLEARS LOGICAL FLAGS ,DECREMENTS LINCNT, GOES TO COMMAND MODE 186 C EXCEPT IF WE CAME FROM ERASE (WE HAVE TO RESTORE LINCNT) 187 298 IF(ERASE)GO TO 125 188 LINCNT=LINCNT-1 189 FFORM=.FALSE. 190 C 191 C LOOP BACK FOR ANOTHER COMMAND 192 GO TO 1 193 C 194 C GET ACTUAL LENGTH OF LINE 195 276 DO 270 KK=13,1,-1 196 IF(IBUFF(KK).NE.' ')GO TO 290 197 270 CONTINUE 198 KK=1 199 C 200 C COMPUTE THE AMOUNT OF INDENTATION NESS. 201 290 INDENT=(12-KK)/2 202 C 203 C SET THE INDENT VARIABLE FOR THIS LINE (1=ODD,0=EVEN # OF CHARS.) 204 INDREM(LINCNT)=0 205 IF(KK.NE. (KK/2)*2) INDREM(LINCNT)=1 206 C 207 C CHECK TO SEE IF LAST CHARACTER HAS BEEN PROCESSED 208 271 IF(ICRCNT-KK)272,230,230 209 C 210 C INCREMENT CHARACTER COUNTER 211 272 ICRCNT=ICRCNT+1 212 C SIGN.F4 F40 V23 13-NOV-72 14:04 PAGE 5 213 C CALCULATE THE POSITION IN THE BUFFER THAT THIS CHARACTER 214 C SHOULD GO INTO. 215 IPOS=INDENT+ICRCNT 216 C 217 C CHECK FOR USER DEFINED SYMBOL 218 IF(IBUFF(ICRCNT).EQ.'@')GO TO 750 219 C 220 C CHECK FOR VALID CHARACTER AND GET INDEX 221 DO 210 J=1,62 222 210 IF(IBUFF(ICRCNT).EQ.ISYM(J)) GO TO 214 223 WRITE(5,211)IBUFF(ICRCNT) 224 211 FORMAT(' ?NOT A RECOGNIZED SYMBOL: 'A2,' TRY AGAIN') 225 GO TO 298 226 C 227 C GET THAT CHARACTER'S DATA FROM SYMBOL LIBRARY 228 214 READ(1#J,215,END=240,ERR=240)(LINBF(LINCNT,IPOS,I),I=1,8) 229 215 FORMAT(8A7) 230 C 231 C LOOP BACK FOR ANOTHER CHARACTER 232 GO TO 271 233 C 234 C BLANK OUT THE PARTS OF THE BUFFER NOT USED TO HOLD CHARACTERS 235 230 IF(INDENT)252,252,249 236 249 DO 250 KL=1,INDENT 237 DO 250 KM=1,8 238 250 LINBF(LINCNT,KL,KM)= BLANKS 239 C 240 C CHECK IF THERE IS BLANK SPACE AT END OF LINE 241 252 IF(12-(INDENT+ICRCNT))262,262,256 242 256 DO 258 KL=INDENT+ICRCNT+1,12 243 DO 258 KM=1,8 244 C 245 C USE NULLS INSTEAD OF BLANKS TO CONSERVE SPACE. 246 258 LINBF(LINCNT,KL,KM)= 0 247 C 248 C IF FASTFORM (INSIGN)AND MAX. NUMBER OF LINES IS NOT 249 C EXCEEDED GO BACK FOR ANOTHER LINE. 250 262 IF((FFORM).AND.(LINCNT.LT.10))GO TO 200 251 C 252 C CLEAR THE INSIGN FLAG SO ERASES AND INLINES WONT LOOP 253 FFORM=.FALSE. 254 C 255 C JUMP BACK TO ERASE IF WE CAME FROM THERE 256 IF(ERASE)GO TO 125 257 C 258 C LOOP BACK FOR ANOTHER COMMAND 259 GO TO 1 260 C 261 C ERROR TRAP FOR TROUBLE READING SYMBOL LIBRARY. 262 240 WRITE(5,241) 263 241 FORMAT(' ?CANNOT ACCESS SYMBOL DATA FILE SYS:SIGN.LIB ') 264 C 265 C LOOP BACK FOR ANOTHER COMMAND SIGN.F4 F40 V23 13-NOV-72 14:04 PAGE 6 266 GO TO 1 267 C 268 C 269 C 270 C 271 C 272 C ***H*** 273 C THIS IS THE HELP TEXT. 274 300 WRITE(5,301) 275 301 FORMAT(' SIGN MAKER V.4',/,' COMMANDS:'/, 276 2' INLINE-TYPED TO INPUT EACH LINE OF A SIGN',/, 277 3' INSIGN- TYPED TO INPUT A WHOLE SIGN, RATHER THAN',/, 278 3' A LINE AT A TIME.',/, 279 4' PRINT-PRINTS ASSEMBLED SIGN AND CLOSES FILE',/, 280 5' DEFSYM-LETS USER DEFINE A CHARACTER OR SYMBOL',/, 281 7' ERASE N- TO REPLACE THE NTH LINE OF A SIGN',/, 282 7' WIPE- ZEROES OUT THE SIGN IN CORE AND RESETS LINE-COUNTER',/, 283 8' H-THIS TEXT',/, 284 9' EXIT -TO EXIT FROM THE PROGRAM',/, 285 1' PARAMETERS:',/, 286 2' 12 CHARS/LINE 10 LINES/SIGN',/, 287 3' THE USER DEFINED SYMBOL IS',/, 288 4' INCLUDED IN A SIGN BY TYPE THE CHARACTER "@" IN ITS',/, 289 5' PLACE WHEN YOU INPUT A STRING TO "INLINE"',/, 290 6' OR "INSIGN" AFTER USING "DEFSYM"'/, 291 7' FURTHER INSTRUCTIONS FOR USE OF "INSIGN " AND "DEFSYM"',/, 292 8' WILL BE OFFERED AT APPROPRIATE TIMES.',/, 293 7' ALL SIGNS ARE CENTERED AUTOMATICALLY'/) 294 C 295 WRITE(5,350) 296 350 FORMAT(' DO YOU WISH TO SEE CHARACTER SET?(Y OR N)',$) 297 READ(5,302)IANSW 298 302 FORMAT(A1) 299 C 300 C LOOP BACK FOR ANOTHER COMMAND 301 IF(IANSW.EQ.'N') GO TO 1 302 WRITE(5,303)ISYM 303 303 FORMAT(1X,30A2,/,1X,32A2,/) 304 C 305 C LOOP BACK FOR ANOTHER COMMAND 306 GO TO 1 307 C 308 C 309 C 310 C 311 C 312 C ***PRINT*** 313 C 314 C CHECK TO SEE IF THERE IS A SIGN OPEN (IPRFLG=0) 315 400 IF(IPRFLG)401,401,433 316 433 WRITE(5,444) 317 444 FORMAT(' ?NOTHING TO PRINT',/) 318 C SIGN.F4 F40 V23 13-NOV-72 14:04 PAGE 7 319 C LOOP BACK FOR ANOTHER COMMAND 320 GO TO 1 321 C 322 C SKIP LINES ON PAGE TO CENTER SIGN 323 401 ISKIP=(60-(LINCNT*12))/2 324 C 325 C SPACING, USED TO ADJUST SO THAT CHARRIAGE CONTROL IS NOT 326 C NESS. 327 WRITE(LPT,404) 328 WRITE(LPT,404) 329 IF (ISKIP)410,410,402 330 402 DO 403 KK=1,ISKIP-2 331 403 WRITE(LPT,404) 332 404 FORMAT(' ') 333 C 334 C ACTUAL WRITING TAKES PLACE 335 410 DO 499 J=1,LINCNT 336 C 337 C CHECK FOR ODD NUMBER OF CHARACTERS (USE SECOND FORMAT) 338 IF(INDREM(J))415,415,450 339 415 WRITE(LPT,408)((LINBF(J,K,I),K=1,12),I=1,8) 340 408 FORMAT(8(' ',7X,12(A7,3X)/)/) 341 C 342 C NO SKIP AFTER FIFTH LINE BECAUSE PAGE THROW DOES THAT 343 IF(J.NE.5)WRITE(LPT,482) 344 482 FORMAT(' ',/,' ') 345 GO TO 499 346 450 WRITE(LPT,455)((LINBF(J,K,I),K=1,12),I=1,8) 347 C 348 C THIS IS THE SECOND FORMAT 349 455 FORMAT(8(' ',11X,12(A7,3X)/)/) 350 IF(J.NE.5)WRITE(LPT,482) 351 499 CONTINUE 352 C 353 C CLOSE THE FILE 354 C 355 C THIS RELEASE IS DONE BECAUSE USER MAY CONTROL C OUT 356 C OF PROGRAM, AND AN END-FILE LOSES THE LAST BIT OF THE BUFFER. 357 CALL RELEAS(LPT) 358 C 359 C INITIALIZE LINE COUNTER 360 LINCNT=0 361 C 362 C SET IPRFLG TO INDICATE THAT A PRINT WAS JUST DONE 363 IPRFLG=1 364 C 365 C LOOP BACK FOR ANOTHER COMMAND 366 GO TO 1 367 C 368 C 369 C 370 C 371 C SIGN.F4 F40 V23 13-NOV-72 14:04 PAGE 8 372 C 373 C-----OPENING PROCEDURE USED BY BOTH INLINE AND INSIGN 374 C-----WHEN THERE IS NO OPEN FILE (I.E. A PRINT WAS DONE) 375 C 376 C INCREMENT SIGN COUNTER BY 1 377 500 ISICNT=ISICNT+1 378 C 379 C CLEAR IPRFLG TO INDICATE THERE IS AN OPEN SIGN 380 508 IPRFLG=0 381 C 382 C MAKE A NAME FOR THE FILE. 383 ENCODE(5,504,INAME)ISICNT 384 504 FORMAT('SGN',I2) 385 C 386 C OPEN UP THE FILE 387 CALL OFILE(LPT,INAME) 388 C 389 C JUMP BACK TO INLINE OR INSIGN. 390 GO TO (203,805),IRET 391 C 392 C 393 C 394 C 395 C 396 C 397 C 398 C ***EXIT*** 399 C 400 C CHECK FOR OPEN SIGNS 401 600 IF(IPRFLG.EQ.1.OR. LINCNT.EQ.0)GO TO 605 402 WRITE(5,537)ISICNT 403 537 FORMAT(' ?YOU HAVE NOT PRINTED SIGN',I3,' YET') 404 C 405 C LOOP BACK FOR ANOTHER COMMAND 406 GO TO 1 407 605 WRITE(5,601)ISICNT 408 601 FORMAT(' TOTAL OF ',I3,' SIGNS CREATED') 409 STOP 410 C 411 C 412 C 413 C 414 C 415 C 416 C 417 C ***DEFSYM*** 418 C 419 C ASK IF THEY WANT INSTRUCTIONS 420 700 WRITE(5,804) 421 READ(5,4)INDO 422 IF(INDO.EQ.'N')GO TO 780 423 WRITE(5,710) 424 710 FORMAT(' EACH SYMBOL IS 7 CHARACTERS ACROSS AND 8',/, SIGN.F4 F40 V23 13-NOV-72 14:04 PAGE 9 425 1 ' CHARACTERS HIGH. YOUR DEFINED SYMBOL IS CALLED BY',/, 426 2 ' TYPING THE CHARACTER "@" IN ITS PLACE WHEN YOU',/, 427 3 ' INPUT A STRING TO THE COMMAND "INLINE". NOW TYPE IN A',/, 428 4 ' ROW OF YOUR SYMBOL AFTER EACH "^" APPEARS.',/, 429 5 ' ( AFTER EACH ROW)') 430 780 WRITE(5,785) 431 785 FORMAT(' 1234567',/) 432 C 433 C GET THE USER DEFINED SYMBOL FROM THE TTY 434 DO 725 KL=1,8 435 WRITE(5,713)KL 436 713 FORMAT('+',I1,'^',$) 437 725 READ(5,715)NEWSYM(KL) 438 715 FORMAT(A7) 439 WRITE(5,730) 440 730 FORMAT(' NEW SYMBOL DEFINED'/) 441 C 442 C SET DEFLG TO INDICATE THAT THERE IS A USER DEFINED SYMBOL 443 DEFLG=.TRUE. 444 C 445 C LOOP BACK FOR ANOTHER COMMAND 446 GO TO 1 447 C 448 C INSIGN AND INLINE JUMP HERE WHEN '@' IS FOUND IN INPUT STRING 449 C 450 C CHECK IF THERE IS A USER DEFINED SYMBOL 451 750 IF(.NOT.DEFLG)GO TO 790 452 C 453 C TRANSFER USER SYMBOL TO CHARACTER BUFFER 454 DO 775 J=1,8 455 775 LINBF(LINCNT,IPOS,J)=NEWSYM(J) 456 C 457 C RETURN TO INLINE PORTION. 458 GO TO 271 459 790 WRITE(5,793) 460 793 FORMAT(' "@" MUST NOT APPEAR IN AN INPUT STRING UNTIL',/, 461 1 ' YOU HAVE GONE THRU DEFSYM DIALOG TO DEFINE THE SYMBOL',/, 462 2 ' THE LINE HAS NOT BEEN COMPILED.'/) 463 GO TO 298 464 C 465 C 466 C 467 C 468 C 469 C ***INSIGN*** 470 C 471 C IF A PRINT WAS JUST DONE JUMP TO OPENING ROUTINE. 472 800 IF(IPRFLG)803,805,803 473 803 IRET=2 474 GO TO 500 475 C 476 C CHECK IF USER HAS SAID HE DOESN'T WANT INSRUCTIONS 477 805 IF(NOFLG)GO TO 850 SIGN.F4 F40 V23 13-NOV-72 14:04 PAGE 10 478 WRITE(5,804) 479 804 FORMAT(' INSTRUCTIONS? (Y OR N):',$) 480 READ(5,806)INDO 481 806 FORMAT(A1) 482 WRITE(5,801) 483 801 FORMAT(' ') 484 IF(INDO.EQ.'N')GO TO 840 485 WRITE(5,810) 486 810 FORMAT(' FAST FORM OF INLINE COMMAND',/, 487 1' KEEPS YOU IN INLINE MODE. TYPE IN A LINE OF THE',/, 488 2' SIGN AFTER EACH "LINE NO.:" APPEARS. TO RETURN TO',/, 489 4' COMMAND LEVEL, TYPE A ^Z. ANY ERROR RETURNS',/, 490 5' YOU TO COMMAND MODE . THERE IS AN AUTOMATIC',/, 491 1' RETURN TO COMMAND MODE AFTER THE',/, 492 2' TENTH LINE OF A SIGN IS INPUT.'//) 493 C 494 C SET FLAG TO INDICATE THAT USER HAS EITHER HAD INSTRUCTION 495 C OR DOESN'T WANT IT 496 840 NOFLG=.TRUE. 497 C 498 C SET FAST FORM FLAG FOR INSIGN TO USE INLINE 499 850 FFORM=.TRUE. 500 C 501 C FORMAT USED BY INLINE WHEN FFORM IS SET 502 855 FORMAT('+LINE ',I2,': ',$) 503 C 504 C JUMP FROM HERE INTO THE INLINE PORTION. 505 GO TO 200 506 C 507 C 508 C 509 C 510 C 511 C ***FOR EXPANSION*** 512 900 CONTINUE 513 C 514 C LOOP BACK FOR ANOTHER COMMAND 515 GO TO 1 516 C 517 C 518 C 519 C 520 C 521 C 522 C *** WIPE *** 523 1000 LINCNT=0 524 C 525 C LOOP BACK FOR ANOTHER COMMAND 526 GO TO 1 527 END CONSTANTS SIGN.F4 F40 V23 13-NOV-72 14:04 PAGE 11 0 000000000001 1 000000000070 2 516230747134 3 462230220100 4 000000000000 5 201004020100 6 401004020100 7 471004020100 SUBPROGRAMS FORSE. JOBFF DEFINE ALPHO. ALPHI. INTO. INTI. END. ERR. RECNO. RANAC. RELEAS VADDR. OFILE EXIT SCALARS PROJ 2053 PROG 2054 ISICNT 2055 IPRFLG 2056 LPT 2057 BLANKS 2060 FFORM 2062 ERASE 2063 DEFLG 2064 NOFLG 2065 NERD 2066 INDO 2067 J 2070 LINCNT 2071 ITEMP 2072 ICRCNT 2073 IRET 2074 KK 2075 INDENT 2076 IPOS 2077 I 2100 KL 2101 KM 2102 IANSW 2103 ISKIP 2104 K 2105 INAME 2106 ARRAYS LINBF 2107 NEWSYM 5707 IBUFF 5727 ISYM 5744 INDREM 6042 ICMND 6054 BLANKS 19 50 238 DEFINE 54 DEFLG 22 51 443 451 ERASE 22 51 128 133 187 256 FFORM 22 51 168 189 250 253 499 I 228 339 346 IANSW 297 301 IBUFF 20 176 180 196 218 222 223 ICMND 20 44 74 ICRCNT 155 208 211 215 218 222 223 241 242 INAME 383 387 INDENT 201 215 235 236 241 242 INDO 66 70 74 77 103 104 110 114 115 116 127 421 422 480 484 INDREM 20 204 205 338 IPOS 215 228 455 IPRFLG 30 95 159 315 363 380 401 472 IRET 162 390 473 ISICNT 30 169 377 383 402 407 ISKIP 323 329 330 ISYM 20 35 222 302 ITEMP 124 132 J 73 74 85 221 222 228 335 338 339 343 346 350 454 455 K 339 346 KK 195 196 198 201 205 208 330 KL 236 238 242 246 434 435 437 KM 237 238 243 246 LINBF 19 20 228 238 246 339 346 455 LINCNT 95 115 124 127 132 146 149 169 172 188 204 205 228 238 246 250 323 335 360 401 455 523 LPT 48 327 328 331 339 343 346 350 357 387 NERD 54 NEWSYM 19 20 23 437 455 NOFLG 22 51 477 496 OFILE 387 PROG 26 54 PROJ 26 54 RELEAS 357 1P 62 70 82 100 120 136 192 259 266 301 306 320 366 406 446 515 526 2P 57 58 79 3P 62 63 4P 66 67 421 5P 73 74 6P 74 85 7P 77 78 100P 85 95 101P 95 103 102P 108 109 103P 96 97 106P 110 111 111P 114 115 116 112P 116 117 113P 103 105 117P 104 114 120P 115 124 125P 132 187 256 126P 125 126 200P 85 129 146 250 505 202P 159 162 203P 159 168 390 204P 169 170 205P 176 177 206P 181 207P 181 182 210P 221 222 211P 223 224 214P 222 228 215P 228 229 230P 208 235 240P 228 262 241P 262 263 242P 150 151 249P 235 236 250P 236 237 238 252P 235 241 256P 241 242 258P 242 243 246 262P 241 250 270P 195 197 271P 208 232 458 272P 208 211 276P 180 195 280P 168 172 283P 171 176 290P 196 201 297P 149 155 298P 152 176 187 225 463 300P 85 274 301P 274 275 302P 297 298 303P 302 303 350P 295 296 400P 85 315 401P 315 323 402P 329 330 403P 330 331 404P 327 328 331 332 408P 339 340 410P 329 335 415P 338 339 433P 315 316 444P 316 317 450P 338 346 455P 346 349 482P 343 344 350 499P 335 345 351 500P 165 377 474 504P 383 384 508P 380 537P 402 403 600P 85 401 601P 407 408 605P 401 407 700P 85 420 710P 423 424 713P 435 436 715P 437 438 725P 434 437 730P 439 440 750P 218 451 775P 454 455 780P 422 430 785P 430 431 790P 451 459 793P 459 460 800P 85 472 801P 482 483 803P 472 473 804P 420 478 479 805P 390 472 477 806P 480 481 810P 485 486 840P 484 496 850P 477 499 855P 172 502 900P 85 512 1000P 85 523