Annotation of cci/usr/src/usr.bin/bsc/cmd/3270/emreadbuf.c, revision 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.