SUBROUTINECALLNO(STR,LN) ! 1 INTEGERLEGAL(3),MODE,P,ALPHA(2,4),NUMER(3,4),EXT ! 13 BYTESTR(132),TEM(132),C,SPACE,POINT,ZERO,NINE,A,Z,NUL ! 14 DATASPACE,POINT,ZERO,NINE,A,Z,NUL/' ','.','0','9','A','Z',0/ ! 15 DATALEGAL/2,1,1/ ! 16 MODE=0 ! 19 N=1 ! 20 DO23000I=1,3 ! 21 DO23003J=1,2 ! 22 ALPHA(J,I)=0 ! 23 NUMER(J,I)=0 ! 24 23005 CONTINUE ! 25 23003 CONTINUE ! 26 23004 CONTINUE ! 26 NUMER(3,I)=-1 ! 26 23002 CONTINUE ! 27 23000 CONTINUE ! 28 23001 CONTINUE ! 28 P=1 ! 28 C=STR(P) ! 29 ALPHA(1,N)=P ! 30 CONTINUE ! 31 23006 CONTINUE ! 31 IF(.NOT.(MODE.EQ.0))GOTO23010 ! 32 IF(.NOT.(C.GE.A.AND.C.LE.Z))GOTO23014 ! 33 ALPHA(2,N)=ALPHA(2,N)+1 ! 34 P=P+1 ! 35 C=STR(P) ! 36 23017 CONTINUE ! 37 23016 GOTO23015 ! 38 23014 CONTINUE ! 38 NUMER(1,N)=P ! 39 MODE=1 ! 40 23018 CONTINUE ! 41 23015 CONTINUE ! 42 23013 CONTINUE ! 42 23012 GOTO23011 ! 43 23010 CONTINUE ! 43 IF(.NOT.((C.GE.ZERO.AND.C.LE.NINE).OR. C.EQ.POINT))GOTO23020 ! 44 IF(.NOT.(C.EQ.POINT.AND.NUMER(3,N).EQ.-1))GOTO23024 ! 45 NUMER(3,N)=NUMER(2,N) ! 46 23024 CONTINUE ! 47 NUMER(2,N)=NUMER(2,N)+1 ! 47 P=P+1 ! 48 C=STR(P) ! 49 23023 CONTINUE ! 50 23022 GOTO23021 ! 51 23020 CONTINUE ! 51 N=N+1 ! 52 ALPHA(1,N)=P ! 53 MODE=0 ! 54 23027 CONTINUE ! 55 23021 CONTINUE ! 56 23019 CONTINUE ! 56 23011 CONTINUE ! 57 IF(.NOT.(C.EQ.NUL.OR. P.GT.LN.OR. N.GT.3.OR. C.EQ.SPACE))GOTO23028 ! 57 GOTO23007 ! 58 23028 CONTINUE ! 59 23009 CONTINUE ! 59 23008 GOTO23006 ! 60 23007 CONTINUE ! 60 EXT=P ! 60 DO23031I=1,3 ! 61 IF(.NOT.(ALPHA(2,I).GT.LEGAL(I).OR. NUMER(2,I).EQ.0.OR. NUMER(3,I) ! 62 1.EQ.0))GOTO23034 ! 62 IF(.NOT.(ALPHA(1,I).NE.0))GOTO23038 ! 63 EXT=ALPHA(1,I) ! 64 23038 CONTINUE ! 65 DO23041J=I,3 ! 65 ALPHA(2,J)=0 ! 66 23041 CONTINUE ! 67 23042 CONTINUE ! 67 GOTO23032 ! 67 23037 CONTINUE ! 68 23034 CONTINUE ! 69 23033 CONTINUE ! 69 23031 CONTINUE ! 70 23032 CONTINUE ! 70 DO23043I=1,LN ! 70 TEM(I)=SPACE ! 71 23043 CONTINUE ! 72 23044 CONTINUE ! 72 IF(.NOT.(ALPHA(2,1).GT.0))GOTO23045 ! 72 P=1 ! 73 K=ALPHA(1,1) ! 74 DO23049J=1,ALPHA(2,1) ! 75 TEM(P)=STR(K) ! 76 K=K+1 ! 77 P=P+1 ! 78 23051 CONTINUE ! 79 23049 CONTINUE ! 80 23050 CONTINUE ! 80 TEM(3)=NUMER(2,1)+ZERO ! 80 IF(.NOT.(NUMER(3,1).GE.0))GOTO23052 ! 81 TEM(3)=NUMER(3,1)+Z ! 82 23052 CONTINUE ! 83 K=NUMER(1,1) ! 83 P=4 ! 84 CONTINUE ! 85 23055 IF(.NOT.(STR(K).GE.ZERO.AND.STR(K).LE.NINE.OR. STR(K).EQ.POINT))GO ! 85 1TO23056 ! 85 IF(.NOT.(STR(K).NE.POINT))GOTO23058 ! 86 TEM(P)=STR(K) ! 87 23058 CONTINUE ! 88 P=P+1 ! 88 K=K+1 ! 89 23057 CONTINUE ! 90 GOTO23055 ! 91 23056 CONTINUE ! 91 23048 CONTINUE ! 91 23045 CONTINUE ! 92 DO23061M=2,3 ! 92 IF(.NOT.(ALPHA(2,M).GT.0))GOTO23064 ! 93 P=M*8-5 ! 94 TEM(P)=STR(ALPHA(1,M)) ! 95 P=P+1 ! 96 K=NUMER(1,M) ! 97 DO23068I=1,NUMER(2,M) ! 98 IF(.NOT.(STR(K).EQ.POINT))GOTO23071 ! 99 K=K+1 ! 100 23074 CONTINUE ! 101 23073 GOTO23072 ! 102 23071 CONTINUE ! 102 TEM(P)=STR(K) ! 103 K=K+1 ! 104 P=P+1 ! 105 23075 CONTINUE ! 106 23072 CONTINUE ! 107 23070 CONTINUE ! 107 23068 CONTINUE ! 108 23069 CONTINUE ! 108 23067 CONTINUE ! 108 23064 CONTINUE ! 109 23063 CONTINUE ! 109 23061 CONTINUE ! 110 23062 CONTINUE ! 110 P=27 ! 110 K=EXT ! 111 CONTINUE ! 112 23076 IF(.NOT.(P.LE.LN.AND.K.LE.LN.AND.STR(K).NE.NUL))GOTO23077 ! 112 IF(.NOT.(STR(K).GE.ZERO.AND.STR(K).LE.NINE))GOTO23079 ! 113 N=0 ! 114 J=K ! 115 CONTINUE ! 116 23083 IF(.NOT.(STR(K).GE.ZERO.AND.STR(K).LE.NINE))GOTO23084 ! 116 N=N+1 ! 117 K=K+1 ! 118 23085 CONTINUE ! 119 GOTO23083 ! 120 23084 CONTINUE ! 120 IF(.NOT.(N.GT.3))GOTO23086 ! 120 DO23090I=1,N ! 121 TEM(P)=STR(J) ! 122 P=P+1 ! 123 J=J+1 ! 124 23092 CONTINUE ! 125 23090 CONTINUE ! 126 23091 CONTINUE ! 126 23089 CONTINUE ! 126 23088 GOTO23087 ! 127 23086 CONTINUE ! 127 CONTINUE ! 128 23094 CONTINUE ! 128 P=P-1 ! 129 IF(.NOT.(P.LT.26))GOTO23102 ! 130 GOTO23101 ! 130 23102 IF(.NOT.(TEM(P).NE.SPACE))GOTO23098 ! 130 23101 CONTINUE ! 130 GOTO23095 ! 131 23098 CONTINUE ! 132 23097 CONTINUE ! 132 23096 GOTO23094 ! 133 23095 CONTINUE ! 133 P=P+1 ! 133 DO23103I=1,4 ! 134 TEM(P)=ZERO ! 135 P=P+1 ! 136 23105 CONTINUE ! 137 23103 CONTINUE ! 138 23104 CONTINUE ! 138 M=P-1 ! 138 J=K-1 ! 139 DO23106I=1,N ! 140 TEM(M)=STR(J) ! 141 M=M-1 ! 142 J=J-1 ! 143 23108 CONTINUE ! 144 23106 CONTINUE ! 145 23107 CONTINUE ! 145 23093 CONTINUE ! 145 23087 CONTINUE ! 146 23082 CONTINUE ! 146 23081 GOTO23080 ! 147 23079 CONTINUE ! 147 TEM(P)=STR(K) ! 148 P=P+1 ! 149 K=K+1 ! 150 23109 CONTINUE ! 151 23080 CONTINUE ! 152 23078 CONTINUE ! 152 GOTO23076 ! 153 23077 CONTINUE ! 153 DO23110I=1,LN ! 153 STR(I)=TEM(I) ! 154 23110 CONTINUE ! 155 23111 CONTINUE ! 155 RETURN ! 155 END ! 156