|
|
1.1 ! root 1: ; Copyright Barbara Liskov 1986 ! 2: ! 3: x_vlist = cluster is create, fetch, store, size, equal ! 4: ! 5: rep = null ! 6: ! 7: create = qproc (n: int) returns (cvt) signals (toobig) ! 8: ifle move rr,n1 ! 9: blt next ! 10: cmpi #5,,#5555,n1 ! 11: then add n1,n1 ! 12: add rr,n1 ! 13: add n1,n1 ! 14: subq 5,n1 ! 15: move n1,n2 ! 16: asr 1,n2 ! 17: addq 7,n2 ! 18: andib -4,n2 ! 19: movea heaphi,rr ! 20: iflt sub n2,freecnt ! 21: then jsr memout ! 22: end ! 23: add n2,heaphi ! 24: move n1,(rr) ! 25: return(rr) ! 26: end ! 27: signal toobig ! 28: end create ! 29: ! 30: store = qproc (list: cvt, i: int, x, y, flags: int) signals (bounds) ! 31: move i,n2 ! 32: subq 5,n2 ! 33: add n2,n2 ! 34: add i,n2 ! 35: addq 1,n2 ! 36: movea list,r1 ! 37: move (r1),n1 ! 38: asr 1,n1 ! 39: ifhi cmp n2,n1 ! 40: then lea 4(r1,n2),r1 ! 41: move x,n1 ! 42: asr 1,n1 ! 43: movew n1,(r1)+ ! 44: move y,n1 ! 45: asr 1,n1 ! 46: movew n1,(r1)+ ! 47: move rr,n1 ! 48: asr 1,n1 ! 49: movew n1,(r1) ! 50: movea n0,r1 ! 51: return ! 52: end ! 53: signal bounds ! 54: end store ! 55: ! 56: fetch = qproc (list: cvt, i: int) returns (int, int, int) signals (bounds) ! 57: move rr,n1 ! 58: subq 5,n1 ! 59: add n1,n1 ! 60: lea 1(rr,n1),rr ! 61: movea list,r1 ! 62: move (r1),n1 ! 63: asr 1,n1 ! 64: ifhi cmp rr,n1 ! 65: then lea 4(r1,rr),rr ! 66: moveaw (rr)+,r1 ! 67: pea 1(r1,r1) ! 68: moveaw (rr)+,r1 ! 69: pea 1(r1,r1) ! 70: moveaw (rr),rr ! 71: lea 1(rr,rr),rr ! 72: return(*, *, *) ! 73: end ! 74: signal bounds ! 75: end fetch ! 76: ! 77: size = qproc (list: cvt) returns (int) ! 78: move (rr),n1 ! 79: asr 1,n1 ! 80: divu 3,n1 ! 81: moveaw n1,rr ! 82: addq 1,rr ! 83: return(rr) ! 84: end size ! 85: ! 86: equal = qproc (list1, list2: cvt) returns (bool) ! 87: moveq 0,n1 ! 88: cmpa list1,rr ! 89: seq n1 ! 90: return(n1) ! 91: end equal ! 92: ! 93: end x_vlist
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.