DataMuseum.dk

Presents historical artifacts from the history of:

ICL Comet 32

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

See our Wiki for more about ICL Comet 32

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦1d524a450⟧ TextFile

    Length: 1612 (0x64c)
    Types: TextFile
    Notes: UNIX file
    Names: »wdsaio.h«

Derivation

└─⟦26887b7e0⟧ Bits:30009717 Comet 32 harddisk image
    └─⟦28c352965⟧ »/a« UNIX Filesystem
        └─⟦this⟧ »usr/include/sys/wdsaio.h« 

TextFile

/*
 *  Definitions for standalone winchester driver.  Somebody should
 *  probably write a standalone tape driver and make a common sasi
 *  header file.  It ain't me...
 */

/* physical device addresses */
#define BADR(n)		((unsigned char *)(n))
#define WD_SASIDATA	BADR(0xfff8a0)
#define WD_SASIIN	BADR(0xfff8a2)
#define WD_SASIOUT	BADR(0xfff8a4)

/* bus signals driven by controller (target) */
#define	BUS_BSY		(1<<0)
#define	BUS_MSG		(1<<1)
#define	BUS_CD		(1<<2)
#define	BUS_REQ		(1<<3)
#define	BUS_IO		(1<<4)

/* bus signals driven by us (initiator) */
#define	BUS_ACK		(1<<0)
#define	BUS_RST		(1<<1)
#define	BUS_SEL		(1<<2)

/* disk controller id used in selection phase */
#define IDBITS		0x01

/* bits in completion status byte */
#define	STAT_CHECK	(1<<1)
#define	STAT_BUSY	(1<<3)

/* bus phases */
#define PH_FREE		0
#define PH_SELECT	1
#define PH_COMMAND	2
#define PH_DATAIN	3
#define PH_DATAOUT	4
#define PH_STATUS	5
#define PH_MESSAGE	6
#define PH_COMPLETE	7

/* commands */
#define WDC_TESTUNIT	0x00
#define WDC_REZERO	0x01
#define WDC_REQSENSE	0x03
#define WDC_FORMAT	0x04
#define WDC_READ	0x08
#define WDC_WRITE	0x0a
#define WDC_SEEK	0x0b
#define WDC_TRANSLATE	0x0f
#define WDC_INQUIRY	0x12
#define WDC_MODESEL	0x15
#define WDC_RESUNIT	0x16
#define WDC_RELUNIT	0x17
#define WDC_MODESENSE	0x1a
#define WDC_START	0x1b
#define WDC_READCAP	0x25
#define WDC_XREAD	0x28
#define WDC_XWRITE	0x2a
#define WDC_WVERIFY	0x2e
#define WDC_VERIFY	0x2f

/* stuff from sense bytes */
struct wdsense {
	char wds_class;
	char wds_code;
	int wds_block;
};

/* a dummy buf structure */
struct buf { int zorkmid; };