Annotation of cci/usr/src/usr.bin/bsc/cmd/3270/emreadbuf.c, revision 1.1.1.1

1.1       root        1: /*     D.L.Buck and Associates, Inc. - May, 1984
                      2:  *
                      3:  *     COPYRIGHT NOTICE:
                      4:  *             Copyright c 1984 - An unpublished work by
                      5:  *             D.L.Buck and Associates, Inc.
                      6:  *
                      7:  *     PROPRIETARY RIGHTS NOTICE:
                      8:  *             All rights reserved. This document and program contains
                      9:  *             proprietary information of D.L.Buck and Associates,Inc.
                     10:  *             of San Jose, California, U.S.A., embodying confidential
                     11:  *             information,  ideas, and expressions,  no part of which
                     12:  *             may be reproduced, or transmitted in any form or by any
                     13:  *             means,  electronic,  mechanical,  or otherwise, without
                     14:  *             the written permission of D.L.Buck and Associates, Inc.
                     15:  *
                     16:  * NAME
                     17:  *     emreadbuf
                     18:  *
                     19:  * SYNOPSIS
                     20:  *     emreadbuf()
                     21:  *
                     22:  * DESCRIPTION
                     23:  *
                     24:  */
                     25: #include <em.h>
                     26: #include "local.h"
                     27: #include <bsc/bscio.h>
                     28: 
                     29: #define GOZINTA(x) x/64
                     30: #define LEFTOVER(x)  x%64
                     31: #define SF     0x1d
                     32: #define        YES     1
                     33: #define        NO      0
                     34: 
                     35: extern int ascii;
                     36: extern int pt_to_pt;
                     37: extern char aadr_tbl[];                /* ASCII hex cursor address encoding table */
                     38: extern char eadr_tbl[];                /* EBCDIC hex cursor address encoding table */
                     39: 
                     40: extern int devfd;
                     41: extern int errno;
                     42: extern struct bscio p;
                     43: extern char aid_val;
                     44: extern int stationid;
                     45: extern char termid;
                     46: extern int xmitfd;
                     47: static char sccsid[] = "@(#)emreadbuf.c        1.4 REL";
                     48: 
                     49: emreadbuf()
                     50: {
                     51:        register char *chrptr;
                     52:        register int *xrefptr;
                     53:        char x;
                     54: 
                     55:        if (pt_to_pt == BSCMPT) {       /* multipoint - put in addr's */
                     56:                bput(termid);           /* controller's poll addr */
                     57:                bput (stationid);       /* subdevice address */
                     58:        }
                     59:        /* Output `read header' */
                     60:        bput(aid_val);
                     61:        bput((ascii?aadr_tbl:eadr_tbl)[GOZINTA(cursaddr)]);
                     62:        bput((ascii?aadr_tbl:eadr_tbl)[LEFTOVER(cursaddr)]);
                     63: 
                     64:        for (chrptr = scrn_image, xrefptr = scrn_xref;
                     65:             chrptr < &scrn_image[MAXSCREENSIZE];
                     66:             ++chrptr, ++xrefptr) {
                     67:                if (*chrptr == ATTRCODE)        {
                     68:                        bput(SF);
                     69:                        x = fldattr[*xrefptr];
                     70:                } else  {
                     71:                        x = *chrptr;
                     72:                        if (!ascii)
                     73:                                ascebc(&x,1);
                     74:                }
                     75:                bput(x);
                     76:        }
                     77: 
                     78:        ioctl(devfd,BSCLAST,0);
                     79:        flushbuf();
                     80: }

unix.superglobalmegacorp.com

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