Initial Commit
This commit is contained in:
80
common/Common.inc
Normal file
80
common/Common.inc
Normal file
@@ -0,0 +1,80 @@
|
||||
; **************************************************************************
|
||||
; FILE:COMMON.INC
|
||||
; FUNCTION: COMMON ASSEMBLER INCLUDE FILE
|
||||
; AUTHOR: SEAN M. KESSLER
|
||||
;****************************************************************************
|
||||
INCLUDE ..\COMMON\WINDOWS.INC
|
||||
|
||||
LPDWORD TYPEDEF NEAR PTR DWORD
|
||||
NPDWORD TYPEDEF FAR PTR DWORD
|
||||
NPBYTE TYPEDEF PTR BYTE
|
||||
|
||||
String STRUC
|
||||
String@@mnpStr NPDWORD ?
|
||||
String@@mLengthBytes DD ?
|
||||
String ENDS
|
||||
|
||||
Point STRUC
|
||||
Point@@x DW ?
|
||||
Point@@y DW ?
|
||||
Point ENDS
|
||||
|
||||
PurePalette STRUC
|
||||
PurePalette@@mhPalette HANDLE <>
|
||||
PurePalette@@mhOldPalette HANDLE <>
|
||||
PurePalette@@mPaletteData PALETTEENTRY 100h DUP (<>)
|
||||
PurePalette@@mIsInUse DW ?
|
||||
PurePalette ENDS
|
||||
|
||||
BitmapData STRUC
|
||||
BitmapData@@mhGlobalBitmapData HANDLE <>
|
||||
BitmapData@@mhGlobalBitmapInfo HANDLE <>
|
||||
BitmapData@@mlpBitmapData LPDWORD ?
|
||||
BitmapData@@mlpBitmapInfo PBITMAPINFO ?
|
||||
BitmapData@@mInfoDisposition DD ?
|
||||
BitmapData@@mDataDisposition DD ?
|
||||
BitmapData ENDS
|
||||
|
||||
Bitmap STRUC
|
||||
PBitmap TYPEDEF NEAR PTR Bitmap
|
||||
PPBitmap TYPEDEF NEAR PTR PBitmap
|
||||
Bitmap@@mBitmapData BitmapData <>
|
||||
Bitmap@@mFileName String <>
|
||||
Bitmap@@mMaxColors DW ?
|
||||
Bitmap@@mCurrentMode DD ?
|
||||
Bitmap@@mBitmapFileHeader BITMAPFILEHEADER <>
|
||||
Bitmap@@mPaletteData PurePalette <>
|
||||
Bitmap@@mBlockSize DD ?
|
||||
Bitmap@@mhFile HANDLE <>
|
||||
Bitmap@@mImageExtent DD ?
|
||||
Bitmap@@mWidth DD ?
|
||||
Bitmap@@mHeight DD ?
|
||||
Bitmap ENDS
|
||||
|
||||
PureVectorBitmap STRUC
|
||||
PPureVectorBitmap TYPEDEF FAR PTR PureVectorBitmap
|
||||
PureVectorBitmap@@mhGlobalMemPool DD ?
|
||||
PureVectorBitmap@@mhGlobalVectorTable DD ?
|
||||
PureVectorBitmap@@mEntries DD ?
|
||||
PureVectorBitmap@@mlpVectorTable PPBitmap ?
|
||||
PureVectorBitmap@@mlpMemPool PBitmap ?
|
||||
PureVectorBitmap ENDS
|
||||
|
||||
getBitmapPtr MACRO npPureVector,itemIndex
|
||||
LOCAL @@boundFail,@@return
|
||||
push edi ; save destination index register
|
||||
mov edi,npPureVector ; move npPureVector to edi register
|
||||
movzx eax,itemIndex ; move itemIndex to eax register
|
||||
cmp eax,[edi].PureVectorBitmap@@mEntries ; check index boundary
|
||||
jge @@boundFail ; handle out of bounds condition
|
||||
shl eax,02h ; multiply eax by sizeof(PTR)
|
||||
mov edi,[edi].PureVectorBitmap@@mlpVectorTable ; dereference vector table to edi
|
||||
add edi,eax ; add in itemIndex
|
||||
mov eax,[edi] ; dereference pointer to eax
|
||||
jmp @@return ; return
|
||||
@@boundFail: ; boundary error sync address
|
||||
xor eax,eax ; error clears eax register
|
||||
@@return: ; return sync address
|
||||
pop edi ; restore detination index register
|
||||
ENDM
|
||||
|
||||
Reference in New Issue
Block a user