summaryrefslogtreecommitdiff
path: root/src/AtomBios
diff options
context:
space:
mode:
authorAlex Deucher <alexdeucher@gmail.com>2010-01-19 11:59:38 -0500
committerAlex Deucher <alexdeucher@gmail.com>2010-01-19 12:08:17 -0500
commit712ac98af7cd862e802a8f735318dfb9c6a7ad28 (patch)
treeff6a70c60d5da89bf0240c0a84f78e549d54cbba /src/AtomBios
parent664ab901c09872c27d3d2ed76c9a48c10ce274da (diff)
ATOM: Upstream parser updates
Diffstat (limited to 'src/AtomBios')
-rw-r--r--src/AtomBios/CD_Operations.c7
-rw-r--r--src/AtomBios/includes/Decoder.h1
2 files changed, 7 insertions, 1 deletions
diff --git a/src/AtomBios/CD_Operations.c b/src/AtomBios/CD_Operations.c
index 6b285604..c1279b8e 100644
--- a/src/AtomBios/CD_Operations.c
+++ b/src/AtomBios/CD_Operations.c
@@ -300,6 +300,9 @@ VOID PutDataWS(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
case WS_ATTRIBUTES_C:
pParserTempData->AttributesData=(UINT16)pParserTempData->DestData32;
break;
+ case WS_REGPTR_C:
+ pParserTempData->CurrentRegBlock=(UINT16)pParserTempData->DestData32;
+ break;
}
}
@@ -390,6 +393,8 @@ UINT32 GetParametersWS(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
return pParserTempData->CurrentFB_Window;
case WS_ATTRIBUTES_C:
return pParserTempData->AttributesData;
+ case WS_REGPTR_C:
+ return (UINT32)pParserTempData->CurrentRegBlock;
}
return 0;
@@ -502,7 +507,7 @@ VOID ProcessMask(PARSER_TEMP_DATA STACK_BASED * pParserTempData)
pParserTempData->DestData32=GetDestination[pParserTempData->ParametersType.Destination](pParserTempData);
pParserTempData->SourceData32=GetParametersDirect(pParserTempData);
- pParserTempData->Index=GetParametersDirect(pParserTempData);
+ pParserTempData->Index=GetSource[pParserTempData->ParametersType.Source](pParserTempData);
pParserTempData->SourceData32 <<= DestinationAlignmentShift[pParserTempData->CD_Mask.DestAlignment];
pParserTempData->SourceData32 |= ~(AlignmentMask[pParserTempData->CD_Mask.SrcAlignment] << DestinationAlignmentShift[pParserTempData->CD_Mask.DestAlignment]);
pParserTempData->DestData32 &= pParserTempData->SourceData32;
diff --git a/src/AtomBios/includes/Decoder.h b/src/AtomBios/includes/Decoder.h
index 1e143f02..cc533efb 100644
--- a/src/AtomBios/includes/Decoder.h
+++ b/src/AtomBios/includes/Decoder.h
@@ -44,6 +44,7 @@ NEG:27.08.2002 Initiated.
#define WS_AND_MASK_C (WS_OR_MASK_C+1)
#define WS_FB_WINDOW_C (WS_AND_MASK_C+1)
#define WS_ATTRIBUTES_C (WS_FB_WINDOW_C+1)
+#define WS_REGPTR_C (WS_ATTRIBUTES_C+1)
#define PARSER_VERSION_MAJOR 0x00000000
#define PARSER_VERSION_MINOR 0x0000000E
#define PARSER_VERSION (PARSER_VERSION_MAJOR | PARSER_VERSION_MINOR)