Annotation of 42BSD/usr.lib/lib2648/motion.c, revision 1.1.1.1

1.1       root        1: /*     motion.c        4.1     83/03/09        */
                      2: /*
                      3:  * Move the pen to x, y.  We assume we are already in ESCP mode.
                      4:  */
                      5: 
                      6: #include "2648.h"
                      7: 
                      8: motion(x, y)
                      9: {
                     10:        char lox, loy, hix, hiy;
                     11:        int delx, dely;
                     12: 
                     13:        delx = x-_penx; dely = y-_peny;
                     14:        if (-16 <= delx && delx <= 15 && -16 <= dely && dely <= 15) {
                     15:                /*
                     16:                 * Optimization: if within 15 in both directions, can use
                     17:                 * HP short incremental mode, only 3 bytes.
                     18:                 */
                     19:                outchar('j');
                     20:                outchar(32 + (delx & 31));
                     21:                outchar(32 + (dely & 31));
                     22:        } else {
                     23:                /*
                     24:                 * Otherwise must use binary absolute mode, 5 bytes.
                     25:                 * We never use ascii mode or binary incremental, since
                     26:                 * those both take many more bytes.
                     27:                 */
                     28:                outchar('i');
                     29:                outchar(32+ ((x>>5) & 31));
                     30:                outchar(32+ (x&31));
                     31:                outchar(32+ ((y>>5) & 31));
                     32:                outchar(32+ (y&31));
                     33:        }
                     34:        _penx = x;
                     35:        _peny = y;
                     36: }

unix.superglobalmegacorp.com

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