|
|
DataMuseum.dkPresents historical artifacts from the history of: Commodore CBM-900 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Commodore CBM-900 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 2961 (0xb91)
Types: TextFile
Notes: UNIX file
Names: »ktty.h«
└─⟦f27320a65⟧ Bits:30001972 Commodore 900 hard disk image with partial source code
└─⟦2d53db1df⟧ UNIX Filesystem
└─⟦this⟧ »sys/z8001/h/ktty.h«
/* (-lgl
* The information contained herein is a trade secret of Mark Williams
* Company, and is confidential information. It is provided under a
* license agreement, and may be copied or disclosed only under the
* terms of that agreement. Any reproduction or disclosure of this
* material without the express written authorization of Mark Williams
* Company or persuant to the license agreement is unlawful.
*
* COHERENT Version 0.7.3
* Copyright (c) 1982, 1983, 1984.
* An unpublished work by Mark Williams Company, Chicago.
* All rights reserved.
-lgl) */
/*
* Kernel portion of typewriter structure.
*/
#ifndef KTTY_H
#define KTTY_H
#include <sys/types.h>
#include <sys/clist.h>
#include <sgtty.h>
#define NCIB 256 /* Input buffer */
#define OHILIM 128 /* Output buffer hi water mark */
#define OLOLIM 40 /* Output buffer lo water mark */
#define IHILIM 512 /* Input buffer hi water mark */
#define ILOLIM 40 /* Input buffer lo water mark */
#define ITSLIM (IHILIM-(IHILIM/4)) /* Input buffer tandem stop mark */
#define ESC '\\' /* Some characters */
typedef struct tty {
CQUEUE t_oq; /* Output queue */
CQUEUE t_iq; /* Input queue */
char *t_ddp; /* Device specific */
int (*t_start)(); /* Start function */
int (*t_param)(); /* Load parameters function */
char t_dispeed; /* Default input speed */
char t_dospeed; /* Default output speed */
int t_open; /* Open count */
int t_flags; /* Flags */
char t_nfill; /* Number of fill characters */
char t_fillb; /* The fill character */
int t_ibx; /* Input buffer index */
char t_ib[NCIB]; /* Input buffer */
int t_hpos; /* Horizontal position */
int t_opos; /* Original horizontal position */
struct sgttyb t_sgttyb;/* Stty/gtty information */
struct tchars t_tchars;/* Tchars information */
int t_group; /* Process group */
int t_escape; /* Pending escape count */
} TTY;
/*
* Test macros.
* Assume `tp' holds a TTY pointer.
* `c' a character.
* Be very careful if you work on the
* tty driver that this is true.
*/
#define ISINTR (tp->t_tchars.t_intrc == c)
#define ISQUIT (tp->t_tchars.t_quitc == c)
#define ISEOF (tp->t_tchars.t_eofc == c)
#define ISBRK (tp->t_tchars.t_brkc == c)
#define ISSTART (tp->t_tchars.t_startc == c)
#define ISSTOP (tp->t_tchars.t_stopc == c)
#define ISCRMOD ((tp->t_sgttyb.sg_flags&CRMOD) != 0)
#define ISXTABS ((tp->t_sgttyb.sg_flags&XTABS) != 0)
#define ISRIN ((tp->t_sgttyb.sg_flags&RAWIN) != 0)
#define ISROUT ((tp->t_sgttyb.sg_flags&RAWOUT)!= 0)
#define ISECHO ((tp->t_sgttyb.sg_flags&ECHO) != 0)
#define ISCRT ((tp->t_sgttyb.sg_flags&CRT) != 0)
#define ISCBRK ((tp->t_sgttyb.sg_flags&CBREAK)!= 0)
#define ISTAND ((tp->t_sgttyb.sg_flags&TANDEM)!= 0)
#define ISBBYB ((tp->t_sgttyb.sg_flags&(RAWIN|CBREAK)) != 0)
#define ISERASE (tp->t_sgttyb.sg_erase == c)
#define ISKILL (tp->t_sgttyb.sg_kill == c)
#define stopc (tp->t_tchars.t_stopc)
#define startc (tp->t_tchars.t_startc)
#endif