|
|
1.1 ! root 1: % Copyright Barbara Liskov 1985 ! 2: ! 3: x_pixmap = cluster is none, create, create_xy, create_z, tile, destroy, shape, ! 4: get_id, equal, similar, copy ! 5: ! 6: rep = int ! 7: ! 8: none = proc () returns (cvt) ! 9: return(0) ! 10: end none ! 11: ! 12: create = proc (mask: x_bitmap, fore, back: int) returns (cvt) ! 13: signals (error(string)) ! 14: or: oreq, er: ereq := x_buf$get() ! 15: er.code := x_makepixmap ! 16: lr(er).l0 := b2i(mask) ! 17: er.s2 := fore ! 18: or.s3 := back ! 19: x_buf$receive() ! 20: resignal error ! 21: return(x_buf$get_lp0()) ! 22: end create ! 23: ! 24: create_xy = proc (width, height: int, bits: _wordvec) returns (cvt) ! 25: signals (error(string)) ! 26: or: oreq, er: ereq := x_buf$get() ! 27: er.code := x_storepixmap + (XYFormat * 2**8) ! 28: er.s0 := height ! 29: or.s1 := width ! 30: x_buf$send_data(w2b(bits), 1, ! 31: ((width + 15) / 16) * height * 2 * x_display$planes()) ! 32: x_buf$receive() ! 33: resignal error ! 34: return(x_buf$get_lp0()) ! 35: end create_xy ! 36: ! 37: create_z = proc (width, height: int, bits: _wordvec) returns (cvt) ! 38: signals (error(string)) ! 39: or: oreq, er: ereq := x_buf$get() ! 40: er.code := x_storepixmap + (ZFormat * 2**8) ! 41: er.s0 := height ! 42: or.s1 := width ! 43: z: int := width * height ! 44: if x_display$planes() > 8 ! 45: then z := z + z end ! 46: x_buf$send_data(w2b(bits), 1, z) ! 47: x_buf$receive() ! 48: resignal error ! 49: return(x_buf$get_lp0()) ! 50: end create_z ! 51: ! 52: tile = proc (pixel: int) returns (cvt) signals (error(string)) ! 53: or: oreq, er: ereq := x_buf$get() ! 54: er.code := x_makepixmap ! 55: lr(er).l0 := 0 ! 56: er.s2 := pixel ! 57: x_buf$receive() ! 58: resignal error ! 59: return(x_buf$get_lp0()) ! 60: end tile ! 61: ! 62: destroy = proc (pix: cvt) ! 63: or: oreq, er: ereq := x_buf$get() ! 64: er.code := x_freepixmap ! 65: lr(er).l0 := pix ! 66: end destroy ! 67: ! 68: shape = proc (width, height: int) returns (int, int) signals (error(string)) ! 69: or: oreq, er: ereq := x_buf$get() ! 70: er.code := x_queryshape + (TileShape * 2**8) ! 71: er.s0 := height ! 72: or.s1 := width ! 73: x_buf$receive() ! 74: resignal error ! 75: return(x_buf$get_sp1(), x_buf$get_sp0()) ! 76: end shape ! 77: ! 78: get_id = proc (pix: cvt) returns (int) ! 79: return(pix) ! 80: end get_id ! 81: ! 82: equal = proc (pix1, pix2: cvt) returns (bool) ! 83: return(pix1 = pix2) ! 84: end equal ! 85: ! 86: similar = proc (pix1, pix2: cvt) returns (bool) ! 87: return(pix1 = pix2) ! 88: end similar ! 89: ! 90: copy = proc (pix: cvt) returns (cvt) ! 91: return(pix) ! 92: end copy ! 93: ! 94: end x_pixmap
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.