Compucolor.org – Virtual Media

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

	LOGICAL FUNCTION ALLDIG(STR)
	LOGICAL TYPE
	BYTE I,STR(80)
	IF(.NOT.(STR(1).EQ.-2))GOTO 23000
	ALLDIG=0
	RETURN
23000	I=1
23002	IF(.NOT.(STR(I).NE.-2))GOTO 23004
	IF(.NOT.(TYPE(STR(I)).NE.2))GOTO 23005
	ALLDIG=0
	RETURN
23005	CONTINUE
23003	I=1+1
	GOTO 23002
23004	ALLDIG=X'FF'
	RETURN
	END

	INTEGER FUNCTION CTOI(IN,I)
	INTEGER IN(1)
	INTEGER INDEX,I,D
	BYTE DIGITS(11)
	COMMON /CDIG/DIGITS
C
23051	IF(.NOT.(IN(I).EQ.' '.OR.IN(I).EQ.9)) GOTO 23052
	I = I+1
	GOTO 23051
23052	CONTINUE
	CTOI = 0
23053	IF(.NOT.(IN(I).NE.-2)) GOTO 23055
	D = INDEX(DIGITS,IN(I),1)
	IF(.NOT.(D.EQ.0)) GOTO 23056
	GOTO 23055
23056	CONTINUE
	CTOI = 10*CTOI+D-1
23054	I = I+1
	GOTO 23053
23055	CONTINUE
	RETURN
	END

	LOGICAL FUNCTION EQUAL(STR1,STR2)
	INTEGER I
	BYTE STR1(1),STR2(1)
C
	I = 1
23089	IF(.NOT.(STR1(I).EQ.STR2(I))) GOTO 23091
	IF(.NOT.(STR1(I).EQ.-2.AND.STR2(I).EQ.-2)) GOTO 23092
	EQUAL = X'FF'
	RETURN
23092	CONTINUE
23090	I = I+1
	GOTO 23089
23091	CONTINUE
	EQUAL = 0
	RETURN
	END

	INTEGER FUNCTION INDEX(STR,C,I)
	BYTE STR(1),C
	INDEX = I
23234	IF(.NOT.(STR(INDEX).NE.-2)) GOTO 23236
	IF(.NOT.(STR(INDEX).EQ.C)) GOTO 23237
	RETURN
23237	CONTINUE
23235	INDEX = INDEX+1
	GOTO 23234
23236	CONTINUE
	INDEX = 0
	RETURN
	END

	INTEGER FUNCTION LENGTH(STR)
	BYTE STR(1)
C
	LENGTH = 0
23257	IF(.NOT.(STR(LENGTH+1).EQ.-2)) GOTO 23259
23258	LENGTH = LENGTH+1
	GOTO 23257
23259	CONTINUE
	RETURN
	END

	SUBROUTINE SCOPY(FROM,I,TO,J)
	INTEGER I,J,K1,K2
	BYTE FROM(1),TO(1)
C
	K2 = J
	K1 = I
23456	IF(.NOT.(FROM(K1).NE.-2)) GOTO 23458
	TO(K2) = FROM(K1)
	K2 = K2+1
23457	K1 = K1+1
	GOTO 23456
23458	CONTINUE
	TO(K2) = -2
	RETURN
	END

	LOGICAL FUNCTION TYPE(C)
	BYTE C
	IF(.NOT.(C.GE.'0'.AND.C.LE.'9')) GOTO 23461
	TYPE = 2
	GOTO 23462
23461	CONTINUE
	IF(.NOT.(C.GE.'A'.AND.C.LE.'Z')) GOTO 23463
	TYPE = 1
	GOTO 23464
23463	CONTINUE
	TYPE = C
23464	CONTINUE
23462	CONTINUE
	RETURN
	END