1: / qsort interfact to c 2: 3: / qsort(from, to) 4: 5: .globl _qsort 6: _qsort: 7: mov 2(sp),r1 8: mov 4(sp),r2 9: jsr pc,qsort 10: rts pc 11: 12: 13: qsort: 14: mov r2,r3 15: sub r1,r3 16: cmp r3,$4 17: ble done 18: asr r3 19: bic $3,r3 20: add r1,r3 21: mov r1,-(sp) 22: mov r2,-(sp) 23: 24: loop: 25: cmp r1,r3 26: bhis loop1 27: cmp (r1),(r3) 28: bgt loop1 29: add $4,r1 30: br loop 31: 32: loop1: 33: cmp r2,r3 34: blos 1f 35: sub $4,r2 36: mov r2,r0 37: cmp (r0),(r3) 38: bge loop1 39: 40: mov (r1),r0 41: mov (r2),(r1)+ 42: mov r0,(r2)+ 43: mov (r1),r0 44: mov (r2),(r1) 45: mov r0,(r2) 46: cmp -(r1),-(r2) 47: cmp r1,r3 48: bne loop 49: mov r2,r3 50: br loop 51: 52: 1: 53: cmp r1,r3 54: beq 1f 55: mov (r1),r0 56: mov (r2),(r1)+ 57: mov r0,(r2)+ 58: mov (r1),r0 59: mov (r2),(r1) 60: mov r0,(r2) 61: cmp -(r1),-(r2) 62: mov r1,r3 63: br loop1 64: 65: 1: 66: mov (sp)+,r2 67: mov r3,-(sp) 68: mov r3,r1 69: add $4,r1 70: jsr pc,qsort 71: mov (sp)+,r2 72: mov (sp)+,r1 73: br qsort 74: 75: done: 76: rts pc 77: 78: rti = 2 79: 80: / itinit() 81: 82: .globl _itinit 83: .globl _intrp, _term 84: signal = 48. 85: time = 13. 86: 87: _itinit: 88: sys signal; 1; 1 89: bit $1,r0 90: bne 1f 91: sys signal; 1; _onhup 92: 1: 93: sys signal; 2; 1 94: bit $1,r0 95: bne 1f 96: sys signal; 2; onint 97: 1: 98: sys signal; 3; 1 99: rts pc 100: 101: .globl _onhup 102: _onhup: 103: sys signal; 1; 1 104: sys signal; 2; 1 105: sys signal; 3; 1 106: jmp _term 107: 108: onint: 109: mov r0,-(sp) 110: sys signal; 2; onint 111: inc _intrp 112: mov (sp)+,r0 113: rti 114: 115: / t = clock() 116: 117: .globl _clock 118: _clock: 119: sys time 120: mov r0,-(sp) 121: mov r1,-(sp) 122: sub t+2,r1 123: sbc r0 124: sub t,r0 125: mov r1,r0 126: mov (sp)+,t+2 127: mov (sp)+,t 128: rts pc 129: 130: .bss 131: t: .=.+4