Annotation of 43BSDTahoe/usr.lib/lib2648/motion.c, revision 1.1

1.1     ! root        1: /*
        !             2:  * Copyright (c) 1980 Regents of the University of California.
        !             3:  * All rights reserved.  The Berkeley software License Agreement
        !             4:  * specifies the terms and conditions for redistribution.
        !             5:  */
        !             6: 
        !             7: #ifndef lint
        !             8: static char sccsid[] = "@(#)motion.c   5.1 (Berkeley) 4/30/85";
        !             9: #endif not lint
        !            10: 
        !            11: /*
        !            12:  * Move the pen to x, y.  We assume we are already in ESCP mode.
        !            13:  */
        !            14: 
        !            15: #include "2648.h"
        !            16: 
        !            17: motion(x, y)
        !            18: {
        !            19:        char lox, loy, hix, hiy;
        !            20:        int delx, dely;
        !            21: 
        !            22:        delx = x-_penx; dely = y-_peny;
        !            23:        if (-16 <= delx && delx <= 15 && -16 <= dely && dely <= 15) {
        !            24:                /*
        !            25:                 * Optimization: if within 15 in both directions, can use
        !            26:                 * HP short incremental mode, only 3 bytes.
        !            27:                 */
        !            28:                outchar('j');
        !            29:                outchar(32 + (delx & 31));
        !            30:                outchar(32 + (dely & 31));
        !            31:        } else {
        !            32:                /*
        !            33:                 * Otherwise must use binary absolute mode, 5 bytes.
        !            34:                 * We never use ascii mode or binary incremental, since
        !            35:                 * those both take many more bytes.
        !            36:                 */
        !            37:                outchar('i');
        !            38:                outchar(32+ ((x>>5) & 31));
        !            39:                outchar(32+ (x&31));
        !            40:                outchar(32+ ((y>>5) & 31));
        !            41:                outchar(32+ (y&31));
        !            42:        }
        !            43:        _penx = x;
        !            44:        _peny = y;
        !            45: }

unix.superglobalmegacorp.com

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