File GETALT.FT (FORTRAN source file)

Directory of image this file is from
This file as a plain text file

	SUBROUTINE GETSYM
C  PASCAL-S PARSER  VERSION VOM 20.12.80
	COMMON DIN,FIN,NERR,IERRS,LINE,LL,ICC,ICH,LC
	COMMON ISYM,LEN,IWORD,IPOINT,ID,IAL
	COMMON NAME,IRZEIG,LZEIG,MAX,IL,ISTAB
	COMMON MAXE,MINE,KMAX,NMAX,ISX,LLENG,ISLENG,ISMAX
	DIMENSION LINE(80),LZEIG(200),IRZEIG(200),NAME(200,10)
	DIMENSION IWORD(29,10),IPOINT(26,2),ID(10),LEN(29)
	DIMENSION IERRS(61,3),ISTAB(600),IZEIL(40)
	IB=0
5	IF(ICH+2016)15,10,15
10	CONTINUE
S	JMS GETCH
	GOTO 5
15	IF(ICH+1504)40,20,40
20	CONTINUE
S	JMS GETCH
	IF(ICH+1376)25,30,25
25	IB=1
	ICC=ICC-1
	GOTO 5
30	ICHVOR=ICH
S	JMS GETCH
	IF(ICHVOR+1376)30,35,30
35	IF(ICH+1440)30,37,30
37	CONTINUE
S	JMS GETCH
	GOTO 5
40	WRITE(4,650)ICC
650	FORMAT(I4,' ')
	IF(IB-1)43,42,43
42	ICH=-1504
43	IF(ICH-96)100,45,45
45	IF(ICH-1696)50,50,100
50	IL=0
52	IF(IAL-IL)54,54,53
53	IL=IL+1
	ID(IL)=ICH
54	CONTINUE
S	JMS GETCH
	IF(96-ICH)55,55,58
55	IF(ICH-1696)52,52,58
58	IF(ICH+992)47,59,59
59	IF(ICH+416)52,52,47
47	I1=IL+1
	DO 31 I=I1,10
31	ID(I)=-2016
	J=(ID(1)-32)/64
	M=IPOINT(J,1)
	N=IPOINT(J,2)
	DO 60 I=M,N
	IF(IL-LEN(I))60,98,60
98	DO 70 I1=2,10
	IF(ID(I1)-IWORD(I,I1))60,70,60
70	CONTINUE
	ISYM=50+I
	RETURN
60	CONTINUE
	ISYM=1
	RETURN
100	IF(ICH+992)180,105,105
105	IF(ICH+416)106,106,180
106	K=0
	INUM=0
	ISYM=2
108	INUM=INUM*10+(ICH+992)/64
	K=K+1
S	JMS GETCH
	IF(ICH+992)115,110,110
110	IF(ICH+416)108,108,115
115	IF(K-KMAX)116,116,120
116	IF(INUM-NMAX)117,117,120
120	CALL FEHL(21)
	INUM=0
	K=0
117	RNUM=FLOAT(INUM)
	IF(ICH+1120)140,121,140
121	CONTINUE
S	JMS GETCH
	IF(ICH+1120)124,123,124
123	ICC=ICC-1
	GOTO 140
124	ISYM=3
	K=0
127	IF(ICH+992)140,128,128
128	IF(ICH+416)130,130,140
130	K=K-1
	RNUM=10.*RNUM+FLOAT((ICH+992)/64)
S	JMS GETCH
	GOTO 127
140	IF(ICH-352)170,141,170
141	SYM=3
S	JMS GETCH
	IF(ICH+1312)150,142,150
142	CONTINUE
S	JMS GETCH
	GOTO 155
150	IF(ICH+1184)155,151,155
151	CONTINUE
S	JMS GETCH
	I=-1
155	IF(ICH+992)60,156,156
156	IF(ICH+416)157,157,160
157	J=J*10+(ICH+992)/64
S	JMS GETCH
	GOTO 155
160	J=J*I+K
	IF(J-MAXE)161,161,165
161	IF(J-MINE)165,170,170
165	CALL FEHL(21)
	J=0
170	RNUM=RNUM*10.**J
	RETURN
180	INDEX=-(ICH+32)/64
	IF(INDEX+28)182,184,186
182	IF(INDEX+30)190,188,190
188	ISYM=19
	GOTO 500
184	ISYM=18
	GOTO 500
190	WRITE(1,191)ICH
191	FORMAT('UNZULAESSIGES ZEICHEN:  ',A1)
	GOTO 500
186	IF(INDEX-16)195,280,300
195	IF(INDEX)190,190,220
220	GOTO (230,240,250,260,270),INDEX
230	CONTINUE
S	JMS GETCH
	IF(ICH+160)232,231,232
231	ISYM=15
	GOTO 500
232	ISYM=14
	RETURN
240	ISYM=16
	GOTO 500
250	CONTINUE
S	JMS GETCH
	IF(ICH+160)252,251,252
251	ISYM=13
	GOTO 500
252	IF(ICH+96)255,253,255
253	ISYM=17
	GOTO 500
255	ISYM=12
	RETURN
260	ISYM=23
	GOTO 500
270	CONTINUE
S	JMS GETCH
	IF(ICH+160)273,271,273
271	ISYM=20
	GOTO 500
273	ISYM=24
	RETURN
280	ISYM=22
	GOTO 500
300	IF(INDEX-24)305,400,190
305	IF(INDEX-17)190,310,320
310	CONTINUE
S	JMS GETCH
	IF(ICH+1120)312,311,312
311	ISYM=25
	GOTO 500
312	ISYM=21
	RETURN
320	ISYM=INDEX-12
	GOTO 500
400	K=0
	IB=1
	ISYM=5
S	JMS GETCH
405	K=K+1
	IF(K-LLENG)407,407,406
406	CALL FATAL (8)
407	IF(K+ISX-ISMAX)415,415,410
410	CALL FATAL (7)
415	IF(ICH+1568)418,416,418
416	CONTINUE
S	JMS GETCH
	IF(ICH+1568)419,418,419
418	ISTAB(K+ISX)=ICH
S	JMS GETCH
	GOTO 420
419	IB=0
420	IF(IB)405,425,405
425	ISLENG=K-1
	IF(ISLENG)440,430,440
430	CALL FEHL (365)
	ISYM=65
	GOTO 450
440	IF(ISLENG-1)450,441,450
441	ISYM=4
	INUM=ISX
	ISX=ISX+ISLENG
450	RETURN
500	CONTINUE
S	JMS GETCH
	RETURN
SGETCH,	0
	IF(ICC-LL)1100,1020,1020
1020	IF(LINE(LL)+1120)1030,1025,1030
1025	IEND=IEND+1
	ISYM=21
	RETURN
1030	ICC=0
	LL=80
	LC=LC+1
	WRITE(4,1150)LC
1150	FORMAT('-1 '/I4,' ')
	READ(4,1031)(LINE(I),I=1,80)
1031	FORMAT(80A1)
	IEND=IEND+1
1049	IF(LINE(LL)+2016)1100,1050,1100
1050	LL=LL-1
	GOTO 1049
1100	ICC=ICC+1
	ICH=LINE(ICC)
S	JMP I GETCH
	END



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search