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

⟦16baf34c3⟧ TextFile

    Length: 4558 (0x11ce)
    Types: TextFile
    Notes: Uncompressed file

Derivation

└─⟦ce621b962⟧ Bits:30004623 Controller Environment R. 1.2 (5.25 inch)
└─⟦ce621b962⟧ UNIX Filesystem
    └─⟦490a766d9⟧ »CTENV.ISC/new/usr/include/sys/card.h.Z« 
    └─⟦490a766d9⟧ »CTENV.SCO/new/usr/include/sys/card.h.Z« 
└─⟦e03896eec⟧ Bits:30004624 Controller Environment R. 1.2 (3.5 inch)
└─⟦e03896eec⟧ UNIX Filesystem
    └─⟦490a766d9⟧ »CTENV.ISC/new/usr/include/sys/card.h.Z« 
    └─⟦490a766d9⟧ »CTENV.SCO/new/usr/include/sys/card.h.Z« 
        └─⟦this⟧ 

TextFile


#ident	"@(#)card.h	1.1 - 91/07/18"

#define	CD_CMD	'C'
#define	CD_CARDS	(CD_CMD<<8|'C')

/* card.h 87.05.13 */

#define MAXUNITS	16
#define TYPES		4
#define SUP_BUF_SIZE	1024
#define SUP_BUF		1024
#define BWNAMESIZE	10

/* The languages we support */

#define IMC_LANG 0
#define TCI_LANG 1
#define CCI_LANG 2
#define PCI_LANG 3

#ifdef INKERNEL

/* description of a window */

/* offset */	struct window {
/*     0H */	  ushort w_offset;
/*     2H */	  ushort w_no;     /* physaddr = w_no<<16 + w_offset	*/
/*     4H */	  ushort w_size;   /* w_offset + w_size <= 64k		*/
/*     6H */	};

/* layout of the primary window between 386 and a controller board	*/

#define PARAMSIZE 0x216	/* SUP_BUF - sizeof(struct coupling) -2		*/
                        /* - MAXUNITS - 6*TYPES*MAXUNITS -2 -BWNAMESIZE	*/

/* offset */	struct boot_window {
/*     0H */	  struct coupling bw_cp;
/*    4CH */	  unchar bw_unno;
/*    4DH */	  unchar bw_untyp;
/*    4EH */	  unchar bw_cptab[MAXUNITS];
/*    5EH */	  struct window bw_wtab[MAXUNITS][TYPES];
/*   1DEH */      ushort bw_memsize;
/*   1E0H */      unchar bw_hostname[BWNAMESIZE];
/*   1EAH */	  unchar bw_params[PARAMSIZE];
/*   400H */	  unchar bw_sup[SUP_BUF_SIZE];
/*   800H */	};

#define CJFOFFSET	0xFFF0

#endif /* INKERNEL */

/* contents of a configuration output */

/* offset */	struct board_init {
/*     0H */	  ushort bi_unno;	/* unit number			*/
/*     2H */      ushort bi_type;	/* unit type			*/
/*     4H */	  ushort bi_window;	/* index of primary window	*/
/*     6H */	  ushort bi_appetite;	/* number of interaction	*/
					/* descriptions to follow	*/
/*     8H */	};

/* description of an interaction (window part) between two boards	*/
/* one of the boards is the one being configured			*/

/* offset */	struct interaction {
/*     0H */	  unchar i_unit;	/* the other board		*/
/*     1H */	  unchar i_type;	/* language: IMC = 0, TCI = 1	*/
/*     2H */	  unchar i_cp;		/* if nonzero the window	*/
			                /* contains the coupling	*/
/*     3H */	  unchar i_window;	/* index of window,		*/
					/* not the 64k address		*/
/*     4H */	  ushort i_offset;	/* offset of interaction data	*/
/*     6H */	  ushort i_size;	/* size of interaction data	*/
/*     8H */	};

/* card read/write message */

/* offset */	struct sup_msg {
/*  0H,1H */	  unchar sm_unit, sm_gate;
/*     2H */	  ushort sm_type;
/*     4H */	  ushort sm_ident;
/*     6H */	  ushort sm_offset;
/*     8H */	  ushort sm_size;
/*     CH */	  uint sm_address;
/*    10H */      char sm_fill[16];
/*    20H */	};

struct c_trace {
  unsigned tracebuffer[1024];
  int traceno, tracefirst;
};

#define	CARD_TR_OPEN	1
#define	CARD_TR_CLOSE	2
#define	CARD_TR_READ	3	/* followed by UOFFSET */
#define	CARD_TR_WRITE	4	/* followed by UOFFSET */
#define	CARD_TR_SETBOOT	5
#define	CARD_TR_XSEND	6
#define	CARD_TR_INTR	7
#define	CARD_TR_INTTO386	8
#define	CARD_TR_FAULT	9
#define	CARD_TR_CREDIT	10
#define	CARD_TR_BUFFER	11
#define	CARD_TR_TRANSF	12
#define	CARD_TR_DROP	13
#define	CARD_TR_UOFFSET	14
#define	CARD_TR_RELAYINT	15
#define	CARD_TR_DELAYINT	16
#define	CARD_TR_SENDINT	17
#define	CARD_TR_RELEASE	18

/* description of a card */

/* An array of these are initialized from sdevice defines */
/* The unit field contains information on:
	card type
	2'nd unit no
   for values of card type se msl.h RCxxx_TYPE
*/

#define	CARD_2ND	0x100

struct card_desc {
	char	c_ctype;	/* card type */
	char	c_dmano;	/* dma channel */
	short	c_intno;	/* int number */
	int	c_start;	/* io start addr */
	int	c_reset;	/* io reset addr */
	int	c_intack;	/* int ack io addr */
	int	c_intaddr;	/* int io addr */
	int	(*c_initprog)(); /* init routine */
};

/* This structure descripes a interaction for a driver.
   card_inter(uno, lang, &inter_info) will initialize it.
*/

struct inter_info {
	caddr_t	ii_addr;	/* 386 virtual address of window */
	int	ii_size;	/* size of the window */
	ushort	ii_segment;	/* 64k physical memory segment */
	ushort	ii_offset;	/* 64k physical memory offset in segment */
	int	ii_res_i;
	char	ii_type;	/* The card type */
	char	ii_res[3];
};

#if 0
/* This structure is used to descripe the memory that has been allocated
   for the cards.
*/

struct card_win_map {
	caddr_t	wm_virt;	/* 386 virtual address of the window */
	paddr_t	wm_phys;	/* Physical memory address of the window */
	int	wm_size;	/* the size of the window */
	int	wm_flag;	/* Status' */
};

#define	CWM_NONE	0x1	/* Unused slot */
#define	CWM_FREE	0x2	/* Allocated memory unused */
#define	CWM_USED	0x3	/* Allocated memory used */
#endif