/* SparcSoftcardOps.h created by Sherman of September 7, 1988 11:27:27 am PDT */

/* from SparcSoftcardOps.mob */

#include "standard.h"

extern void SparcSoftcardOps←SparcReset();

extern void SparcSoftcardOps←SparcResetAndStart();

extern void SparcSoftcardOps←SparcCacheDisable();

extern void SparcSoftcardOps←SparcCacheEnable();

typedef enum {
	DMAState←active=0,
	DMAState←inactive=1
	} SparcSoftcardOps←DMAState;

extern void SparcSoftcardOps←SetDMAState();
	/* SparcSoftcardOps←DMAState dMAState; */

typedef enum {
	DMAMode←printer=0,
	DMAMode←display=1,
	DMAMode←versatecOneShot=2,
	DMAMode←versatecStream=3
	} SparcSoftcardOps←DMAMode;

extern void SparcSoftcardOps←SetDMAMode();
	/* SparcSoftcardOps←DMAMode dMAMode; */

extern void SparcSoftcardOps←DMAAddressRegisterLoad();
	/* CARD32 byteAddress; */

typedef enum {
	VMSpaceName←dMA=0,
	VMSpaceName←iOP=1,
	VMSpaceName←cP=2,
	VMSpaceName←sparcUserData=3,
	VMSpaceName←sparcUserProgram=4,
	VMSpaceName←sparcSuperData=5,
	VMSpaceName←sparcSuperProgram=6
	} SparcSoftcardOps←VMSpaceName;

typedef struct VMSpace←self {
	SparcSoftcardOps←VMSpaceName name;
	CARD32 task;	/* ← 0 */
	} SparcSoftcardOps←VMSpace;

typedef struct Flags←self {
	BOOLEAN dirty;	/* ← FALSE */
	BOOLEAN referenced;	/* ← FALSE */
	BOOLEAN readOnly;	/* ← FALSE */
	BOOLEAN nonCachable;	/* ← FALSE */
	BOOLEAN interrupt;	/* ← FALSE */
	} SparcSoftcardOps←Flags;

typedef struct MapEntry←self {
	SparcSoftcardOps←Flags flags;
	SparcSoftcardOps←VMSpace vMSpace;
	CARD32 virtualAddressByte;
	CARD32 realAddressByte;
	} SparcSoftcardOps←MapEntry;

typedef struct MapEntryConcrete←self {
	BOOLEAN dirty:1;
	BOOLEAN referenced:1;
	BOOLEAN readOnly:1;
	BOOLEAN nonCachable:1;
	BOOLEAN interrupt:1;
	BYTE task:8;
	INT virtualPageHiHi:3;
	INT virtualPageHiLow:2;
	BOOL trash:1;
	INT realPage:13;
	} SparcSoftcardOps←MapEntryConcrete;

extern void SparcSoftcardOps←WriteMapEntry();
	/* SparcSoftcardOps←MapEntry mapEntry; */

typedef struct ReadMapEntry←self {
	SparcSoftcardOps←MapEntry oldMapEntry;
	} Return←ReadMapEntry;

extern Return←ReadMapEntry SparcSoftcardOps←ReadMapEntry();
	/* SparcSoftcardOps←MapEntry mapEntry; */

typedef BOOLEAN (SparcSoftcardOps←MemoryConfig[8]);

typedef SparcSoftcardOps←MemoryConfig (*SparcSoftcardOps←MemoryConfigPointer);

extern void SparcSoftcardOps←FindMemoryConfig();
	/* SparcSoftcardOps←MemoryConfigPointer memoryConfigPointer; */