summaryrefslogtreecommitdiff
path: root/src/AtomBios/CD_Operations.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/AtomBios/CD_Operations.c')
-rw-r--r--src/AtomBios/CD_Operations.c954
1 files changed, 0 insertions, 954 deletions
diff --git a/src/AtomBios/CD_Operations.c b/src/AtomBios/CD_Operations.c
deleted file mode 100644
index 1e48f81..0000000
--- a/src/AtomBios/CD_Operations.c
+++ /dev/null
@@ -1,954 +0,0 @@
-/*
- * Copyright 2006-2007 Advanced Micro Devices, Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- */
-
-/**
-
-Module Name:
-
- CD_Operations.c
-
-Abstract:
-
- Functions Implementing Command Operations and other common functions
-
-Revision History:
-
- NEG:27.09.2002 Initiated.
---*/
-#define __SW_4
-
-#include "Decoder.h"
-#include "atombios.h"
-
-
-
-VOID PutDataRegister(PARSER_TEMP_DATA STACK_BASED * pParserTempData);
-VOID PutDataPS(PARSER_TEMP_DATA STACK_BASED * pParserTempData);
-VOID PutDataWS(PARSER_TEMP_DATA STACK_BASED * pParserTempData);
-VOID PutDataFB(PARSER_TEMP_DATA STACK_BASED * pParserTempData);
-VOID PutDataPLL(PARSER_TEMP_DATA STACK_BASED * pParserTempData);
-VOID PutDataMC(PARSER_TEMP_DATA STACK_BASED * pParserTempData);
-
-UINT32 GetParametersDirect32(PARSER_TEMP_DATA STACK_BASED * pParserTempData);
-UINT32 GetParametersDirect16(PARSER_TEMP_DATA STACK_BASED * pParserTempData);
-UINT32 GetParametersDirect8(PARSER_TEMP_DATA STACK_BASED * pParserTempData);
-
-UINT32 GetParametersRegister(PARSER_TEMP_DATA STACK_BASED * pParserTempData);
-UINT32 GetParametersPS(PARSER_TEMP_DATA STACK_BASED * pParserTempData);
-UINT32 GetParametersWS(PARSER_TEMP_DATA STACK_BASED * pParserTempData);
-UINT32 GetParametersFB(PARSER_TEMP_DATA STACK_BASED * pParserTempData);
-UINT32 GetParametersPLL(PARSER_TEMP_DATA STACK_BASED * pParserTempData);
-UINT32 GetParametersMC(PARSER_TEMP_DATA STACK_BASED * pParserTempData);
-
-VOID SkipParameters16(PARSER_TEMP_DATA STACK_BASED * pParserTempData);
-VOID SkipParameters8(PARSER_TEMP_DATA STACK_BASED * pParserTempData);
-
-UINT32 GetParametersIndirect(PARSER_TEMP_DATA STACK_BASED * pParserTempData);
-UINT32 GetParametersDirect(PARSER_TEMP_DATA STACK_BASED * pParserTempData);
-
-UINT16* GetDataMasterTablePointer(DEVICE_DATA STACK_BASED* pDeviceData);
-UINT8 GetTrueIndexInMasterTable(PARSER_TEMP_DATA STACK_BASED * pParserTempData, UINT8 IndexInMasterTable);
-
-
-WRITE_IO_FUNCTION WritePCIFunctions[8] = {
- WritePCIReg32,
- WritePCIReg16, WritePCIReg16, WritePCIReg16,
- WritePCIReg8,WritePCIReg8,WritePCIReg8,WritePCIReg8
-};
-WRITE_IO_FUNCTION WriteIOFunctions[8] = {
- WriteSysIOReg32,
- WriteSysIOReg16,WriteSysIOReg16,WriteSysIOReg16,
- WriteSysIOReg8,WriteSysIOReg8,WriteSysIOReg8,WriteSysIOReg8
-};
-READ_IO_FUNCTION ReadPCIFunctions[8] = {
- (READ_IO_FUNCTION)ReadPCIReg32,
- (READ_IO_FUNCTION)ReadPCIReg16,
- (READ_IO_FUNCTION)ReadPCIReg16,
- (READ_IO_FUNCTION)ReadPCIReg16,
- (READ_IO_FUNCTION)ReadPCIReg8,
- (READ_IO_FUNCTION)ReadPCIReg8,
- (READ_IO_FUNCTION)ReadPCIReg8,
- (READ_IO_FUNCTION)ReadPCIReg8
-};
-READ_IO_FUNCTION ReadIOFunctions[8] = {
- (READ_IO_FUNCTION)ReadSysIOReg32,
- (READ_IO_FUNCTION)ReadSysIOReg16,
- (READ_IO_FUNCTION)ReadSysIOReg16,
- (READ_IO_FUNCTION)ReadSysIOReg16,
- (READ_IO_FUNCTION)ReadSysIOReg8,
- (READ_IO_FUNCTION)ReadSysIOReg8,
- (READ_IO_FUNCTION)ReadSysIOReg8,
- (READ_IO_FUNCTION)ReadSysIOReg8
-};
-READ_IO_FUNCTION GetParametersDirectArray[8]={
- GetParametersDirect32,
- GetParametersDirect16,GetParametersDirect16,GetParametersDirect16,
- GetParametersDirect8,GetParametersDirect8,GetParametersDirect8,
- GetParametersDirect8
-};
-
-COMMANDS_DECODER PutDataFunctions[6] = {
- PutDataRegister,
- PutDataPS,
- PutDataWS,
- PutDataFB,
- PutDataPLL,
- PutDataMC
-};
-CD_GET_PARAMETERS GetDestination[6] = {
- GetParametersRegister,
- GetParametersPS,
- GetParametersWS,
- GetParametersFB,
- GetParametersPLL,
- GetParametersMC
-};
-
-COMMANDS_DECODER SkipDestination[6] = {
- SkipParameters16,
- SkipParameters8,
- SkipParameters8,
- SkipParameters8,
- SkipParameters8,
- SkipParameters8
-};
-
-CD_GET_PARAMETERS GetSource[8] = {
- GetParametersRegister,
- GetParametersPS,
- GetParametersWS,
- GetParametersFB,
- GetParametersIndirect,
- GetParametersDirect,
- GetParametersPLL,
- GetParametersMC
-};
-
-UINT32 AlignmentMask[8] = {0xFFFFFFFF,0xFFFF,0xFFFF,0xFFFF,0xFF,0xFF,0xFF,0xFF};
-UINT8 SourceAlignmentShift[8] = {0,0,8,16,0,8,16,24};
-UINT8 DestinationAlignmentShift[4] = {0,8,16,24};
-
-#define INDIRECTIO_ID 1
-#define INDIRECTIO_END_OF_ID 9
-
-VOID IndirectIOCommand(PARSER_TEMP_DATA STACK_BASED * pParserTempData);
-VOID IndirectIOCommand_MOVE(PARSER_TEMP_DATA STACK_BASED * pParserTempData, UINT32 temp);
-VOID IndirectIOCommand_MOVE_INDEX(PARSER_TEMP_DATA STACK_BASED * pParserTempData);
-VOID IndirectIOCommand_MOVE_ATTR(PARSER_TEMP_DATA STACK_BASED * pParserTempData);
-VOID IndirectIOCommand_MOVE_DATA(PARSER_TEMP_DATA STACK_BASED * pParserTempData);
-VOID IndirectIOCommand_SET(PARSER_TEMP_DATA STACK_BASED * pParserTempData);
-VOID IndirectIOCommand_CLEAR(PARSER_TEMP_DATA STACK_BASED * pParserTempData);
-
-
-INDIRECT_IO_PARSER_COMMANDS IndirectIOParserCommands[10]={
- {IndirectIOCommand,1},
- {IndirectIOCommand,2},
- {ReadIndReg32,3},
- {WriteIndReg32,3},
- {IndirectIOCommand_CLEAR,3},
- {IndirectIOCommand_SET,3},
- {IndirectIOCommand_MOVE_INDEX,4},
- {IndirectIOCommand_MOVE_ATTR,4},
- {IndirectIOCommand_MOVE_DATA,4},
- {IndirectIOCommand,3}
-};
-
-
-VOID IndirectIOCommand(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
-}
-
-
-VOID IndirectIOCommand_MOVE_INDEX(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- pParserTempData->IndirectData &= ~((0xFFFFFFFF >> (32-pParserTempData->IndirectIOTablePointer[1])) << pParserTempData->IndirectIOTablePointer[3]);
- pParserTempData->IndirectData |=(((pParserTempData->Index >> pParserTempData->IndirectIOTablePointer[2]) &
- (0xFFFFFFFF >> (32-pParserTempData->IndirectIOTablePointer[1]))) << pParserTempData->IndirectIOTablePointer[3]);
-}
-
-VOID IndirectIOCommand_MOVE_ATTR(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- pParserTempData->IndirectData &= ~((0xFFFFFFFF >> (32-pParserTempData->IndirectIOTablePointer[1])) << pParserTempData->IndirectIOTablePointer[3]);
- pParserTempData->IndirectData |=(((pParserTempData->AttributesData >> pParserTempData->IndirectIOTablePointer[2])
- & (0xFFFFFFFF >> (32-pParserTempData->IndirectIOTablePointer[1]))) << pParserTempData->IndirectIOTablePointer[3]);
-}
-
-VOID IndirectIOCommand_MOVE_DATA(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- pParserTempData->IndirectData &= ~((0xFFFFFFFF >> (32-pParserTempData->IndirectIOTablePointer[1])) << pParserTempData->IndirectIOTablePointer[3]);
- pParserTempData->IndirectData |=(((pParserTempData->DestData32 >> pParserTempData->IndirectIOTablePointer[2])
- & (0xFFFFFFFF >> (32-pParserTempData->IndirectIOTablePointer[1]))) << pParserTempData->IndirectIOTablePointer[3]);
-}
-
-
-VOID IndirectIOCommand_SET(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- pParserTempData->IndirectData |= ((0xFFFFFFFF >> (32-pParserTempData->IndirectIOTablePointer[1])) << pParserTempData->IndirectIOTablePointer[2]);
-}
-
-VOID IndirectIOCommand_CLEAR(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- pParserTempData->IndirectData &= ~((0xFFFFFFFF >> (32-pParserTempData->IndirectIOTablePointer[1])) << pParserTempData->IndirectIOTablePointer[2]);
-}
-
-
-UINT32 IndirectInputOutput(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- // if ((pParserTempData->IndirectData & 0x7f)==INDIRECT_IO_MM) pParserTempData->IndirectData|=pParserTempData->CurrentPortID;
-// pParserTempData->IndirectIOTablePointer=pParserTempData->IndirectIOTable;
- while (*pParserTempData->IndirectIOTablePointer)
- {
- if ((pParserTempData->IndirectIOTablePointer[0] == INDIRECTIO_ID) &&
- (pParserTempData->IndirectIOTablePointer[1] == pParserTempData->IndirectData))
- {
- pParserTempData->IndirectIOTablePointer+=IndirectIOParserCommands[*pParserTempData->IndirectIOTablePointer].csize;
- while (*pParserTempData->IndirectIOTablePointer != INDIRECTIO_END_OF_ID)
- {
- IndirectIOParserCommands[*pParserTempData->IndirectIOTablePointer].func(pParserTempData);
- pParserTempData->IndirectIOTablePointer+=IndirectIOParserCommands[*pParserTempData->IndirectIOTablePointer].csize;
- }
- pParserTempData->IndirectIOTablePointer-=*(UINT16*)(pParserTempData->IndirectIOTablePointer+1);
- pParserTempData->IndirectIOTablePointer++;
- return pParserTempData->IndirectData;
- } else pParserTempData->IndirectIOTablePointer+=IndirectIOParserCommands[*pParserTempData->IndirectIOTablePointer].csize;
- }
- return 0;
-}
-
-
-
-VOID PutDataRegister(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- pParserTempData->Index=(UINT32)pParserTempData->pCmd->Parameters.WordXX.PA_Destination;
- pParserTempData->Index+=pParserTempData->CurrentRegBlock;
- switch(pParserTempData->Multipurpose.CurrentPort){
- case ATI_RegsPort:
- if (pParserTempData->CurrentPortID == INDIRECT_IO_MM)
- {
- if (pParserTempData->Index==0) pParserTempData->DestData32 <<= 2;
- WriteReg32( pParserTempData);
- } else
- {
- pParserTempData->IndirectData=pParserTempData->CurrentPortID+INDIRECT_IO_WRITE;
- IndirectInputOutput(pParserTempData);
- }
- break;
- case PCI_Port:
- WritePCIFunctions[pParserTempData->pCmd->Header.Attribute.SourceAlignment](pParserTempData);
- break;
- case SystemIO_Port:
- WriteIOFunctions[pParserTempData->pCmd->Header.Attribute.SourceAlignment](pParserTempData);
- break;
- }
-}
-
-VOID PutDataPS(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- *(pParserTempData->pDeviceData->pParameterSpace+pParserTempData->pCmd->Parameters.ByteXX.PA_Destination)=
- pParserTempData->DestData32;
-}
-
-VOID PutDataWS(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- if (pParserTempData->pCmd->Parameters.ByteXX.PA_Destination < WS_QUOTIENT_C)
- *(pParserTempData->pWorkingTableData->pWorkSpace+pParserTempData->pCmd->Parameters.ByteXX.PA_Destination) = pParserTempData->DestData32;
- else
- switch (pParserTempData->pCmd->Parameters.ByteXX.PA_Destination)
- {
- case WS_REMINDER_C:
- pParserTempData->MultiplicationOrDivision.Division.Reminder32=pParserTempData->DestData32;
- break;
- case WS_QUOTIENT_C:
- pParserTempData->MultiplicationOrDivision.Division.Quotient32=pParserTempData->DestData32;
- break;
- case WS_DATAPTR_C:
-#ifndef UEFI_BUILD
- pParserTempData->CurrentDataBlock=(UINT16)pParserTempData->DestData32;
-#else
- pParserTempData->CurrentDataBlock=(UINTN)pParserTempData->DestData32;
-#endif
- break;
- case WS_SHIFT_C:
- pParserTempData->Shift2MaskConverter=(UINT8)pParserTempData->DestData32;
- break;
- case WS_FB_WINDOW_C:
- pParserTempData->CurrentFB_Window=pParserTempData->DestData32;
- break;
- case WS_ATTRIBUTES_C:
- pParserTempData->AttributesData=(UINT16)pParserTempData->DestData32;
- break;
- }
-
-}
-
-VOID PutDataFB(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- pParserTempData->Index=(UINT32)pParserTempData->pCmd->Parameters.ByteXX.PA_Destination;
- //Make an Index from address first, then add to the Index
- pParserTempData->Index+=(pParserTempData->CurrentFB_Window>>2);
- WriteFrameBuffer32(pParserTempData);
-}
-
-VOID PutDataPLL(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- pParserTempData->Index=(UINT32)pParserTempData->pCmd->Parameters.ByteXX.PA_Destination;
- WritePLL32( pParserTempData );
-}
-
-VOID PutDataMC(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- pParserTempData->Index=(UINT32)pParserTempData->pCmd->Parameters.ByteXX.PA_Destination;
- WriteMC32( pParserTempData );
-}
-
-
-VOID SkipParameters8(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- pParserTempData->pWorkingTableData->IP+=sizeof(UINT8);
-}
-
-VOID SkipParameters16(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- pParserTempData->pWorkingTableData->IP+=sizeof(UINT16);
-}
-
-
-UINT32 GetParametersRegister(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- pParserTempData->Index=*(UINT16*)pParserTempData->pWorkingTableData->IP;
- pParserTempData->pWorkingTableData->IP+=sizeof(UINT16);
- pParserTempData->Index+=pParserTempData->CurrentRegBlock;
- switch(pParserTempData->Multipurpose.CurrentPort)
- {
- case PCI_Port:
- return ReadPCIFunctions[pParserTempData->pCmd->Header.Attribute.SourceAlignment](pParserTempData);
- case SystemIO_Port:
- return ReadIOFunctions[pParserTempData->pCmd->Header.Attribute.SourceAlignment](pParserTempData);
- case ATI_RegsPort:
- default:
- if (pParserTempData->CurrentPortID == INDIRECT_IO_MM) return ReadReg32( pParserTempData );
- else
- {
- pParserTempData->IndirectData=pParserTempData->CurrentPortID+INDIRECT_IO_READ;
- return IndirectInputOutput(pParserTempData);
- }
- }
-}
-
-UINT32 GetParametersPS(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- pParserTempData->Index=*pParserTempData->pWorkingTableData->IP;
- pParserTempData->pWorkingTableData->IP+=sizeof(UINT8);
- return *(pParserTempData->pDeviceData->pParameterSpace+pParserTempData->Index);
-}
-
-UINT32 GetParametersWS(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- pParserTempData->Index=*pParserTempData->pWorkingTableData->IP;
- pParserTempData->pWorkingTableData->IP+=sizeof(UINT8);
- if (pParserTempData->Index < WS_QUOTIENT_C)
- return *(pParserTempData->pWorkingTableData->pWorkSpace+pParserTempData->Index);
- else
- switch (pParserTempData->Index)
- {
- case WS_REMINDER_C:
- return pParserTempData->MultiplicationOrDivision.Division.Reminder32;
- case WS_QUOTIENT_C:
- return pParserTempData->MultiplicationOrDivision.Division.Quotient32;
- case WS_DATAPTR_C:
- return (UINT32)pParserTempData->CurrentDataBlock;
- case WS_OR_MASK_C:
- return ((UINT32)1) << pParserTempData->Shift2MaskConverter;
- case WS_AND_MASK_C:
- return ~(((UINT32)1) << pParserTempData->Shift2MaskConverter);
- case WS_FB_WINDOW_C:
- return pParserTempData->CurrentFB_Window;
- case WS_ATTRIBUTES_C:
- return pParserTempData->AttributesData;
- }
- return 0;
-
-}
-
-UINT32 GetParametersFB(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- pParserTempData->Index=*pParserTempData->pWorkingTableData->IP;
- pParserTempData->pWorkingTableData->IP+=sizeof(UINT8);
- pParserTempData->Index+=(pParserTempData->CurrentFB_Window>>2);
- return ReadFrameBuffer32(pParserTempData);
-}
-
-UINT32 GetParametersPLL(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- pParserTempData->Index=*pParserTempData->pWorkingTableData->IP;
- pParserTempData->pWorkingTableData->IP+=sizeof(UINT8);
- return ReadPLL32( pParserTempData );
-}
-
-UINT32 GetParametersMC(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- pParserTempData->Index=*pParserTempData->pWorkingTableData->IP;
- pParserTempData->pWorkingTableData->IP+=sizeof(UINT8);
- return ReadMC32( pParserTempData );
-}
-
-
-UINT32 GetParametersIndirect(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- pParserTempData->Index=*(UINT16*)pParserTempData->pWorkingTableData->IP;
- pParserTempData->pWorkingTableData->IP+=sizeof(UINT16);
- return *(UINT32*)(RELATIVE_TO_BIOS_IMAGE(pParserTempData->Index)+pParserTempData->CurrentDataBlock);
-}
-
-UINT32 GetParametersDirect8(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- pParserTempData->CD_Mask.SrcAlignment=alignmentByte0;
- pParserTempData->Index=*(UINT8*)pParserTempData->pWorkingTableData->IP;
- pParserTempData->pWorkingTableData->IP+=sizeof(UINT8);
- return pParserTempData->Index;
-}
-
-UINT32 GetParametersDirect16(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- pParserTempData->CD_Mask.SrcAlignment=alignmentLowerWord;
- pParserTempData->Index=*(UINT16*)pParserTempData->pWorkingTableData->IP;
- pParserTempData->pWorkingTableData->IP+=sizeof(UINT16);
- return pParserTempData->Index;
-}
-
-UINT32 GetParametersDirect32(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- pParserTempData->CD_Mask.SrcAlignment=alignmentDword;
- pParserTempData->Index=*(UINT32*)pParserTempData->pWorkingTableData->IP;
- pParserTempData->pWorkingTableData->IP+=sizeof(UINT32);
- return pParserTempData->Index;
-}
-
-
-UINT32 GetParametersDirect(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- return GetParametersDirectArray[pParserTempData->pCmd->Header.Attribute.SourceAlignment](pParserTempData);
-}
-
-
-VOID CommonSourceDataTransformation(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- pParserTempData->SourceData32 >>= SourceAlignmentShift[pParserTempData->CD_Mask.SrcAlignment];
- pParserTempData->SourceData32 &= AlignmentMask[pParserTempData->CD_Mask.SrcAlignment];
- pParserTempData->SourceData32 <<= DestinationAlignmentShift[pParserTempData->CD_Mask.DestAlignment];
-}
-
-VOID CommonOperationDataTransformation(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- pParserTempData->SourceData32 >>= SourceAlignmentShift[pParserTempData->CD_Mask.SrcAlignment];
- pParserTempData->SourceData32 &= AlignmentMask[pParserTempData->CD_Mask.SrcAlignment];
- pParserTempData->DestData32 >>= DestinationAlignmentShift[pParserTempData->CD_Mask.DestAlignment];
- pParserTempData->DestData32 &= AlignmentMask[pParserTempData->CD_Mask.SrcAlignment];
-}
-
-VOID ProcessMove(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- if (pParserTempData->CD_Mask.SrcAlignment!=alignmentDword)
- {
- pParserTempData->DestData32=GetDestination[pParserTempData->ParametersType.Destination](pParserTempData);
- } else
- {
- SkipDestination[pParserTempData->ParametersType.Destination](pParserTempData);
- }
- pParserTempData->SourceData32=GetSource[pParserTempData->ParametersType.Source](pParserTempData);
-
- if (pParserTempData->CD_Mask.SrcAlignment!=alignmentDword)
- {
- pParserTempData->DestData32 &= ~(AlignmentMask[pParserTempData->CD_Mask.SrcAlignment] << DestinationAlignmentShift[pParserTempData->CD_Mask.DestAlignment]);
- CommonSourceDataTransformation(pParserTempData);
- pParserTempData->DestData32 |= pParserTempData->SourceData32;
- } else
- {
- pParserTempData->DestData32=pParserTempData->SourceData32;
- }
- PutDataFunctions[pParserTempData->ParametersType.Destination](pParserTempData);
-}
-
-VOID ProcessMask(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
-
- pParserTempData->DestData32=GetDestination[pParserTempData->ParametersType.Destination](pParserTempData);
- pParserTempData->SourceData32=GetParametersDirect(pParserTempData);
- pParserTempData->Index=GetParametersDirect(pParserTempData);
- pParserTempData->SourceData32 <<= DestinationAlignmentShift[pParserTempData->CD_Mask.DestAlignment];
- pParserTempData->SourceData32 |= ~(AlignmentMask[pParserTempData->CD_Mask.SrcAlignment] << DestinationAlignmentShift[pParserTempData->CD_Mask.DestAlignment]);
- pParserTempData->DestData32 &= pParserTempData->SourceData32;
- pParserTempData->Index &= AlignmentMask[pParserTempData->CD_Mask.SrcAlignment];
- pParserTempData->Index <<= DestinationAlignmentShift[pParserTempData->CD_Mask.DestAlignment];
- pParserTempData->DestData32 |= pParserTempData->Index;
- PutDataFunctions[pParserTempData->ParametersType.Destination](pParserTempData);
-}
-
-VOID ProcessAnd(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- pParserTempData->DestData32=GetDestination[pParserTempData->ParametersType.Destination](pParserTempData);
- pParserTempData->SourceData32=GetSource[pParserTempData->ParametersType.Source](pParserTempData);
- pParserTempData->SourceData32 >>= SourceAlignmentShift[pParserTempData->CD_Mask.SrcAlignment];
- pParserTempData->SourceData32 <<= DestinationAlignmentShift[pParserTempData->CD_Mask.DestAlignment];
- pParserTempData->SourceData32 |= ~(AlignmentMask[pParserTempData->CD_Mask.SrcAlignment] << DestinationAlignmentShift[pParserTempData->CD_Mask.DestAlignment]);
- pParserTempData->DestData32 &= pParserTempData->SourceData32;
- PutDataFunctions[pParserTempData->ParametersType.Destination](pParserTempData);
-}
-
-VOID ProcessOr(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- pParserTempData->DestData32=GetDestination[pParserTempData->ParametersType.Destination](pParserTempData);
- pParserTempData->SourceData32=GetSource[pParserTempData->ParametersType.Source](pParserTempData);
- CommonSourceDataTransformation(pParserTempData);
- pParserTempData->DestData32 |= pParserTempData->SourceData32;
- PutDataFunctions[pParserTempData->ParametersType.Destination](pParserTempData);
-}
-
-VOID ProcessXor(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- pParserTempData->DestData32=GetDestination[pParserTempData->ParametersType.Destination](pParserTempData);
- pParserTempData->SourceData32=GetSource[pParserTempData->ParametersType.Source](pParserTempData);
- CommonSourceDataTransformation(pParserTempData);
- pParserTempData->DestData32 ^= pParserTempData->SourceData32;
- PutDataFunctions[pParserTempData->ParametersType.Destination](pParserTempData);
-}
-
-VOID ProcessShl(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- pParserTempData->DestData32=GetDestination[pParserTempData->ParametersType.Destination](pParserTempData);
- pParserTempData->SourceData32=GetSource[pParserTempData->ParametersType.Source](pParserTempData);
- CommonSourceDataTransformation(pParserTempData);
- pParserTempData->DestData32 <<= pParserTempData->SourceData32;
- PutDataFunctions[pParserTempData->ParametersType.Destination](pParserTempData);
-}
-
-VOID ProcessShr(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- pParserTempData->DestData32=GetDestination[pParserTempData->ParametersType.Destination](pParserTempData);
- pParserTempData->SourceData32=GetSource[pParserTempData->ParametersType.Source](pParserTempData);
- CommonSourceDataTransformation(pParserTempData);
- pParserTempData->DestData32 >>= pParserTempData->SourceData32;
- PutDataFunctions[pParserTempData->ParametersType.Destination](pParserTempData);
-}
-
-
-VOID ProcessADD(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- pParserTempData->DestData32=GetDestination[pParserTempData->ParametersType.Destination](pParserTempData);
- pParserTempData->SourceData32=GetSource[pParserTempData->ParametersType.Source](pParserTempData);
- CommonSourceDataTransformation(pParserTempData);
- pParserTempData->DestData32 += pParserTempData->SourceData32;
- PutDataFunctions[pParserTempData->ParametersType.Destination](pParserTempData);
-}
-
-VOID ProcessSUB(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- pParserTempData->DestData32=GetDestination[pParserTempData->ParametersType.Destination](pParserTempData);
- pParserTempData->SourceData32=GetSource[pParserTempData->ParametersType.Source](pParserTempData);
- CommonSourceDataTransformation(pParserTempData);
- pParserTempData->DestData32 -= pParserTempData->SourceData32;
- PutDataFunctions[pParserTempData->ParametersType.Destination](pParserTempData);
-}
-
-VOID ProcessMUL(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- pParserTempData->DestData32=GetDestination[pParserTempData->ParametersType.Destination](pParserTempData);
- pParserTempData->SourceData32=GetSource[pParserTempData->ParametersType.Source](pParserTempData);
- CommonOperationDataTransformation(pParserTempData);
- pParserTempData->MultiplicationOrDivision.Multiplication.Low32Bit=pParserTempData->DestData32 * pParserTempData->SourceData32;
-}
-
-VOID ProcessDIV(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- pParserTempData->DestData32=GetDestination[pParserTempData->ParametersType.Destination](pParserTempData);
- pParserTempData->SourceData32=GetSource[pParserTempData->ParametersType.Source](pParserTempData);
-
- CommonOperationDataTransformation(pParserTempData);
- pParserTempData->MultiplicationOrDivision.Division.Quotient32=
- pParserTempData->DestData32 / pParserTempData->SourceData32;
- pParserTempData->MultiplicationOrDivision.Division.Reminder32=
- pParserTempData->DestData32 % pParserTempData->SourceData32;
-}
-
-
-VOID ProcessCompare(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- pParserTempData->DestData32=GetDestination[pParserTempData->ParametersType.Destination](pParserTempData);
- pParserTempData->SourceData32=GetSource[pParserTempData->ParametersType.Source](pParserTempData);
-
- CommonOperationDataTransformation(pParserTempData);
-
- // Here we just set flags based on evaluation
- if (pParserTempData->DestData32==pParserTempData->SourceData32)
- pParserTempData->CompareFlags = Equal;
- else
- pParserTempData->CompareFlags =
- (UINT8)((pParserTempData->DestData32<pParserTempData->SourceData32) ? Below : Above);
-
-}
-
-VOID ProcessClear(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- pParserTempData->DestData32=GetDestination[pParserTempData->ParametersType.Destination](pParserTempData);
- pParserTempData->DestData32 &= ~(AlignmentMask[pParserTempData->CD_Mask.SrcAlignment] << SourceAlignmentShift[pParserTempData->CD_Mask.SrcAlignment]);
- PutDataFunctions[pParserTempData->ParametersType.Destination](pParserTempData);
-
-}
-
-VOID ProcessShift(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- UINT32 mask = AlignmentMask[pParserTempData->CD_Mask.SrcAlignment] << SourceAlignmentShift[pParserTempData->CD_Mask.SrcAlignment];
- pParserTempData->DestData32=GetDestination[pParserTempData->ParametersType.Destination](pParserTempData);
- pParserTempData->SourceData32=GetParametersDirect8(pParserTempData);
-
- // save original value of the destination
- pParserTempData->Index = pParserTempData->DestData32 & ~mask;
- pParserTempData->DestData32 &= mask;
-
- if (pParserTempData->pCmd->Header.Opcode < SHIFT_RIGHT_REG_OPCODE)
- pParserTempData->DestData32 <<= pParserTempData->SourceData32; else
- pParserTempData->DestData32 >>= pParserTempData->SourceData32;
-
- // Clear any bits shifted out of masked area...
- pParserTempData->DestData32 &= mask;
- // ... and restore the area outside of masked with original values
- pParserTempData->DestData32 |= pParserTempData->Index;
-
- // write data back
- PutDataFunctions[pParserTempData->ParametersType.Destination](pParserTempData);
-}
-
-VOID ProcessTest(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- pParserTempData->DestData32=GetDestination[pParserTempData->ParametersType.Destination](pParserTempData);
- pParserTempData->SourceData32=GetSource[pParserTempData->ParametersType.Source](pParserTempData);
- CommonOperationDataTransformation(pParserTempData);
- pParserTempData->CompareFlags =
- (UINT8)((pParserTempData->DestData32 & pParserTempData->SourceData32) ? NotEqual : Equal);
-
-}
-
-VOID ProcessSetFB_Base(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- pParserTempData->SourceData32=GetSource[pParserTempData->ParametersType.Source](pParserTempData);
- pParserTempData->SourceData32 >>= SourceAlignmentShift[pParserTempData->CD_Mask.SrcAlignment];
- pParserTempData->SourceData32 &= AlignmentMask[pParserTempData->CD_Mask.SrcAlignment];
- pParserTempData->CurrentFB_Window=pParserTempData->SourceData32;
-}
-
-VOID ProcessSwitch(PARSER_TEMP_DATA STACK_BASED * pParserTempData){
- pParserTempData->SourceData32=GetSource[pParserTempData->ParametersType.Source](pParserTempData);
- pParserTempData->SourceData32 >>= SourceAlignmentShift[pParserTempData->CD_Mask.SrcAlignment];
- pParserTempData->SourceData32 &= AlignmentMask[pParserTempData->CD_Mask.SrcAlignment];
- while ( *(UINT16*)pParserTempData->pWorkingTableData->IP != (((UINT16)NOP_OPCODE << 8)+NOP_OPCODE))
- {
- if (*pParserTempData->pWorkingTableData->IP == 'c')
- {
- pParserTempData->pWorkingTableData->IP++;
- pParserTempData->DestData32=GetParametersDirect(pParserTempData);
- pParserTempData->Index=GetParametersDirect16(pParserTempData);
- if (pParserTempData->SourceData32 == pParserTempData->DestData32)
- {
- pParserTempData->pWorkingTableData->IP= RELATIVE_TO_TABLE(pParserTempData->Index);
- return;
- }
- }
- }
- pParserTempData->pWorkingTableData->IP+=sizeof(UINT16);
-}
-
-
-VOID cmdSetDataBlock(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- UINT8 value;
- UINT16* pMasterDataTable;
- value=((COMMAND_TYPE_1*)pParserTempData->pWorkingTableData->IP)->Parameters.ByteXX.PA_Destination;
- if (value == 0) pParserTempData->CurrentDataBlock=0; else
- {
- if (value == DB_CURRENT_COMMAND_TABLE)
- {
- pParserTempData->CurrentDataBlock= (UINT16)(pParserTempData->pWorkingTableData->pTableHead-pParserTempData->pDeviceData->pBIOS_Image);
- } else
- {
- pMasterDataTable = GetDataMasterTablePointer(pParserTempData->pDeviceData);
- pParserTempData->CurrentDataBlock= (TABLE_UNIT_TYPE)((PTABLE_UNIT_TYPE)pMasterDataTable)[value];
- }
- }
- pParserTempData->pWorkingTableData->IP+=sizeof(COMMAND_TYPE_OPCODE_VALUE_BYTE);
-}
-
-VOID cmdSet_ATI_Port(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- pParserTempData->Multipurpose.CurrentPort=ATI_RegsPort;
- pParserTempData->CurrentPortID = (UINT8)((COMMAND_TYPE_1*)pParserTempData->pWorkingTableData->IP)->Parameters.WordXX.PA_Destination;
- pParserTempData->pWorkingTableData->IP+=sizeof(COMMAND_TYPE_OPCODE_OFFSET16);
-}
-
-VOID cmdSet_Reg_Block(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- pParserTempData->CurrentRegBlock = ((COMMAND_TYPE_1*)pParserTempData->pWorkingTableData->IP)->Parameters.WordXX.PA_Destination;
- pParserTempData->pWorkingTableData->IP+=sizeof(COMMAND_TYPE_OPCODE_OFFSET16);
-}
-
-
-//Atavism!!! Review!!!
-VOID cmdSet_X_Port(PARSER_TEMP_DATA STACK_BASED * pParserTempData){
- pParserTempData->Multipurpose.CurrentPort=pParserTempData->ParametersType.Destination;
- pParserTempData->pWorkingTableData->IP+=sizeof(COMMAND_TYPE_OPCODE_ONLY);
-
-}
-
-VOID cmdDelay_Millisec(PARSER_TEMP_DATA STACK_BASED * pParserTempData){
- pParserTempData->SourceData32 =
- ((COMMAND_TYPE_1*)pParserTempData->pWorkingTableData->IP)->Parameters.ByteXX.PA_Destination;
- DelayMilliseconds(pParserTempData);
- pParserTempData->pWorkingTableData->IP+=sizeof(COMMAND_TYPE_OPCODE_VALUE_BYTE);
-}
-VOID cmdDelay_Microsec(PARSER_TEMP_DATA STACK_BASED * pParserTempData){
- pParserTempData->SourceData32 =
- ((COMMAND_TYPE_1*)pParserTempData->pWorkingTableData->IP)->Parameters.ByteXX.PA_Destination;
- DelayMicroseconds(pParserTempData);
- pParserTempData->pWorkingTableData->IP+=sizeof(COMMAND_TYPE_OPCODE_VALUE_BYTE);
-}
-
-VOID ProcessPostChar(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- pParserTempData->SourceData32 =
- ((COMMAND_TYPE_1*)pParserTempData->pWorkingTableData->IP)->Parameters.ByteXX.PA_Destination;
- PostCharOutput(pParserTempData);
- pParserTempData->pWorkingTableData->IP+=sizeof(COMMAND_TYPE_OPCODE_VALUE_BYTE);
-}
-
-VOID ProcessDebug(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- pParserTempData->SourceData32 =
- ((COMMAND_TYPE_1*)pParserTempData->pWorkingTableData->IP)->Parameters.ByteXX.PA_Destination;
- CallerDebugFunc(pParserTempData);
- pParserTempData->pWorkingTableData->IP+=sizeof(COMMAND_TYPE_OPCODE_VALUE_BYTE);
-}
-
-
-VOID ProcessDS(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- pParserTempData->pWorkingTableData->IP+=((COMMAND_TYPE_1*)pParserTempData->pWorkingTableData->IP)->Parameters.WordXX.PA_Destination+sizeof(COMMAND_TYPE_OPCODE_OFFSET16);
-}
-
-
-VOID cmdCall_Table(PARSER_TEMP_DATA STACK_BASED * pParserTempData){
- UINT16* MasterTableOffset;
- pParserTempData->pWorkingTableData->IP+=sizeof(COMMAND_TYPE_OPCODE_VALUE_BYTE);
- MasterTableOffset = GetCommandMasterTablePointer(pParserTempData->pDeviceData);
- if(((PTABLE_UNIT_TYPE)MasterTableOffset)[((COMMAND_TYPE_OPCODE_VALUE_BYTE*)pParserTempData->pCmd)->Value]!=0 ) // if the offset is not ZERO
- {
- pParserTempData->CommandSpecific.IndexInMasterTable=GetTrueIndexInMasterTable(pParserTempData,((COMMAND_TYPE_OPCODE_VALUE_BYTE*)pParserTempData->pCmd)->Value);
- pParserTempData->Multipurpose.PS_SizeInDwordsUsedByCallingTable =
- (((ATOM_COMMON_ROM_COMMAND_TABLE_HEADER *)pParserTempData->pWorkingTableData->pTableHead)->TableAttribute.PS_SizeInBytes>>2);
- pParserTempData->pDeviceData->pParameterSpace+=
- pParserTempData->Multipurpose.PS_SizeInDwordsUsedByCallingTable;
- pParserTempData->Status=CD_CALL_TABLE;
- pParserTempData->pCmd=(GENERIC_ATTRIBUTE_COMMAND*)MasterTableOffset;
- }
-}
-
-
-VOID cmdNOP_(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
-}
-
-
-static VOID NotImplemented(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- pParserTempData->Status = CD_NOT_IMPLEMENTED;
-}
-
-
-VOID ProcessJump(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- if ((pParserTempData->ParametersType.Destination == NoCondition) ||
- (pParserTempData->ParametersType.Destination == pParserTempData->CompareFlags ))
- {
-
- pParserTempData->pWorkingTableData->IP= RELATIVE_TO_TABLE(((COMMAND_TYPE_OPCODE_OFFSET16*)pParserTempData->pWorkingTableData->IP)->CD_Offset16);
- } else
- {
- pParserTempData->pWorkingTableData->IP+=sizeof(COMMAND_TYPE_OPCODE_OFFSET16);
- }
-}
-
-VOID ProcessJumpE(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- if ((pParserTempData->CompareFlags == Equal) ||
- (pParserTempData->CompareFlags == pParserTempData->ParametersType.Destination))
- {
-
- pParserTempData->pWorkingTableData->IP= RELATIVE_TO_TABLE(((COMMAND_TYPE_OPCODE_OFFSET16*)pParserTempData->pWorkingTableData->IP)->CD_Offset16);
- } else
- {
- pParserTempData->pWorkingTableData->IP+=sizeof(COMMAND_TYPE_OPCODE_OFFSET16);
- }
-}
-
-VOID ProcessJumpNE(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
-{
- if (pParserTempData->CompareFlags != Equal)
- {
-
- pParserTempData->pWorkingTableData->IP= RELATIVE_TO_TABLE(((COMMAND_TYPE_OPCODE_OFFSET16*)pParserTempData->pWorkingTableData->IP)->CD_Offset16);
- } else
- {
- pParserTempData->pWorkingTableData->IP+=sizeof(COMMAND_TYPE_OPCODE_OFFSET16);
- }
-}
-
-
-
-COMMANDS_PROPERTIES CallTable[] =
-{
- { NULL, 0,0},
- { ProcessMove, destRegister, sizeof(COMMAND_HEADER)},
- { ProcessMove, destParamSpace, sizeof(COMMAND_HEADER)},
- { ProcessMove, destWorkSpace, sizeof(COMMAND_HEADER)},
- { ProcessMove, destFrameBuffer, sizeof(COMMAND_HEADER)},
- { ProcessMove, destPLL, sizeof(COMMAND_HEADER)},
- { ProcessMove, destMC, sizeof(COMMAND_HEADER)},
- { ProcessAnd, destRegister, sizeof(COMMAND_HEADER)},
- { ProcessAnd, destParamSpace, sizeof(COMMAND_HEADER)},
- { ProcessAnd, destWorkSpace, sizeof(COMMAND_HEADER)},
- { ProcessAnd, destFrameBuffer, sizeof(COMMAND_HEADER)},
- { ProcessAnd, destPLL, sizeof(COMMAND_HEADER)},
- { ProcessAnd, destMC, sizeof(COMMAND_HEADER)},
- { ProcessOr, destRegister, sizeof(COMMAND_HEADER)},
- { ProcessOr, destParamSpace, sizeof(COMMAND_HEADER)},
- { ProcessOr, destWorkSpace, sizeof(COMMAND_HEADER)},
- { ProcessOr, destFrameBuffer, sizeof(COMMAND_HEADER)},
- { ProcessOr, destPLL, sizeof(COMMAND_HEADER)},
- { ProcessOr, destMC, sizeof(COMMAND_HEADER)},
- { ProcessShift, destRegister, sizeof(COMMAND_HEADER)},
- { ProcessShift, destParamSpace, sizeof(COMMAND_HEADER)},
- { ProcessShift, destWorkSpace, sizeof(COMMAND_HEADER)},
- { ProcessShift, destFrameBuffer, sizeof(COMMAND_HEADER)},
- { ProcessShift, destPLL, sizeof(COMMAND_HEADER)},
- { ProcessShift, destMC, sizeof(COMMAND_HEADER)},
- { ProcessShift, destRegister, sizeof(COMMAND_HEADER)},
- { ProcessShift, destParamSpace, sizeof(COMMAND_HEADER)},
- { ProcessShift, destWorkSpace, sizeof(COMMAND_HEADER)},
- { ProcessShift, destFrameBuffer, sizeof(COMMAND_HEADER)},
- { ProcessShift, destPLL, sizeof(COMMAND_HEADER)},
- { ProcessShift, destMC, sizeof(COMMAND_HEADER)},
- { ProcessMUL, destRegister, sizeof(COMMAND_HEADER)},
- { ProcessMUL, destParamSpace, sizeof(COMMAND_HEADER)},
- { ProcessMUL, destWorkSpace, sizeof(COMMAND_HEADER)},
- { ProcessMUL, destFrameBuffer, sizeof(COMMAND_HEADER)},
- { ProcessMUL, destPLL, sizeof(COMMAND_HEADER)},
- { ProcessMUL, destMC, sizeof(COMMAND_HEADER)},
- { ProcessDIV, destRegister, sizeof(COMMAND_HEADER)},
- { ProcessDIV, destParamSpace, sizeof(COMMAND_HEADER)},
- { ProcessDIV, destWorkSpace, sizeof(COMMAND_HEADER)},
- { ProcessDIV, destFrameBuffer, sizeof(COMMAND_HEADER)},
- { ProcessDIV, destPLL, sizeof(COMMAND_HEADER)},
- { ProcessDIV, destMC, sizeof(COMMAND_HEADER)},
- { ProcessADD, destRegister, sizeof(COMMAND_HEADER)},
- { ProcessADD, destParamSpace, sizeof(COMMAND_HEADER)},
- { ProcessADD, destWorkSpace, sizeof(COMMAND_HEADER)},
- { ProcessADD, destFrameBuffer, sizeof(COMMAND_HEADER)},
- { ProcessADD, destPLL, sizeof(COMMAND_HEADER)},
- { ProcessADD, destMC, sizeof(COMMAND_HEADER)},
- { ProcessSUB, destRegister, sizeof(COMMAND_HEADER)},
- { ProcessSUB, destParamSpace, sizeof(COMMAND_HEADER)},
- { ProcessSUB, destWorkSpace, sizeof(COMMAND_HEADER)},
- { ProcessSUB, destFrameBuffer, sizeof(COMMAND_HEADER)},
- { ProcessSUB, destPLL, sizeof(COMMAND_HEADER)},
- { ProcessSUB, destMC, sizeof(COMMAND_HEADER)},
- { cmdSet_ATI_Port, ATI_RegsPort, 0},
- { cmdSet_X_Port, PCI_Port, 0},
- { cmdSet_X_Port, SystemIO_Port, 0},
- { cmdSet_Reg_Block, 0, 0},
- { ProcessSetFB_Base,0, sizeof(COMMAND_HEADER)},
- { ProcessCompare, destRegister, sizeof(COMMAND_HEADER)},
- { ProcessCompare, destParamSpace, sizeof(COMMAND_HEADER)},
- { ProcessCompare, destWorkSpace, sizeof(COMMAND_HEADER)},
- { ProcessCompare, destFrameBuffer, sizeof(COMMAND_HEADER)},
- { ProcessCompare, destPLL, sizeof(COMMAND_HEADER)},
- { ProcessCompare, destMC, sizeof(COMMAND_HEADER)},
- { ProcessSwitch, 0, sizeof(COMMAND_HEADER)},
- { ProcessJump, NoCondition, 0},
- { ProcessJump, Equal, 0},
- { ProcessJump, Below, 0},
- { ProcessJump, Above, 0},
- { ProcessJumpE, Below, 0},
- { ProcessJumpE, Above, 0},
- { ProcessJumpNE, 0, 0},
- { ProcessTest, destRegister, sizeof(COMMAND_HEADER)},
- { ProcessTest, destParamSpace, sizeof(COMMAND_HEADER)},
- { ProcessTest, destWorkSpace, sizeof(COMMAND_HEADER)},
- { ProcessTest, destFrameBuffer, sizeof(COMMAND_HEADER)},
- { ProcessTest, destPLL, sizeof(COMMAND_HEADER)},
- { ProcessTest, destMC, sizeof(COMMAND_HEADER)},
- { cmdDelay_Millisec,0, 0},
- { cmdDelay_Microsec,0, 0},
- { cmdCall_Table, 0, 0},
- /*cmdRepeat*/ { NotImplemented, 0, 0},
- { ProcessClear, destRegister, sizeof(COMMAND_HEADER)},
- { ProcessClear, destParamSpace, sizeof(COMMAND_HEADER)},
- { ProcessClear, destWorkSpace, sizeof(COMMAND_HEADER)},
- { ProcessClear, destFrameBuffer, sizeof(COMMAND_HEADER)},
- { ProcessClear, destPLL, sizeof(COMMAND_HEADER)},
- { ProcessClear, destMC, sizeof(COMMAND_HEADER)},
- { cmdNOP_, 0, sizeof(COMMAND_TYPE_OPCODE_ONLY)},
- /*cmdEOT*/ { cmdNOP_, 0, sizeof(COMMAND_TYPE_OPCODE_ONLY)},
- { ProcessMask, destRegister, sizeof(COMMAND_HEADER)},
- { ProcessMask, destParamSpace, sizeof(COMMAND_HEADER)},
- { ProcessMask, destWorkSpace, sizeof(COMMAND_HEADER)},
- { ProcessMask, destFrameBuffer, sizeof(COMMAND_HEADER)},
- { ProcessMask, destPLL, sizeof(COMMAND_HEADER)},
- { ProcessMask, destMC, sizeof(COMMAND_HEADER)},
- /*cmdPost_Card*/ { ProcessPostChar, 0, 0},
- /*cmdBeep*/ { NotImplemented, 0, 0},
- /*cmdSave_Reg*/ { NotImplemented, 0, 0},
- /*cmdRestore_Reg*/{ NotImplemented, 0, 0},
- { cmdSetDataBlock, 0, 0},
- { ProcessXor, destRegister, sizeof(COMMAND_HEADER)},
- { ProcessXor, destParamSpace, sizeof(COMMAND_HEADER)},
- { ProcessXor, destWorkSpace, sizeof(COMMAND_HEADER)},
- { ProcessXor, destFrameBuffer, sizeof(COMMAND_HEADER)},
- { ProcessXor, destPLL, sizeof(COMMAND_HEADER)},
- { ProcessXor, destMC, sizeof(COMMAND_HEADER)},
-
- { ProcessShl, destRegister, sizeof(COMMAND_HEADER)},
- { ProcessShl, destParamSpace, sizeof(COMMAND_HEADER)},
- { ProcessShl, destWorkSpace, sizeof(COMMAND_HEADER)},
- { ProcessShl, destFrameBuffer, sizeof(COMMAND_HEADER)},
- { ProcessShl, destPLL, sizeof(COMMAND_HEADER)},
- { ProcessShl, destMC, sizeof(COMMAND_HEADER)},
-
- { ProcessShr, destRegister, sizeof(COMMAND_HEADER)},
- { ProcessShr, destParamSpace, sizeof(COMMAND_HEADER)},
- { ProcessShr, destWorkSpace, sizeof(COMMAND_HEADER)},
- { ProcessShr, destFrameBuffer, sizeof(COMMAND_HEADER)},
- { ProcessShr, destPLL, sizeof(COMMAND_HEADER)},
- { ProcessShr, destMC, sizeof(COMMAND_HEADER)},
- /*cmdDebug*/ { ProcessDebug, 0, 0},
- { ProcessDS, 0, 0},
-
-};
-
-// EOF