Google
 

Trailing-Edge - PDP-10 Archives - decuslib10-02 - 43,50261/sign.lst
There are no other files named sign.lst in the archive.
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 ' (<CR> 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