|
|
1.1 ! root 1: ; Copyright Barbara Liskov 1986 ! 2: ! 3: x_buf = cluster is init, setup, ! 4: set_s0, set_s01, set_s01l1, set_s0123, ! 5: set_l0, set_l01, set_l0s23, ! 6: set_s45l3, set_s4567, set_l23, set_l2s67, ! 7: send_data, send_array, flush, receive, receive_data, ! 8: events, ! 9: get_lp0, get_lp1, get_lp2, get_lp3, ! 10: get_sp0, get_sp1, get_sp2, get_sp3, get_sp4, get_sp5, ! 11: get_bp10, get_bp11 ! 12: ! 13: rep = null ! 14: ! 15: bufsize = 2048 ! 16: ! 17: rsize = 24 ! 18: ! 19: x_err = -1 ! 20: x_reply = 0 ! 21: ! 22: ExposeWindow = #0080 ! 23: ExposeRegion = #0100 ! 24: ExposeCopy = #0200 ! 25: UnmapWindow = #2000 ! 26: FocusChange = #4000 ! 27: ! 28: args = -12 ! 29: parms = 4 ! 30: ! 31: sock_stream = 1 ! 32: %fionread = #4004,,#667f ! 33: ! 34: wvec ev {11} ! 35: wvec obuf {513} ! 36: wvec ibuf {6} ! 37: wvec padbuf {1} ! 38: wvec reqcount {1} ! 39: ! 40: own fdesc ! 41: own bufptr ! 42: own bufmin ! 43: own bufmax ! 44: ! 45: init = proc (addr: _wordvec) signals (error(string)) ! 46: clr -(sp) ! 47: moveq sock_stream,n1 ! 48: move n1,-(sp) ! 49: movew 4(rr),n1 ! 50: move n1,-(sp) ! 51: clr -(sp) ! 52: moveq %socket,n0 ! 53: move n0,-(sp) ! 54: trap 0 ! 55: bcs death ! 56: move n0,fdesc ! 57: move n0,4(sp) ! 58: move rr,n1 ! 59: addq 4,n1 ! 60: move n1,8(sp) ! 61: move (rr),n1 ! 62: asr 1,n1 ! 63: move n1,12(sp) ! 64: moveq %connect,n0 ! 65: move n0,-(sp) ! 66: trap 0 ! 67: ifcs ! 68: then move n0,n2 ! 69: move fdesc,4(sp) ! 70: moveq %close,n0 ! 71: move n0,-(sp) ! 72: trap 0 ! 73: move n2,n0 ! 74: death: lea 16(sp),sp ! 75: movea n0,rr ! 76: moveq 1,n0 ! 77: lea 1(rr,rr),rr ! 78: _erstr(rr) ! 79: signal error(rr) ! 80: end ! 81: lea 16(sp),sp ! 82: clr -12(sp) ! 83: moveq 1,n0 ! 84: clr reqcount ! 85: lea obuf,r1 ! 86: subq 4,r1 ! 87: move r1,bufmin ! 88: move r1,bufptr ! 89: adda bufsize,r1 ! 90: move r1,bufmax ! 91: moveq 42,n1 ! 92: move n1,ev ! 93: end init ! 94: ! 95: setup = qproc (code, func, mask, win: int) ! 96: movea bufptr,r1 ! 97: moveq rsize,n2 ! 98: add n2,bufptr ! 99: move bufmax,n3 ! 100: iflt cmp bufptr,n3 ! 101: then suba bufmin,r1 ! 102: move r1,-(sp) ! 103: pea obuf ! 104: move fdesc,-(sp) ! 105: clr -(sp) ! 106: qloop ! 107: moveq %write,n0 ! 108: move n0,-(sp) ! 109: trap 0 ! 110: bcs oops ! 111: add n0,8(sp) ! 112: sub n0,12(sp) ! 113: bne this ! 114: end ! 115: lea 16(sp),sp ! 116: moveq 1,n0 ! 117: movea bufmin,r1 ! 118: move r1,bufptr ! 119: add n2,bufptr ! 120: end ! 121: addq 4,r1 ! 122: move code,n1 ! 123: asrw 1,n1 ! 124: moveb n1,(r1)+ ! 125: move func,n1 ! 126: asrw 1,n1 ! 127: moveb n1,(r1)+ ! 128: move mask,n1 ! 129: asr 1,n1 ! 130: movew n1,(r1)+ ! 131: move rr,n1 ! 132: asr 1,n1 ! 133: move n1,(r1) ! 134: addq 1,reqcount ! 135: return ! 136: oops: lea 16(sp),sp ! 137: movea n0,rr ! 138: moveq 1,n0 ! 139: lea 1(rr,rr),rr ! 140: move ep,-(sp) ! 141: movea sp,ep ! 142: _erstr(rr) ! 143: movea (sp)+,ep ! 144: signal failure(rr) ! 145: end setup ! 146: ! 147: send_data = qproc (b: _bytevec, strt, z: int) ! 148: movea b,r1 ! 149: move strt,n3 ! 150: move (r1),n2 ! 151: ifgt subq 3,n3 ! 152: blt this ! 153: cmp n2,n3 ! 154: then ! 155: bnds: signal failure("unhandled exception: bounds") ! 156: end ! 157: move rr,n1 ! 158: blt bnds ! 159: move n1,n4 ! 160: add n3,n4 ! 161: cmp n2,n4 ! 162: bhi bnds ! 163: ifeq asr 1,n1 ! 164: then return ! 165: end ! 166: addq 3,n1 ! 167: andib -4,n1 ! 168: movea bufptr,r2 ! 169: lea (r2,n1),r3 ! 170: move bufmax,n4 ! 171: asr 1,n3 ! 172: lea 4(r1,n3),r1 ! 173: ifge cmp r3,n4 ! 174: then subq 1,n1 ! 175: addq 4,r2 ! 176: qloop ! 177: moveb (r1)+,(r2)+ ! 178: dbra n1,this ! 179: end ! 180: movea n0,r1 ! 181: move r3,bufptr ! 182: return ! 183: end ! 184: move r2,n3 ! 185: sub bufmin,n3 ! 186: move n3,-(sp) ! 187: pea obuf ! 188: move fdesc,-(sp) ! 189: clr -(sp) ! 190: qloop ! 191: moveq %write,n0 ! 192: move n0,-(sp) ! 193: trap 0 ! 194: bcs oops ! 195: add n0,8(sp) ! 196: sub n0,12(sp) ! 197: bne this ! 198: end ! 199: move bufmin,bufptr ! 200: move r1,8(sp) ! 201: move n1,12(sp) ! 202: qloop ! 203: moveq %write,n0 ! 204: move n0,-(sp) ! 205: trap 0 ! 206: bcs oops ! 207: add n0,8(sp) ! 208: sub n0,12(sp) ! 209: bne this ! 210: end ! 211: lea 16(sp),sp ! 212: clr -12(sp) ! 213: moveq 1,n0 ! 214: movea n0,r1 ! 215: return ! 216: oops: lea 16(sp),sp ! 217: clr -12(sp) ! 218: movea n0,rr ! 219: moveq 1,n0 ! 220: movea n0,r1 ! 221: lea 1(rr,rr),rr ! 222: move ep,-(sp) ! 223: movea sp,ep ! 224: _erstr(rr) ! 225: movea (sp)+,ep ! 226: signal failure(rr) ! 227: end send_data ! 228: ! 229: send_array = qproc (a: array[char], strt, z: int) ! 230: move rr,n1 ! 231: iflt subq 3,n1 ! 232: then ifeq addq 2,n1 ! 233: then return ! 234: end ! 235: bnds: signal failure("unhandled exception: bounds") ! 236: end ! 237: movea a,r1 ! 238: move strt,n2 ! 239: sub dv%low(r1),n2 ! 240: blt bnds ! 241: cmp dv%max(r1),n2 ! 242: bgt bnds ! 243: add n2,n1 ! 244: cmp dv%max(r1),n1 ! 245: bgt bnds ! 246: move rr,n1 ! 247: asr 1,n1 ! 248: addq 3,n1 ! 249: andib -4,n1 ! 250: add n2,n2 ! 251: movea dv%rel(r1),r1 ! 252: lea 1(r1,n2),r1 ! 253: movea bufptr,r2 ! 254: lea (r2,n1),r3 ! 255: move bufmax,n4 ! 256: iflt cmp r3,n4 ! 257: then move r2,n3 ! 258: sub bufmin,n3 ! 259: move n3,-(sp) ! 260: pea obuf ! 261: move fdesc,-(sp) ! 262: clr -(sp) ! 263: qloop ! 264: moveq %write,n0 ! 265: move n0,-(sp) ! 266: trap 0 ! 267: bcs oops ! 268: add n0,8(sp) ! 269: sub n0,12(sp) ! 270: bne this ! 271: end ! 272: lea 16(sp),sp ! 273: moveq 1,n0 ! 274: movea bufmin,r2 ! 275: lea (r2,n1),r3 ! 276: end ! 277: addq 4,r2 ! 278: subq 1,n1 ! 279: qloop ! 280: move (r1)+,n4 ! 281: moveb n4,(r2)+ ! 282: dbra n1,this ! 283: end ! 284: move r3,bufptr ! 285: movea n0,r1 ! 286: return ! 287: oops: lea 16(sp),sp ! 288: clr -12(sp) ! 289: movea n0,rr ! 290: moveq 1,n0 ! 291: movea n0,r1 ! 292: lea 1(rr,rr),rr ! 293: move ep,-(sp) ! 294: movea sp,ep ! 295: _erstr(rr) ! 296: movea (sp)+,ep ! 297: signal failure(rr) ! 298: end send_array ! 299: ! 300: set_s0 = qproc (s0: int) ! 301: movea bufptr,r1 ! 302: move rr,n1 ! 303: asr 1,n1 ! 304: movew n1,args+0(r1) ! 305: end set_s0 ! 306: ! 307: set_s01 = qproc (s0, s1: int) ! 308: movea bufptr,r1 ! 309: move rr,n1 ! 310: asr 1,n1 ! 311: movew n1,args+2(r1) ! 312: move s0,n1 ! 313: asr 1,n1 ! 314: movew n1,args+0(r1) ! 315: end set_s01 ! 316: ! 317: set_s01l1 = qproc (s0, s1, l1: int) ! 318: movea bufptr,r1 ! 319: move rr,n1 ! 320: asr 1,n1 ! 321: move n1,args+4(r1) ! 322: move s1,n1 ! 323: asr 1,n1 ! 324: movew n1,args+2(r1) ! 325: move s0,n1 ! 326: asr 1,n1 ! 327: movew n1,args+0(r1) ! 328: end set_s01l1 ! 329: ! 330: set_s0123 = qproc (s0, s1, s2, s3: int) ! 331: movea bufptr,r1 ! 332: move rr,n1 ! 333: asr 1,n1 ! 334: movew n1,args+6(r1) ! 335: move s2,n1 ! 336: asr 1,n1 ! 337: movew n1,args+4(r1) ! 338: move s1,n1 ! 339: asr 1,n1 ! 340: movew n1,args+2(r1) ! 341: move s0,n1 ! 342: asr 1,n1 ! 343: movew n1,args+0(r1) ! 344: end set_s0123 ! 345: ! 346: set_l0 = qproc (l0: int) ! 347: movea bufptr,r1 ! 348: move rr,n1 ! 349: asr 1,n1 ! 350: move n1,args+0(r1) ! 351: end set_l0 ! 352: ! 353: set_l01 = qproc (l0, l1: int) ! 354: movea bufptr,r1 ! 355: move rr,n1 ! 356: asr 1,n1 ! 357: move n1,args+4(r1) ! 358: move l0,n1 ! 359: asr 1,n1 ! 360: move n1,args+0(r1) ! 361: end set_l01 ! 362: ! 363: set_l0s23 = qproc (l0, s2, s3: int) ! 364: movea bufptr,r1 ! 365: move rr,n1 ! 366: asr 1,n1 ! 367: movew n1,args+6(r1) ! 368: move s2,n1 ! 369: asr 1,n1 ! 370: movew n1,args+4(r1) ! 371: move l0,n1 ! 372: asr 1,n1 ! 373: move n1,args+0(r1) ! 374: end set_l0s23 ! 375: ! 376: set_s45l3 = qproc (s4, s5, l3: int) ! 377: movea bufptr,r1 ! 378: move rr,n1 ! 379: asr 1,n1 ! 380: move n1,args+12(r1) ! 381: move s5,n1 ! 382: asr 1,n1 ! 383: movew n1,args+10(r1) ! 384: move s4,n1 ! 385: asr 1,n1 ! 386: movew n1,args+8(r1) ! 387: end set_s45l3 ! 388: ! 389: set_s4567 = qproc (s4, s5, s6, s7: int) ! 390: movea bufptr,r1 ! 391: move rr,n1 ! 392: asr 1,n1 ! 393: movew n1,args+14(r1) ! 394: move s6,n1 ! 395: asr 1,n1 ! 396: movew n1,args+12(r1) ! 397: move s5,n1 ! 398: asr 1,n1 ! 399: movew n1,args+10(r1) ! 400: move s4,n1 ! 401: asr 1,n1 ! 402: movew n1,args+8(r1) ! 403: end set_s4567 ! 404: ! 405: set_l23 = qproc (l2, l3: int) ! 406: movea bufptr,r1 ! 407: move rr,n1 ! 408: asr 1,n1 ! 409: move n1,args+12(r1) ! 410: move l2,n1 ! 411: asr 1,n1 ! 412: move n1,args+8(r1) ! 413: end set_l23 ! 414: ! 415: set_l2s67 = qproc (l2, s6, s7: int) ! 416: movea bufptr,r1 ! 417: move rr,n1 ! 418: asr 1,n1 ! 419: movew n1,args+14(r1) ! 420: move s6,n1 ! 421: asr 1,n1 ! 422: movew n1,args+12(r1) ! 423: move l2,n1 ! 424: asr 1,n1 ! 425: move n1,args+8(r1) ! 426: end set_l2s67 ! 427: ! 428: flush = qproc () ! 429: move bufptr,n2 ! 430: lea obuf,r2 ! 431: ifgt cmp r2,n2 ! 432: then sub bufmin,n2 ! 433: move n2,-(sp) ! 434: move r2,-(sp) ! 435: move fdesc,-(sp) ! 436: clr -(sp) ! 437: qloop ! 438: moveq %write,n0 ! 439: move n0,-(sp) ! 440: trap 0 ! 441: bcs oops ! 442: add n0,8(sp) ! 443: sub n0,12(sp) ! 444: bne this ! 445: end ! 446: lea 16(sp),sp ! 447: moveq 1,n0 ! 448: move bufmin,bufptr ! 449: end ! 450: return ! 451: oops: lea 16(sp),sp ! 452: movea n0,rr ! 453: moveq 1,n0 ! 454: lea 1(rr,rr),rr ! 455: move ep,-(sp) ! 456: movea sp,ep ! 457: _erstr(rr) ! 458: movea (sp)+,ep ! 459: signal failure(rr) ! 460: end flush ! 461: ! 462: receive = proc () signals (error(string)) ! 463: move bufptr,n2 ! 464: lea obuf,r2 ! 465: ifgt cmp r2,n2 ! 466: then sub bufmin,n2 ! 467: move n2,-(sp) ! 468: move r2,-(sp) ! 469: move fdesc,-(sp) ! 470: clr -(sp) ! 471: qloop ! 472: moveq %write,n0 ! 473: move n0,-(sp) ! 474: trap 0 ! 475: bcs oops ! 476: add n0,8(sp) ! 477: sub n0,12(sp) ! 478: bne this ! 479: end ! 480: lea 16(sp),sp ! 481: moveq 1,n0 ! 482: move bufmin,bufptr ! 483: end ! 484: loop ! 485: moveq rsize,n2 ! 486: lea ibuf,r1 ! 487: move n2,-(sp) ! 488: move r1,-(sp) ! 489: move fdesc,-(sp) ! 490: clr -(sp) ! 491: moveq %read,n0 ! 492: move n0,-(sp) ! 493: trap 0 ! 494: bcs oops ! 495: cmp n0,n2 ! 496: bne bad ! 497: lea 16(sp),sp ! 498: moveq 1,n0 ! 499: ifeq tst (r1) ! 500: then return ! 501: end ! 502: ifne cmpi x_err,(r1) ! 503: then x_buf$%enq() ! 504: continue ! 505: end ! 506: moveq 0,n1 ! 507: moveb parms+4(r1),n1 ! 508: movea n1,rr ! 509: pea 1(rr,rr) ! 510: movea parms+0(r1),rr ! 511: pea 1(rr,rr) ! 512: moveb parms+5(r1),n1 ! 513: movea n1,rr ! 514: pea 1(rr,rr) ! 515: moveb parms+6(r1),n1 ! 516: movea n1,rr ! 517: pea 1(rr,rr) ! 518: movea parms+8(r1),rr ! 519: lea 1(rr,rr),rr ! 520: move parms+0(r1),n1 ! 521: ifeq cmp reqcount,n1 ! 522: then x_erstr(*, *, *, *, *) ! 523: signal error(rr) ! 524: end ! 525: x_erstr(*, *, *, *, *) ! 526: x_error(rr) ! 527: end ! 528: oops: lea 16(sp),sp ! 529: movea n0,rr ! 530: moveq 1,n0 ! 531: lea 1(rr,rr),rr ! 532: _erstr(rr) ! 533: signal failure(rr) ! 534: bad: lea 16(sp),sp ! 535: moveq 1,n0 ! 536: signal failure("incomplete message received") ! 537: end receive ! 538: ! 539: receive_data = proc (b: _bytevec) ! 540: move (rr),n2 ! 541: asr 1,n2 ! 542: move n2,-(sp) ! 543: pea 4(rr) ! 544: move fdesc,-(sp) ! 545: clr -(sp) ! 546: qloop ! 547: moveq %read,n0 ! 548: move n0,-(sp) ! 549: trap 0 ! 550: bcs oops ! 551: add n0,8(sp) ! 552: sub n0,12(sp) ! 553: bne this ! 554: end ! 555: ifne andib 3,n2 ! 556: then move n2,12(sp) ! 557: move rr,8(sp) ! 558: qloop ! 559: moveq %read,n0 ! 560: move n0,-(sp) ! 561: trap 0 ! 562: bcs oops ! 563: add n0,8(sp) ! 564: sub n0,12(sp) ! 565: bne this ! 566: end ! 567: end ! 568: lea 16(sp),sp ! 569: clr -12(sp) ! 570: moveq 1,n0 ! 571: return ! 572: oops: lea 16(sp),sp ! 573: clr -12(sp) ! 574: movea n0,rr ! 575: moveq 1,n0 ! 576: lea 1(rr,rr),rr ! 577: _erstr(rr) ! 578: signal failure(rr) ! 579: end receive_data ! 580: ! 581: events = proc (need: bool) ! 582: var cnt ! 583: move bufptr,n2 ! 584: lea obuf,r2 ! 585: ifgt cmp r2,n2 ! 586: then sub bufmin,n2 ! 587: move n2,-(sp) ! 588: move r2,-(sp) ! 589: move fdesc,-(sp) ! 590: clr -(sp) ! 591: qloop ! 592: moveq %write,n0 ! 593: move n0,-(sp) ! 594: trap 0 ! 595: bcs oops ! 596: add n0,8(sp) ! 597: sub n0,12(sp) ! 598: bne this ! 599: end ! 600: lea 16(sp),sp ! 601: moveq 1,n0 ! 602: move bufmin,bufptr ! 603: end ! 604: loop ! 605: again: pea cnt ! 606: move %fionread,-(sp) ! 607: move fdesc,-(sp) ! 608: clr -(sp) ! 609: moveq %ioctl,n0 ! 610: move n0,-(sp) ! 611: trap 0 ! 612: bcs oops ! 613: lea 16(sp),sp ! 614: ifeq tst cnt ! 615: then tst need ! 616: beq next ! 617: addq 1,cnt ! 618: end ! 619: clr need ! 620: moveq rsize,n2 ! 621: qloop ! 622: move n2,-(sp) ! 623: lea ibuf,r1 ! 624: move r1,-(sp) ! 625: move fdesc,-(sp) ! 626: clr -(sp) ! 627: moveq %read,n0 ! 628: move n0,-(sp) ! 629: trap 0 ! 630: bcs oops ! 631: lea 16(sp),sp ! 632: ifne cmp n0,n2 ! 633: then moveq 1,n0 ! 634: signal failure("incomplete message received") ! 635: end ! 636: moveq 1,n0 ! 637: ifeq tst (r1) ! 638: then signal failure("protocol screwup") ! 639: end ! 640: ifeq cmpi x_err,(r1) ! 641: then moveq 0,n1 ! 642: moveb parms+4(r1),n1 ! 643: movea n1,rr ! 644: pea 1(rr,rr) ! 645: movea parms+0(r1),rr ! 646: pea 1(rr,rr) ! 647: moveb parms+5(r1),n1 ! 648: movea n1,rr ! 649: pea 1(rr,rr) ! 650: moveb parms+6(r1),n1 ! 651: movea n1,rr ! 652: pea 1(rr,rr) ! 653: movea parms+8(r1),rr ! 654: lea 1(rr,rr),rr ! 655: x_erstr(*, *, *, *, *) ! 656: x_error(rr) ! 657: bra again ! 658: end ! 659: x_buf$%enq() ! 660: moveq rsize,n2 ! 661: sub n2,cnt ! 662: bgt this ! 663: end ! 664: end ! 665: lea 16(sp),sp ! 666: moveq 1,n0 ! 667: return ! 668: oops: lea 16(sp),sp ! 669: movea n0,rr ! 670: moveq 1,n0 ! 671: lea 1(rr,rr),rr ! 672: _erstr(rr) ! 673: signal failure(rr) ! 674: end events ! 675: ! 676: %enq = proc () ! 677: lea ibuf,r1 ! 678: lea ev,rr ! 679: move (r1),n1 ! 680: add n1,n1 ! 681: addq 1,n1 ! 682: move n1,4(rr) ! 683: move parms(r1),n1 ! 684: add n1,n1 ! 685: addq 1,n1 ! 686: move n1,24(rr) ! 687: move parms+12(r1),n1 ! 688: add n1,n1 ! 689: addq 1,n1 ! 690: move n1,12(rr) ! 691: moveaw parms+6(r1),r2 ! 692: lea 1(r2,r2),r2 ! 693: move r2,20(rr) ! 694: move (r1),n1 ! 695: ifne andiw ExposeWindow+ExposeRegion,n1 ! 696: then moveaw parms+8(r1),r2 ! 697: lea 1(r2,r2),r2 ! 698: move r2,32(rr) ! 699: moveaw parms+10(r1),r2 ! 700: lea 1(r2,r2),r2 ! 701: move r2,40(rr) ! 702: moveaw parms+16(r1),r2 ! 703: lea 1(r2,r2),r2 ! 704: move r2,36(rr) ! 705: moveaw parms+18(r1),r2 ! 706: lea 1(r2,r2),r2 ! 707: move r2,28(rr) ! 708: elfeq move (r1),n1 ! 709: andiw UnmapWindow+FocusChange+ExposeCopy,n1 ! 710: then clrb 21(rr) ! 711: andib 1,22(rr) ! 712: moveaw parms+4(r1),r2 ! 713: lea 1(r2,r2),r2 ! 714: move r2,16(rr) ! 715: moveq 0,n2 ! 716: movew parms+6(r1),n2 ! 717: clrb n2 ! 718: add n2,n2 ! 719: addq 1,n2 ! 720: move n2,8(rr) ! 721: moveaw parms+8(r1),r2 ! 722: lea 1(r2,r2),r2 ! 723: move r2,28(rr) ! 724: moveaw parms+10(r1),r2 ! 725: lea 1(r2,r2),r2 ! 726: move r2,36(rr) ! 727: moveaw parms+16(r1),r2 ! 728: lea 1(r2,r2),r2 ! 729: move r2,40(rr) ! 730: moveaw parms+18(r1),r2 ! 731: lea 1(r2,r2),r2 ! 732: move r2,32(rr) ! 733: end ! 734: x_input$enq(rr) ! 735: end %enq ! 736: ! 737: get_lp0 = qproc () returns (int) ! 738: lea ibuf,rr ! 739: movea parms+0(rr),rr ! 740: lea 1(rr,rr),rr ! 741: return(rr) ! 742: end get_lp0 ! 743: ! 744: get_lp1 = qproc () returns (int) ! 745: lea ibuf,rr ! 746: movea parms+4(rr),rr ! 747: lea 1(rr,rr),rr ! 748: return(rr) ! 749: end get_lp1 ! 750: ! 751: get_lp2 = qproc () returns (int) ! 752: lea ibuf,rr ! 753: movea parms+8(rr),rr ! 754: lea 1(rr,rr),rr ! 755: return(rr) ! 756: end get_lp2 ! 757: ! 758: get_lp3 = qproc () returns (int) ! 759: lea ibuf,rr ! 760: movea parms+12(rr),rr ! 761: lea 1(rr,rr),rr ! 762: return(rr) ! 763: end get_lp3 ! 764: ! 765: get_sp0 = qproc () returns (int) ! 766: lea ibuf,rr ! 767: moveaw parms+0(rr),rr ! 768: lea 1(rr,rr),rr ! 769: return(rr) ! 770: end get_sp0 ! 771: ! 772: get_sp1 = qproc () returns (int) ! 773: lea ibuf,rr ! 774: moveaw parms+2(rr),rr ! 775: lea 1(rr,rr),rr ! 776: return(rr) ! 777: end get_sp1 ! 778: ! 779: get_sp2 = qproc () returns (int) ! 780: lea ibuf,rr ! 781: moveaw parms+4(rr),rr ! 782: lea 1(rr,rr),rr ! 783: return(rr) ! 784: end get_sp2 ! 785: ! 786: get_sp3 = qproc () returns (int) ! 787: lea ibuf,rr ! 788: moveaw parms+6(rr),rr ! 789: lea 1(rr,rr),rr ! 790: return(rr) ! 791: end get_sp3 ! 792: ! 793: get_sp4 = qproc () returns (int) ! 794: lea ibuf,rr ! 795: moveaw parms+8(rr),rr ! 796: lea 1(rr,rr),rr ! 797: return(rr) ! 798: end get_sp4 ! 799: ! 800: get_sp5 = qproc () returns (int) ! 801: lea ibuf,rr ! 802: moveaw parms+10(rr),rr ! 803: lea 1(rr,rr),rr ! 804: return(rr) ! 805: end get_sp5 ! 806: ! 807: get_bp10 = qproc () returns (int) ! 808: lea ibuf,rr ! 809: moveq 0,n1 ! 810: moveb parms+10(rr),n1 ! 811: add n1,n1 ! 812: addqb 1,n1 ! 813: return(n1) ! 814: end get_bp10 ! 815: ! 816: get_bp11 = qproc () returns (int) ! 817: lea ibuf,rr ! 818: moveq 0,n1 ! 819: moveb parms+11(rr),n1 ! 820: add n1,n1 ! 821: addqb 1,n1 ! 822: return(n1) ! 823: end get_bp11 ! 824: ! 825: end x_buf
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.