|
|
1.1 root 1: #
2: # 00int.s
3: #
4: _ABORT:
5: halt #stop immediately!!!
6: _HALT:
7: movw $EHALT,_perrno
8: jbr error
9: _CALL:
10: cvtbl (r10)+,r0 #entry level of new proc
11: movl (r10)+,r1 #new entry point
12: pushr $R11|R10|R9 #save lino, lc, dp
13: moval _display[r0],r9
14: addl3 r1,ap,r10 #calc new entry point
15: jmp (r8)
16: _NODUMP:
17: moval iloop,r8 #disable profiling
18: incw _nodump
19: bicpsw $0xe0 #disable overflow checks
20: _BEG:
21: incl r10
22: cvtwl (r10)+,r0 #r0 has local variable size
23: bgtr framesize #current max is 32768 bytes
24: addl2 _addrsze,r9 #enter local scope
25: pushl (r9) #save old display value
26: pushl r10 #pointer to proc name
27: addl2 $8,r10 #skip over name text
28: movzwl (r10)+,r11 #set new lino
29: pushl r7 #save I/O info
30: pushl _file
31: subl2 $4,sp #space for top of frame pointer
32: movl sp,(r9) #set new display pointer
33: addl3 r0,sp,r1 #r1 points to new top of stack
34: clrl tempsize(r1) #check for memory (fault => not available)
35: movl r1,(sp) #set new top of stack pointer
36: movl r1,sp #allocate local variables
37: mnegl r0,r0 #r0 has amount of space to alloc
38: movc5 $0,(r2),$0,r0,(sp) #zero out local variables
39: jmp (r8)
40: framesize:
41: movw $EFRAMESIZE,_perrno
42: jbr error
43: _BLKBEG:
44: incl r10
45: mnegl (sp)+,r0 #r0 has size of block
46: cmpl *(r9),sp #check stack integrity
47: bneq stknemp
48: subl3 r0,sp,r1 #r1 points to new top of stack
49: clrl tempsize(r1) #check for memory (fault => not available)
50: movl r1,sp #allocate space
51: movl sp,*(dp) #set top of stack ptr
52: movc5 $0,(r2),$0,r0,(sp) #clear space
53: jmp (r8)
54: stknemp:
55: movw $ESTKNEMP,_perrno
56: jbr error
57: _END:
58: pushl (r9) #flush and close local files
59: calls $1,_pclose
60: movl (r9),sp #deallocate local vars
61: movl 4(sp),_file #restore old I/O info
62: movl 8(sp),r7
63: movl 16(sp),(r9) #restore old display entry
64: addl2 $20,sp #deallocate current frame
65: addl3 $_display,_addrsze,r0
66: cmpl r9,r0 #exiting main proc ???
67: beql l0011
68: popr $R11|R10|R9 #restore lino, lc, dp
69: jmp (r8)
70: l0011:
71: ret #end of interpretation
72: _GOTO:
73: cvtbl (r10)+,r0
74: bneq l0016
75: cvtwl (r10)+,r0
76: l0016:
77: moval _display[r0],r0 #r0 has exit dp value
78: addl3 (r10),ap,r10 #establish return address
79: l0017:
80: cmpl r0,r9 #check for done
81: beql l0018
82: cmpl r9,$_display #check for end of stack
83: beql egoto
84: pushl (r9) #flush and close local files
85: calls $1,_pclose
86: movl (r9),sp #deallocate local vars
87: movl 4(sp),_file #restore old I/O info
88: movl 8(sp),r7
89: movl 16(sp),(r9) #restore old display entry
90: addl2 $20,sp #deallocate current frame
91: movl (sp),r9 #get old display pointer
92: brb l0017 #continue
93: l0018:
94: movl *(r9),sp #reset sp to top of stack
95: jmp (r8)
96: egoto:
97: movl $EGOTO,_perrno
98: jbr error
99: _LINO:
100: cmpl *(r9),sp #check stack integrity
101: jneq stknemp
102: cvtbl (r10)+,r11 #update line number
103: bneq l0015
104: cvtwl (r10)+,r11
105: l0015:
106: aoblss _stlim,_stcnt,l0021 #update statement count
107: movw $ESTLIM,_perrno
108: jbr error
109: l0021:
110: jmp (r8)
111: _IF:
112: tstw (sp)+
113: beql _TRA
114: addl2 $3,r10
115: jmp (r8)
116: _TRA4:
117: addl3 1(r10),ap,r10
118: jmp (r8)
119: _TRA:
120: incl r10
121: cvtwl (r10),r0
122: addl2 r0,r10
123: jmp (r8)
124: _PUSH:
125: cvtbl (r10)+,r0
126: bneq l0012
127: cvtwl (r10)+,r0
128: l0012:
129: jgtr framesize #current maximum of 32768
130: mnegl r0,r0
131: blbc r0,l0020
132: incl r0
133: l0020:
134: subl3 r0,sp,r1 #r1 points to new top of stack
135: clrl tempsize(r1) #check for memory (fault => not available)
136: movl r1,sp #allocate the memory
137: movc5 $0,(r2),$0,r0,(sp)
138: jmp (r8)
139: _POP:
140: cvtbl (r10)+,r0
141: bneq l0013
142: cvtwl (r10)+,r0
143: l0013:
144: addl2 r0,sp
145: jmp (r8)
146: _PUSH4:
147: incl r10
148: mnegl (sp)+,r0
149: blbc r0,l0019
150: incl r0
151: l0019:
152: subl3 r0,sp,r1 #r1 points to new top of stack
153: clrl tempsize(r1) #check for memeory (fault => not available)
154: movl r1,sp #allocate the memory
155: movc5 $0,(r2),$0,r0,(sp)
156: jmp (r8)
157: _POP4:
158: incl r10
159: addl2 (sp)+,sp
160: jmp (r8)
161: _SDUP:
162: incl r10
163: movw (sp),-(sp)
164: jmp (r8)
165: _ASRT:
166: incl r10
167: tstw (sp)+
168: beql l0014
169: jmp (r8)
170: l0014:
171: movw $EASRT,_perrno
172: jbr error
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.