Annotation of 43BSD/ucb/tn3270/screen.c, revision 1.1.1.1

1.1       root        1: /*
                      2:  *     Copyright 1984, 1985 by the Regents of the University of
                      3:  *     California and by Gregory Glenn Minshall.
                      4:  *
                      5:  *     Permission to use, copy, modify, and distribute these
                      6:  *     programs and their documentation for any purpose and
                      7:  *     without fee is hereby granted, provided that this
                      8:  *     copyright and permission appear on all copies and
                      9:  *     supporting documentation, the name of the Regents of
                     10:  *     the University of California not be used in advertising
                     11:  *     or publicity pertaining to distribution of the programs
                     12:  *     without specific prior permission, and notice be given in
                     13:  *     supporting documentation that copying and distribution is
                     14:  *     by permission of the Regents of the University of California
                     15:  *     and by Gregory Glenn Minshall.  Neither the Regents of the
                     16:  *     University of California nor Gregory Glenn Minshall make
                     17:  *     representations about the suitability of this software
                     18:  *     for any purpose.  It is provided "as is" without
                     19:  *     express or implied warranty.
                     20:  */
                     21: 
                     22: 
                     23: /* this file implements primitives to drive the screen. */
                     24: #ifndef        lint
                     25: static char    sccsid[] = "@(#)screen.c        2.1     4/11/85";
                     26: #endif /* ndef lint */
                     27: 
                     28: #include <stdio.h>
                     29: 
                     30: #include "screen.h"
                     31: #include "3270.h"
                     32: 
                     33: char CIABuffer[64] = {
                     34:     0x40, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
                     35:     0xc8, 0xc9, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
                     36:     0x50, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
                     37:     0xd8, 0xd9, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
                     38:     0x60, 0x61, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
                     39:     0xe8, 0xe9, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
                     40:     0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
                     41:     0xf8, 0xf9, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f
                     42: };
                     43: 
                     44: /* These are the routines compiled if we are using a parallel array to hold
                     45:        the field information...
                     46:  */
                     47: 
                     48: /* What is the screen address of the attribute byte for the terminal */
                     49: 
                     50: WhereTermAttrByte(p)
                     51: register int   p;
                     52: {
                     53:     register int i;
                     54: 
                     55:     i = p;
                     56: 
                     57:     do {
                     58:        if (TermIsStartField(i)) {
                     59:            return(i);
                     60:        }
                     61:        i = ScreenDec(i);
                     62:     } while (i != p);
                     63: 
                     64:     return(LowestScreen());    /* unformatted screen... */
                     65: }
                     66: 
                     67: /* What we know is that table is of size SCREENSIZE */
                     68: 
                     69: FieldFind(table, position, failure)
                     70: register char *table;          /* which table of bytes to use */
                     71: register int position;         /* what position to start from */
                     72: int failure;                   /* if unformatted, what value to return */
                     73: {
                     74:     register int ourp;
                     75: 
                     76:     ourp = position + 1 + bskip(table+position+1, SCREENSIZE-position-1, 0);
                     77:     if (ourp < SCREENSIZE) {
                     78:        return(ourp);
                     79:     }
                     80:     /* No fields in table after position.  Look for fields from beginning
                     81:      * of table.
                     82:      */
                     83:     ourp = bskip(table, position+1, 0);
                     84:     if (ourp <= position) {
                     85:        return(ourp);
                     86:     }
                     87:     return(failure);
                     88: }

unix.superglobalmegacorp.com

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