supermario/base/SuperMarioProj.1994-02-09/DeclData/DeclVideo/ATI/Diamond.h
2019-06-29 23:17:50 +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);