Compucolor.org – Virtual Media

Listing of file='INCL.FOR;06' on disk='vmedia/ratfor-sector.ccvf'

	BYTE LINE(80),INFILE(20),OUTFIL(20),INCNAM(20)
	BYTE CRT,LUN,MAIN
	BYTE K,PNT,LEN
	BYTE SPACE,PERCNT
	DATA SPACE,PERCNT/' ','%'/
	DATA CRT/3/
C
	WRITE(CRT,105)
  105	FORMAT('+INPUT FILE NAME: ')
	READ(CRT,110)INFILE
  110	FORMAT(80A1)
	CALL OPEN(7,INFILE)
	WRITE(CRT,115)
  115	FORMAT('+OUTPUT FILE NAME: ')
	READ(CRT,110)OUTFIL
	CALL OPEN(10,OUTFIL)
	LUN = 7
	MAIN = 1
  200	READ(LUN,110,END=1000,ERR=5000)LINE
	IF(LINE(2).NE.PERCNT)GOTO 500
	PNT = 3
	K   = 1
  210	IF(LINE(PNT).NE.SPACE) GO TO 220
	PNT = PNT+1
	GO TO 210
  220	IF(LINE(PNT).EQ.SPACE) GO TO 230
	INCNAM(K) = LINE(PNT)
	PNT = PNT+1
	K = K+1
	GO TO 220
  230	INCNAM(K) = SPACE
	CALL OPEN(8,INCNAM)
	LUN = 8
	MAIN = 0
	GO TO 200
  500	CALL TRIM(LINE,LEN)
	WRITE(CRT,510)(LINE(K),K=1,LEN)
  510	FORMAT(1X,80A1)
	WRITE(10,110)(LINE(K),K=1,LEN)
	GO TO 200
 1000	IF(MAIN.EQ.0) GO TO 1050
	ENDFILE 7
	STOP
 1050	ENDFILE 8
	LUN = 7
	MAIN = 1
	GO TO 200
 5000	WRITE(3,5005)
 5005	FORMAT(' FILE I/O ERROR - EXITING')
	STOP
	END

	SUBROUTINE TRIM(LINE,LEN)
	BYTE LINE(80),LEN,K,J,SPACE
	DATA SPACE/' '/
	DO 100 K=1,80
	J = 81-K
	WRITE(3,10)LINE(J)
   10	FORMAT('+ ',I3)
	IF(LINE(J).NE.SPACE) GO TO 200
  100	CONTINUE
	LEN = 0
	RETURN
  200	LEN = 81-K
	RETURN
	EN