boot3/DeclData/DeclVideo/ATI/Diamond.h
Elliot Nunn 5b0f0cc134 Bring in CubeE sources
Resource forks are included only for .rsrc files. These are DeRezzed into their data fork. 'ckid' resources, from the Projector VCS, are not included.

The Tools directory, containing mostly junk, is also excluded.
2017-12-26 10:02:57 +08:00

115 lines
4.9 KiB
C

/*
File: Diamond.h
Contains: xxx put contents here xxx
Written by: xxx put writers here xxx
Copyright: © 1994 by Apple Computer, Inc., all rights reserved.
Change History (most recent first):
<1> 1/18/94 CP first checked in
*/
/* Diamond.h */
/*
* Diamond board with Weitek 9000 controller header file
*/
#define NEGATIVE 0
#define POSITIVE 1
#define kDiamondCommandVal (kMemoryAccess | kReadWaitCycle)
#define kDiamondVendorID 0x100E
#define kDiamondDeviceID 0x9001
#define kDiamondIOBaseAddr 0x9000
#define kDiamondIOAddr (0x1 | kDiamondIOBaseAddr)
#define kDiamondVRAMAddr 0xE0000000 // same place as ATI
#define kDiamondFBBase (kDiamondVRAMAddr + (1 << 21)) // page 45 Direct frame buffer
#define kDiamondRegBase (kDiamondVRAMAddr + (0x2 << 19))// page 45 control registers
#define kDiamondDrawRegBase (kDiamondVRAMAddr + (0x3 << 19))// page 45 control registers
#define kDiamondMemConfig (kDiamondRegBase + (0x180 + (1 << 2)))
#define kDiamondRefreshPeriod (kDiamondRegBase + (0x180 + (2 << 2)))
#define kDiamondRasMax (kDiamondRegBase + (0x180 + (4 << 2)))
#define kDiamondSysConfig (kDiamondRegBase + (0x1 << 2))
#define kDiamondInterrupt (kDiamondRegBase + (0x2 << 2))
#define kDiamondInterruptEnable (kDiamondRegBase + (0x3 << 2))
#define kDiamondHorzCounter (kDiamondRegBase + (0x100 + (1 << 2)))
#define kDiamondHorzLength (kDiamondRegBase + (0x100 + (2 << 2)))
#define kDiamondHorzSyncRisingEdge (kDiamondRegBase + (0x100 + (3 << 2)))
#define kDiamondHorzBlankRisingEdge (kDiamondRegBase + (0x100 + (4 << 2)))
#define kDiamondHorzBlankFallingEdge (kDiamondRegBase + (0x100 + (5 << 2)))
#define kDiamondHorzCounterPreload (kDiamondRegBase + (0x100 + (6 << 2)))
#define kDiamondVertCounter (kDiamondRegBase + (0x100 + (7 << 2)))
#define kDiamondVertLength (kDiamondRegBase + (0x100 + (8 << 2)))
#define kDiamondVertSyncRisingEdge (kDiamondRegBase + (0x100 + (9 << 2)))
#define kDiamondVertBlankRisingEdge (kDiamondRegBase + (0x100 + (10 << 2)))
#define kDiamondVertBlankFallingEdge (kDiamondRegBase + (0x100 + (11 << 2)))
#define kDiamondVertCounterPreload (kDiamondRegBase + (0x100 + (12 << 2)))
#define kDiamondScreenRepaintAddress (kDiamondRegBase + (0x100 + (13 << 2)))
#define kDiamondScreenRepaintTiming (kDiamondRegBase + (0x100 + (14 << 2)))
#define kDiamondScreenRefreshTiming (kDiamondRegBase + (0x100 + (15 << 2)))
#define kDiamondStatus (kDiamondDrawRegBase + 0x0)
#define kDiamondStatusIssue_qbN (1 << 31)
#define kDiamondStatusBusy (1 << 30)
#define kDiamondStatusPicked (1 << 7)
#define kDiamondStatusPixelSoftware (1 << 6)
#define kDiamondStatusBlitSoftware (1 << 5)
#define kDiamondStatusQuadSoftware (1 << 4)
#define kDiamondStatusQuadConcave (1 << 3)
#define kDiamondStatusQuadHidden (1 << 2)
#define kDiamondStatusQuadVisible (1 << 1)
#define kDiamondStatusQuadIntersects (1 << 0)
#define kDiamondForegroundColor (kDiamondDrawRegBase + (0x200 + (0 << 2)))
#define kDiamondBackgroundColor (kDiamondDrawRegBase + (0x200 + (1 << 2)))
#define kDiamondPlaneMask (kDiamondDrawRegBase + (0x200 + (2 << 2)))
#define kDiamondDrawMode (kDiamondDrawRegBase + (0x200 + (3 << 2)))
#define kDiamondPatternOriginX (kDiamondDrawRegBase + (0x200 + (4 << 2)))
#define kDiamondPatternOriginY (kDiamondDrawRegBase + (0x200 + (5 << 2)))
#define kDiamondRaster (kDiamondDrawRegBase + (0x200 + (6 << 2)))
#define kDiamondPixel8 (kDiamondDrawRegBase + (0x200 + (7 << 2)))
#define kDiamondWindowMinimum (kDiamondDrawRegBase + (0x200 + (8 << 2)))
#define kDiamondWindowMaximum (kDiamondDrawRegBase + (0x200 + (9 << 2)))
#define kDiamondPattern0_1 (kDiamondDrawRegBase + (0x200 + (21<< 2)))
#define kDiamondPattern2_3 (kDiamondDrawRegBase + (0x200 + (22<< 2)))
#define kDiamondPattern4_5 (kDiamondDrawRegBase + (0x200 + (23<< 2)))
#define kDiamondPattern6_7 (kDiamondDrawRegBase + (0x200 + (24<< 2)))
#define kDiamondPattern8_9 (kDiamondDrawRegBase + (0x200 + (25<< 2)))
#define kDiamondPattern10_11 (kDiamondDrawRegBase + (0x200 + (26<< 2)))
#define kDiamondPattern12_13 (kDiamondDrawRegBase + (0x200 + (27<< 2)))
#define kDiamondPattern14_15 (kDiamondDrawRegBase + (0x200 + (28<< 2)))
#define kBT485Reg0 (kDiamondIOBaseAddr | 0xF2000402)
#define kBT485Reg1 (kDiamondIOBaseAddr | 0xF2000800)
#define kBT485Reg2 (kDiamondIOBaseAddr | 0xF2000801)
#define kBT485Reg3 (kDiamondIOBaseAddr | 0xF2000802)
#define kPixelMask (0xF20003C6)
#define kVgaMisc (0xF20003C2)
#define kVgaIndexRead (0xF20003C4)
#define kVgaIndexWrite (0xF20003C5)
#define kRamRead (0xF20003C7)
#define kRamWrite (0xF20003C8)
#define kPaletteData (0xF20003C9)
void InitDiamond(void);
void SetupDACDiamond(unsigned long, unsigned long);
unsigned char ReadClockReg(void);
void WriteClockReg(unsigned char whatever, unsigned char serialData, unsigned char serialClock);
void SetupClockDiamond(unsigned long);
void GoDiamond640x480x8VGA(UInt8);
void GoDiamond640x480x8Apple(UInt8);