|
|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T t
Length: 1401 (0x579)
Types: TextFile
Names: »term.c«
└─⟦a0efdde77⟧ Bits:30001252 EUUGD11 Tape, 1987 Spring Conference Helsinki
└─⟦this⟧ »EUUGD11/euug-87hel/sec1/basic/m68000/term.c«
/*
* BASIC by Phil Cockcroft
*/
/*
* terminal specific configuration routines for 68000's
*/
#include "m68000/conf.h"
#include <sgtty.h>
struct sgttyb osttyb,nsttyb;
struct tchars otchr,ntchr;
extern int ter_width;
extern char noedit;
#ifndef SCOPE
#define SCOPE 0
#endif
#ifdef MCBREAK
static char doneset;
#endif
static int got_mode;
setu_term()
{
register i;
char *p, *getenv();
p = getenv("TERM");
ioctl(0,TIOCGETP,&osttyb);
nsttyb=osttyb;
ioctl(0,TIOCGETC,&otchr);
ntchr = otchr; /* do we need this ??? */
ntchr.t_brkc = -1;
ntchr.t_eofc = -1;
ntchr.t_intrc = CTRLINT;
ntchr.t_quitc = CTRLQUIT;
if(p && strcmp(p, "ucl7009") == 0){
ntchr.t_startc = -1;
ntchr.t_stopc = -1;
}
i = osttyb.sg_flags & ( LCASE | XTABS);
#ifdef MCBREAK
nsttyb.sg_flags = CBREAK | ANYP | CRMOD | i;
#else
nsttyb.sg_flags = CBREAK | ANYP | i;
#endif
osttyb.sg_flags = ECHO | ANYP | CRMOD | SCOPE | i;
if(ter_width <= 0)
ter_width=DEFPAGE;
got_mode = 1;
}
set_term()
{
if(noedit || !got_mode)
return;
#ifdef MCBREAK
if(doneset)
return;
doneset = 1;
#endif
ioctl(0,TIOCSETN,&nsttyb);
ioctl(0,TIOCSETC,&ntchr);
}
rset_term(type)
{
if(noedit || !got_mode)
return;
#ifdef MCBREAK
if(!type){
/* in editing loop */
if(doneset)
return;
} else
doneset = 0;
#endif
ioctl(0,TIOCSETN,&osttyb);
ioctl(0,TIOCSETC,&otchr);
}