DataMuseum.dk

Presents historical artifacts from the history of:

Regnecentalen RC-900

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Regnecentalen RC-900

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦95ccb4fb2⟧ TextFile

    Length: 8913 (0x22d1)
    Types: TextFile
    Notes: Uncompressed file

Derivation

└─⟦82ee0715d⟧ Bits:30004771 Terminal Driver Rel. 1.2 (3.5 inch)
└─⟦82ee0715d⟧ UNIX Filesystem
    └─⟦e395dafd1⟧ »RCTDR.ISC/new/etc/drivers/td/Space.c.Z« 
    └─⟦e395dafd1⟧ »RCTDR.SCO/new/etc/drivers/td/Space.c.Z« 
└─⟦ca69fd3f9⟧ Bits:30004770 Terminal Driver Rel. 1.2 (5.25 inch)
└─⟦ca69fd3f9⟧ UNIX Filesystem
    └─⟦e395dafd1⟧ »RCTDR.ISC/new/etc/drivers/td/Space.c.Z« 
    └─⟦e395dafd1⟧ »RCTDR.SCO/new/etc/drivers/td/Space.c.Z« 
        └─⟦this⟧ 

TextFile

/*
 *				Copyright (c) 1991 RC International
 *						All Rights Reserved
 */

/*
 *	Data and configuration structures for RC International Terminal Driver.
 */

#ident	"@(#)Space.c	1.2, RC International, 92/12/16"

#include <sys/types.h>
#include <sys/param.h>
#include <sys/tty.h>
#include <sys/dir.h>
#include <sys/signal.h>
#include <sys/user.h>
#include <sys/immu.h>
#include <sys/region.h>
#include <sys/proc.h>
#include <sys/chain.h>
#include <sys/msl.h>
#include <sys/card.h>
#ifdef VPIX
#include <sys/tss.h>
#include <sys/v86.h>
#endif
#include <sys/td.h>
#include <sys/tdtrace.h>

#include "config.h"

#if defined(HBTCP) || defined(XWIN)
extern int pollwait;
#else
int pollwait;
#endif

#if TD_MAPCH == 1
/* stubs routines for SCO mapchan command */
emaddmap()
{
	return(0);
}

emchkmap()
{
	return(1);
}
#endif

#ifdef TD_0
#	define	TDU_1		1
#	define	TDU_1_TYPE	((TD_0 / 10) % 10)
#	define	TDU_1_UNIT	(TD_0 % 10)
#	if TDU_1_TYPE == NONE_TYPE
#		define	TDU_1_DEVS	0
#	elif TDU_1_TYPE == RCMUX_TYPE
#		define	TDU_1_DEVS	48
#	else
#		define	TDU_1_DEVS	100
#	endif
#else
#	define	TDU_1		0
#	define	TDU_1_TYPE	NONE_TYPE
#	define	TDU_1_UNIT	0
#	define	TDU_1_DEVS	0
#endif

#ifdef TD_1
#	define	TDU_2		1
#	define	TDU_2_TYPE	((TD_1 / 10) % 10)
#	define	TDU_2_UNIT	(TD_1 % 10)
#	if TDU_2_TYPE == NONE_TYPE
#		define	TDU_2_DEVS	0
#	elif TDU_2_TYPE == RCMUX_TYPE
#		define	TDU_2_DEVS	48
#	else
#		define	TDU_2_DEVS	100
#	endif
#else
#	define	TDU_2		0
#	define	TDU_2_TYPE	NONE_TYPE
#	define	TDU_2_UNIT	0
#	define	TDU_2_DEVS	0
#endif

#ifdef TD_2
#	define	TDU_3		1
#	define	TDU_3_TYPE	((TD_2 / 10) % 10)
#	define	TDU_3_UNIT	(TD_2 % 10)
#	if TDU_3_TYPE == NONE_TYPE
#		define	TDU_3_DEVS	0
#	elif TDU_3_TYPE == RCMUX_TYPE
#		define	TDU_3_DEVS	48
#	else
#		define	TDU_3_DEVS	100
#	endif
#else
#	define	TDU_3		0
#	define	TDU_3_TYPE	NONE_TYPE
#	define	TDU_3_UNIT	0
#	define	TDU_3_DEVS	0
#endif

#ifdef TD_3
#	define	TDU_4		1
#	define	TDU_4_TYPE	((TD_3 / 10) % 10)
#	define	TDU_4_UNIT	(TD_3 % 10)
#	if TDU_4_TYPE == NONE_TYPE
#		define	TDU_4_DEVS	0
#	elif TDU_4_TYPE == RCMUX_TYPE
#		define	TDU_4_DEVS	48
#	else
#		define	TDU_4_DEVS	100
#	endif
#else
#	define	TDU_4		0
#	define	TDU_4_TYPE	NONE_TYPE
#	define	TDU_4_UNIT	0
#	define	TDU_4_DEVS	0
#endif

#ifdef TD_4
#	define	TDU_5		1
#	define	TDU_5_TYPE	((TD_4 / 10) % 10)
#	define	TDU_5_UNIT	(TD_4 % 10)
#	if TDU_5_TYPE == NONE_TYPE
#		define	TDU_5_DEVS	0
#	elif TDU_5_TYPE == RCMUX_TYPE
#		define	TDU_5_DEVS	48
#	else
#		define	TDU_5_DEVS	100
#	endif
#else
#	define	TDU_5		0
#	define	TDU_5_TYPE	NONE_TYPE
#	define	TDU_5_UNIT	0
#	define	TDU_5_DEVS	0
#endif

#ifdef TD_5
#	define	TDU_6		1
#	define	TDU_6_TYPE	((TD_5 / 10) % 10)
#	define	TDU_6_UNIT	(TD_5 % 10)
#	if TDU_6_TYPE == NONE_TYPE
#		define	TDU_6_DEVS	0
#	elif TDU_6_TYPE == RCMUX_TYPE
#		define	TDU_6_DEVS	48
#	else
#		define	TDU_6_DEVS	100
#	endif
#else
#	define	TDU_6		0
#	define	TDU_6_TYPE	NONE_TYPE
#	define	TDU_6_UNIT	0
#	define	TDU_6_DEVS	0
#endif

#ifdef TD_6
#	define	TDU_7		1
#	define	TDU_7_TYPE	((TD_6 / 10) % 10)
#	define	TDU_7_UNIT	(TD_6 % 10)
#	if TDU_7_TYPE == NONE_TYPE
#		define	TDU_7_DEVS	0
#	elif TDU_7_TYPE == RCMUX_TYPE
#		define	TDU_7_DEVS	48
#	else
#		define	TDU_7_DEVS	100
#	endif
#else
#	define	TDU_7		0
#	define	TDU_7_TYPE	NONE_TYPE
#	define	TDU_7_UNIT	0
#	define	TDU_7_DEVS	0
#endif

#ifdef TD_7
#	define	TDU_8		1
#	define	TDU_8_TYPE	((TD_7 / 10) % 10)
#	define	TDU_8_UNIT	(TD_7 % 10)
#	if TDU_8_TYPE == NONE_TYPE
#		define	TDU_8_DEVS	0
#	elif TDU_8_TYPE == RCMUX_TYPE
#		define	TDU_8_DEVS	48
#	else
#		define	TDU_8_DEVS	100
#	endif
#else
#	define	TDU_8		0
#	define	TDU_8_TYPE	NONE_TYPE
#	define	TDU_8_UNIT	0
#	define	TDU_8_DEVS	0
#endif

#ifdef TD_8
#	define	TDU_9		1
#	define	TDU_9_TYPE	((TD_8 / 10) % 10)
#	define	TDU_9_UNIT	(TD_8 % 10)
#	if TDU_9_TYPE == NONE_TYPE
#		define	TDU_9_DEVS	0
#	elif TDU_9_TYPE == RCMUX_TYPE
#		define	TDU_9_DEVS	48
#	else
#		define	TDU_9_DEVS	100
#	endif
#else
#	define	TDU_9		0
#	define	TDU_9_TYPE	NONE_TYPE
#	define	TDU_9_UNIT	0
#	define	TDU_9_DEVS	0
#endif

#ifdef TD_9
#	define	TDU_10		1
#	define	TDU_10_TYPE	((TD_9 / 10) % 10)
#	define	TDU_10_UNIT	(TD_9 % 10)
#	if TDU_10_TYPE == NONE_TYPE
#		define	TDU_10_DEVS	0
#	elif TDU_10_TYPE == RCMUX_TYPE
#		define	TDU_10_DEVS	48
#	else
#		define	TDU_10_DEVS	100
#	endif
#else
#	define	TDU_10		0
#	define	TDU_10_TYPE	NONE_TYPE
#	define	TDU_10_UNIT	0
#	define	TDU_10_DEVS	0
#endif

#ifdef TD_10
#	define	TDU_11		1
#	define	TDU_11_TYPE	((TD_10 / 10) % 10)
#	define	TDU_11_UNIT	(TD_10 % 10)
#	if TDU_11_TYPE == NONE_TYPE
#		define	TDU_11_DEVS	0
#	elif TDU_11_TYPE == RCMUX_TYPE
#		define	TDU_11_DEVS	48
#	else
#		define	TDU_11_DEVS	100
#	endif
#else
#	define	TDU_11		0
#	define	TDU_11_TYPE	NONE_TYPE
#	define	TDU_11_UNIT	0
#	define	TDU_11_DEVS	0
#endif

#ifdef TD_11
#	define	TDU_12		1
#	define	TDU_12_TYPE	((TD_11 / 10) % 10)
#	define	TDU_12_UNIT	(TD_11 % 10)
#	if TDU_12_TYPE == NONE_TYPE
#		define	TDU_12_DEVS	0
#	elif TDU_12_TYPE == RCMUX_TYPE
#		define	TDU_12_DEVS	48
#	else
#		define	TDU_12_DEVS	100
#	endif
#else
#	define	TDU_12		0
#	define	TDU_12_TYPE	NONE_TYPE
#	define	TDU_12_UNIT	0
#	define	TDU_12_DEVS	0
#endif

#ifdef TD_12
#	define	TDU_13		1
#	define	TDU_13_TYPE	((TD_12 / 10) % 10)
#	define	TDU_13_UNIT	(TD_12 % 10)
#	if TDU_13_TYPE == NONE_TYPE
#		define	TDU_13_DEVS	0
#	elif TDU_13_TYPE == RCMUX_TYPE
#		define	TDU_13_DEVS	48
#	else
#		define	TDU_13_DEVS	100
#	endif
#else
#	define	TDU_13		0
#	define	TDU_13_TYPE	NONE_TYPE
#	define	TDU_13_UNIT	0
#	define	TDU_13_DEVS	0
#endif

#ifdef TD_13
#	define	TDU_14		1
#	define	TDU_14_TYPE	((TD_13 / 10) % 10)
#	define	TDU_14_UNIT	(TD_13 % 10)
#	if TDU_14_TYPE == NONE_TYPE
#		define	TDU_14_DEVS	0
#	elif TDU_14_TYPE == RCMUX_TYPE
#		define	TDU_14_DEVS	48
#	else
#		define	TDU_14_DEVS	100
#	endif
#else
#	define	TDU_14		0
#	define	TDU_14_TYPE	NONE_TYPE
#	define	TDU_14_UNIT	0
#	define	TDU_14_DEVS	0
#endif

#ifdef TD_14
#	define	TDU_15		1
#	define	TDU_15_TYPE	((TD_14 / 10) % 10)
#	define	TDU_15_UNIT	(TD_14 % 10)
#	if TDU_15_TYPE == NONE_TYPE
#		define	TDU_15_DEVS	0
#	elif TDU_15_TYPE == RCMUX_TYPE
#		define	TDU_15_DEVS	48
#	else
#		define	TDU_15_DEVS	100
#	endif
#else
#	define	TDU_15		0
#	define	TDU_15_TYPE	NONE_TYPE
#	define	TDU_15_UNIT	0
#	define	TDU_15_DEVS	0
#endif

#ifdef TD_15
#	define	TDU_16		1
#	define	TDU_16_TYPE	((TD_15 / 10) % 10)
#	define	TDU_16_UNIT	(TD_15 % 10)
#	if TDU_16_TYPE == NONE_TYPE
#		define	TDU_16_DEVS	0
#	elif TDU_16_TYPE == RCMUX_TYPE
#		define	TDU_16_DEVS	48
#	else
#		define	TDU_16_DEVS	100
#	endif
#else
#	define	TDU_16		0
#	define	TDU_16_TYPE	NONE_TYPE
#	define	TDU_16_UNIT	0
#	define	TDU_16_DEVS	0
#endif

struct td_cfg		td_cfg[16] = {
/*	present:	unit_no:		ctlr_type:		no_devs:	*/
	TDU_1,		TDU_1_UNIT,		TDU_1_TYPE,		TDU_1_DEVS,
	TDU_2,		TDU_2_UNIT,		TDU_2_TYPE,		TDU_2_DEVS,
	TDU_3,		TDU_3_UNIT,		TDU_3_TYPE,		TDU_3_DEVS,
	TDU_4,		TDU_4_UNIT,		TDU_4_TYPE,		TDU_4_DEVS,
	TDU_5,		TDU_5_UNIT,		TDU_5_TYPE,		TDU_5_DEVS,
	TDU_6,		TDU_6_UNIT,		TDU_6_TYPE,		TDU_6_DEVS,
	TDU_7,		TDU_7_UNIT,		TDU_7_TYPE,		TDU_7_DEVS,
	TDU_8,		TDU_8_UNIT,		TDU_8_TYPE,		TDU_8_DEVS,
	TDU_9,		TDU_9_UNIT,		TDU_9_TYPE,		TDU_9_DEVS,
	TDU_10,		TDU_10_UNIT,	TDU_10_TYPE,	TDU_10_DEVS,
	TDU_11,		TDU_11_UNIT,	TDU_11_TYPE,	TDU_11_DEVS,
	TDU_12,		TDU_12_UNIT,	TDU_12_TYPE,	TDU_12_DEVS,
	TDU_13,		TDU_13_UNIT,	TDU_13_TYPE,	TDU_13_DEVS,
	TDU_14,		TDU_14_UNIT,	TDU_14_TYPE,	TDU_14_DEVS,
	TDU_15,		TDU_15_UNIT,	TDU_15_TYPE,	TDU_15_DEVS,
	TDU_16,		TDU_16_UNIT,	TDU_16_TYPE,	TDU_16_DEVS,
};

#define	TD_CTLRS	(TDU_1  + TDU_2  + TDU_3  + TDU_4  + TDU_5  + TDU_6  + \
					 TDU_7  + TDU_8  + TDU_9  + TDU_10 + TDU_11 + TDU_12 + \
					 TDU_13 + TDU_14 + TDU_15 + TDU_16)
int					td_no_ctlrs = TD_CTLRS;
struct td_ctlr		td_ctlrs[TD_CTLRS];

struct td_ctlr		* td_unit_tab[17];

#define	TD_DEVS		(TDU_1_DEVS  + TDU_2_DEVS  + TDU_3_DEVS  + TDU_4_DEVS  + \
					 TDU_5_DEVS  + TDU_6_DEVS  + TDU_7_DEVS  + TDU_8_DEVS  + \
					 TDU_9_DEVS  + TDU_10_DEVS + TDU_11_DEVS + TDU_12_DEVS + \
					 TDU_13_DEVS + TDU_14_DEVS + TDU_15_DEVS + TDU_16_DEVS)
int					td_no_dev_ptrs = TD_DEVS;
struct td_dev		* td_dev_ptrs[TD_DEVS];

#if defined(SCO) || defined(M_UNIX) || defined(DMAABLE)
short				td_host_type = ISO_HOST;
#else
short				td_host_type = IBM_DOS;
#endif

#define	TDB_0_BASE	0
#ifdef TDP_0
#define	TDB_0_DEVS	TDP_0
#else
#define	TDB_0_DEVS	0
#endif

#define	TDB_1_BASE	(TDB_0_BASE + TDB_0_DEVS)
#ifdef TDF_0
#define	TDB_1_DEVS	TDF_0
#else
#define	TDB_1_DEVS	0
#endif

#define	TDB_2_BASE	(TDB_1_BASE + TDB_1_DEVS)
#ifdef TDM_0
#define	TDB_2_DEVS	TDM_0
#else
#define	TDB_2_DEVS	0
#endif

struct td_board		td_boards[3] = {
/*	base:		devices:	*/
	TDB_0_BASE,	TDB_0_DEVS,
	TDB_1_BASE,	TDB_1_DEVS,
	TDB_2_BASE,	TDB_2_DEVS,
};

#define	TD_CHANS	(TDB_0_DEVS + TDB_1_DEVS + TDB_2_DEVS)
int					td_no_devs = TD_CHANS;
struct td_dev		td_devs[TD_CHANS];

#define TD_TSIZE	1024				/* number of trace records */
int					td_ttop = TD_TSIZE;
struct tdtrace		td_tbuf[TD_TSIZE];