1: /
2: /
3:
4: / f31 - pass3 dispatcher
5: /
6: / main scan loop for pass3
7: / picks up executable statements
8: /
9:
10: .globl pass3
11: .globl ifstmt
12:
13: .globl isagn
14: .globl signon
15: .globl signoff
16: .globl getline
17: .globl lookup
18: .globl sasgn
19: .globl error
20: .globl perror
21: .globl doend
22: .globl sform
23: .globl sdata
24: .globl sdo
25: .globl sassi
26: .globl scall
27: .globl scont
28: .globl sretu
29: .globl sgoto
30: .globl sif
31: .globl spaus
32: .globl sstop
33: .globl sread
34: .globl sprin
35: .globl swrit
36: .globl srewi
37: .globl sback
38: .globl sendf
39: .globl blocks
40: .globl blockp
41: .globl code
42: .globl ptemp
43: .globl dotabp
44:
45: pass3:
46: jsr r5,signon; 3
47: br 2f
48:
49: scan3:
50: jsr r5,getline
51: 2:
52: mov $blocks,blockp
53: mov $line,r1
54: mov r1,r2
55: jsr r5,lookup; fmttab
56: br 2f
57: mov r0,-(sp)
58: jsr r5,isagn
59: br 1f
60: mov (sp)+,r0
61: jsr r5,*fmtlst(r0)
62: br scan3
63: 1:
64: tst (sp)+
65: 2:
66: mov efno,r0
67: beq 1f
68: jsr r5,ptemp; 's; efno; line
69: jsr r5,code
70: <.%d:\n\0>; .even
71: r0
72: 1:
73: jsr r5,isagn
74: br 1f
75: mov r1,r2
76: jsr r5,lookup; stmtab
77: br 2f
78: mov r2,r1
79: jsr r5,*sublst(r0)
80: br 3f
81: 1:
82: jsr r5,sasgn
83: br 3f
84: 2:
85: jsr r5,error; 101.
86: 3:
87: cmp progt,$6
88: bne 1f
89: jsr r5,error; 50. / execut in block data
90: 1:
91: jsr r5,perror
92: mov efno,r0
93: beq scan3
94: jsr r5,doend
95: br scan3
96:
97: ifstmt:
98: mov $blocks,blockp
99: jsr r5,isagn
100: br 1f
101: mov r1,r2
102: jsr r5,lookup; stmtab1
103: br 2f
104: mov r2,r1
105: cmp r0,$4 / don't allow end
106: beq 2f
107: jmp *sublst1(r0)
108: 1:
109: jmp sasgn
110: 2:
111: jsr r5,error; 101.
112: rts r5
113:
114: send:
115: tst dotabp
116: beq 1f
117: clr r0
118: jsr r5,doend
119: br send
120: 1:
121: tst progt
122: bne 1f
123: jsr r5,sstop
124: br 2f
125: 1:
126: cmp progt,$6 / block data
127: beq 2f
128: jsr r5,sretu
129: 2:
130: jsr r5,perror
131: jsr r5,signoff; 3
132:
133: sublst:
134: sdo
135: sublst1:
136: sif
137: sendf
138: send
139: sassi
140: scall
141: scont
142: sretu
143: sgoto
144: spaus
145: sstop
146: sread
147: sprin
148: swrit
149: srewi
150: sback
151: fmtlst:
152: sform
153: sdata
154: stmtab:
155: <do\0>
156: stmtab1:
157: <if(\0>
158: <endfile\0>
159: <end\0> / keep in this spot!!!
160: <assign\0>
161: <call\0>
162: <continue\0>
163: <return\0>
164: <goto\0>
165: <pause\0>
166: <stop\0>
167: <read\0>
168: <print\0>
169: <write\0>
170: <rewind\0>
171: <backspace\0>
172: <\0>
173:
174: fmttab:
175: <format\0>
176: <data\0>
177: <\0>
178: .even
Defined functions
ifstmt
declared in line
11; defined in line
97; used 3 times
pass3
declared in line
10; defined in line
45; used 1 times
scan3
defined in line
49; used 3 times
send
defined in line
114; used 2 times