Annotation of 43BSD/contrib/X/CLUlib/sun/x_buf.asm, revision 1.1.1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.