|
|
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.