Annotation of 43BSDReno/usr.bin/tn3270/ctlr/screen.h, revision 1.1

1.1     ! root        1: /*
        !             2:  * Copyright (c) 1988 Regents of the University of California.
        !             3:  * All rights reserved.
        !             4:  *
        !             5:  * Redistribution and use in source and binary forms are permitted
        !             6:  * provided that the above copyright notice and this paragraph are
        !             7:  * duplicated in all such forms and that any documentation,
        !             8:  * advertising materials, and other materials related to such
        !             9:  * distribution and use acknowledge that the software was developed
        !            10:  * by the University of California, Berkeley.  The name of the
        !            11:  * University may not be used to endorse or promote products derived
        !            12:  * from this software without specific prior written permission.
        !            13:  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
        !            14:  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
        !            15:  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
        !            16:  *
        !            17:  *     @(#)screen.h    4.2 (Berkeley) 2/6/89
        !            18:  */
        !            19: 
        !            20: #define        INCLUDED_SCREEN
        !            21: 
        !            22: /* defines and defines to describe how to deal with the screen */
        !            23: 
        !            24: #if    !defined(MSDOS)
        !            25: #define        MAXNUMBERLINES          43              /* 3278-4 */
        !            26: #define        MAXNUMBERCOLUMNS        132             /* 3278-5 */
        !            27: #define        MAXSCREENSIZE           3564            /* (27*132) 3278-5 */
        !            28: #else  /* !defined(MSDOS) */   /* MSDOS has memory constraints */
        !            29: #define        MAXNUMBERLINES          25              /* XXX */
        !            30: #define        MAXNUMBERCOLUMNS        80
        !            31: #define        MAXSCREENSIZE           (MAXNUMBERLINES*MAXNUMBERCOLUMNS)
        !            32: #endif /* !defined(MSDOS) */   /* MSDOS has memory constraints */
        !            33: #define LowestScreen() 0
        !            34: #define HighestScreen()        (ScreenSize-1)
        !            35: 
        !            36: #define ScreenLineOffset(x)    ((x)%NumberColumns)
        !            37: #define ScreenLine(x)  ((int)((x)/NumberColumns))
        !            38: #define ScreenInc(x)   (((x)==HighestScreen())? LowestScreen():x+1)
        !            39: #define ScreenDec(x)   (((x)==LowestScreen())? HighestScreen():x-1)
        !            40: #define ScreenUp(x)    (((x)+(ScreenSize-NumberColumns))%ScreenSize)
        !            41: #define ScreenDown(x)  (((x)+NumberColumns)%ScreenSize)
        !            42: #define        IsOrder(x)      (Orders[x])
        !            43: #define BAIC(x)                ((x)&0x3f)
        !            44: #define CIAB(x)                (CIABuffer[(x)&0x3f])
        !            45: #define BufferTo3270_0(x)      (CIABuffer[(int)((x)/0x40)])
        !            46: #define BufferTo3270_1(x)      (CIABuffer[(x)&0x3f])
        !            47: #define Addr3270(x,y)  (BAIC(x)*64+BAIC(y))
        !            48: #define SetBufferAddress(x,y)  ((x)*NumberColumns+(y))
        !            49: 
        !            50: /* These know how fields are implemented... */
        !            51: 
        !            52: #define WhereAttrByte(p)       (IsStartField(p)? p: FieldDec(p))
        !            53: #define        WhereHighByte(p)        ScreenDec(FieldInc(p))
        !            54: #define WhereLowByte(p)                ScreenInc(WhereAttrByte(p))
        !            55: #define FieldAttributes(x)     (IsStartField(x)? GetHost(x) : \
        !            56:                                    GetHost(WhereAttrByte(x)))
        !            57: #define FieldAttributesPointer(p)      (IsStartFieldPointer(p)? \
        !            58:                                    GetHostPointer(p): \
        !            59:                                    GetHost(WhereAttrByte((p)-&Host[0])))
        !            60: 
        !            61: /*
        !            62:  * The MDT functions need to protect against the case where the screen
        !            63:  * is unformatted (sigh).
        !            64:  */
        !            65: 
        !            66: /* Turn off the Modified Data Tag */
        !            67: #define TurnOffMdt(x) \
        !            68:     if (HasMdt(WhereAttrByte(x))) { \
        !            69:        ModifyMdt(x, 0); \
        !            70:     }
        !            71: 
        !            72: /* Turn on the Modified Data Tag */
        !            73: #define TurnOnMdt(x) \
        !            74:     if (!HasMdt(WhereAttrByte(x))) { \
        !            75:        ModifyMdt(x, 1); \
        !            76:     }
        !            77: 
        !            78: /* If this location has the MDT bit turned on (implies start of field) ... */
        !            79: #define HasMdt(x) \
        !            80:     ((GetHost(x)&(ATTR_MDT|ATTR_MASK)) == (ATTR_MDT|ATTR_MASK))
        !            81: 
        !            82:        /*
        !            83:         * Is the screen formatted?  Some algorithms change depending
        !            84:         * on whether there are any attribute bytes lying around.
        !            85:         */
        !            86: #define        FormattedScreen() \
        !            87:            ((WhereAttrByte(0) != 0) || ((GetHost(0)&ATTR_MASK) == ATTR_MASK))
        !            88: 
        !            89:                                            /* field starts here */
        !            90: #define IsStartField(x)        ((GetHost(x)&ATTR_MASK) == ATTR_MASK)
        !            91: #define IsStartFieldPointer(p) ((GetHostPointer(p)&ATTR_MASK) == ATTR_MASK)
        !            92: 
        !            93: #define NewField(p,a)  SetHost(p, (a)|ATTR_MASK)
        !            94: #define DeleteField(p) SetHost(p, 0)
        !            95: #define        DeleteAllFields()
        !            96: 
        !            97: /* The following are independent of the implementation of fields */
        !            98: #define IsProtectedAttr(p,a)   (IsStartField(p) || ((a)&ATTR_PROT))
        !            99: #define IsProtected(p) IsProtectedAttr(p,FieldAttributes(p))
        !           100: 
        !           101: #define IsUnProtected(x)       (!IsProtected(x))
        !           102: 
        !           103: #define IsAutoSkip(x)  (FieldAttributes(x)&ATTR_AUTO_SKIP)
        !           104: 
        !           105: #define IsNonDisplayAttr(c)    (((c)&ATTR_DSPD_MASK) == ATTR_DSPD_NONDISPLAY)
        !           106: #define        IsNonDisplay(p) IsNonDisplayAttr(FieldAttributes(p))
        !           107: 
        !           108: #define IsHighlightedAttr(c) \
        !           109:                (((c)&ATTR_DSPD_MASK) == ATTR_DSPD_HIGH)
        !           110: #define        IsHighlighted(p) \
        !           111:                (IsHighlightedAttr(FieldAttributes(p)) && !IsStartField(p))
        !           112: 
        !           113: typedef unsigned char ScreenImage;
        !           114: 
        !           115: extern int
        !           116:        FieldFind();
        !           117: 
        !           118: extern char
        !           119:        CIABuffer[];
        !           120: 
        !           121: #define        GetGeneric(i,h)         (h)[i]
        !           122: #define        GetGenericPointer(p)    (*(p))
        !           123: #define        SetGeneric(i,c,h)       ((h)[i] = (c))
        !           124: #define        ModifyGeneric(i,what,h) {(h)[i] what;}
        !           125: 
        !           126: #define GetHost(i)             GetGeneric(i,Host)
        !           127: #define GetHostPointer(p)      GetGenericPointer(p)
        !           128: #define        SetHost(i,c)            SetGeneric(i,c,Host)
        !           129: #define        ModifyHost(i,what)      ModifyGeneric(i,what,Host)

unix.superglobalmegacorp.com

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