Annotation of 43BSD/contrib/X/CLUlib/sun/x_buf.asm, revision 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.