Annotation of cci/usr/src/usr.bin/bsc/cmd/3270/em.h, revision 1.1.1.1

1.1       root        1: static char s_em[] = "@(#)em.h 1.3 REL";       /*sccs id */
                      2: #include <curses.h>
                      3: #include <errno.h>
                      4: /*
                      5:  * Screen information.
                      6:  * The externally-defined variables listed below comprise the
                      7:  * information needed to manage a virtual 3277 screen.
                      8:  */
                      9: 
                     10: #define MAXSCREENSIZE 1920             /* Max. # characters per screen */
                     11: #define MAXFIELDS MAXSCREENSIZE/2      /* Max. # fields per screen */
                     12: #define SCREENWIDTH 80                 /* Width of screen */
                     13: 
                     14: extern int do_screen;  /* If this is non-zero, real crt will be kept
                     15:                           up to date (via curses window vterm_scr) */
                     16: WINDOW *vterm_scr;     /* virtual window for 3277 screen */
                     17: WINDOW *sub_vterm;     /* subwindow of vterm_scr */
                     18: WINDOW *cmd_scr;       /* command window for 3277 screen */
                     19: WINDOW *help_scr;      /* help window */
                     20: 
                     21: extern int fldstart[]; /* Index of starting position of each
                     22:                           field's first data character.
                     23:                           Attribute characters are immediately
                     24:                           before each field. */
                     25: extern char fldattr[]; /* Attribute of each field */
                     26: extern int fldmax[];   /* Maximum width of each field */
                     27: extern int totfields;  /* Total number of fields on screen */
                     28: extern int curfield;   /* Current field number */
                     29: extern int bufaddr;    /* Current buffer address, 0 to
                     30:                           MAXSCREENSIZE-1 */
                     31: extern int cursaddr;   /* Current cursor address, 0 to
                     32:                           MAXSCREENSIZE-1 */
                     33: #define ROW cursaddr/SCREENWIDTH       
                     34: #define COL cursaddr%SCREENWIDTH
                     35: 
                     36: /* emputchar returns the following define values */
                     37: #define NORMAL           0
                     38: #define NUMERIC   1  
                     39: #define PROTECTED 2
                     40: #define FLD_FULL  3
                     41: #define NON_DISP  4
                     42: #define ATTR_CHAR 5
                     43: 
                     44: /* scrn_image is a replica of the current ASCII screen image, except that 
                     45:    attribute characters are replaced with x80's. */
                     46: extern char scrn_image[];
                     47: #define        ATTRCODE (char)0x80
                     48: 
                     49: /* scrn_xref is a cross-reference into scrn_image. It contains the current
                     50:    field number corresponding to each screen location. 
                     51:    For example, a screen containing two fields, one beginning at screen
                     52:    position 10 and the other beginning at screen position 30, can be
                     53:    visualized as follows (top row of numbers represent screen positions):
                     54:     0        1         2         3         4         5 
                     55:     012345678901234567890123456789012345678901234567890...
                     56:     111111111122222222222222222222333333333333333333333...
                     57: 
                     58:    */
                     59: extern int scrn_xref[];
                     60: 
                     61: extern int unprotected;                /* count of unprotected fields on the screen */
                     62: /* status indicates 3277 terminal status */
                     63: extern int status;     /* As follows : */
                     64: #define SYS_AVAIL      0x8000  /* System Available, Online A */
                     65: #define        ONLINEA         0x8000  /* Synonym for System Available */
                     66: #define        ONLINE          0x4000  /* Online */
                     67: #define        MYJOB           0x4000  /* My Job */
                     68: #define        INPUT_INH       0x2000  /* Input Inhibited */
                     69: #define        SYSTEM_LOCK     0x2000  /* Synonym for Input Inhibited */
                     70: #define        COMM_CHK        0x1000  /* Communications Check */
                     71: #define        PRTR_NW         0x0800  /* Printer Not Working */
                     72: #define        GO_ELSE         0x0400  /* Go Elsewhere */
                     73: #define        MORE_THAN       0x0200  /* More Than */
                     74: #define        NUM_ONLY        0x0100  /* Numeric-Only Field */
                     75: #define        INSERT_MODE     0x0080  /* Insert mode enabled */
                     76: #define PRTR_BUSY      0x0040  /* Printer Busy */
                     77: #define        LOCK_OUT (INPUT_INH|COMM_CHK|PRTR_NW|GO_ELSE|MORE_THAN|NUM_ONLY)
                     78: 
                     79: /* emgetchar returns the following defined values when the named characters are
                     80:    encountered */
                     81: #define        ENTER   129
                     82: #define        PF1     ENTER+1
                     83: #define        PF2     ENTER+2
                     84: #define        PF3     ENTER+3
                     85: #define        PF4     ENTER+4
                     86: #define        PF5     ENTER+5
                     87: #define        PF6     ENTER+6
                     88: #define        PF7     ENTER+7
                     89: #define        PF8     ENTER+8
                     90: #define        PF9     ENTER+9
                     91: #define        PF10    ENTER+10
                     92: #define        PF11    ENTER+11
                     93: #define        PF12    ENTER+12
                     94: #define        PA1     ENTER+13
                     95: #define PA2    ENTER+14
                     96: #define PA3    ENTER+15
                     97: #define        CLEAR   ENTER+16
                     98: #define        TESTREQ ENTER+17
                     99: #define        TAB     150
                    100: #define        BACKTAB 151
                    101: #define        ERASE_INP       152
                    102: #define        ERASE_EOF       153
                    103: #define        INS     154
                    104: #define        DELCHR  155
                    105: #define        ESC     156
                    106: #define        DUP     157
                    107: #define        FM      158
                    108: #define        UPAR    159
                    109: #define        DOWN    160
                    110: #define        LEFT    161
                    111: #define        RIGHT   162
                    112: #define        BACKSP  163
                    113: #define        CARRET  164
                    114: #define RESET  165
                    115: #define HELP   166
                    116: #define STATS  167
                    117: #define PRINT  168
                    118: #define OTHER 170
                    119: #define NOCHAR 0       /* no character available/recognized at present */
                    120: 
                    121: extern int     COLS;   /* number of columns */
                    122: extern int     LINES;  /* # lines on screen */
                    123: 
                    124: /* attribute codes for fldattr[]: */
                    125: #define ATTRTYPE       0x30    /* protected, numeric attribute mask */
                    126: #define ATTRNUM                0x10    /* (fldattr[x] & ATTRTYPE) == ATTRNUM
                    127:                                   if attribute defines numeric field */
                    128: #define ATTRPROT       0x20    /* (fldattr[x] & ATTRTYPE) == ATTRPROT
                    129:                                   if attribute defines protected field */
                    130: #define ATTRSKIP       0x30    /* protected and numeric -> autoskip */
                    131: 
                    132: #define num_attr(attr) ((attr & ATTRTYPE) == ATTRNUM)
                    133: #define prot_attr(attr) (attr & ATTRPROT)
                    134: #define        invis_attr(attr)        ((attr & ATTRDISP) == ATTRINVIS)
                    135: #define        hl_attr(attr)   ((attr & ATTRDISP) == ATTRHL)
                    136: #define skip_attr(attr) ((attr & ATTRSKIP) == ATTRSKIP)
                    137: 
                    138: #define        ATTRDISP        0x0c    /* display mode mask: */
                    139: #define        ATTRINVIS       0x0c    /*      Invisible */
                    140: #define        ATTRHL          0x08    /*      Highlight */
                    141: #define        ATTRMDT         0x01    /* Modified Data flag */
                    142: 
                    143: /* Write and Ewrite commands are followed by a WCC (write control character) */
                    144: extern char wcc;
                    145: 
                    146: /* Write Control Character (WCC) Layout: */
                    147: #define        WCCPRFMT        0x30    /* Print format mask: */
                    148: #define        WCCPRVAR        0x00            /* Variable-length to 132 chars */
                    149: #define        WCCPR40         0x10            /* 40-char. fixed */
                    150: #define        WCCPR64         0x20            /* 64-char. fixed */
                    151: #define        WCCPR80         0x30            /* 80-char. fixed */
                    152: #define        WCCSTPRT        0x08    /* Start Print (after command complete) */
                    153: #define        WCCALARM        0x04    /* Sound Alarm (after command complete) */
                    154: #define        WCCKYBDRST      0x02    /* Unlock Keyboard (after command complete) */
                    155: #define        WCCMDTRST       0x01    /* Immediate reset of MDT bit in all fields */
                    156: 
                    157: #define stprt(wc) (wc & WCCSTPRT)
                    158: #define walarm(wc) (wc & WCCALARM)
                    159: #define kbdrst(wc) (wc & WCCKYBDRST)
                    160: #define mdtrst(wc) (wc & WCCMDTRST)

unix.superglobalmegacorp.com

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