#ifndef __H3GDEFS_H__ #define __H3GDEFS_H__ /* ** THIS SOFTWARE IS SUBJECT TO COPYRIGHT PROTECTION AND IS OFFERED ONLY ** PURSUANT TO THE 3DFX GLIDE GENERAL PUBLIC LICENSE. THERE IS NO RIGHT ** TO USE THE GLIDE TRADEMARK WITHOUT PRIOR WRITTEN PERMISSION OF 3DFX ** INTERACTIVE, INC. A COPY OF THIS LICENSE MAY BE OBTAINED FROM THE ** DISTRIBUTOR OR BY CONTACTING 3DFX INTERACTIVE INC(info@3dfx.com). ** THIS PROGRAM IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER ** EXPRESSED OR IMPLIED. SEE THE 3DFX GLIDE GENERAL PUBLIC LICENSE FOR A ** FULL TEXT OF THE NON-WARRANTY PROVISIONS. ** ** USE, DUPLICATION OR DISCLOSURE BY THE GOVERNMENT IS SUBJECT TO ** RESTRICTIONS AS SET FORTH IN SUBDIVISION (C)(1)(II) OF THE RIGHTS IN ** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 252.227-7013, ** AND/OR IN SIMILAR OR SUCCESSOR CLAUSES IN THE FAR, DOD OR NASA FAR ** SUPPLEMENT. UNPUBLISHED RIGHTS RESERVED UNDER THE COPYRIGHT LAWS OF ** THE UNITED STATES. ** ** COPYRIGHT 3DFX INTERACTIVE, INC. 1999, ALL RIGHTS RESERVED ** ** $Revision: 1.2.2.3 $ ** $Date: 2000/11/18 16:00:33 $ */ #ifdef _H2INC #include "cmddefs.h" #endif // compute 2D base from 3D base #ifndef _H2INC #define SSTG_CHIP(sst) ((SstGRegs *)SST_GUI_ADDRESS(sst)) #endif #define SSTG_XY_SIZE 13 //----------------- SSTG command bits --------------------------- #define SSTG_COMMAND_SHIFT 0 #define SSTG_COMMAND (0xF<>4)&0xF) == (rop&0xF) // It's so annoying to have to put that << in real code, I'm shifting // the rops here #define SSTG_ROP_SRCCOPY (0xccUL << SSTG_ROP0_SHIFT) //----------------------- CMDFIFO Section --------------------------- //----------------------- CMDFIFO Section --------------------------- //----------------------- CMDFIFO Section --------------------------- // CVG/H3 abstraction #define SST_IS_CMDFIFO_ENABLED(sst) \ SSTC_IS_EITHER_CMDFIFO_ENABLED(&(CSIM_PRIVATE(sst)->cmd)) #define SSTC_IS_EITHER_CMDFIFO_ENABLED(sstc) \ (((sstc)->cmdFifo0.baseSize & SST_EN_CMDFIFO) || ((sstc)->cmdFifo1.baseSize & SST_EN_CMDFIFO)) //----------------- SST cmdFifo*.baseSize bits --------------------------- #define SST_CMDFIFO_SIZE 0xFF #define SST_EN_CMDFIFO BIT(8) #define SST_CMDFIFO_AGP BIT(9) #define SST_CMDFIFO_DISABLE_HOLES BIT(10) // SST COMMAND PACKET defines #define SSTCP_PKT_SIZE 3 #define SSTCP_PKT SST_MASK(SSTCP_PKT_SIZE) #define SSTCP_PKT0 0 #define SSTCP_PKT1 1 #define SSTCP_PKT2 2 #define SSTCP_PKT3 3 #define SSTCP_PKT4 4 #define SSTCP_PKT5 5 #define SSTCP_PKT6 6 #define SSTCP_PKT7 7 #define SSTCP_BOGUS_WORDS_SHIFT 29 #define SSTCP_BOGUS_WORDS (7 << SSTCP_BOGUS_WORDS_SHIFT) // packet 0 defines #define SSTCP_PKT0_FUNC_SHIFT 3 #define SSTCP_PKT0_FUNC (7<>2) & 0x7FF) << SSTCP_REGBASE_SHIFT ) #else #define SSTCP_REGBASE ((0x3FF)<>2) & 0x3FF) << SSTCP_REGBASE_SHIFT ) #endif #define SSTCP_PKT1_2D BIT(14) #define SSTCP_INC BIT(15) #define SSTCP_PKT1_NWORDS_SHIFT 16 #define SSTCP_PKT1_NWORDS (0xFFFFUL<