|
|
1.1 ! root 1: ; Copyright Barbara Liskov 1985 ! 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: mull 6,rr,n1 ! 9: movzwl n1,n0 ! 10: ifeql cmpl n1,n0 ! 11: then addl 7,n0 ! 12: bicb 3,n0 ! 13: subl n0,heaplo ! 14: iflss cmpl heaplo,freelo ! 15: then jsb memout ! 16: end ! 17: movl heaplo,rr ! 18: movw n1,(rr) ! 19: movb %bvecb,3(rr) ! 20: return(rr) ! 21: end ! 22: signal toobig ! 23: end create ! 24: ! 25: store = qproc (list: cvt, i: int, x, y, flags: int) signals (bounds) ! 26: subl 1,i,n1 ! 27: mull 6,n1 ! 28: movl list,n2 ! 29: movzwl (n2),n3 ! 30: iflssu cmpl n1,n3 ! 31: then movab 4(n2)[n1],n3 ! 32: movw x,(n3)+ ! 33: movw y,(n3)+ ! 34: movw rr,(n3) ! 35: return ! 36: end ! 37: signal bounds ! 38: end store ! 39: ! 40: fetch = qproc (list: cvt, i: int) returns (int, int, int) signals (bounds) ! 41: subl 1,rr,n1 ! 42: mull 6,n1 ! 43: movl list,n2 ! 44: movzwl (n2),n3 ! 45: iflssu cmpl n1,n3 ! 46: then movab 4(n2)[n1],n3 ! 47: cvtwl (n3)+,-(sp) ! 48: cvtwl (n3)+,-(sp) ! 49: movzwl (n3),rr ! 50: return(*, *, *) ! 51: end ! 52: signal bounds ! 53: end fetch ! 54: ! 55: size = qproc (list: cvt) returns (int) ! 56: movzwl (rr),rr ! 57: divl 6,rr ! 58: return(rr) ! 59: end size ! 60: ! 61: equal = qproc (list1, list2: cvt) returns (bool) ! 62: ifeql cmpl list1,rr ! 63: then return(true) ! 64: end ! 65: return(false) ! 66: end equal ! 67: ! 68: end x_vlist
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.