add flat assembler toolchain
This commit is contained in:
326
toolchain/fasmw17332/EXAMPLES/DDRAW/DDRAW.ASM
Normal file
326
toolchain/fasmw17332/EXAMPLES/DDRAW/DDRAW.ASM
Normal file
@@ -0,0 +1,326 @@
|
||||
|
||||
; DirectDraw programming example
|
||||
|
||||
format PE GUI 4.0
|
||||
entry start
|
||||
|
||||
include 'win32a.inc'
|
||||
|
||||
include 'ddraw.inc'
|
||||
|
||||
section '.text' code readable executable
|
||||
|
||||
start:
|
||||
|
||||
and [DDraw],0
|
||||
and [DDSPrimary],0
|
||||
and [DDSBack],0
|
||||
and [DDPalette],0
|
||||
and [DDSPicture],0
|
||||
|
||||
invoke GetModuleHandleA,NULL
|
||||
mov [hinstance],eax
|
||||
|
||||
invoke LoadIconA,NULL,IDI_APPLICATION
|
||||
mov [wc.hIcon],eax
|
||||
|
||||
invoke LoadCursorA,NULL,IDC_ARROW
|
||||
mov [wc.hCursor],eax
|
||||
|
||||
mov [wc.style],0
|
||||
mov [wc.lpfnWndProc],WindowProc
|
||||
mov [wc.cbClsExtra],0
|
||||
mov [wc.cbWndExtra],0
|
||||
mov eax,[hinstance]
|
||||
mov [wc.hInstance],eax
|
||||
mov [wc.hbrBackground],0
|
||||
mov dword [wc.lpszMenuName],NULL
|
||||
mov dword [wc.lpszClassName],_class
|
||||
invoke RegisterClassA,wc
|
||||
test eax,eax
|
||||
jz startup_error
|
||||
|
||||
invoke CreateWindowExA,\
|
||||
0,_class,_title,WS_POPUP+WS_VISIBLE,0,0,0,0,NULL,NULL,[hinstance],NULL
|
||||
test eax,eax
|
||||
jz startup_error
|
||||
mov [hwnd],eax
|
||||
|
||||
invoke DirectDrawCreate,NULL,DDraw,NULL
|
||||
or eax,eax
|
||||
jnz ddraw_error
|
||||
|
||||
cominvk DDraw,SetCooperativeLevel,\
|
||||
[hwnd],DDSCL_EXCLUSIVE+DDSCL_FULLSCREEN
|
||||
or eax,eax
|
||||
jnz ddraw_error
|
||||
|
||||
cominvk DDraw,SetDisplayMode,\
|
||||
640,480,8
|
||||
or eax,eax
|
||||
jnz ddraw_error
|
||||
|
||||
mov [ddsd.dwSize],sizeof.DDSURFACEDESC
|
||||
mov [ddsd.dwFlags],DDSD_CAPS+DDSD_BACKBUFFERCOUNT
|
||||
mov [ddsd.ddsCaps.dwCaps],DDSCAPS_PRIMARYSURFACE+DDSCAPS_FLIP+DDSCAPS_COMPLEX
|
||||
mov [ddsd.dwBackBufferCount],1
|
||||
cominvk DDraw,CreateSurface,\
|
||||
ddsd,DDSPrimary,NULL
|
||||
or eax,eax
|
||||
jnz ddraw_error
|
||||
|
||||
mov [ddscaps.dwCaps],DDSCAPS_BACKBUFFER
|
||||
cominvk DDSPrimary,GetAttachedSurface,\
|
||||
ddscaps,DDSBack
|
||||
or eax,eax
|
||||
jnz ddraw_error
|
||||
|
||||
mov esi,picture
|
||||
call load_picture
|
||||
jc open_error
|
||||
|
||||
mov esi,picture
|
||||
call load_palette
|
||||
jc open_error
|
||||
|
||||
invoke GetTickCount
|
||||
mov [last_tick],eax
|
||||
|
||||
jmp paint
|
||||
|
||||
main_loop:
|
||||
|
||||
invoke PeekMessageA,msg,NULL,0,0,PM_NOREMOVE
|
||||
or eax,eax
|
||||
jz no_message
|
||||
invoke GetMessageA,msg,NULL,0,0
|
||||
or eax,eax
|
||||
jz end_loop
|
||||
invoke TranslateMessage,msg
|
||||
invoke DispatchMessageA,msg
|
||||
|
||||
jmp main_loop
|
||||
|
||||
no_message:
|
||||
cmp [active],0
|
||||
je sleep
|
||||
|
||||
cominvk DDSPrimary,IsLost
|
||||
or eax,eax
|
||||
jz paint
|
||||
cmp eax,DDERR_SURFACELOST
|
||||
jne end_loop
|
||||
|
||||
cominvk DDSPrimary,Restore
|
||||
|
||||
paint:
|
||||
|
||||
mov [rect.top],0
|
||||
mov [rect.bottom],480
|
||||
mov [rect.left],0
|
||||
mov [rect.right],640
|
||||
|
||||
cominvk DDSBack,BltFast,\
|
||||
0,0,[DDSPicture],rect,DDBLTFAST_SRCCOLORKEY
|
||||
or eax,eax
|
||||
jnz paint_done
|
||||
|
||||
movzx eax,[frame]
|
||||
xor edx,edx
|
||||
mov ebx,10
|
||||
div ebx
|
||||
|
||||
sal eax,6
|
||||
add eax,480
|
||||
mov [rect.top],eax
|
||||
add eax,64
|
||||
mov [rect.bottom],eax
|
||||
sal edx,6
|
||||
mov [rect.left],edx
|
||||
add edx,64
|
||||
mov [rect.right],edx
|
||||
|
||||
cominvk DDSBack,BltFast,\
|
||||
[x],[y],[DDSPicture],rect,DDBLTFAST_SRCCOLORKEY
|
||||
|
||||
cominvk DDSPrimary,SetPalette,[DDPalette]
|
||||
|
||||
cominvk DDSPrimary,Flip,0,0
|
||||
|
||||
paint_done:
|
||||
|
||||
invoke GetTickCount
|
||||
mov ebx,eax
|
||||
sub ebx,[last_tick]
|
||||
cmp ebx,20
|
||||
jb main_loop
|
||||
add [last_tick],20
|
||||
|
||||
inc [frame]
|
||||
cmp [frame],60
|
||||
jb main_loop
|
||||
mov [frame],0
|
||||
jmp main_loop
|
||||
|
||||
sleep:
|
||||
invoke WaitMessage
|
||||
jmp main_loop
|
||||
|
||||
ddraw_error:
|
||||
mov eax,_ddraw_error
|
||||
jmp error
|
||||
open_error:
|
||||
mov eax,_open_error
|
||||
error:
|
||||
invoke MessageBoxA,[hwnd],eax,_error,MB_OK+MB_ICONERROR
|
||||
invoke DestroyWindow,[hwnd]
|
||||
invoke PostQuitMessage,1
|
||||
jmp main_loop
|
||||
startup_error:
|
||||
invoke MessageBoxA,[hwnd],_startup_error,_error,MB_OK+MB_ICONERROR
|
||||
end_loop:
|
||||
|
||||
cmp [DDSPicture],0
|
||||
je picture_released
|
||||
cominvk DDSPicture,Release
|
||||
picture_released:
|
||||
cmp [DDPalette],0
|
||||
je palette_released
|
||||
cominvk DDPalette,Release
|
||||
palette_released:
|
||||
cmp [DDSBack],0
|
||||
je back_surface_released
|
||||
cominvk DDSPrimary,DeleteAttachedSurface,0,DDSBack
|
||||
back_surface_released:
|
||||
cmp [DDSPrimary],0
|
||||
je primary_surface_released
|
||||
cominvk DDSPrimary,Release
|
||||
primary_surface_released:
|
||||
cmp [DDraw],0
|
||||
je ddraw_released
|
||||
cominvk DDraw,Release
|
||||
ddraw_released:
|
||||
|
||||
invoke ExitProcess,[msg.wParam]
|
||||
|
||||
include 'gif87a.inc'
|
||||
|
||||
proc WindowProc hwnd,wmsg,wparam,lparam
|
||||
push ebx esi edi
|
||||
mov eax,[wmsg]
|
||||
cmp eax,WM_CREATE
|
||||
je .wmcreate
|
||||
cmp eax,WM_DESTROY
|
||||
je .wmdestroy
|
||||
cmp eax,WM_ACTIVATE
|
||||
je .wmactivate
|
||||
cmp eax,WM_SETCURSOR
|
||||
je .wmsetcursor
|
||||
cmp eax,WM_MOUSEMOVE
|
||||
je .wmmousemove
|
||||
cmp eax,WM_KEYDOWN
|
||||
je .wmkeydown
|
||||
.defwindowproc:
|
||||
invoke DefWindowProcA,[hwnd],[wmsg],[wparam],[lparam]
|
||||
jmp .finish
|
||||
.wmcreate:
|
||||
xor eax,eax
|
||||
jmp .finish
|
||||
.wmkeydown:
|
||||
cmp [wparam],VK_ESCAPE
|
||||
jne .finish
|
||||
.wmdestroy:
|
||||
cominvk DDraw,RestoreDisplayMode
|
||||
invoke PostQuitMessage,0
|
||||
xor eax,eax
|
||||
jmp .finish
|
||||
.wmactivate:
|
||||
mov eax,[wparam]
|
||||
mov [active],al
|
||||
jmp .finish
|
||||
.wmsetcursor:
|
||||
invoke SetCursor,0
|
||||
xor eax,eax
|
||||
jmp .finish
|
||||
.wmmousemove:
|
||||
movsx eax,word [lparam]
|
||||
mov [x],eax
|
||||
movsx eax,word [lparam+2]
|
||||
mov [y],eax
|
||||
.finish:
|
||||
pop edi esi ebx
|
||||
ret
|
||||
endp
|
||||
|
||||
section '.data' data readable writeable
|
||||
|
||||
_title db 'flat assembler DirectDraw application',0
|
||||
_class db 'FDDRAW32',0
|
||||
|
||||
_error db 'Error',0
|
||||
_startup_error db 'Startup failed.',0
|
||||
_ddraw_error db 'Direct Draw initialization failed.',0
|
||||
_open_error db 'Failed opening data file.',0
|
||||
|
||||
picture db 'DDRAW.GIF',0
|
||||
|
||||
section '.bss' readable writeable
|
||||
|
||||
hinstance dd ?
|
||||
hwnd dd ?
|
||||
wc WNDCLASS
|
||||
msg MSG
|
||||
|
||||
ddsd DDSURFACEDESC
|
||||
ddscaps DDSCAPS
|
||||
|
||||
DDraw DirectDraw
|
||||
DDSPrimary DirectDrawSurface
|
||||
DDSBack DirectDrawSurface
|
||||
|
||||
DDSPicture DirectDrawSurface
|
||||
DDPalette DirectDrawPalette
|
||||
|
||||
bytes_count dd ?
|
||||
last_tick dd ?
|
||||
frame db ?
|
||||
active db ?
|
||||
LZW_bits db ?
|
||||
LZW_table rd (0F00h-2)*2
|
||||
buffer rb 40000h
|
||||
rect RECT
|
||||
x dd ?
|
||||
y dd ?
|
||||
|
||||
section '.idata' import data readable
|
||||
|
||||
library kernel,'KERNEL32.DLL',\
|
||||
user,'USER32.DLL',\
|
||||
ddraw,'DDRAW.DLL'
|
||||
|
||||
import kernel,\
|
||||
GetModuleHandleA,'GetModuleHandleA',\
|
||||
CreateFileA,'CreateFileA',\
|
||||
ReadFile,'ReadFile',\
|
||||
CloseHandle,'CloseHandle',\
|
||||
GetTickCount,'GetTickCount',\
|
||||
ExitProcess,'ExitProcess'
|
||||
|
||||
import user,\
|
||||
RegisterClassA,'RegisterClassA',\
|
||||
CreateWindowExA,'CreateWindowExA',\
|
||||
DestroyWindow,'DestroyWindow',\
|
||||
DefWindowProcA,'DefWindowProcA',\
|
||||
GetMessageA,'GetMessageA',\
|
||||
PeekMessageA,'PeekMessageA',\
|
||||
TranslateMessage,'TranslateMessage',\
|
||||
DispatchMessageA,'DispatchMessageA',\
|
||||
LoadCursorA,'LoadCursorA',\
|
||||
LoadIconA,'LoadIconA',\
|
||||
SetCursor,'SetCursor',\
|
||||
MessageBoxA,'MessageBoxA',\
|
||||
PostQuitMessage,'PostQuitMessage',\
|
||||
WaitMessage,'WaitMessage'
|
||||
|
||||
import ddraw,\
|
||||
DirectDrawCreate,'DirectDrawCreate'
|
||||
BIN
toolchain/fasmw17332/EXAMPLES/DDRAW/DDRAW.GIF
Normal file
BIN
toolchain/fasmw17332/EXAMPLES/DDRAW/DDRAW.GIF
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 57 KiB |
424
toolchain/fasmw17332/EXAMPLES/DDRAW/DDRAW.INC
Normal file
424
toolchain/fasmw17332/EXAMPLES/DDRAW/DDRAW.INC
Normal file
@@ -0,0 +1,424 @@
|
||||
|
||||
; DirectDraw interface
|
||||
|
||||
interface DirectDraw,\
|
||||
QueryInterface,\
|
||||
AddRef,\
|
||||
Release,\
|
||||
Compact,\
|
||||
CreateClipper,\
|
||||
CreatePalette,\
|
||||
CreateSurface,\
|
||||
DuplicateSurface,\
|
||||
EnumDisplayModes,\
|
||||
EnumSurfaces,\
|
||||
FlipToGDISurface,\
|
||||
GetCaps,\
|
||||
GetDisplayMode,\
|
||||
GetFourCCCodes,\
|
||||
GetGDISurface,\
|
||||
GetMonitorFrequency,\
|
||||
GetScanLine,\
|
||||
GetVerticalBlankStatus,\
|
||||
Initialize,\
|
||||
RestoreDisplayMode,\
|
||||
SetCooperativeLevel,\
|
||||
SetDisplayMode,\
|
||||
WaitForVerticalBlank,\
|
||||
GetAvailableVidMem,\
|
||||
GetSurfaceFromDC,\
|
||||
RestoreAllSurfaces,\
|
||||
TestCooperativeLevel,\
|
||||
GetDeviceIdentifier,\
|
||||
StartModeTest,\
|
||||
EvaluateMode
|
||||
|
||||
interface DirectDrawSurface,\
|
||||
QueryInterface,\
|
||||
AddRef,\
|
||||
Release,\
|
||||
AddAttachedSurface,\
|
||||
AddOverlayDirtyRect,\
|
||||
Blt,\
|
||||
BltBatch,\
|
||||
BltFast,\
|
||||
DeleteAttachedSurface,\
|
||||
EnumAttachedSurfaces,\
|
||||
EnumOverlayZOrders,\
|
||||
Flip,\
|
||||
GetAttachedSurface,\
|
||||
GetBltStatus,\
|
||||
GetCaps,\
|
||||
GetClipper,\
|
||||
GetColorKey,\
|
||||
GetDC,\
|
||||
GetFlipStatus,\
|
||||
GetOverlayPosition,\
|
||||
GetPalette,\
|
||||
GetPixelFormat,\
|
||||
GetSurfaceDesc,\
|
||||
Initialize,\
|
||||
IsLost,\
|
||||
Lock,\
|
||||
ReleaseDC,\
|
||||
Restore,\
|
||||
SetClipper,\
|
||||
SetColorKey,\
|
||||
SetOverlayPosition,\
|
||||
SetPalette,\
|
||||
Unlock,\
|
||||
UpdateOverlay,\
|
||||
UpdateOverlayDisplay,\
|
||||
UpdateOverlayZOrder,\
|
||||
GetDDInterface,\
|
||||
PageLock,\
|
||||
PageUnlock,\
|
||||
SetSurfaceDesc,\
|
||||
SetPrivateData,\
|
||||
GetPrivateData,\
|
||||
FreePrivateData,\
|
||||
GetUniquenessValue,\
|
||||
ChangeUniquenessValue,\
|
||||
SetPriority,\
|
||||
GetPriority,\
|
||||
SetLOD,\
|
||||
GetLOD
|
||||
|
||||
interface DirectDrawPalette,\
|
||||
QueryInterface,\
|
||||
AddRef,\
|
||||
Release,\
|
||||
GetCaps,\
|
||||
GetEntries,\
|
||||
Initialize,\
|
||||
SetEntries
|
||||
|
||||
interface DirectDrawClipper,\
|
||||
QueryInterface,\
|
||||
AddRef,\
|
||||
Release,\
|
||||
GetClipList,\
|
||||
GetHWnd,\
|
||||
Initialize,\
|
||||
IsClipListChanged,\
|
||||
SetClipList,\
|
||||
SetHWnd
|
||||
|
||||
interface DirectDrawColorControl,\
|
||||
QueryInterface,\
|
||||
AddRef,\
|
||||
Release,\
|
||||
GetColorControls,\
|
||||
SetColorControls
|
||||
|
||||
interface DirectDrawGammaControl,\
|
||||
QueryInterface,\
|
||||
AddRef,\
|
||||
Release,\
|
||||
GetGammaRamp,\
|
||||
SetGammaRamp
|
||||
|
||||
struct DDCOLORKEY
|
||||
dwColorSpaceLowValue dd ?
|
||||
dwColorSpaceHighValue dd ?
|
||||
ends
|
||||
|
||||
struct DDPIXELFORMAT
|
||||
dwSize dd ?
|
||||
dwFlags dd ?
|
||||
dwFourCC dd ?
|
||||
union
|
||||
dwRGBBitCount dd ?
|
||||
dwYUVBitCount dd ?
|
||||
dwZBufferBitDepth dd ?
|
||||
dwAlphaBitDepth dd ?
|
||||
dwLuminanceBitCount dd ?
|
||||
dwBumpBitCount dd ?
|
||||
ends
|
||||
union
|
||||
dwRBitMask dd ?
|
||||
dwYBitMask dd ?
|
||||
dwStencilBitDepth dd ?
|
||||
dwLuminanceBitMask dd ?
|
||||
dwBumpDuBitMask dd ?
|
||||
ends
|
||||
union
|
||||
dwGBitMask dd ?
|
||||
dwUBitMask dd ?
|
||||
dwZBitMask dd ?
|
||||
dwBumpDvBitMask dd ?
|
||||
ends
|
||||
union
|
||||
dwBBitMask dd ?
|
||||
dwVBitMask dd ?
|
||||
dwStencilBitMask dd ?
|
||||
dwBumpLuminanceBitMask dd ?
|
||||
ends
|
||||
union
|
||||
dwRGBAlphaBitMask dd ?
|
||||
dwYUVAlphaBitMask dd ?
|
||||
dwLuminanceAlphaBitMask dd ?
|
||||
dwRGBZBitMask dd ?
|
||||
dwYUVZBitMask dd ?
|
||||
ends
|
||||
ends
|
||||
|
||||
struct DDSCAPS
|
||||
dwCaps dd ?
|
||||
ends
|
||||
|
||||
struct DDSURFACEDESC
|
||||
dwSize dd ?
|
||||
dwFlags dd ?
|
||||
dwHeight dd ?
|
||||
dwWidth dd ?
|
||||
union
|
||||
lPitch dd ?
|
||||
dwLinearSize dd ?
|
||||
ends
|
||||
dwBackBufferCount dd ?
|
||||
union
|
||||
dwMipMapCount dd ?
|
||||
dwZBufferBitDepth dd ?
|
||||
dwRefreshRate dd ?
|
||||
ends
|
||||
dwAlphaBitDepth dd ?
|
||||
dwReserved dd ?
|
||||
lpSurface dd ?
|
||||
ddckCKDestOverlay DDCOLORKEY
|
||||
ddckCKDestBlt DDCOLORKEY
|
||||
ddckCKSrcOverlay DDCOLORKEY
|
||||
ddckCKSrcBlt DDCOLORKEY
|
||||
ddpfPixelFormat DDPIXELFORMAT
|
||||
ddsCaps DDSCAPS
|
||||
ends
|
||||
|
||||
; SetCooperativeLevel flags
|
||||
|
||||
DDSCL_FULLSCREEN = 000000001h
|
||||
DDSCL_ALLOWREBOOT = 000000002h
|
||||
DDSCL_NOWINDOWCHANGES = 000000004h
|
||||
DDSCL_NORMAL = 000000008h
|
||||
DDSCL_EXCLUSIVE = 000000010h
|
||||
DDSCL_ALLOWMODEX = 000000040h
|
||||
|
||||
; Blt flags
|
||||
|
||||
DDBLT_ALPHADEST = 000000001h
|
||||
DDBLT_ALPHADESTCONSTOVERRIDE = 000000002h
|
||||
DDBLT_ALPHADESTNEG = 000000004h
|
||||
DDBLT_ALPHADESTSURFACEOVERRIDE = 000000008h
|
||||
DDBLT_ALPHAEDGEBLEND = 000000010h
|
||||
DDBLT_ALPHASRC = 000000020h
|
||||
DDBLT_ALPHASRCCONSTOVERRIDE = 000000040h
|
||||
DDBLT_ALPHASRCNEG = 000000080h
|
||||
DDBLT_ALPHASRCSURFACEOVERRIDE = 000000100h
|
||||
DDBLT_ASYNC = 000000200h
|
||||
DDBLT_COLORFILL = 000000400h
|
||||
DDBLT_DDFX = 000000800h
|
||||
DDBLT_DDROPS = 000001000h
|
||||
DDBLT_KEYDEST = 000002000h
|
||||
DDBLT_KEYDESTOVERRIDE = 000004000h
|
||||
DDBLT_KEYSRC = 000008000h
|
||||
DDBLT_KEYSRCOVERRIDE = 000010000h
|
||||
DDBLT_ROP = 000020000h
|
||||
DDBLT_ROTATIONANGLE = 000040000h
|
||||
DDBLT_ZBUFFER = 000080000h
|
||||
DDBLT_ZBUFFERDESTCONSTOVERRIDE = 000100000h
|
||||
DDBLT_ZBUFFERDESTOVERRIDE = 000200000h
|
||||
DDBLT_ZBUFFERSRCCONSTOVERRIDE = 000400000h
|
||||
DDBLT_ZBUFFERSRCOVERRIDE = 000800000h
|
||||
DDBLT_WAIT = 001000000h
|
||||
DDBLT_DEPTHFILL = 002000000h
|
||||
|
||||
; BltFast flags
|
||||
|
||||
DDBLTFAST_NOCOLORKEY = 000000000h
|
||||
DDBLTFAST_SRCCOLORKEY = 000000001h
|
||||
DDBLTFAST_DESTCOLORKEY = 000000002h
|
||||
DDBLTFAST_WAIT = 000000010h
|
||||
|
||||
; Flip flags
|
||||
|
||||
DDFLIP_WAIT = 000000001h
|
||||
DDFLIP_EVEN = 000000002h
|
||||
DDFLIP_ODD = 000000004h
|
||||
|
||||
; DDSURFACEDESC field flags
|
||||
|
||||
DDSD_CAPS = 000000001h
|
||||
DDSD_HEIGHT = 000000002h
|
||||
DDSD_WIDTH = 000000004h
|
||||
DDSD_PITCH = 000000008h
|
||||
DDSD_BACKBUFFERCOUNT = 000000020h
|
||||
DDSD_ZBUFFERBITDEPTH = 000000040h
|
||||
DDSD_ALPHABITDEPTH = 000000080h
|
||||
DDSD_LPSURFACE = 000000800h
|
||||
DDSD_PIXELFORMAT = 000001000h
|
||||
DDSD_CKDESTOVERLAY = 000002000h
|
||||
DDSD_CKDESTBLT = 000004000h
|
||||
DDSD_CKSRCOVERLAY = 000008000h
|
||||
DDSD_CKSRCBLT = 000010000h
|
||||
DDSD_MIPMAPCOUNT = 000020000h
|
||||
DDSD_REFRESHRATE = 000040000h
|
||||
DDSD_LINEARSIZE = 000080000h
|
||||
DDSD_ALL = 0000FF9EEh
|
||||
|
||||
; DirectDrawSurface capability flags
|
||||
|
||||
DDSCAPS_RESERVED1 = 000000001h
|
||||
DDSCAPS_ALPHA = 000000002h
|
||||
DDSCAPS_BACKBUFFER = 000000004h
|
||||
DDSCAPS_COMPLEX = 000000008h
|
||||
DDSCAPS_FLIP = 000000010h
|
||||
DDSCAPS_FRONTBUFFER = 000000020h
|
||||
DDSCAPS_OFFSCREENPLAIN = 000000040h
|
||||
DDSCAPS_OVERLAY = 000000080h
|
||||
DDSCAPS_PALETTE = 000000100h
|
||||
DDSCAPS_PRIMARYSURFACE = 000000200h
|
||||
DDSCAPS_PRIMARYSURFACELEFT = 000000400h
|
||||
DDSCAPS_SYSTEMMEMORY = 000000800h
|
||||
DDSCAPS_TEXTURE = 000001000h
|
||||
DDSCAPS_3DDEVICE = 000002000h
|
||||
DDSCAPS_VIDEOMEMORY = 000004000h
|
||||
DDSCAPS_VISIBLE = 000008000h
|
||||
DDSCAPS_WRITEONLY = 000010000h
|
||||
DDSCAPS_ZBUFFER = 000020000h
|
||||
DDSCAPS_OWNDC = 000040000h
|
||||
DDSCAPS_LIVEVIDEO = 000080000h
|
||||
DDSCAPS_HWCODEC = 000100000h
|
||||
DDSCAPS_MODEX = 000200000h
|
||||
DDSCAPS_MIPMAP = 000400000h
|
||||
DDSCAPS_RESERVED2 = 000800000h
|
||||
DDSCAPS_ALLOCONLOAD = 004000000h
|
||||
DDSCAPS_VIDEOPORT = 008000000h
|
||||
DDSCAPS_LOCALVIDMEM = 010000000h
|
||||
DDSCAPS_NONLOCALVIDMEM = 020000000h
|
||||
DDSCAPS_STANDARDVGAMODE = 040000000h
|
||||
DDSCAPS_OPTIMIZED = 080000000h
|
||||
|
||||
; DirectDrawSurface lock flags
|
||||
|
||||
DDLOCK_SURFACEMEMORYPTR = 000000000h
|
||||
DDLOCK_WAIT = 000000001h
|
||||
DDLOCK_EVENT = 000000002h
|
||||
DDLOCK_READONLY = 000000010h
|
||||
DDLOCK_WRITEONLY = 000000020h
|
||||
DDLOCK_NOSYSLOCK = 000000800h
|
||||
|
||||
; DirectDrawPalette capabilities
|
||||
|
||||
DDPCAPS_4BIT = 000000001h
|
||||
DDPCAPS_8BITENTRIES = 000000002h
|
||||
DDPCAPS_8BIT = 000000004h
|
||||
DDPCAPS_INITIALIZE = 000000008h
|
||||
DDPCAPS_PRIMARYSURFACE = 000000010h
|
||||
DDPCAPS_PRIMARYSURFACELEFT = 000000020h
|
||||
DDPCAPS_ALLOW256 = 000000040h
|
||||
DDPCAPS_VSYNC = 000000080h
|
||||
DDPCAPS_1BIT = 000000100h
|
||||
DDPCAPS_2BIT = 000000200h
|
||||
|
||||
; DirectDraw errors
|
||||
|
||||
DDERR_ALREADYINITIALIZED = 088760000h+5
|
||||
DDERR_CANNOTATTACHSURFACE = 088760000h+10
|
||||
DDERR_CANNOTDETACHSURFACE = 088760000h+20
|
||||
DDERR_CURRENTLYNOTAVAIL = 088760000h+40
|
||||
DDERR_EXCEPTION = 088760000h+55
|
||||
DDERR_HEIGHTALIGN = 088760000h+90
|
||||
DDERR_INCOMPATIBLEPRIMARY = 088760000h+95
|
||||
DDERR_INVALIDCAPS = 088760000h+100
|
||||
DDERR_INVALIDCLIPLIST = 088760000h+110
|
||||
DDERR_INVALIDMODE = 088760000h+120
|
||||
DDERR_INVALIDOBJECT = 088760000h+130
|
||||
DDERR_INVALIDPIXELFORMAT = 088760000h+145
|
||||
DDERR_INVALIDRECT = 088760000h+150
|
||||
DDERR_LOCKEDSURFACES = 088760000h+160
|
||||
DDERR_NO3D = 088760000h+170
|
||||
DDERR_NOALPHAHW = 088760000h+180
|
||||
DDERR_NOCLIPLIST = 088760000h+205
|
||||
DDERR_NOCOLORCONVHW = 088760000h+210
|
||||
DDERR_NOCOOPERATIVELEVELSET = 088760000h+212
|
||||
DDERR_NOCOLORKEY = 088760000h+215
|
||||
DDERR_NOCOLORKEYHW = 088760000h+220
|
||||
DDERR_NODIRECTDRAWSUPPORT = 088760000h+222
|
||||
DDERR_NOEXCLUSIVEMODE = 088760000h+225
|
||||
DDERR_NOFLIPHW = 088760000h+230
|
||||
DDERR_NOGDI = 088760000h+240
|
||||
DDERR_NOMIRRORHW = 088760000h+250
|
||||
DDERR_NOTFOUND = 088760000h+255
|
||||
DDERR_NOOVERLAYHW = 088760000h+260
|
||||
DDERR_NORASTEROPHW = 088760000h+280
|
||||
DDERR_NOROTATIONHW = 088760000h+290
|
||||
DDERR_NOSTRETCHHW = 088760000h+310
|
||||
DDERR_NOT4BITCOLOR = 088760000h+316
|
||||
DDERR_NOT4BITCOLORINDEX = 088760000h+317
|
||||
DDERR_NOT8BITCOLOR = 088760000h+320
|
||||
DDERR_NOTEXTUREHW = 088760000h+330
|
||||
DDERR_NOVSYNCHW = 088760000h+335
|
||||
DDERR_NOZBUFFERHW = 088760000h+340
|
||||
DDERR_NOZOVERLAYHW = 088760000h+350
|
||||
DDERR_OUTOFCAPS = 088760000h+360
|
||||
DDERR_OUTOFVIDEOMEMORY = 088760000h+380
|
||||
DDERR_OVERLAYCANTCLIP = 088760000h+382
|
||||
DDERR_OVERLAYCOLORKEYONLYONEACTI = 088760000h+384
|
||||
DDERR_PALETTEBUSY = 088760000h+387
|
||||
DDERR_COLORKEYNOTSET = 088760000h+400
|
||||
DDERR_SURFACEALREADYATTACHED = 088760000h+410
|
||||
DDERR_SURFACEALREADYDEPENDENT = 088760000h+420
|
||||
DDERR_SURFACEBUSY = 088760000h+430
|
||||
DDERR_CANTLOCKSURFACE = 088760000h+435
|
||||
DDERR_SURFACEISOBSCURED = 088760000h+440
|
||||
DDERR_SURFACELOST = 088760000h+450
|
||||
DDERR_SURFACENOTATTACHED = 088760000h+460
|
||||
DDERR_TOOBIGHEIGHT = 088760000h+470
|
||||
DDERR_TOOBIGSIZE = 088760000h+480
|
||||
DDERR_TOOBIGWIDTH = 088760000h+490
|
||||
DDERR_UNSUPPORTEDFORMAT = 088760000h+510
|
||||
DDERR_UNSUPPORTEDMASK = 088760000h+520
|
||||
DDERR_VERTICALBLANKINPROGRESS = 088760000h+537
|
||||
DDERR_WASSTILLDRAWING = 088760000h+540
|
||||
DDERR_XALIGN = 088760000h+560
|
||||
DDERR_INVALIDDIRECTDRAWGUID = 088760000h+561
|
||||
DDERR_DIRECTDRAWALREADYCREATED = 088760000h+562
|
||||
DDERR_NODIRECTDRAWHW = 088760000h+563
|
||||
DDERR_PRIMARYSURFACEALREADYEXIST = 088760000h+564
|
||||
DDERR_NOEMULATION = 088760000h+565
|
||||
DDERR_REGIONTOOSMALL = 088760000h+566
|
||||
DDERR_CLIPPERISUSINGHWND = 088760000h+567
|
||||
DDERR_NOCLIPPERATTACHED = 088760000h+568
|
||||
DDERR_NOHWND = 088760000h+569
|
||||
DDERR_HWNDSUBCLASSED = 088760000h+570
|
||||
DDERR_HWNDALREADYSET = 088760000h+571
|
||||
DDERR_NOPALETTEATTACHED = 088760000h+572
|
||||
DDERR_NOPALETTEHW = 088760000h+573
|
||||
DDERR_BLTFASTCANTCLIP = 088760000h+574
|
||||
DDERR_NOBLTHW = 088760000h+575
|
||||
DDERR_NODDROPSHW = 088760000h+576
|
||||
DDERR_OVERLAYNOTVISIBLE = 088760000h+577
|
||||
DDERR_NOOVERLAYDEST = 088760000h+578
|
||||
DDERR_INVALIDPOSITION = 088760000h+579
|
||||
DDERR_NOTAOVERLAYSURFACE = 088760000h+580
|
||||
DDERR_EXCLUSIVEMODEALREADYSET = 088760000h+581
|
||||
DDERR_NOTFLIPPABLE = 088760000h+582
|
||||
DDERR_CANTDUPLICATE = 088760000h+583
|
||||
DDERR_NOTLOCKED = 088760000h+584
|
||||
DDERR_CANTCREATEDC = 088760000h+585
|
||||
DDERR_NODC = 088760000h+586
|
||||
DDERR_WRONGMODE = 088760000h+587
|
||||
DDERR_IMPLICITLYCREATED = 088760000h+588
|
||||
DDERR_NOTPALETTIZED = 088760000h+589
|
||||
DDERR_UNSUPPORTEDMODE = 088760000h+590
|
||||
DDERR_NOMIPMAPHW = 088760000h+591
|
||||
DDERR_INVALIDSURFACETYPE = 088760000h+592
|
||||
DDERR_NOOPTIMIZEHW = 088760000h+600
|
||||
DDERR_NOTLOADED = 088760000h+601
|
||||
DDERR_DCALREADYCREATED = 088760000h+620
|
||||
DDERR_NONONLOCALVIDMEM = 088760000h+630
|
||||
DDERR_CANTPAGELOCK = 088760000h+640
|
||||
DDERR_CANTPAGEUNLOCK = 088760000h+660
|
||||
DDERR_NOTPAGELOCKED = 088760000h+680
|
||||
DDERR_MOREDATA = 088760000h+690
|
||||
DDERR_VIDEONOTACTIVE = 088760000h+695
|
||||
DDERR_DEVICEDOESNTOWNSURFACE = 088760000h+699
|
||||
196
toolchain/fasmw17332/EXAMPLES/DDRAW/GIF87A.INC
Normal file
196
toolchain/fasmw17332/EXAMPLES/DDRAW/GIF87A.INC
Normal file
@@ -0,0 +1,196 @@
|
||||
|
||||
virtual at buffer
|
||||
GIFHEADER:
|
||||
.ID dd ?
|
||||
.ver dw ?
|
||||
.width dw ?
|
||||
.height dw ?
|
||||
.bits db ?
|
||||
.background db ?
|
||||
.reserved db ?
|
||||
.length = $ - GIFHEADER
|
||||
end virtual
|
||||
|
||||
load_picture:
|
||||
|
||||
invoke CreateFileA,esi,GENERIC_READ,0,0,OPEN_EXISTING,0,0
|
||||
mov edi,eax
|
||||
invoke ReadFile,edi,GIFHEADER,40000h,bytes_count,0
|
||||
invoke CloseHandle,edi
|
||||
|
||||
cmp [GIFHEADER.ID],'GIF8'
|
||||
jne picture_error
|
||||
cmp [GIFHEADER.ver],'7a'
|
||||
jne picture_error
|
||||
|
||||
mov al,[GIFHEADER.bits]
|
||||
and al,10000111b
|
||||
cmp al,10000111b
|
||||
jne picture_error
|
||||
|
||||
add [bytes_count],buffer
|
||||
|
||||
mov esi,buffer+GIFHEADER.length+256*3
|
||||
mov edi,esi
|
||||
|
||||
xor eax,eax
|
||||
find_image:
|
||||
cmp esi,[bytes_count]
|
||||
jae picture_error
|
||||
lodsb
|
||||
cmp al,','
|
||||
je image_found
|
||||
cmp al,'!'
|
||||
jne picture_error
|
||||
inc esi
|
||||
skip_application_data:
|
||||
lodsb
|
||||
add esi,eax
|
||||
or al,al
|
||||
jnz skip_application_data
|
||||
jmp find_image
|
||||
image_found:
|
||||
add esi,4
|
||||
xor eax,eax
|
||||
lodsw
|
||||
mov ebx,eax
|
||||
lodsw
|
||||
inc esi
|
||||
cmp byte [esi],8
|
||||
jne picture_error
|
||||
inc esi
|
||||
|
||||
mov [ddsd.dwSize],sizeof.DDSURFACEDESC
|
||||
mov [ddsd.dwFlags],DDSD_CAPS+DDSD_WIDTH+DDSD_HEIGHT+DDSD_CKSRCBLT
|
||||
mov [ddsd.ddsCaps.dwCaps],DDSCAPS_OFFSCREENPLAIN+DDSCAPS_SYSTEMMEMORY
|
||||
mov [ddsd.dwWidth],ebx
|
||||
mov [ddsd.dwHeight],eax
|
||||
movzx eax,[GIFHEADER.background]
|
||||
mov [ddsd.ddckCKSrcBlt.dwColorSpaceLowValue],eax
|
||||
mov [ddsd.ddckCKSrcBlt.dwColorSpaceHighValue],eax
|
||||
cominvk DDraw,CreateSurface,\
|
||||
ddsd,DDSPicture,0
|
||||
or eax,eax
|
||||
jnz picture_error
|
||||
cominvk DDSPicture,Lock,\
|
||||
0,ddsd,DDLOCK_WAIT,0
|
||||
|
||||
mov edi,[ddsd.lpSurface]
|
||||
mov ebx,esi
|
||||
movzx ebp,byte [ebx]
|
||||
inc ebx
|
||||
add ebp,ebx
|
||||
mov [LZW_bits],0
|
||||
LZW_clear:
|
||||
xor edx,edx
|
||||
LZW_decompress_loop:
|
||||
mov ch,9
|
||||
cmp edx,(100h-2)*8
|
||||
jbe LZW_read_bits
|
||||
mov ch,10
|
||||
cmp edx,(300h-2)*8
|
||||
jbe LZW_read_bits
|
||||
mov ch,11
|
||||
cmp edx,(700h-2)*8
|
||||
jbe LZW_read_bits
|
||||
mov ch,12
|
||||
LZW_read_bits:
|
||||
mov cl,8
|
||||
sub cl,[LZW_bits]
|
||||
LZW_byte_from_stream:
|
||||
mov al,[ebx]
|
||||
cmp ebx,ebp
|
||||
jne LZW_bits_from_byte
|
||||
movzx ebp,al
|
||||
inc ebx
|
||||
mov al,[ebx]
|
||||
add ebp,ebx
|
||||
LZW_bits_from_byte:
|
||||
inc ebx
|
||||
ror eax,8
|
||||
sub cl,ch
|
||||
jz LZW_bits_ready
|
||||
ja LZW_bits_with_tail
|
||||
add cl,ch
|
||||
add cl,8
|
||||
jmp LZW_byte_from_stream
|
||||
LZW_bits_with_tail:
|
||||
dec ebx
|
||||
shl eax,cl
|
||||
LZW_bits_ready:
|
||||
neg cl
|
||||
and cl,7
|
||||
mov [LZW_bits],cl
|
||||
mov cl,ch
|
||||
rol eax,cl
|
||||
and eax,0FFFh
|
||||
cmp eax,100h
|
||||
jb LZW_single_byte
|
||||
je LZW_clear
|
||||
sub eax,102h
|
||||
jc LZW_end
|
||||
shl eax,3
|
||||
cmp eax,edx
|
||||
ja picture_error
|
||||
mov ecx,[LZW_table+eax]
|
||||
mov esi,[LZW_table+eax+4]
|
||||
mov [LZW_table+edx+4],edi
|
||||
rep movsb
|
||||
mov eax,[LZW_table+eax]
|
||||
inc eax
|
||||
mov [LZW_table+edx],eax
|
||||
jmp LZW_decompress_next
|
||||
LZW_single_byte:
|
||||
mov [LZW_table+edx],2
|
||||
mov [LZW_table+edx+4],edi
|
||||
stosb
|
||||
LZW_decompress_next:
|
||||
add edx,8
|
||||
jmp LZW_decompress_loop
|
||||
LZW_end:
|
||||
|
||||
cominvk DDSPicture,Unlock,0
|
||||
|
||||
mov eax,[DDSPicture]
|
||||
clc
|
||||
ret
|
||||
|
||||
picture_error:
|
||||
stc
|
||||
ret
|
||||
|
||||
load_palette:
|
||||
|
||||
invoke CreateFileA,esi,GENERIC_READ,0,0,OPEN_EXISTING,0,0
|
||||
mov edi,eax
|
||||
invoke ReadFile,edi,buffer,GIFHEADER.length+256*3,bytes_count,0
|
||||
cmp [bytes_count],GIFHEADER.length+256*3
|
||||
jne picture_error
|
||||
invoke CloseHandle,edi
|
||||
|
||||
cmp [GIFHEADER.ID],'GIF8'
|
||||
jne picture_error
|
||||
cmp [GIFHEADER.ver],'7a'
|
||||
jne picture_error
|
||||
mov al,[GIFHEADER.bits]
|
||||
and al,111b
|
||||
cmp al,111b
|
||||
jne picture_error
|
||||
|
||||
mov esi,buffer+GIFHEADER.length
|
||||
mov edi,buffer+400h
|
||||
mov ecx,256
|
||||
convert_palette:
|
||||
movsw
|
||||
movsb
|
||||
xor al,al
|
||||
stosb
|
||||
loop convert_palette
|
||||
|
||||
cominvk DDraw,CreatePalette,\
|
||||
DDPCAPS_8BIT+DDPCAPS_ALLOW256,buffer+400h,DDPalette,0
|
||||
or eax,eax
|
||||
jnz picture_error
|
||||
|
||||
clc
|
||||
ret
|
||||
130
toolchain/fasmw17332/EXAMPLES/DIALOG/DIALOG.ASM
Normal file
130
toolchain/fasmw17332/EXAMPLES/DIALOG/DIALOG.ASM
Normal file
@@ -0,0 +1,130 @@
|
||||
|
||||
; DialogBox example
|
||||
|
||||
format PE GUI 4.0
|
||||
entry start
|
||||
|
||||
include 'win32a.inc'
|
||||
|
||||
ID_CAPTION = 101
|
||||
ID_MESSAGE = 102
|
||||
ID_ICONERROR = 201
|
||||
ID_ICONINFORMATION = 202
|
||||
ID_ICONQUESTION = 203
|
||||
ID_ICONWARNING = 204
|
||||
ID_TOPMOST = 301
|
||||
|
||||
section '.text' code readable executable
|
||||
|
||||
start:
|
||||
|
||||
invoke GetModuleHandle,0
|
||||
invoke DialogBoxParam,eax,37,HWND_DESKTOP,DialogProc,0
|
||||
or eax,eax
|
||||
jz exit
|
||||
invoke MessageBox,HWND_DESKTOP,message,caption,[flags]
|
||||
exit:
|
||||
invoke ExitProcess,0
|
||||
|
||||
proc DialogProc hwnddlg,msg,wparam,lparam
|
||||
push ebx esi edi
|
||||
cmp [msg],WM_INITDIALOG
|
||||
je .wminitdialog
|
||||
cmp [msg],WM_COMMAND
|
||||
je .wmcommand
|
||||
cmp [msg],WM_CLOSE
|
||||
je .wmclose
|
||||
xor eax,eax
|
||||
jmp .finish
|
||||
.wminitdialog:
|
||||
invoke CheckRadioButton,[hwnddlg],ID_ICONERROR,ID_ICONWARNING,ID_ICONINFORMATION
|
||||
jmp .processed
|
||||
.wmcommand:
|
||||
cmp [wparam],BN_CLICKED shl 16 + IDCANCEL
|
||||
je .wmclose
|
||||
cmp [wparam],BN_CLICKED shl 16 + IDOK
|
||||
jne .processed
|
||||
invoke GetDlgItemText,[hwnddlg],ID_CAPTION,caption,40h
|
||||
invoke GetDlgItemText,[hwnddlg],ID_MESSAGE,message,100h
|
||||
mov [flags],MB_OK
|
||||
invoke IsDlgButtonChecked,[hwnddlg],ID_ICONERROR
|
||||
cmp eax,BST_CHECKED
|
||||
jne .iconerror_ok
|
||||
or [flags],MB_ICONERROR
|
||||
.iconerror_ok:
|
||||
invoke IsDlgButtonChecked,[hwnddlg],ID_ICONINFORMATION
|
||||
cmp eax,BST_CHECKED
|
||||
jne .iconinformation_ok
|
||||
or [flags],MB_ICONINFORMATION
|
||||
.iconinformation_ok:
|
||||
invoke IsDlgButtonChecked,[hwnddlg],ID_ICONQUESTION
|
||||
cmp eax,BST_CHECKED
|
||||
jne .iconquestion_ok
|
||||
or [flags],MB_ICONQUESTION
|
||||
.iconquestion_ok:
|
||||
invoke IsDlgButtonChecked,[hwnddlg],ID_ICONWARNING
|
||||
cmp eax,BST_CHECKED
|
||||
jne .iconwarning_ok
|
||||
or [flags],MB_ICONWARNING
|
||||
.iconwarning_ok:
|
||||
invoke IsDlgButtonChecked,[hwnddlg],ID_TOPMOST
|
||||
cmp eax,BST_CHECKED
|
||||
jne .topmost_ok
|
||||
or [flags],MB_TOPMOST
|
||||
.topmost_ok:
|
||||
invoke EndDialog,[hwnddlg],1
|
||||
jmp .processed
|
||||
.wmclose:
|
||||
invoke EndDialog,[hwnddlg],0
|
||||
.processed:
|
||||
mov eax,1
|
||||
.finish:
|
||||
pop edi esi ebx
|
||||
ret
|
||||
endp
|
||||
|
||||
section '.bss' readable writeable
|
||||
|
||||
flags dd ?
|
||||
caption rb 40h
|
||||
message rb 100h
|
||||
|
||||
section '.idata' import data readable writeable
|
||||
|
||||
library kernel,'KERNEL32.DLL',\
|
||||
user,'USER32.DLL'
|
||||
|
||||
import kernel,\
|
||||
GetModuleHandle,'GetModuleHandleA',\
|
||||
ExitProcess,'ExitProcess'
|
||||
|
||||
import user,\
|
||||
DialogBoxParam,'DialogBoxParamA',\
|
||||
CheckRadioButton,'CheckRadioButton',\
|
||||
GetDlgItemText,'GetDlgItemTextA',\
|
||||
IsDlgButtonChecked,'IsDlgButtonChecked',\
|
||||
MessageBox,'MessageBoxA',\
|
||||
EndDialog,'EndDialog'
|
||||
|
||||
section '.rsrc' resource data readable
|
||||
|
||||
directory RT_DIALOG,dialogs
|
||||
|
||||
resource dialogs,\
|
||||
37,LANG_ENGLISH+SUBLANG_DEFAULT,demonstration
|
||||
|
||||
dialog demonstration,'Create message box',70,70,190,175,WS_CAPTION+WS_POPUP+WS_SYSMENU+DS_MODALFRAME
|
||||
dialogitem 'STATIC','&Caption:',-1,10,10,70,8,WS_VISIBLE
|
||||
dialogitem 'EDIT','',ID_CAPTION,10,20,170,13,WS_VISIBLE+WS_BORDER+WS_TABSTOP
|
||||
dialogitem 'STATIC','&Message:',-1,10,40,70,8,WS_VISIBLE
|
||||
dialogitem 'EDIT','',ID_MESSAGE,10,50,170,13,WS_VISIBLE+WS_BORDER+WS_TABSTOP+ES_AUTOHSCROLL
|
||||
dialogitem 'BUTTON','&Icon',-1,10,70,80,70,WS_VISIBLE+BS_GROUPBOX
|
||||
dialogitem 'BUTTON','&Error',ID_ICONERROR,20,82,60,13,WS_VISIBLE+BS_AUTORADIOBUTTON+WS_TABSTOP+WS_GROUP
|
||||
dialogitem 'BUTTON','I&nformation',ID_ICONINFORMATION,20,95,60,13,WS_VISIBLE+BS_AUTORADIOBUTTON
|
||||
dialogitem 'BUTTON','&Question',ID_ICONQUESTION,20,108,60,13,WS_VISIBLE+BS_AUTORADIOBUTTON
|
||||
dialogitem 'BUTTON','&Warning',ID_ICONWARNING,20,121,60,13,WS_VISIBLE+BS_AUTORADIOBUTTON
|
||||
dialogitem 'BUTTON','&Style',-1,100,70,80,70,WS_VISIBLE+BS_GROUPBOX
|
||||
dialogitem 'BUTTON','&Top most',ID_TOPMOST,110,82,60,13,WS_VISIBLE+WS_TABSTOP+BS_AUTOCHECKBOX
|
||||
dialogitem 'BUTTON','OK',IDOK,85,150,45,15,WS_VISIBLE+WS_TABSTOP+BS_DEFPUSHBUTTON
|
||||
dialogitem 'BUTTON','C&ancel',IDCANCEL,135,150,45,15,WS_VISIBLE+WS_TABSTOP+BS_PUSHBUTTON
|
||||
enddialog
|
||||
59
toolchain/fasmw17332/EXAMPLES/DLL/ERRORMSG.ASM
Normal file
59
toolchain/fasmw17332/EXAMPLES/DLL/ERRORMSG.ASM
Normal file
@@ -0,0 +1,59 @@
|
||||
|
||||
; DLL creation example
|
||||
|
||||
format PE GUI 4.0 DLL
|
||||
entry DllEntryPoint
|
||||
|
||||
include 'win32a.inc'
|
||||
|
||||
section '.text' code readable executable
|
||||
|
||||
proc DllEntryPoint hinstDLL,fdwReason,lpvReserved
|
||||
mov eax,TRUE
|
||||
ret
|
||||
endp
|
||||
|
||||
; VOID ShowErrorMessage(HWND hWnd,DWORD dwError);
|
||||
|
||||
proc ShowErrorMessage hWnd,dwError
|
||||
local lpBuffer:DWORD
|
||||
lea eax,[lpBuffer]
|
||||
invoke FormatMessage,FORMAT_MESSAGE_ALLOCATE_BUFFER+FORMAT_MESSAGE_FROM_SYSTEM,0,[dwError],LANG_NEUTRAL,eax,0,0
|
||||
invoke MessageBox,[hWnd],[lpBuffer],NULL,MB_ICONERROR+MB_OK
|
||||
invoke LocalFree,[lpBuffer]
|
||||
ret
|
||||
endp
|
||||
|
||||
; VOID ShowLastError(HWND hWnd);
|
||||
|
||||
proc ShowLastError hWnd
|
||||
invoke GetLastError
|
||||
stdcall ShowErrorMessage,[hWnd],eax
|
||||
ret
|
||||
endp
|
||||
|
||||
section '.idata' import data readable writeable
|
||||
|
||||
library kernel,'KERNEL32.DLL',\
|
||||
user,'USER32.DLL'
|
||||
|
||||
import kernel,\
|
||||
GetLastError,'GetLastError',\
|
||||
SetLastError,'SetLastError',\
|
||||
FormatMessage,'FormatMessageA',\
|
||||
LocalFree,'LocalFree'
|
||||
|
||||
import user,\
|
||||
MessageBox,'MessageBoxA'
|
||||
|
||||
section '.edata' export data readable
|
||||
|
||||
export 'ERRORMSG.DLL',\
|
||||
ShowErrorMessage,'ShowErrorMessage',\
|
||||
ShowLastError,'ShowLastError'
|
||||
|
||||
section '.reloc' fixups data readable discardable
|
||||
|
||||
if $=$$
|
||||
dd 0,8 ; if there are no fixups, generate dummy entry
|
||||
end if
|
||||
24
toolchain/fasmw17332/EXAMPLES/DLL/LASTERR.ASM
Normal file
24
toolchain/fasmw17332/EXAMPLES/DLL/LASTERR.ASM
Normal file
@@ -0,0 +1,24 @@
|
||||
|
||||
format PE GUI 4.0
|
||||
entry start
|
||||
|
||||
include 'win32a.inc'
|
||||
|
||||
section '.text' code readable executable
|
||||
|
||||
start:
|
||||
invoke SetLastError,0
|
||||
invoke ShowLastError,HWND_DESKTOP
|
||||
invoke ExitProcess,0
|
||||
|
||||
section '.idata' import data readable writeable
|
||||
|
||||
library kernel,'KERNEL32.DLL',\
|
||||
errormsg,'ERRORMSG.DLL'
|
||||
|
||||
import kernel,\
|
||||
SetLastError,'SetLastError',\
|
||||
ExitProcess,'ExitProcess'
|
||||
|
||||
import errormsg,\
|
||||
ShowLastError,'ShowLastError'
|
||||
18
toolchain/fasmw17332/EXAMPLES/HELLO/HELLO.ASM
Normal file
18
toolchain/fasmw17332/EXAMPLES/HELLO/HELLO.ASM
Normal file
@@ -0,0 +1,18 @@
|
||||
|
||||
; example of simplified Windows programming using complex macro features
|
||||
|
||||
include 'win32ax.inc' ; you can simply switch between win32ax, win32wx, win64ax and win64wx here
|
||||
|
||||
.code
|
||||
|
||||
start:
|
||||
|
||||
invoke MessageBox,HWND_DESKTOP,"May I introduce myself?",invoke GetCommandLine,MB_YESNO
|
||||
|
||||
.if eax = IDYES
|
||||
invoke MessageBox,HWND_DESKTOP,"Hi! I'm the example program!","Hello!",MB_OK
|
||||
.endif
|
||||
|
||||
invoke ExitProcess,0
|
||||
|
||||
.end start
|
||||
206
toolchain/fasmw17332/EXAMPLES/MINIPAD/MINIPAD.ASM
Normal file
206
toolchain/fasmw17332/EXAMPLES/MINIPAD/MINIPAD.ASM
Normal file
@@ -0,0 +1,206 @@
|
||||
|
||||
; Simple text editor - fasm example program
|
||||
|
||||
format PE GUI 4.0
|
||||
entry start
|
||||
|
||||
include 'win32a.inc'
|
||||
|
||||
IDR_ICON = 17
|
||||
IDR_MENU = 37
|
||||
|
||||
IDM_NEW = 101
|
||||
IDM_EXIT = 102
|
||||
IDM_ABOUT = 901
|
||||
|
||||
section '.text' code readable executable
|
||||
|
||||
start:
|
||||
|
||||
invoke GetModuleHandle,0
|
||||
mov [wc.hInstance],eax
|
||||
|
||||
invoke LoadIcon,eax,IDR_ICON
|
||||
mov [wc.hIcon],eax
|
||||
invoke LoadCursor,0,IDC_ARROW
|
||||
mov [wc.hCursor],eax
|
||||
invoke RegisterClass,wc
|
||||
test eax,eax
|
||||
jz error
|
||||
|
||||
invoke LoadMenu,[wc.hInstance],IDR_MENU
|
||||
invoke CreateWindowEx,0,_class,_title,WS_VISIBLE+WS_OVERLAPPEDWINDOW,144,128,256,256,NULL,eax,[wc.hInstance],NULL
|
||||
test eax,eax
|
||||
jz error
|
||||
|
||||
msg_loop:
|
||||
invoke GetMessage,msg,NULL,0,0
|
||||
cmp eax,1
|
||||
jb end_loop
|
||||
jne msg_loop
|
||||
invoke TranslateMessage,msg
|
||||
invoke DispatchMessage,msg
|
||||
jmp msg_loop
|
||||
|
||||
error:
|
||||
invoke MessageBox,NULL,_error,NULL,MB_ICONERROR+MB_OK
|
||||
|
||||
end_loop:
|
||||
invoke ExitProcess,[msg.wParam]
|
||||
|
||||
proc WindowProc hwnd,wmsg,wparam,lparam
|
||||
push ebx esi edi
|
||||
mov eax,[wmsg]
|
||||
cmp eax,WM_CREATE
|
||||
je .wmcreate
|
||||
cmp eax,WM_SIZE
|
||||
je .wmsize
|
||||
cmp eax,WM_SETFOCUS
|
||||
je .wmsetfocus
|
||||
cmp eax,WM_COMMAND
|
||||
je .wmcommand
|
||||
cmp eax,WM_DESTROY
|
||||
je .wmdestroy
|
||||
.defwndproc:
|
||||
invoke DefWindowProc,[hwnd],[wmsg],[wparam],[lparam]
|
||||
jmp .finish
|
||||
.wmcreate:
|
||||
invoke GetClientRect,[hwnd],client
|
||||
invoke CreateWindowEx,WS_EX_CLIENTEDGE,_edit,0,WS_VISIBLE+WS_CHILD+WS_HSCROLL+WS_VSCROLL+ES_AUTOHSCROLL+ES_AUTOVSCROLL+ES_MULTILINE,[client.left],[client.top],[client.right],[client.bottom],[hwnd],0,[wc.hInstance],NULL
|
||||
or eax,eax
|
||||
jz .failed
|
||||
mov [edithwnd],eax
|
||||
invoke CreateFont,16,0,0,0,0,FALSE,FALSE,FALSE,ANSI_CHARSET,OUT_RASTER_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,FIXED_PITCH+FF_DONTCARE,NULL
|
||||
or eax,eax
|
||||
jz .failed
|
||||
mov [editfont],eax
|
||||
invoke SendMessage,[edithwnd],WM_SETFONT,eax,FALSE
|
||||
xor eax,eax
|
||||
jmp .finish
|
||||
.failed:
|
||||
or eax,-1
|
||||
jmp .finish
|
||||
.wmsize:
|
||||
invoke GetClientRect,[hwnd],client
|
||||
invoke MoveWindow,[edithwnd],[client.left],[client.top],[client.right],[client.bottom],TRUE
|
||||
xor eax,eax
|
||||
jmp .finish
|
||||
.wmsetfocus:
|
||||
invoke SetFocus,[edithwnd]
|
||||
xor eax,eax
|
||||
jmp .finish
|
||||
.wmcommand:
|
||||
mov eax,[wparam]
|
||||
and eax,0FFFFh
|
||||
cmp eax,IDM_NEW
|
||||
je .new
|
||||
cmp eax,IDM_ABOUT
|
||||
je .about
|
||||
cmp eax,IDM_EXIT
|
||||
je .wmdestroy
|
||||
jmp .defwndproc
|
||||
.new:
|
||||
invoke SendMessage,[edithwnd],WM_SETTEXT,0,0
|
||||
jmp .finish
|
||||
.about:
|
||||
invoke MessageBox,[hwnd],_about_text,_about_title,MB_OK
|
||||
jmp .finish
|
||||
.wmdestroy:
|
||||
invoke DeleteObject,[editfont]
|
||||
invoke PostQuitMessage,0
|
||||
xor eax,eax
|
||||
.finish:
|
||||
pop edi esi ebx
|
||||
ret
|
||||
endp
|
||||
|
||||
section '.data' data readable writeable
|
||||
|
||||
_title TCHAR 'MiniPad',0
|
||||
_about_title TCHAR 'About MiniPad',0
|
||||
_about_text TCHAR 'This is Win32 example program created with flat assembler.',0
|
||||
_error TCHAR 'Startup failed.',0
|
||||
|
||||
_class TCHAR 'MINIPAD32',0
|
||||
_edit TCHAR 'EDIT',0
|
||||
|
||||
wc WNDCLASS 0,WindowProc,0,0,NULL,NULL,NULL,COLOR_BTNFACE+1,NULL,_class
|
||||
|
||||
edithwnd dd ?
|
||||
editfont dd ?
|
||||
|
||||
msg MSG
|
||||
client RECT
|
||||
|
||||
section '.idata' import data readable writeable
|
||||
|
||||
library kernel,'KERNEL32.DLL',\
|
||||
user,'USER32.DLL',\
|
||||
gdi,'GDI32.DLL'
|
||||
|
||||
import kernel,\
|
||||
GetModuleHandle,'GetModuleHandleA',\
|
||||
ExitProcess,'ExitProcess'
|
||||
|
||||
import user,\
|
||||
RegisterClass,'RegisterClassA',\
|
||||
CreateWindowEx,'CreateWindowExA',\
|
||||
DefWindowProc,'DefWindowProcA',\
|
||||
SetWindowLong,'SetWindowLongA',\
|
||||
RedrawWindow,'RedrawWindow',\
|
||||
GetMessage,'GetMessageA',\
|
||||
TranslateMessage,'TranslateMessage',\
|
||||
DispatchMessage,'DispatchMessageA',\
|
||||
SendMessage,'SendMessageA',\
|
||||
LoadCursor,'LoadCursorA',\
|
||||
LoadIcon,'LoadIconA',\
|
||||
LoadMenu,'LoadMenuA',\
|
||||
GetClientRect,'GetClientRect',\
|
||||
MoveWindow,'MoveWindow',\
|
||||
SetFocus,'SetFocus',\
|
||||
MessageBox,'MessageBoxA',\
|
||||
PostQuitMessage,'PostQuitMessage'
|
||||
|
||||
import gdi,\
|
||||
CreateFont,'CreateFontA',\
|
||||
DeleteObject,'DeleteObject'
|
||||
|
||||
section '.rsrc' resource data readable
|
||||
|
||||
; resource directory
|
||||
|
||||
directory RT_MENU,menus,\
|
||||
RT_ICON,icons,\
|
||||
RT_GROUP_ICON,group_icons,\
|
||||
RT_VERSION,versions
|
||||
|
||||
; resource subdirectories
|
||||
|
||||
resource menus,\
|
||||
IDR_MENU,LANG_ENGLISH+SUBLANG_DEFAULT,main_menu
|
||||
|
||||
resource icons,\
|
||||
1,LANG_NEUTRAL,icon_data
|
||||
|
||||
resource group_icons,\
|
||||
IDR_ICON,LANG_NEUTRAL,main_icon
|
||||
|
||||
resource versions,\
|
||||
1,LANG_NEUTRAL,version
|
||||
|
||||
menu main_menu
|
||||
menuitem '&File',0,MFR_POPUP
|
||||
menuitem '&New',IDM_NEW
|
||||
menuseparator
|
||||
menuitem 'E&xit',IDM_EXIT,MFR_END
|
||||
menuitem '&Help',0,MFR_POPUP + MFR_END
|
||||
menuitem '&About...',IDM_ABOUT,MFR_END
|
||||
|
||||
icon main_icon,icon_data,'minipad.ico'
|
||||
|
||||
versioninfo version,VOS__WINDOWS32,VFT_APP,VFT2_UNKNOWN,LANG_ENGLISH+SUBLANG_DEFAULT,0,\
|
||||
'FileDescription','MiniPad - example program',\
|
||||
'LegalCopyright','No rights reserved.',\
|
||||
'FileVersion','1.0',\
|
||||
'ProductVersion','1.0',\
|
||||
'OriginalFilename','MINIPAD.EXE'
|
||||
BIN
toolchain/fasmw17332/EXAMPLES/MINIPAD/MINIPAD.ICO
Normal file
BIN
toolchain/fasmw17332/EXAMPLES/MINIPAD/MINIPAD.ICO
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 766 B |
23
toolchain/fasmw17332/EXAMPLES/MSCOFF/MSCOFF.ASM
Normal file
23
toolchain/fasmw17332/EXAMPLES/MSCOFF/MSCOFF.ASM
Normal file
@@ -0,0 +1,23 @@
|
||||
|
||||
; example of making Win32 COFF object file
|
||||
|
||||
format MS COFF
|
||||
|
||||
extrn '__imp__MessageBoxA@16' as MessageBox:dword
|
||||
|
||||
section '.text' code readable executable
|
||||
|
||||
public _demo
|
||||
|
||||
_demo:
|
||||
push 0
|
||||
push _caption
|
||||
push _message
|
||||
push 0
|
||||
call [MessageBox]
|
||||
ret
|
||||
|
||||
section '.data' data readable writeable
|
||||
|
||||
_caption db 'Win32 assembly',0
|
||||
_message db 'Coffee time!',0
|
||||
614
toolchain/fasmw17332/EXAMPLES/OPENGL/OPENGL.ASM
Normal file
614
toolchain/fasmw17332/EXAMPLES/OPENGL/OPENGL.ASM
Normal file
@@ -0,0 +1,614 @@
|
||||
|
||||
; OpenGL programming example
|
||||
|
||||
format PE GUI 4.0
|
||||
entry start
|
||||
|
||||
include 'win32a.inc'
|
||||
|
||||
include 'opengl.inc'
|
||||
|
||||
section '.text' code readable executable
|
||||
|
||||
start:
|
||||
|
||||
invoke GetModuleHandle,0
|
||||
mov [wc.hInstance],eax
|
||||
invoke LoadIcon,0,IDI_APPLICATION
|
||||
mov [wc.hIcon],eax
|
||||
invoke LoadCursor,0,IDC_ARROW
|
||||
mov [wc.hCursor],eax
|
||||
invoke RegisterClass,wc
|
||||
invoke CreateWindowEx,0,_class,_title,WS_VISIBLE+WS_OVERLAPPEDWINDOW+WS_CLIPCHILDREN+WS_CLIPSIBLINGS,16,16,432,432,NULL,NULL,[wc.hInstance],NULL
|
||||
mov [hwnd],eax
|
||||
|
||||
msg_loop:
|
||||
invoke GetMessage,msg,NULL,0,0
|
||||
or eax,eax
|
||||
jz end_loop
|
||||
invoke TranslateMessage,msg
|
||||
invoke DispatchMessage,msg
|
||||
jmp msg_loop
|
||||
|
||||
end_loop:
|
||||
invoke ExitProcess,[msg.wParam]
|
||||
|
||||
proc WindowProc hwnd,wmsg,wparam,lparam
|
||||
push ebx esi edi
|
||||
cmp [wmsg],WM_CREATE
|
||||
je .wmcreate
|
||||
cmp [wmsg],WM_SIZE
|
||||
je .wmsize
|
||||
cmp [wmsg],WM_PAINT
|
||||
je .wmpaint
|
||||
cmp [wmsg],WM_KEYDOWN
|
||||
je .wmkeydown
|
||||
cmp [wmsg],WM_DESTROY
|
||||
je .wmdestroy
|
||||
.defwndproc:
|
||||
invoke DefWindowProc,[hwnd],[wmsg],[wparam],[lparam]
|
||||
jmp .finish
|
||||
.wmcreate:
|
||||
invoke GetDC,[hwnd]
|
||||
mov [hdc],eax
|
||||
mov edi,pfd
|
||||
mov ecx,sizeof.PIXELFORMATDESCRIPTOR shr 2
|
||||
xor eax,eax
|
||||
rep stosd
|
||||
mov [pfd.nSize],sizeof.PIXELFORMATDESCRIPTOR
|
||||
mov [pfd.nVersion],1
|
||||
mov [pfd.dwFlags],PFD_SUPPORT_OPENGL+PFD_DOUBLEBUFFER+PFD_DRAW_TO_WINDOW
|
||||
mov [pfd.iLayerType],PFD_MAIN_PLANE
|
||||
mov [pfd.iPixelType],PFD_TYPE_RGBA
|
||||
mov [pfd.cColorBits],16
|
||||
mov [pfd.cDepthBits],16
|
||||
mov [pfd.cAccumBits],0
|
||||
mov [pfd.cStencilBits],0
|
||||
invoke ChoosePixelFormat,[hdc],pfd
|
||||
invoke SetPixelFormat,[hdc],eax,pfd
|
||||
invoke wglCreateContext,[hdc]
|
||||
mov [hrc],eax
|
||||
invoke wglMakeCurrent,[hdc],[hrc]
|
||||
invoke GetClientRect,[hwnd],rc
|
||||
invoke glViewport,0,0,[rc.right],[rc.bottom]
|
||||
invoke GetTickCount
|
||||
mov [clock],eax
|
||||
xor eax,eax
|
||||
jmp .finish
|
||||
.wmsize:
|
||||
invoke GetClientRect,[hwnd],rc
|
||||
invoke glViewport,0,0,[rc.right],[rc.bottom]
|
||||
xor eax,eax
|
||||
jmp .finish
|
||||
.wmpaint:
|
||||
invoke GetTickCount
|
||||
sub eax,[clock]
|
||||
cmp eax,10
|
||||
jb .animation_ok
|
||||
add [clock],eax
|
||||
invoke glRotatef,[theta],0.0,0.0,1.0
|
||||
.animation_ok:
|
||||
invoke glClear,GL_COLOR_BUFFER_BIT
|
||||
invoke glBegin,GL_QUADS
|
||||
invoke glColor3f,1.0,0.1,0.1
|
||||
invoke glVertex3f,-0.6,-0.6,0.0
|
||||
invoke glColor3f,0.1,0.1,0.1
|
||||
invoke glVertex3f,0.6,-0.6,0.0
|
||||
invoke glColor3f,0.1,0.1,1.0
|
||||
invoke glVertex3f,0.6,0.6,0.0
|
||||
invoke glColor3f,1.0,0.1,1.0
|
||||
invoke glVertex3f,-0.6,0.6,0.0
|
||||
invoke glEnd
|
||||
invoke SwapBuffers,[hdc]
|
||||
xor eax,eax
|
||||
jmp .finish
|
||||
.wmkeydown:
|
||||
cmp [wparam],VK_ESCAPE
|
||||
jne .defwndproc
|
||||
.wmdestroy:
|
||||
invoke wglMakeCurrent,0,0
|
||||
invoke wglDeleteContext,[hrc]
|
||||
invoke ReleaseDC,[hwnd],[hdc]
|
||||
invoke PostQuitMessage,0
|
||||
xor eax,eax
|
||||
.finish:
|
||||
pop edi esi ebx
|
||||
ret
|
||||
endp
|
||||
|
||||
section '.data' data readable writeable
|
||||
|
||||
_title db 'OpenGL example',0
|
||||
_class db 'FASMOPENGL32',0
|
||||
|
||||
theta GLfloat 0.6
|
||||
|
||||
wc WNDCLASS 0,WindowProc,0,0,NULL,NULL,NULL,NULL,NULL,_class
|
||||
|
||||
hwnd dd ?
|
||||
hdc dd ?
|
||||
hrc dd ?
|
||||
|
||||
msg MSG
|
||||
rc RECT
|
||||
pfd PIXELFORMATDESCRIPTOR
|
||||
|
||||
clock dd ?
|
||||
|
||||
section '.idata' import data readable writeable
|
||||
|
||||
library kernel,'KERNEL32.DLL',\
|
||||
user,'USER32.DLL',\
|
||||
gdi,'GDI32.DLL',\
|
||||
opengl,'OPENGL32.DLL',\
|
||||
glu,'GLU32.DLL'
|
||||
|
||||
import kernel,\
|
||||
GetModuleHandle,'GetModuleHandleA',\
|
||||
GetTickCount,'GetTickCount',\
|
||||
ExitProcess,'ExitProcess'
|
||||
|
||||
import user,\
|
||||
RegisterClass,'RegisterClassA',\
|
||||
CreateWindowEx,'CreateWindowExA',\
|
||||
DefWindowProc,'DefWindowProcA',\
|
||||
GetMessage,'GetMessageA',\
|
||||
TranslateMessage,'TranslateMessage',\
|
||||
DispatchMessage,'DispatchMessageA',\
|
||||
LoadCursor,'LoadCursorA',\
|
||||
LoadIcon,'LoadIconA',\
|
||||
GetClientRect,'GetClientRect',\
|
||||
GetDC,'GetDC',\
|
||||
ReleaseDC,'ReleaseDC',\
|
||||
PostQuitMessage,'PostQuitMessage'
|
||||
|
||||
import gdi,\
|
||||
ChoosePixelFormat,'ChoosePixelFormat',\
|
||||
SetPixelFormat,'SetPixelFormat',\
|
||||
SwapBuffers,'SwapBuffers'
|
||||
|
||||
import opengl,\
|
||||
glAccum,'glAccum',\
|
||||
glAlphaFunc,'glAlphaFunc',\
|
||||
glAreTexturesResident,'glAreTexturesResident',\
|
||||
glArrayElement,'glArrayElement',\
|
||||
glBegin,'glBegin',\
|
||||
glBindTexture,'glBindTexture',\
|
||||
glBitmap,'glBitmap',\
|
||||
glBlendFunc,'glBlendFunc',\
|
||||
glCallList,'glCallList',\
|
||||
glCallLists,'glCallLists',\
|
||||
glClear,'glClear',\
|
||||
glClearAccum,'glClearAccum',\
|
||||
glClearColor,'glClearColor',\
|
||||
glClearDepth,'glClearDepth',\
|
||||
glClearIndex,'glClearIndex',\
|
||||
glClearStencil,'glClearStencil',\
|
||||
glClipPlane,'glClipPlane',\
|
||||
glColor3b,'glColor3b',\
|
||||
glColor3bv,'glColor3bv',\
|
||||
glColor3d,'glColor3d',\
|
||||
glColor3dv,'glColor3dv',\
|
||||
glColor3f,'glColor3f',\
|
||||
glColor3fv,'glColor3fv',\
|
||||
glColor3i,'glColor3i',\
|
||||
glColor3iv,'glColor3iv',\
|
||||
glColor3s,'glColor3s',\
|
||||
glColor3sv,'glColor3sv',\
|
||||
glColor3ub,'glColor3ub',\
|
||||
glColor3ubv,'glColor3ubv',\
|
||||
glColor3ui,'glColor3ui',\
|
||||
glColor3uiv,'glColor3uiv',\
|
||||
glColor3us,'glColor3us',\
|
||||
glColor3usv,'glColor3usv',\
|
||||
glColor4b,'glColor4b',\
|
||||
glColor4bv,'glColor4bv',\
|
||||
glColor4d,'glColor4d',\
|
||||
glColor4dv,'glColor4dv',\
|
||||
glColor4f,'glColor4f',\
|
||||
glColor4fv,'glColor4fv',\
|
||||
glColor4i,'glColor4i',\
|
||||
glColor4iv,'glColor4iv',\
|
||||
glColor4s,'glColor4s',\
|
||||
glColor4sv,'glColor4sv',\
|
||||
glColor4ub,'glColor4ub',\
|
||||
glColor4ubv,'glColor4ubv',\
|
||||
glColor4ui,'glColor4ui',\
|
||||
glColor4uiv,'glColor4uiv',\
|
||||
glColor4us,'glColor4us',\
|
||||
glColor4usv,'glColor4usv',\
|
||||
glColorMask,'glColorMask',\
|
||||
glColorMaterial,'glColorMaterial',\
|
||||
glColorPointer,'glColorPointer',\
|
||||
glCopyPixels,'glCopyPixels',\
|
||||
glCopyTexImage1D,'glCopyTexImage1D',\
|
||||
glCopyTexImage2D,'glCopyTexImage2D',\
|
||||
glCopyTexSubImage1D,'glCopyTexSubImage1D',\
|
||||
glCopyTexSubImage2D,'glCopyTexSubImage2D',\
|
||||
glCullFace,'glCullFace',\
|
||||
glDeleteLists,'glDeleteLists',\
|
||||
glDeleteTextures,'glDeleteTextures',\
|
||||
glDepthFunc,'glDepthFunc',\
|
||||
glDepthMask,'glDepthMask',\
|
||||
glDepthRange,'glDepthRange',\
|
||||
glDisable,'glDisable',\
|
||||
glDisableClientState,'glDisableClientState',\
|
||||
glDrawArrays,'glDrawArrays',\
|
||||
glDrawBuffer,'glDrawBuffer',\
|
||||
glDrawElements,'glDrawElements',\
|
||||
glDrawPixels,'glDrawPixels',\
|
||||
glEdgeFlag,'glEdgeFlag',\
|
||||
glEdgeFlagPointer,'glEdgeFlagPointer',\
|
||||
glEdgeFlagv,'glEdgeFlagv',\
|
||||
glEnable,'glEnable',\
|
||||
glEnableClientState,'glEnableClientState',\
|
||||
glEnd,'glEnd',\
|
||||
glEndList,'glEndList',\
|
||||
glEvalCoord1d,'glEvalCoord1d',\
|
||||
glEvalCoord1dv,'glEvalCoord1dv',\
|
||||
glEvalCoord1f,'glEvalCoord1f',\
|
||||
glEvalCoord1fv,'glEvalCoord1fv',\
|
||||
glEvalCoord2d,'glEvalCoord2d',\
|
||||
glEvalCoord2dv,'glEvalCoord2dv',\
|
||||
glEvalCoord2f,'glEvalCoord2f',\
|
||||
glEvalCoord2fv,'glEvalCoord2fv',\
|
||||
glEvalMesh1,'glEvalMesh1',\
|
||||
glEvalMesh2,'glEvalMesh2',\
|
||||
glEvalPoint1,'glEvalPoint1',\
|
||||
glEvalPoint2,'glEvalPoint2',\
|
||||
glFeedbackBuffer,'glFeedbackBuffer',\
|
||||
glFinish,'glFinish',\
|
||||
glFlush,'glFlush',\
|
||||
glFogf,'glFogf',\
|
||||
glFogfv,'glFogfv',\
|
||||
glFogi,'glFogi',\
|
||||
glFogiv,'glFogiv',\
|
||||
glFrontFace,'glFrontFace',\
|
||||
glFrustum,'glFrustum',\
|
||||
glGenLists,'glGenLists',\
|
||||
glGenTextures,'glGenTextures',\
|
||||
glGetBooleanv,'glGetBooleanv',\
|
||||
glGetClipPlane,'glGetClipPlane',\
|
||||
glGetDoublev,'glGetDoublev',\
|
||||
glGetError,'glGetError',\
|
||||
glGetFloatv,'glGetFloatv',\
|
||||
glGetIntegerv,'glGetIntegerv',\
|
||||
glGetLightfv,'glGetLightfv',\
|
||||
glGetLightiv,'glGetLightiv',\
|
||||
glGetMapdv,'glGetMapdv',\
|
||||
glGetMapfv,'glGetMapfv',\
|
||||
glGetMapiv,'glGetMapiv',\
|
||||
glGetMaterialfv,'glGetMaterialfv',\
|
||||
glGetMaterialiv,'glGetMaterialiv',\
|
||||
glGetPixelMapfv,'glGetPixelMapfv',\
|
||||
glGetPixelMapuiv,'glGetPixelMapuiv',\
|
||||
glGetPixelMapusv,'glGetPixelMapusv',\
|
||||
glGetPointerv,'glGetPointerv',\
|
||||
glGetPolygonStipple,'glGetPolygonStipple',\
|
||||
glGetString,'glGetString',\
|
||||
glGetTexEnvfv,'glGetTexEnvfv',\
|
||||
glGetTexEnviv,'glGetTexEnviv',\
|
||||
glGetTexGendv,'glGetTexGendv',\
|
||||
glGetTexGenfv,'glGetTexGenfv',\
|
||||
glGetTexGeniv,'glGetTexGeniv',\
|
||||
glGetTexImage,'glGetTexImage',\
|
||||
glGetTexLevelParameterfv,'glGetTexLevelParameterfv',\
|
||||
glGetTexLevelParameteriv,'glGetTexLevelParameteriv',\
|
||||
glGetTexParameterfv,'glGetTexParameterfv',\
|
||||
glGetTexParameteriv,'glGetTexParameteriv',\
|
||||
glHint,'glHint',\
|
||||
glIndexMask,'glIndexMask',\
|
||||
glIndexPointer,'glIndexPointer',\
|
||||
glIndexd,'glIndexd',\
|
||||
glIndexdv,'glIndexdv',\
|
||||
glIndexf,'glIndexf',\
|
||||
glIndexfv,'glIndexfv',\
|
||||
glIndexi,'glIndexi',\
|
||||
glIndexiv,'glIndexiv',\
|
||||
glIndexs,'glIndexs',\
|
||||
glIndexsv,'glIndexsv',\
|
||||
glIndexub,'glIndexub',\
|
||||
glIndexubv,'glIndexubv',\
|
||||
glInitNames,'glInitNames',\
|
||||
glInterleavedArrays,'glInterleavedArrays',\
|
||||
glIsEnabled,'glIsEnabled',\
|
||||
glIsList,'glIsList',\
|
||||
glIsTexture,'glIsTexture',\
|
||||
glLightModelf,'glLightModelf',\
|
||||
glLightModelfv,'glLightModelfv',\
|
||||
glLightModeli,'glLightModeli',\
|
||||
glLightModeliv,'glLightModeliv',\
|
||||
glLightf,'glLightf',\
|
||||
glLightfv,'glLightfv',\
|
||||
glLighti,'glLighti',\
|
||||
glLightiv,'glLightiv',\
|
||||
glLineStipple,'glLineStipple',\
|
||||
glLineWidth,'glLineWidth',\
|
||||
glListBase,'glListBase',\
|
||||
glLoadIdentity,'glLoadIdentity',\
|
||||
glLoadMatrixd,'glLoadMatrixd',\
|
||||
glLoadMatrixf,'glLoadMatrixf',\
|
||||
glLoadName,'glLoadName',\
|
||||
glLogicOp,'glLogicOp',\
|
||||
glMap1d,'glMap1d',\
|
||||
glMap1f,'glMap1f',\
|
||||
glMap2d,'glMap2d',\
|
||||
glMap2f,'glMap2f',\
|
||||
glMapGrid1d,'glMapGrid1d',\
|
||||
glMapGrid1f,'glMapGrid1f',\
|
||||
glMapGrid2d,'glMapGrid2d',\
|
||||
glMapGrid2f,'glMapGrid2f',\
|
||||
glMaterialf,'glMaterialf',\
|
||||
glMaterialfv,'glMaterialfv',\
|
||||
glMateriali,'glMateriali',\
|
||||
glMaterialiv,'glMaterialiv',\
|
||||
glMatrixMode,'glMatrixMode',\
|
||||
glMultMatrixd,'glMultMatrixd',\
|
||||
glMultMatrixf,'glMultMatrixf',\
|
||||
glNewList,'glNewList',\
|
||||
glNormal3b,'glNormal3b',\
|
||||
glNormal3bv,'glNormal3bv',\
|
||||
glNormal3d,'glNormal3d',\
|
||||
glNormal3dv,'glNormal3dv',\
|
||||
glNormal3f,'glNormal3f',\
|
||||
glNormal3fv,'glNormal3fv',\
|
||||
glNormal3i,'glNormal3i',\
|
||||
glNormal3iv,'glNormal3iv',\
|
||||
glNormal3s,'glNormal3s',\
|
||||
glNormal3sv,'glNormal3sv',\
|
||||
glNormalPointer,'glNormalPointer',\
|
||||
glOrtho,'glOrtho',\
|
||||
glPassThrough,'glPassThrough',\
|
||||
glPixelMapfv,'glPixelMapfv',\
|
||||
glPixelMapuiv,'glPixelMapuiv',\
|
||||
glPixelMapusv,'glPixelMapusv',\
|
||||
glPixelStoref,'glPixelStoref',\
|
||||
glPixelStorei,'glPixelStorei',\
|
||||
glPixelTransferf,'glPixelTransferf',\
|
||||
glPixelTransferi,'glPixelTransferi',\
|
||||
glPixelZoom,'glPixelZoom',\
|
||||
glPointSize,'glPointSize',\
|
||||
glPolygonMode,'glPolygonMode',\
|
||||
glPolygonOffset,'glPolygonOffset',\
|
||||
glPolygonStipple,'glPolygonStipple',\
|
||||
glPopAttrib,'glPopAttrib',\
|
||||
glPopClientAttrib,'glPopClientAttrib',\
|
||||
glPopMatrix,'glPopMatrix',\
|
||||
glPopName,'glPopName',\
|
||||
glPrioritizeTextures,'glPrioritizeTextures',\
|
||||
glPushAttrib,'glPushAttrib',\
|
||||
glPushClientAttrib,'glPushClientAttrib',\
|
||||
glPushMatrix,'glPushMatrix',\
|
||||
glPushName,'glPushName',\
|
||||
glRasterPos2d,'glRasterPos2d',\
|
||||
glRasterPos2dv,'glRasterPos2dv',\
|
||||
glRasterPos2f,'glRasterPos2f',\
|
||||
glRasterPos2fv,'glRasterPos2fv',\
|
||||
glRasterPos2i,'glRasterPos2i',\
|
||||
glRasterPos2iv,'glRasterPos2iv',\
|
||||
glRasterPos2s,'glRasterPos2s',\
|
||||
glRasterPos2sv,'glRasterPos2sv',\
|
||||
glRasterPos3d,'glRasterPos3d',\
|
||||
glRasterPos3dv,'glRasterPos3dv',\
|
||||
glRasterPos3f,'glRasterPos3f',\
|
||||
glRasterPos3fv,'glRasterPos3fv',\
|
||||
glRasterPos3i,'glRasterPos3i',\
|
||||
glRasterPos3iv,'glRasterPos3iv',\
|
||||
glRasterPos3s,'glRasterPos3s',\
|
||||
glRasterPos3sv,'glRasterPos3sv',\
|
||||
glRasterPos4d,'glRasterPos4d',\
|
||||
glRasterPos4dv,'glRasterPos4dv',\
|
||||
glRasterPos4f,'glRasterPos4f',\
|
||||
glRasterPos4fv,'glRasterPos4fv',\
|
||||
glRasterPos4i,'glRasterPos4i',\
|
||||
glRasterPos4iv,'glRasterPos4iv',\
|
||||
glRasterPos4s,'glRasterPos4s',\
|
||||
glRasterPos4sv,'glRasterPos4sv',\
|
||||
glReadBuffer,'glReadBuffer',\
|
||||
glReadPixels,'glReadPixels',\
|
||||
glRectd,'glRectd',\
|
||||
glRectdv,'glRectdv',\
|
||||
glRectf,'glRectf',\
|
||||
glRectfv,'glRectfv',\
|
||||
glRecti,'glRecti',\
|
||||
glRectiv,'glRectiv',\
|
||||
glRects,'glRects',\
|
||||
glRectsv,'glRectsv',\
|
||||
glRenderMode,'glRenderMode',\
|
||||
glRotated,'glRotated',\
|
||||
glRotatef,'glRotatef',\
|
||||
glScaled,'glScaled',\
|
||||
glScalef,'glScalef',\
|
||||
glScissor,'glScissor',\
|
||||
glSelectBuffer,'glSelectBuffer',\
|
||||
glShadeModel,'glShadeModel',\
|
||||
glStencilFunc,'glStencilFunc',\
|
||||
glStencilMask,'glStencilMask',\
|
||||
glStencilOp,'glStencilOp',\
|
||||
glTexCoord1d,'glTexCoord1d',\
|
||||
glTexCoord1dv,'glTexCoord1dv',\
|
||||
glTexCoord1f,'glTexCoord1f',\
|
||||
glTexCoord1fv,'glTexCoord1fv',\
|
||||
glTexCoord1i,'glTexCoord1i',\
|
||||
glTexCoord1iv,'glTexCoord1iv',\
|
||||
glTexCoord1s,'glTexCoord1s',\
|
||||
glTexCoord1sv,'glTexCoord1sv',\
|
||||
glTexCoord2d,'glTexCoord2d',\
|
||||
glTexCoord2dv,'glTexCoord2dv',\
|
||||
glTexCoord2f,'glTexCoord2f',\
|
||||
glTexCoord2fv,'glTexCoord2fv',\
|
||||
glTexCoord2i,'glTexCoord2i',\
|
||||
glTexCoord2iv,'glTexCoord2iv',\
|
||||
glTexCoord2s,'glTexCoord2s',\
|
||||
glTexCoord2sv,'glTexCoord2sv',\
|
||||
glTexCoord3d,'glTexCoord3d',\
|
||||
glTexCoord3dv,'glTexCoord3dv',\
|
||||
glTexCoord3f,'glTexCoord3f',\
|
||||
glTexCoord3fv,'glTexCoord3fv',\
|
||||
glTexCoord3i,'glTexCoord3i',\
|
||||
glTexCoord3iv,'glTexCoord3iv',\
|
||||
glTexCoord3s,'glTexCoord3s',\
|
||||
glTexCoord3sv,'glTexCoord3sv',\
|
||||
glTexCoord4d,'glTexCoord4d',\
|
||||
glTexCoord4dv,'glTexCoord4dv',\
|
||||
glTexCoord4f,'glTexCoord4f',\
|
||||
glTexCoord4fv,'glTexCoord4fv',\
|
||||
glTexCoord4i,'glTexCoord4i',\
|
||||
glTexCoord4iv,'glTexCoord4iv',\
|
||||
glTexCoord4s,'glTexCoord4s',\
|
||||
glTexCoord4sv,'glTexCoord4sv',\
|
||||
glTexCoordPointer,'glTexCoordPointer',\
|
||||
glTexEnvf,'glTexEnvf',\
|
||||
glTexEnvfv,'glTexEnvfv',\
|
||||
glTexEnvi,'glTexEnvi',\
|
||||
glTexEnviv,'glTexEnviv',\
|
||||
glTexGend,'glTexGend',\
|
||||
glTexGendv,'glTexGendv',\
|
||||
glTexGenf,'glTexGenf',\
|
||||
glTexGenfv,'glTexGenfv',\
|
||||
glTexGeni,'glTexGeni',\
|
||||
glTexGeniv,'glTexGeniv',\
|
||||
glTexImage1D,'glTexImage1D',\
|
||||
glTexImage2D,'glTexImage2D',\
|
||||
glTexParameterf,'glTexParameterf',\
|
||||
glTexParameterfv,'glTexParameterfv',\
|
||||
glTexParameteri,'glTexParameteri',\
|
||||
glTexParameteriv,'glTexParameteriv',\
|
||||
glTexSubImage1D,'glTexSubImage1D',\
|
||||
glTexSubImage2D,'glTexSubImage2D',\
|
||||
glTranslated,'glTranslated',\
|
||||
glTranslatef,'glTranslatef',\
|
||||
glVertex2d,'glVertex2d',\
|
||||
glVertex2dv,'glVertex2dv',\
|
||||
glVertex2f,'glVertex2f',\
|
||||
glVertex2fv,'glVertex2fv',\
|
||||
glVertex2i,'glVertex2i',\
|
||||
glVertex2iv,'glVertex2iv',\
|
||||
glVertex2s,'glVertex2s',\
|
||||
glVertex2sv,'glVertex2sv',\
|
||||
glVertex3d,'glVertex3d',\
|
||||
glVertex3dv,'glVertex3dv',\
|
||||
glVertex3f,'glVertex3f',\
|
||||
glVertex3fv,'glVertex3fv',\
|
||||
glVertex3i,'glVertex3i',\
|
||||
glVertex3iv,'glVertex3iv',\
|
||||
glVertex3s,'glVertex3s',\
|
||||
glVertex3sv,'glVertex3sv',\
|
||||
glVertex4d,'glVertex4d',\
|
||||
glVertex4dv,'glVertex4dv',\
|
||||
glVertex4f,'glVertex4f',\
|
||||
glVertex4fv,'glVertex4fv',\
|
||||
glVertex4i,'glVertex4i',\
|
||||
glVertex4iv,'glVertex4iv',\
|
||||
glVertex4s,'glVertex4s',\
|
||||
glVertex4sv,'glVertex4sv',\
|
||||
glVertexPointer,'glVertexPointer',\
|
||||
glViewport,'glViewport',\
|
||||
wglGetProcAddress,'wglGetProcAddress',\
|
||||
wglCopyContext,'wglCopyContext',\
|
||||
wglCreateContext,'wglCreateContext',\
|
||||
wglCreateLayerContext,'wglCreateLayerContext',\
|
||||
wglDeleteContext,'wglDeleteContext',\
|
||||
wglDescribeLayerPlane,'wglDescribeLayerPlane',\
|
||||
wglGetCurrentContext,'wglGetCurrentContext',\
|
||||
wglGetCurrentDC,'wglGetCurrentDC',\
|
||||
wglGetLayerPaletteEntries,'wglGetLayerPaletteEntries',\
|
||||
wglMakeCurrent,'wglMakeCurrent',\
|
||||
wglRealizeLayerPalette,'wglRealizeLayerPalette',\
|
||||
wglSetLayerPaletteEntries,'wglSetLayerPaletteEntries',\
|
||||
wglShareLists,'wglShareLists',\
|
||||
wglSwapLayerBuffers,'wglSwapLayerBuffers',\
|
||||
wglSwapMultipleBuffers,'wglSwapMultipleBuffers',\
|
||||
wglUseFontBitmapsA,'wglUseFontBitmapsA',\
|
||||
wglUseFontOutlinesA,'wglUseFontOutlinesA',\
|
||||
wglUseFontBitmapsW,'wglUseFontBitmapsW',\
|
||||
wglUseFontOutlinesW,'wglUseFontOutlinesW',\
|
||||
glDrawRangeElements,'glDrawRangeElements',\
|
||||
glTexImage3D,'glTexImage3D',\
|
||||
glBlendColor,'glBlendColor',\
|
||||
glBlendEquation,'glBlendEquation',\
|
||||
glColorSubTable,'glColorSubTable',\
|
||||
glCopyColorSubTable,'glCopyColorSubTable',\
|
||||
glColorTable,'glColorTable',\
|
||||
glCopyColorTable,'glCopyColorTable',\
|
||||
glColorTableParameteriv,'glColorTableParameteriv',\
|
||||
glColorTableParameterfv,'glColorTableParameterfv',\
|
||||
glGetColorTable,'glGetColorTable',\
|
||||
glGetColorTableParameteriv,'glGetColorTableParameteriv',\
|
||||
glGetColorTableParameterfv,'glGetColorTableParameterfv',\
|
||||
glConvolutionFilter1D,'glConvolutionFilter1D',\
|
||||
glConvolutionFilter2D,'glConvolutionFilter2D',\
|
||||
glCopyConvolutionFilter1D,'glCopyConvolutionFilter1D',\
|
||||
glCopyConvolutionFilter2D,'glCopyConvolutionFilter2D',\
|
||||
glGetConvolutionFilter,'glGetConvolutionFilter',\
|
||||
glSeparableFilter2D,'glSeparableFilter2D',\
|
||||
glGetSeparableFilter,'glGetSeparableFilter',\
|
||||
glConvolutionParameteri,'glConvolutionParameteri',\
|
||||
glConvolutionParameteriv,'glConvolutionParameteriv',\
|
||||
glConvolutionParameterf,'glConvolutionParameterf',\
|
||||
glConvolutionParameterfv,'glConvolutionParameterfv',\
|
||||
glGetConvolutionParameteriv,'glGetConvolutionParameteriv',\
|
||||
glGetConvolutionParameterfv,'glGetConvolutionParameterfv',\
|
||||
glHistogram,'glHistogram',\
|
||||
glResetHistogram,'glResetHistogram',\
|
||||
glGetHistogram,'glGetHistogram',\
|
||||
glGetHistogramParameteriv,'glGetHistogramParameteriv',\
|
||||
glGetHistogramParameterfv,'glGetHistogramParameterfv',\
|
||||
glMinmax,'glMinmax',\
|
||||
glResetMinmax,'glResetMinmax',\
|
||||
glGetMinmax,'glGetMinmax',\
|
||||
glGetMinmaxParameteriv,'glGetMinmaxParameteriv',\
|
||||
glGetMinmaxParameterfv,'glGetMinmaxParameterfv'
|
||||
|
||||
import glu,\
|
||||
gluBeginCurve,'gluBeginCurve',\
|
||||
gluBeginPolygon,'gluBeginPolygon',\
|
||||
gluBeginSurface,'gluBeginSurface',\
|
||||
gluBeginTrim,'gluBeginTrim',\
|
||||
gluBuild1DMipmaps,'gluBuild1DMipmaps',\
|
||||
gluBuild2DMipmaps,'gluBuild2DMipmaps',\
|
||||
gluCylinder,'gluCylinder',\
|
||||
gluDeleteNurbsRenderer,'gluDeleteNurbsRenderer',\
|
||||
gluDeleteQuadric,'gluDeleteQuadric',\
|
||||
gluDeleteTess,'gluDeleteTess',\
|
||||
gluDisk,'gluDisk',\
|
||||
gluEndCurve,'gluEndCurve',\
|
||||
gluEndPolygon,'gluEndPolygon',\
|
||||
gluEndSurface,'gluEndSurface',\
|
||||
gluEndTrim,'gluEndTrim',\
|
||||
gluErrorString,'gluErrorString',\
|
||||
gluGetNurbsProperty,'gluGetNurbsProperty',\
|
||||
gluGetString,'gluGetString',\
|
||||
gluGetTessProperty,'gluGetTessProperty',\
|
||||
gluLoadSamplingMatrices,'gluLoadSamplingMatrices',\
|
||||
gluLookAt,'gluLookAt',\
|
||||
gluNewNurbsRenderer,'gluNewNurbsRenderer',\
|
||||
gluNewQuadric,'gluNewQuadric',\
|
||||
gluNewTess,'gluNewTess',\
|
||||
gluNextContour,'gluNextContour',\
|
||||
gluNurbsCallback,'gluNurbsCallback',\
|
||||
gluNurbsCurve,'gluNurbsCurve',\
|
||||
gluNurbsProperty,'gluNurbsProperty',\
|
||||
gluNurbsSurface,'gluNurbsSurface',\
|
||||
gluOrtho2D,'gluOrtho2D',\
|
||||
gluPartialDisk,'gluPartialDisk',\
|
||||
gluPerspective,'gluPerspective',\
|
||||
gluPickMatrix,'gluPickMatrix',\
|
||||
gluProject,'gluProject',\
|
||||
gluPwlCurve,'gluPwlCurve',\
|
||||
gluQuadricCallback,'gluQuadricCallback',\
|
||||
gluQuadricDrawStyle,'gluQuadricDrawStyle',\
|
||||
gluQuadricNormals,'gluQuadricNormals',\
|
||||
gluQuadricOrientation,'gluQuadricOrientation',\
|
||||
gluQuadricTexture,'gluQuadricTexture',\
|
||||
gluScaleImage,'gluScaleImage',\
|
||||
gluSphere,'gluSphere',\
|
||||
gluTessBeginContour,'gluTessBeginContour',\
|
||||
gluTessBeginPolygon,'gluTessBeginPolygon',\
|
||||
gluTessCallback,'gluTessCallback',\
|
||||
gluTessEndContour,'gluTessEndContour',\
|
||||
gluTessEndPolygon,'gluTessEndPolygon',\
|
||||
gluTessNormal,'gluTessNormal',\
|
||||
gluTessProperty,'gluTessProperty',\
|
||||
gluTessVertex,'gluTessVertex',\
|
||||
gluUnProject,'gluUnProject'
|
||||
2337
toolchain/fasmw17332/EXAMPLES/OPENGL/OPENGL.INC
Normal file
2337
toolchain/fasmw17332/EXAMPLES/OPENGL/OPENGL.INC
Normal file
File diff suppressed because it is too large
Load Diff
46
toolchain/fasmw17332/EXAMPLES/PEDEMO/PEDEMO.ASM
Normal file
46
toolchain/fasmw17332/EXAMPLES/PEDEMO/PEDEMO.ASM
Normal file
@@ -0,0 +1,46 @@
|
||||
|
||||
; Example of making 32-bit PE program as raw code and data
|
||||
|
||||
format PE GUI
|
||||
entry start
|
||||
|
||||
section '.text' code readable executable
|
||||
|
||||
start:
|
||||
|
||||
push 0
|
||||
push _caption
|
||||
push _message
|
||||
push 0
|
||||
call [MessageBoxA]
|
||||
|
||||
push 0
|
||||
call [ExitProcess]
|
||||
|
||||
section '.data' data readable writeable
|
||||
|
||||
_caption db 'Win32 assembly program',0
|
||||
_message db 'Hello World!',0
|
||||
|
||||
section '.idata' import data readable writeable
|
||||
|
||||
dd 0,0,0,RVA kernel_name,RVA kernel_table
|
||||
dd 0,0,0,RVA user_name,RVA user_table
|
||||
dd 0,0,0,0,0
|
||||
|
||||
kernel_table:
|
||||
ExitProcess dd RVA _ExitProcess
|
||||
dd 0
|
||||
user_table:
|
||||
MessageBoxA dd RVA _MessageBoxA
|
||||
dd 0
|
||||
|
||||
kernel_name db 'KERNEL32.DLL',0
|
||||
user_name db 'USER32.DLL',0
|
||||
|
||||
_ExitProcess dw 0
|
||||
db 'ExitProcess',0
|
||||
_MessageBoxA dw 0
|
||||
db 'MessageBoxA',0
|
||||
|
||||
section '.reloc' fixups data readable discardable ; needed for Win32s
|
||||
71
toolchain/fasmw17332/EXAMPLES/TEMPLATE/TEMPLATE.ASM
Normal file
71
toolchain/fasmw17332/EXAMPLES/TEMPLATE/TEMPLATE.ASM
Normal file
@@ -0,0 +1,71 @@
|
||||
|
||||
; Template for program using standard Win32 headers
|
||||
|
||||
format PE GUI 4.0
|
||||
entry start
|
||||
|
||||
include 'win32w.inc'
|
||||
|
||||
section '.text' code readable executable
|
||||
|
||||
start:
|
||||
|
||||
invoke GetModuleHandle,0
|
||||
mov [wc.hInstance],eax
|
||||
invoke LoadIcon,0,IDI_APPLICATION
|
||||
mov [wc.hIcon],eax
|
||||
invoke LoadCursor,0,IDC_ARROW
|
||||
mov [wc.hCursor],eax
|
||||
invoke RegisterClass,wc
|
||||
test eax,eax
|
||||
jz error
|
||||
|
||||
invoke CreateWindowEx,0,_class,_title,WS_VISIBLE+WS_DLGFRAME+WS_SYSMENU,128,128,256,192,NULL,NULL,[wc.hInstance],NULL
|
||||
test eax,eax
|
||||
jz error
|
||||
|
||||
msg_loop:
|
||||
invoke GetMessage,msg,NULL,0,0
|
||||
cmp eax,1
|
||||
jb end_loop
|
||||
jne msg_loop
|
||||
invoke TranslateMessage,msg
|
||||
invoke DispatchMessage,msg
|
||||
jmp msg_loop
|
||||
|
||||
error:
|
||||
invoke MessageBox,NULL,_error,NULL,MB_ICONERROR+MB_OK
|
||||
|
||||
end_loop:
|
||||
invoke ExitProcess,[msg.wParam]
|
||||
|
||||
proc WindowProc uses ebx esi edi, hwnd,wmsg,wparam,lparam
|
||||
cmp [wmsg],WM_DESTROY
|
||||
je .wmdestroy
|
||||
.defwndproc:
|
||||
invoke DefWindowProc,[hwnd],[wmsg],[wparam],[lparam]
|
||||
jmp .finish
|
||||
.wmdestroy:
|
||||
invoke PostQuitMessage,0
|
||||
xor eax,eax
|
||||
.finish:
|
||||
ret
|
||||
endp
|
||||
|
||||
section '.data' data readable writeable
|
||||
|
||||
_class TCHAR 'FASMWIN32',0
|
||||
_title TCHAR 'Win32 program template',0
|
||||
_error TCHAR 'Startup failed.',0
|
||||
|
||||
wc WNDCLASS 0,WindowProc,0,0,NULL,NULL,NULL,COLOR_BTNFACE+1,NULL,_class
|
||||
|
||||
msg MSG
|
||||
|
||||
section '.idata' import data readable writeable
|
||||
|
||||
library kernel32,'KERNEL32.DLL',\
|
||||
user32,'USER32.DLL'
|
||||
|
||||
include 'api\kernel32.inc'
|
||||
include 'api\user32.inc'
|
||||
142
toolchain/fasmw17332/EXAMPLES/USECOM/USECOM.ASM
Normal file
142
toolchain/fasmw17332/EXAMPLES/USECOM/USECOM.ASM
Normal file
@@ -0,0 +1,142 @@
|
||||
|
||||
; Component Object Model usage demonstration
|
||||
|
||||
format PE GUI 4.0
|
||||
entry start
|
||||
|
||||
include 'win32a.inc'
|
||||
|
||||
struc GUID def
|
||||
{
|
||||
match d1-d2-d3-d4-d5, def
|
||||
\{
|
||||
.Data1 dd 0x\#d1
|
||||
.Data2 dw 0x\#d2
|
||||
.Data3 dw 0x\#d3
|
||||
.Data4 db 0x\#d4 shr 8,0x\#d4 and 0FFh
|
||||
.Data5 db 0x\#d5 shr 40,0x\#d5 shr 32 and 0FFh,0x\#d5 shr 24 and 0FFh,0x\#d5 shr 16 and 0FFh,0x\#d5 shr 8 and 0FFh,0x\#d5 and 0FFh
|
||||
\}
|
||||
}
|
||||
|
||||
interface ITaskBarList,\
|
||||
QueryInterface,\
|
||||
AddRef,\
|
||||
Release,\
|
||||
HrInit,\
|
||||
AddTab,\
|
||||
DeleteTab,\
|
||||
ActivateTab,\
|
||||
SetActiveAlt
|
||||
|
||||
CLSCTX_INPROC_SERVER = 0x1
|
||||
CLSCTX_INPROC_HANDLER = 0x2
|
||||
CLSCTX_LOCAL_SERVER = 0x4
|
||||
CLSCTX_INPROC_SERVER16 = 0x8
|
||||
CLSCTX_REMOTE_SERVER = 0x10
|
||||
CLSCTX_INPROC_HANDLER16 = 0x20
|
||||
CLSCTX_INPROC_SERVERX86 = 0x40
|
||||
CLSCTX_INPROC_HANDLERX86 = 0x80
|
||||
CLSCTX_ESERVER_HANDLER = 0x100
|
||||
CLSCTX_NO_CODE_DOWNLOAD = 0x400
|
||||
CLSCTX_NO_CUSTOM_MARSHAL = 0x1000
|
||||
CLSCTX_ENABLE_CODE_DOWNLOAD = 0x2000
|
||||
CLSCTX_NO_FAILURE_LOG = 0x4000
|
||||
CLSCTX_DISABLE_AAA = 0x8000
|
||||
CLSCTX_ENABLE_AAA = 0x10000
|
||||
CLSCTX_FROM_DEFAULT_CONTEXT = 0x20000
|
||||
|
||||
ID_EXIT = IDCANCEL
|
||||
ID_SHOW = 100
|
||||
ID_HIDE = 101
|
||||
|
||||
IDD_COMDEMO = 1
|
||||
|
||||
section '.text' code readable executable
|
||||
|
||||
start:
|
||||
|
||||
invoke CoInitialize,NULL
|
||||
invoke CoCreateInstance,CLSID_TaskbarList,NULL,CLSCTX_INPROC_SERVER,IID_ITaskbarList,ShellTaskBar
|
||||
|
||||
invoke GetModuleHandle,0
|
||||
invoke DialogBoxParam,eax,IDD_COMDEMO,HWND_DESKTOP,COMDemo,0
|
||||
|
||||
cominvk ShellTaskBar,Release
|
||||
|
||||
invoke ExitProcess,0
|
||||
|
||||
proc COMDemo hwnd,msg,wparam,lparam
|
||||
push ebx esi edi
|
||||
cmp [msg],WM_INITDIALOG
|
||||
je .wminitdialog
|
||||
cmp [msg],WM_COMMAND
|
||||
je .wmcommand
|
||||
cmp [msg],WM_CLOSE
|
||||
je .wmclose
|
||||
xor eax,eax
|
||||
jmp .finish
|
||||
.wminitdialog:
|
||||
jmp .processed
|
||||
.wmcommand:
|
||||
cmp [wparam],BN_CLICKED shl 16 + ID_EXIT
|
||||
je .wmclose
|
||||
cmp [wparam],BN_CLICKED shl 16 + ID_SHOW
|
||||
je .show
|
||||
cmp [wparam],BN_CLICKED shl 16 + ID_HIDE
|
||||
jne .processed
|
||||
.hide:
|
||||
cominvk ShellTaskBar,HrInit
|
||||
cominvk ShellTaskBar,DeleteTab,[hwnd]
|
||||
jmp .processed
|
||||
.show:
|
||||
mov ebx,[ShellTaskBar]
|
||||
comcall ebx,ITaskBarList,HrInit
|
||||
comcall ebx,ITaskBarList,AddTab,[hwnd]
|
||||
comcall ebx,ITaskBarList,ActivateTab,[hwnd]
|
||||
jmp .processed
|
||||
.wmclose:
|
||||
invoke EndDialog,[hwnd],0
|
||||
.processed:
|
||||
mov eax,1
|
||||
.finish:
|
||||
pop edi esi ebx
|
||||
ret
|
||||
endp
|
||||
|
||||
section '.data' data readable writeable
|
||||
|
||||
CLSID_TaskbarList GUID 56FDF344-FD6D-11D0-958A-006097C9A090
|
||||
IID_ITaskbarList GUID 56FDF342-FD6D-11D0-958A-006097C9A090
|
||||
|
||||
ShellTaskBar ITaskBarList
|
||||
|
||||
section '.idata' import data readable
|
||||
|
||||
library kernel,'KERNEL32.DLL',\
|
||||
user,'USER32.DLL',\
|
||||
ole,'OLE32.DLL'
|
||||
|
||||
import kernel,\
|
||||
GetModuleHandle,'GetModuleHandleA',\
|
||||
ExitProcess,'ExitProcess'
|
||||
|
||||
import user,\
|
||||
DialogBoxParam,'DialogBoxParamA',\
|
||||
EndDialog,'EndDialog'
|
||||
|
||||
import ole,\
|
||||
CoInitialize,'CoInitialize',\
|
||||
CoCreateInstance,'CoCreateInstance'
|
||||
|
||||
section '.rsrc' resource data readable
|
||||
|
||||
directory RT_DIALOG,dialogs
|
||||
|
||||
resource dialogs,\
|
||||
IDD_COMDEMO,LANG_ENGLISH+SUBLANG_DEFAULT,comdemo
|
||||
|
||||
dialog comdemo,'Taskbar item control',70,70,170,24,WS_CAPTION+WS_POPUP+WS_SYSMENU+DS_MODALFRAME
|
||||
dialogitem 'BUTTON','Show',ID_SHOW,4,4,45,15,WS_VISIBLE+WS_TABSTOP
|
||||
dialogitem 'BUTTON','Hide',ID_HIDE,54,4,45,15,WS_VISIBLE+WS_TABSTOP
|
||||
dialogitem 'BUTTON','Exit',ID_EXIT,120,4,45,15,WS_VISIBLE+WS_TABSTOP
|
||||
enddialog
|
||||
27
toolchain/fasmw17332/EXAMPLES/WIN64/DLL/MSGDEMO.ASM
Normal file
27
toolchain/fasmw17332/EXAMPLES/WIN64/DLL/MSGDEMO.ASM
Normal file
@@ -0,0 +1,27 @@
|
||||
format PE64 console
|
||||
entry start
|
||||
|
||||
include 'win64a.inc'
|
||||
|
||||
section '.text' code readable executable
|
||||
|
||||
start:
|
||||
sub rsp,8
|
||||
|
||||
invoke WriteMessage,message
|
||||
|
||||
invoke ExitProcess,0
|
||||
|
||||
section '.data' data readable
|
||||
|
||||
message db "Hi! I'm the example program!",0
|
||||
|
||||
section '.idata' import data readable writeable
|
||||
|
||||
library kernel32,'KERNEL32.DLL',\
|
||||
writemsg,'WRITEMSG.DLL'
|
||||
|
||||
include 'api/kernel32.inc'
|
||||
|
||||
import writemsg,\
|
||||
WriteMessage,'WriteMessage'
|
||||
47
toolchain/fasmw17332/EXAMPLES/WIN64/DLL/WRITEMSG.ASM
Normal file
47
toolchain/fasmw17332/EXAMPLES/WIN64/DLL/WRITEMSG.ASM
Normal file
@@ -0,0 +1,47 @@
|
||||
format PE64 console DLL
|
||||
entry DllEntryPoint
|
||||
|
||||
include 'win64a.inc'
|
||||
|
||||
section '.text' code readable executable
|
||||
|
||||
proc DllEntryPoint hinstDLL,fdwReason,lpvReserved
|
||||
mov eax,TRUE
|
||||
ret
|
||||
endp
|
||||
|
||||
proc WriteMessage uses rbx rsi rdi, message
|
||||
mov rdi,rcx ; first parameter passed in RCX
|
||||
invoke GetStdHandle,STD_OUTPUT_HANDLE
|
||||
mov rbx,rax
|
||||
xor al,al
|
||||
or rcx,-1
|
||||
repne scasb
|
||||
dec rdi
|
||||
mov r8,-2
|
||||
sub r8,rcx
|
||||
sub rdi,r8
|
||||
invoke WriteFile,rbx,rdi,r8,bytes_count,0
|
||||
ret
|
||||
endp
|
||||
|
||||
section '.bss' data readable writeable
|
||||
|
||||
bytes_count dd ?
|
||||
|
||||
section '.edata' export data readable
|
||||
|
||||
export 'WRITEMSG.DLL',\
|
||||
WriteMessage,'WriteMessage'
|
||||
|
||||
section '.reloc' fixups data readable discardable
|
||||
|
||||
if $=$$
|
||||
dd 0,8 ; if there are no fixups, generate dummy entry
|
||||
end if
|
||||
|
||||
section '.idata' import data readable writeable
|
||||
|
||||
library kernel32,'KERNEL32.DLL'
|
||||
|
||||
include 'api/kernel32.inc'
|
||||
425
toolchain/fasmw17332/EXAMPLES/WIN64/MANDEL/DDRAW64.INC
Normal file
425
toolchain/fasmw17332/EXAMPLES/WIN64/MANDEL/DDRAW64.INC
Normal file
@@ -0,0 +1,425 @@
|
||||
|
||||
; DirectDraw interface
|
||||
|
||||
interface DirectDraw,\
|
||||
QueryInterface,\
|
||||
AddRef,\
|
||||
Release,\
|
||||
Compact,\
|
||||
CreateClipper,\
|
||||
CreatePalette,\
|
||||
CreateSurface,\
|
||||
DuplicateSurface,\
|
||||
EnumDisplayModes,\
|
||||
EnumSurfaces,\
|
||||
FlipToGDISurface,\
|
||||
GetCaps,\
|
||||
GetDisplayMode,\
|
||||
GetFourCCCodes,\
|
||||
GetGDISurface,\
|
||||
GetMonitorFrequency,\
|
||||
GetScanLine,\
|
||||
GetVerticalBlankStatus,\
|
||||
Initialize,\
|
||||
RestoreDisplayMode,\
|
||||
SetCooperativeLevel,\
|
||||
SetDisplayMode,\
|
||||
WaitForVerticalBlank,\
|
||||
GetAvailableVidMem,\
|
||||
GetSurfaceFromDC,\
|
||||
RestoreAllSurfaces,\
|
||||
TestCooperativeLevel,\
|
||||
GetDeviceIdentifier,\
|
||||
StartModeTest,\
|
||||
EvaluateMode
|
||||
|
||||
interface DirectDrawSurface,\
|
||||
QueryInterface,\
|
||||
AddRef,\
|
||||
Release,\
|
||||
AddAttachedSurface,\
|
||||
AddOverlayDirtyRect,\
|
||||
Blt,\
|
||||
BltBatch,\
|
||||
BltFast,\
|
||||
DeleteAttachedSurface,\
|
||||
EnumAttachedSurfaces,\
|
||||
EnumOverlayZOrders,\
|
||||
Flip,\
|
||||
GetAttachedSurface,\
|
||||
GetBltStatus,\
|
||||
GetCaps,\
|
||||
GetClipper,\
|
||||
GetColorKey,\
|
||||
GetDC,\
|
||||
GetFlipStatus,\
|
||||
GetOverlayPosition,\
|
||||
GetPalette,\
|
||||
GetPixelFormat,\
|
||||
GetSurfaceDesc,\
|
||||
Initialize,\
|
||||
IsLost,\
|
||||
Lock,\
|
||||
ReleaseDC,\
|
||||
Restore,\
|
||||
SetClipper,\
|
||||
SetColorKey,\
|
||||
SetOverlayPosition,\
|
||||
SetPalette,\
|
||||
Unlock,\
|
||||
UpdateOverlay,\
|
||||
UpdateOverlayDisplay,\
|
||||
UpdateOverlayZOrder,\
|
||||
GetDDInterface,\
|
||||
PageLock,\
|
||||
PageUnlock,\
|
||||
SetSurfaceDesc,\
|
||||
SetPrivateData,\
|
||||
GetPrivateData,\
|
||||
FreePrivateData,\
|
||||
GetUniquenessValue,\
|
||||
ChangeUniquenessValue,\
|
||||
SetPriority,\
|
||||
GetPriority,\
|
||||
SetLOD,\
|
||||
GetLOD
|
||||
|
||||
interface DirectDrawPalette,\
|
||||
QueryInterface,\
|
||||
AddRef,\
|
||||
Release,\
|
||||
GetCaps,\
|
||||
GetEntries,\
|
||||
Initialize,\
|
||||
SetEntries
|
||||
|
||||
interface DirectDrawClipper,\
|
||||
QueryInterface,\
|
||||
AddRef,\
|
||||
Release,\
|
||||
GetClipList,\
|
||||
GetHWnd,\
|
||||
Initialize,\
|
||||
IsClipListChanged,\
|
||||
SetClipList,\
|
||||
SetHWnd
|
||||
|
||||
interface DirectDrawColorControl,\
|
||||
QueryInterface,\
|
||||
AddRef,\
|
||||
Release,\
|
||||
GetColorControls,\
|
||||
SetColorControls
|
||||
|
||||
interface DirectDrawGammaControl,\
|
||||
QueryInterface,\
|
||||
AddRef,\
|
||||
Release,\
|
||||
GetGammaRamp,\
|
||||
SetGammaRamp
|
||||
|
||||
struct DDCOLORKEY
|
||||
dwColorSpaceLowValue dd ?
|
||||
dwColorSpaceHighValue dd ?
|
||||
ends
|
||||
|
||||
struct DDPIXELFORMAT
|
||||
dwSize dd ?
|
||||
dwFlags dd ?
|
||||
dwFourCC dd ?
|
||||
union
|
||||
dwRGBBitCount dd ?
|
||||
dwYUVBitCount dd ?
|
||||
dwZBufferBitDepth dd ?
|
||||
dwAlphaBitDepth dd ?
|
||||
dwLuminanceBitCount dd ?
|
||||
dwBumpBitCount dd ?
|
||||
ends
|
||||
union
|
||||
dwRBitMask dd ?
|
||||
dwYBitMask dd ?
|
||||
dwStencilBitDepth dd ?
|
||||
dwLuminanceBitMask dd ?
|
||||
dwBumpDuBitMask dd ?
|
||||
ends
|
||||
union
|
||||
dwGBitMask dd ?
|
||||
dwUBitMask dd ?
|
||||
dwZBitMask dd ?
|
||||
dwBumpDvBitMask dd ?
|
||||
ends
|
||||
union
|
||||
dwBBitMask dd ?
|
||||
dwVBitMask dd ?
|
||||
dwStencilBitMask dd ?
|
||||
dwBumpLuminanceBitMask dd ?
|
||||
ends
|
||||
union
|
||||
dwRGBAlphaBitMask dd ?
|
||||
dwYUVAlphaBitMask dd ?
|
||||
dwLuminanceAlphaBitMask dd ?
|
||||
dwRGBZBitMask dd ?
|
||||
dwYUVZBitMask dd ?
|
||||
ends
|
||||
ends
|
||||
|
||||
struct DDSCAPS
|
||||
dwCaps dd ?
|
||||
ends
|
||||
|
||||
struct DDSURFACEDESC
|
||||
dwSize dd ?
|
||||
dwFlags dd ?
|
||||
dwHeight dd ?
|
||||
dwWidth dd ?
|
||||
union
|
||||
lPitch dd ?
|
||||
dwLinearSize dd ?
|
||||
ends
|
||||
dwBackBufferCount dd ?
|
||||
union
|
||||
dwMipMapCount dd ?
|
||||
dwZBufferBitDepth dd ?
|
||||
dwRefreshRate dd ?
|
||||
ends
|
||||
dwAlphaBitDepth dd ?
|
||||
dwReserved dd ?,?
|
||||
lpSurface dq ?
|
||||
ddckCKDestOverlay DDCOLORKEY
|
||||
ddckCKDestBlt DDCOLORKEY
|
||||
ddckCKSrcOverlay DDCOLORKEY
|
||||
ddckCKSrcBlt DDCOLORKEY
|
||||
ddpfPixelFormat DDPIXELFORMAT
|
||||
ddsCaps DDSCAPS
|
||||
dd ?
|
||||
ends
|
||||
|
||||
; SetCooperativeLevel flags
|
||||
|
||||
DDSCL_FULLSCREEN = 000000001h
|
||||
DDSCL_ALLOWREBOOT = 000000002h
|
||||
DDSCL_NOWINDOWCHANGES = 000000004h
|
||||
DDSCL_NORMAL = 000000008h
|
||||
DDSCL_EXCLUSIVE = 000000010h
|
||||
DDSCL_ALLOWMODEX = 000000040h
|
||||
|
||||
; Blt flags
|
||||
|
||||
DDBLT_ALPHADEST = 000000001h
|
||||
DDBLT_ALPHADESTCONSTOVERRIDE = 000000002h
|
||||
DDBLT_ALPHADESTNEG = 000000004h
|
||||
DDBLT_ALPHADESTSURFACEOVERRIDE = 000000008h
|
||||
DDBLT_ALPHAEDGEBLEND = 000000010h
|
||||
DDBLT_ALPHASRC = 000000020h
|
||||
DDBLT_ALPHASRCCONSTOVERRIDE = 000000040h
|
||||
DDBLT_ALPHASRCNEG = 000000080h
|
||||
DDBLT_ALPHASRCSURFACEOVERRIDE = 000000100h
|
||||
DDBLT_ASYNC = 000000200h
|
||||
DDBLT_COLORFILL = 000000400h
|
||||
DDBLT_DDFX = 000000800h
|
||||
DDBLT_DDROPS = 000001000h
|
||||
DDBLT_KEYDEST = 000002000h
|
||||
DDBLT_KEYDESTOVERRIDE = 000004000h
|
||||
DDBLT_KEYSRC = 000008000h
|
||||
DDBLT_KEYSRCOVERRIDE = 000010000h
|
||||
DDBLT_ROP = 000020000h
|
||||
DDBLT_ROTATIONANGLE = 000040000h
|
||||
DDBLT_ZBUFFER = 000080000h
|
||||
DDBLT_ZBUFFERDESTCONSTOVERRIDE = 000100000h
|
||||
DDBLT_ZBUFFERDESTOVERRIDE = 000200000h
|
||||
DDBLT_ZBUFFERSRCCONSTOVERRIDE = 000400000h
|
||||
DDBLT_ZBUFFERSRCOVERRIDE = 000800000h
|
||||
DDBLT_WAIT = 001000000h
|
||||
DDBLT_DEPTHFILL = 002000000h
|
||||
|
||||
; BltFast flags
|
||||
|
||||
DDBLTFAST_NOCOLORKEY = 000000000h
|
||||
DDBLTFAST_SRCCOLORKEY = 000000001h
|
||||
DDBLTFAST_DESTCOLORKEY = 000000002h
|
||||
DDBLTFAST_WAIT = 000000010h
|
||||
|
||||
; Flip flags
|
||||
|
||||
DDFLIP_WAIT = 000000001h
|
||||
DDFLIP_EVEN = 000000002h
|
||||
DDFLIP_ODD = 000000004h
|
||||
|
||||
; DDSURFACEDESC field flags
|
||||
|
||||
DDSD_CAPS = 000000001h
|
||||
DDSD_HEIGHT = 000000002h
|
||||
DDSD_WIDTH = 000000004h
|
||||
DDSD_PITCH = 000000008h
|
||||
DDSD_BACKBUFFERCOUNT = 000000020h
|
||||
DDSD_ZBUFFERBITDEPTH = 000000040h
|
||||
DDSD_ALPHABITDEPTH = 000000080h
|
||||
DDSD_LPSURFACE = 000000800h
|
||||
DDSD_PIXELFORMAT = 000001000h
|
||||
DDSD_CKDESTOVERLAY = 000002000h
|
||||
DDSD_CKDESTBLT = 000004000h
|
||||
DDSD_CKSRCOVERLAY = 000008000h
|
||||
DDSD_CKSRCBLT = 000010000h
|
||||
DDSD_MIPMAPCOUNT = 000020000h
|
||||
DDSD_REFRESHRATE = 000040000h
|
||||
DDSD_LINEARSIZE = 000080000h
|
||||
DDSD_ALL = 0000FF9EEh
|
||||
|
||||
; DirectDrawSurface capability flags
|
||||
|
||||
DDSCAPS_RESERVED1 = 000000001h
|
||||
DDSCAPS_ALPHA = 000000002h
|
||||
DDSCAPS_BACKBUFFER = 000000004h
|
||||
DDSCAPS_COMPLEX = 000000008h
|
||||
DDSCAPS_FLIP = 000000010h
|
||||
DDSCAPS_FRONTBUFFER = 000000020h
|
||||
DDSCAPS_OFFSCREENPLAIN = 000000040h
|
||||
DDSCAPS_OVERLAY = 000000080h
|
||||
DDSCAPS_PALETTE = 000000100h
|
||||
DDSCAPS_PRIMARYSURFACE = 000000200h
|
||||
DDSCAPS_PRIMARYSURFACELEFT = 000000400h
|
||||
DDSCAPS_SYSTEMMEMORY = 000000800h
|
||||
DDSCAPS_TEXTURE = 000001000h
|
||||
DDSCAPS_3DDEVICE = 000002000h
|
||||
DDSCAPS_VIDEOMEMORY = 000004000h
|
||||
DDSCAPS_VISIBLE = 000008000h
|
||||
DDSCAPS_WRITEONLY = 000010000h
|
||||
DDSCAPS_ZBUFFER = 000020000h
|
||||
DDSCAPS_OWNDC = 000040000h
|
||||
DDSCAPS_LIVEVIDEO = 000080000h
|
||||
DDSCAPS_HWCODEC = 000100000h
|
||||
DDSCAPS_MODEX = 000200000h
|
||||
DDSCAPS_MIPMAP = 000400000h
|
||||
DDSCAPS_RESERVED2 = 000800000h
|
||||
DDSCAPS_ALLOCONLOAD = 004000000h
|
||||
DDSCAPS_VIDEOPORT = 008000000h
|
||||
DDSCAPS_LOCALVIDMEM = 010000000h
|
||||
DDSCAPS_NONLOCALVIDMEM = 020000000h
|
||||
DDSCAPS_STANDARDVGAMODE = 040000000h
|
||||
DDSCAPS_OPTIMIZED = 080000000h
|
||||
|
||||
; DirectDrawSurface lock flags
|
||||
|
||||
DDLOCK_SURFACEMEMORYPTR = 000000000h
|
||||
DDLOCK_WAIT = 000000001h
|
||||
DDLOCK_EVENT = 000000002h
|
||||
DDLOCK_READONLY = 000000010h
|
||||
DDLOCK_WRITEONLY = 000000020h
|
||||
DDLOCK_NOSYSLOCK = 000000800h
|
||||
|
||||
; DirectDrawPalette capabilities
|
||||
|
||||
DDPCAPS_4BIT = 000000001h
|
||||
DDPCAPS_8BITENTRIES = 000000002h
|
||||
DDPCAPS_8BIT = 000000004h
|
||||
DDPCAPS_INITIALIZE = 000000008h
|
||||
DDPCAPS_PRIMARYSURFACE = 000000010h
|
||||
DDPCAPS_PRIMARYSURFACELEFT = 000000020h
|
||||
DDPCAPS_ALLOW256 = 000000040h
|
||||
DDPCAPS_VSYNC = 000000080h
|
||||
DDPCAPS_1BIT = 000000100h
|
||||
DDPCAPS_2BIT = 000000200h
|
||||
|
||||
; DirectDraw errors
|
||||
|
||||
DDERR_ALREADYINITIALIZED = 088760000h+5
|
||||
DDERR_CANNOTATTACHSURFACE = 088760000h+10
|
||||
DDERR_CANNOTDETACHSURFACE = 088760000h+20
|
||||
DDERR_CURRENTLYNOTAVAIL = 088760000h+40
|
||||
DDERR_EXCEPTION = 088760000h+55
|
||||
DDERR_HEIGHTALIGN = 088760000h+90
|
||||
DDERR_INCOMPATIBLEPRIMARY = 088760000h+95
|
||||
DDERR_INVALIDCAPS = 088760000h+100
|
||||
DDERR_INVALIDCLIPLIST = 088760000h+110
|
||||
DDERR_INVALIDMODE = 088760000h+120
|
||||
DDERR_INVALIDOBJECT = 088760000h+130
|
||||
DDERR_INVALIDPIXELFORMAT = 088760000h+145
|
||||
DDERR_INVALIDRECT = 088760000h+150
|
||||
DDERR_LOCKEDSURFACES = 088760000h+160
|
||||
DDERR_NO3D = 088760000h+170
|
||||
DDERR_NOALPHAHW = 088760000h+180
|
||||
DDERR_NOCLIPLIST = 088760000h+205
|
||||
DDERR_NOCOLORCONVHW = 088760000h+210
|
||||
DDERR_NOCOOPERATIVELEVELSET = 088760000h+212
|
||||
DDERR_NOCOLORKEY = 088760000h+215
|
||||
DDERR_NOCOLORKEYHW = 088760000h+220
|
||||
DDERR_NODIRECTDRAWSUPPORT = 088760000h+222
|
||||
DDERR_NOEXCLUSIVEMODE = 088760000h+225
|
||||
DDERR_NOFLIPHW = 088760000h+230
|
||||
DDERR_NOGDI = 088760000h+240
|
||||
DDERR_NOMIRRORHW = 088760000h+250
|
||||
DDERR_NOTFOUND = 088760000h+255
|
||||
DDERR_NOOVERLAYHW = 088760000h+260
|
||||
DDERR_NORASTEROPHW = 088760000h+280
|
||||
DDERR_NOROTATIONHW = 088760000h+290
|
||||
DDERR_NOSTRETCHHW = 088760000h+310
|
||||
DDERR_NOT4BITCOLOR = 088760000h+316
|
||||
DDERR_NOT4BITCOLORINDEX = 088760000h+317
|
||||
DDERR_NOT8BITCOLOR = 088760000h+320
|
||||
DDERR_NOTEXTUREHW = 088760000h+330
|
||||
DDERR_NOVSYNCHW = 088760000h+335
|
||||
DDERR_NOZBUFFERHW = 088760000h+340
|
||||
DDERR_NOZOVERLAYHW = 088760000h+350
|
||||
DDERR_OUTOFCAPS = 088760000h+360
|
||||
DDERR_OUTOFVIDEOMEMORY = 088760000h+380
|
||||
DDERR_OVERLAYCANTCLIP = 088760000h+382
|
||||
DDERR_OVERLAYCOLORKEYONLYONEACTI = 088760000h+384
|
||||
DDERR_PALETTEBUSY = 088760000h+387
|
||||
DDERR_COLORKEYNOTSET = 088760000h+400
|
||||
DDERR_SURFACEALREADYATTACHED = 088760000h+410
|
||||
DDERR_SURFACEALREADYDEPENDENT = 088760000h+420
|
||||
DDERR_SURFACEBUSY = 088760000h+430
|
||||
DDERR_CANTLOCKSURFACE = 088760000h+435
|
||||
DDERR_SURFACEISOBSCURED = 088760000h+440
|
||||
DDERR_SURFACELOST = 088760000h+450
|
||||
DDERR_SURFACENOTATTACHED = 088760000h+460
|
||||
DDERR_TOOBIGHEIGHT = 088760000h+470
|
||||
DDERR_TOOBIGSIZE = 088760000h+480
|
||||
DDERR_TOOBIGWIDTH = 088760000h+490
|
||||
DDERR_UNSUPPORTEDFORMAT = 088760000h+510
|
||||
DDERR_UNSUPPORTEDMASK = 088760000h+520
|
||||
DDERR_VERTICALBLANKINPROGRESS = 088760000h+537
|
||||
DDERR_WASSTILLDRAWING = 088760000h+540
|
||||
DDERR_XALIGN = 088760000h+560
|
||||
DDERR_INVALIDDIRECTDRAWGUID = 088760000h+561
|
||||
DDERR_DIRECTDRAWALREADYCREATED = 088760000h+562
|
||||
DDERR_NODIRECTDRAWHW = 088760000h+563
|
||||
DDERR_PRIMARYSURFACEALREADYEXIST = 088760000h+564
|
||||
DDERR_NOEMULATION = 088760000h+565
|
||||
DDERR_REGIONTOOSMALL = 088760000h+566
|
||||
DDERR_CLIPPERISUSINGHWND = 088760000h+567
|
||||
DDERR_NOCLIPPERATTACHED = 088760000h+568
|
||||
DDERR_NOHWND = 088760000h+569
|
||||
DDERR_HWNDSUBCLASSED = 088760000h+570
|
||||
DDERR_HWNDALREADYSET = 088760000h+571
|
||||
DDERR_NOPALETTEATTACHED = 088760000h+572
|
||||
DDERR_NOPALETTEHW = 088760000h+573
|
||||
DDERR_BLTFASTCANTCLIP = 088760000h+574
|
||||
DDERR_NOBLTHW = 088760000h+575
|
||||
DDERR_NODDROPSHW = 088760000h+576
|
||||
DDERR_OVERLAYNOTVISIBLE = 088760000h+577
|
||||
DDERR_NOOVERLAYDEST = 088760000h+578
|
||||
DDERR_INVALIDPOSITION = 088760000h+579
|
||||
DDERR_NOTAOVERLAYSURFACE = 088760000h+580
|
||||
DDERR_EXCLUSIVEMODEALREADYSET = 088760000h+581
|
||||
DDERR_NOTFLIPPABLE = 088760000h+582
|
||||
DDERR_CANTDUPLICATE = 088760000h+583
|
||||
DDERR_NOTLOCKED = 088760000h+584
|
||||
DDERR_CANTCREATEDC = 088760000h+585
|
||||
DDERR_NODC = 088760000h+586
|
||||
DDERR_WRONGMODE = 088760000h+587
|
||||
DDERR_IMPLICITLYCREATED = 088760000h+588
|
||||
DDERR_NOTPALETTIZED = 088760000h+589
|
||||
DDERR_UNSUPPORTEDMODE = 088760000h+590
|
||||
DDERR_NOMIPMAPHW = 088760000h+591
|
||||
DDERR_INVALIDSURFACETYPE = 088760000h+592
|
||||
DDERR_NOOPTIMIZEHW = 088760000h+600
|
||||
DDERR_NOTLOADED = 088760000h+601
|
||||
DDERR_DCALREADYCREATED = 088760000h+620
|
||||
DDERR_NONONLOCALVIDMEM = 088760000h+630
|
||||
DDERR_CANTPAGELOCK = 088760000h+640
|
||||
DDERR_CANTPAGEUNLOCK = 088760000h+660
|
||||
DDERR_NOTPAGELOCKED = 088760000h+680
|
||||
DDERR_MOREDATA = 088760000h+690
|
||||
DDERR_VIDEONOTACTIVE = 088760000h+695
|
||||
DDERR_DEVICEDOESNTOWNSURFACE = 088760000h+699
|
||||
319
toolchain/fasmw17332/EXAMPLES/WIN64/MANDEL/MANDEL.ASM
Normal file
319
toolchain/fasmw17332/EXAMPLES/WIN64/MANDEL/MANDEL.ASM
Normal file
@@ -0,0 +1,319 @@
|
||||
|
||||
format PE64 GUI 5.0
|
||||
entry start
|
||||
|
||||
include 'win64a.inc'
|
||||
include 'ddraw64.inc'
|
||||
|
||||
section '.text' code readable executable
|
||||
|
||||
start:
|
||||
|
||||
sub rsp,8
|
||||
|
||||
and [DDraw],0
|
||||
and [DDSPrimary],0
|
||||
and [DDSBack],0
|
||||
|
||||
invoke GetModuleHandle,NULL
|
||||
mov [hinstance],rax
|
||||
mov [wc.hInstance],rax
|
||||
|
||||
invoke LoadIcon,NULL,IDI_APPLICATION
|
||||
mov [wc.hIcon],rax
|
||||
invoke LoadCursor,NULL,IDC_ARROW
|
||||
mov [wc.hCursor],rax
|
||||
invoke RegisterClassEx,wc
|
||||
test rax,rax
|
||||
jz startup_error
|
||||
|
||||
invoke CreateWindowEx,\
|
||||
0,_class,_title,WS_POPUP+WS_VISIBLE,0,0,0,0,NULL,NULL,[hinstance],NULL
|
||||
test rax,rax
|
||||
jz startup_error
|
||||
mov [hwnd],rax
|
||||
|
||||
invoke DirectDrawCreate,NULL,DDraw,NULL
|
||||
test rax,rax
|
||||
jnz ddraw_error
|
||||
|
||||
cominvk DDraw,SetCooperativeLevel,\
|
||||
[hwnd],DDSCL_EXCLUSIVE+DDSCL_FULLSCREEN
|
||||
test rax,rax
|
||||
jnz ddraw_error
|
||||
|
||||
cominvk DDraw,SetDisplayMode,\
|
||||
640,480,32
|
||||
test rax,rax
|
||||
jnz ddraw_error
|
||||
|
||||
mov [ddsd.dwSize],sizeof.DDSURFACEDESC
|
||||
mov [ddsd.dwFlags],DDSD_CAPS+DDSD_BACKBUFFERCOUNT
|
||||
mov [ddsd.ddsCaps.dwCaps],DDSCAPS_PRIMARYSURFACE+DDSCAPS_FLIP+DDSCAPS_COMPLEX
|
||||
mov [ddsd.dwBackBufferCount],1
|
||||
cominvk DDraw,CreateSurface,\
|
||||
ddsd,DDSPrimary,NULL
|
||||
or eax,eax
|
||||
jnz ddraw_error
|
||||
|
||||
mov [ddscaps.dwCaps],DDSCAPS_BACKBUFFER
|
||||
cominvk DDSPrimary,GetAttachedSurface,\
|
||||
ddscaps,DDSBack
|
||||
or eax,eax
|
||||
jnz ddraw_error
|
||||
|
||||
refresh:
|
||||
|
||||
cominvk DDSPrimary,IsLost
|
||||
test rax,rax
|
||||
jz paint
|
||||
cmp eax,DDERR_SURFACELOST
|
||||
jne end_loop
|
||||
cominvk DDSPrimary,Restore
|
||||
|
||||
paint:
|
||||
mov [ddsd.dwSize],sizeof.DDSURFACEDESC
|
||||
mov [ddsd.dwFlags],0
|
||||
cominvk DDSBack,Lock,NULL,ddsd,DDLOCK_SURFACEMEMORYPTR+DDLOCK_WAIT,NULL
|
||||
test rax,rax
|
||||
jnz main_loop
|
||||
mov rdi,[ddsd.lpSurface]
|
||||
mov r10d,[ddsd.lPitch]
|
||||
xor edx,edx
|
||||
movsd xmm8,[y_top]
|
||||
screen:
|
||||
xor ebx,ebx
|
||||
movsd xmm7,[x_left]
|
||||
unpcklpd xmm7,xmm8
|
||||
row:
|
||||
mov rcx,255
|
||||
xorpd xmm1,xmm1
|
||||
iterate:
|
||||
|
||||
movapd xmm3,xmm1
|
||||
unpckhpd xmm3,xmm3
|
||||
mulsd xmm3,xmm1
|
||||
addsd xmm3,xmm3
|
||||
|
||||
mulpd xmm1,xmm1
|
||||
movapd xmm2,xmm1 ; for SSE3-capable processor
|
||||
unpckhpd xmm2,xmm2 ; these three instructions can be
|
||||
subsd xmm1,xmm2 ; replaced with HSUBPD XMM1,XMM1
|
||||
unpcklpd xmm1,xmm3
|
||||
addpd xmm1,xmm7
|
||||
|
||||
movapd xmm0,xmm1
|
||||
mulpd xmm0,xmm0
|
||||
movapd xmm2,xmm0 ; for SSE3-capable processor
|
||||
shufpd xmm2,xmm2,1 ; these three instructions can be
|
||||
addsd xmm0,xmm2 ; replaced with HADDPD XMM0,XMM0
|
||||
sqrtpd xmm0,xmm0
|
||||
comisd xmm0,[limit]
|
||||
ja over
|
||||
|
||||
loop iterate
|
||||
over:
|
||||
xor al,al
|
||||
stosb
|
||||
mov al,cl
|
||||
stosb
|
||||
ror al,3
|
||||
stosb
|
||||
stosb
|
||||
|
||||
movsd xmm0,[x_step]
|
||||
addpd xmm7,xmm0
|
||||
inc ebx
|
||||
cmp ebx,640
|
||||
jb row
|
||||
sub rdi,640*4
|
||||
add rdi,r10
|
||||
subsd xmm8,[y_step]
|
||||
inc edx
|
||||
cmp edx,480
|
||||
jb screen
|
||||
|
||||
mov [refresh_needed],0
|
||||
cominvk DDSBack,Unlock,NULL
|
||||
cominvk DDSPrimary,Flip,0,0
|
||||
|
||||
main_loop:
|
||||
|
||||
invoke PeekMessage,msg,NULL,0,0,PM_NOREMOVE
|
||||
or eax,eax
|
||||
jz no_message
|
||||
invoke GetMessage,msg,NULL,0,0
|
||||
cmp eax,1
|
||||
jb end_loop
|
||||
jne no_message
|
||||
invoke TranslateMessage,msg
|
||||
invoke DispatchMessage,msg
|
||||
|
||||
cmp [refresh_needed],0
|
||||
jne refresh
|
||||
|
||||
jmp main_loop
|
||||
|
||||
no_message:
|
||||
invoke WaitMessage
|
||||
jmp main_loop
|
||||
|
||||
ddraw_error:
|
||||
invoke wsprintf,buffer,_ddraw_error,rax
|
||||
invoke MessageBox,[hwnd],buffer,_error,MB_OK+MB_ICONERROR
|
||||
invoke DestroyWindow,[hwnd]
|
||||
invoke PostQuitMessage,2
|
||||
jmp main_loop
|
||||
|
||||
startup_error:
|
||||
invoke MessageBox,[hwnd],_startup_error,_error,MB_OK+MB_ICONERROR
|
||||
invoke ExitProcess,1
|
||||
|
||||
end_loop:
|
||||
cominvk DDraw,RestoreDisplayMode
|
||||
|
||||
cmp [DDSBack],0
|
||||
je back_surface_released
|
||||
cominvk DDSPrimary,DeleteAttachedSurface,0,DDSBack
|
||||
back_surface_released:
|
||||
cmp [DDSPrimary],0
|
||||
je primary_surface_released
|
||||
cominvk DDSPrimary,Release
|
||||
primary_surface_released:
|
||||
cmp [DDraw],0
|
||||
je ddraw_released
|
||||
cominvk DDraw,Release
|
||||
ddraw_released:
|
||||
|
||||
invoke ExitProcess,[msg.wParam]
|
||||
|
||||
proc WindowProc uses rbx rsi rdi, hwnd,wmsg,wparam,lparam
|
||||
cmp edx,WM_CREATE
|
||||
je .wmcreate
|
||||
cmp edx,WM_DESTROY
|
||||
je .wmdestroy
|
||||
cmp edx,WM_LBUTTONDOWN
|
||||
je .wmlbuttondown
|
||||
cmp edx,WM_RBUTTONDOWN
|
||||
je .wmrbuttondown
|
||||
cmp edx,WM_KEYDOWN
|
||||
je .wmkeydown
|
||||
cmp edx,WM_ACTIVATE
|
||||
je .wmactivate
|
||||
.defwindowproc:
|
||||
invoke DefWindowProc,rcx,rdx,r8,r9
|
||||
jmp .finish
|
||||
.wmcreate:
|
||||
xor eax,eax
|
||||
jmp .finish
|
||||
.wmactivate:
|
||||
test r8,r8
|
||||
jz .finish
|
||||
or [refresh_needed],1
|
||||
jmp .finish
|
||||
.wmlbuttondown:
|
||||
movapd xmm0,[step]
|
||||
divpd xmm0,[zoom]
|
||||
movapd xmm1,xmm0
|
||||
subpd xmm1,[step]
|
||||
movapd [step],xmm0
|
||||
movzx eax,r9w
|
||||
cvtsi2sd xmm3,eax
|
||||
shr r9,16
|
||||
movzx eax,r9w
|
||||
cvtsi2sd xmm4,eax
|
||||
unpcklpd xmm3,xmm4
|
||||
mulpd xmm1,xmm3
|
||||
xorpd xmm1,[negate]
|
||||
addpd xmm1,[origin]
|
||||
movapd [origin],xmm1
|
||||
or [refresh_needed],1
|
||||
jmp .finish
|
||||
.wmrbuttondown:
|
||||
movapd xmm0,[step]
|
||||
mulpd xmm0,[zoom]
|
||||
movapd xmm1,xmm0
|
||||
subpd xmm1,[step]
|
||||
movapd [step],xmm0
|
||||
movzx eax,r9w
|
||||
cvtsi2sd xmm3,eax
|
||||
shr r9,16
|
||||
movzx eax,r9w
|
||||
cvtsi2sd xmm4,eax
|
||||
unpcklpd xmm3,xmm4
|
||||
mulpd xmm1,xmm3
|
||||
xorpd xmm1,[negate]
|
||||
addpd xmm1,[origin]
|
||||
movapd [origin],xmm1
|
||||
or [refresh_needed],1
|
||||
jmp .finish
|
||||
.wmkeydown:
|
||||
cmp r8d,VK_ESCAPE
|
||||
jne .finish
|
||||
.wmdestroy:
|
||||
invoke PostQuitMessage,0
|
||||
xor eax,eax
|
||||
.finish:
|
||||
ret
|
||||
endp
|
||||
|
||||
section '.data' data readable writeable
|
||||
|
||||
wc WNDCLASSEX sizeof.WNDCLASSEX,0,WindowProc,0,0,NULL,NULL,NULL,NULL,NULL,_class,NULL
|
||||
|
||||
_title db 'flat assembler DirectDraw application',0
|
||||
_class db 'FDDRAW64',0
|
||||
|
||||
_error db 'Error',0
|
||||
_startup_error db 'Startup failed',0
|
||||
_ddraw_error db 'Direct Draw initialization failed (error code 0x%x).',0
|
||||
|
||||
align 16 ; SSE data follows
|
||||
|
||||
label origin dqword
|
||||
x_left dq -2.2
|
||||
y_top dq 1.25
|
||||
|
||||
label step dqword
|
||||
x_step dq 0.0045
|
||||
y_step dq 0.0052
|
||||
|
||||
label zoom dqword
|
||||
dq 1.2,1.2
|
||||
|
||||
label negate dqword
|
||||
dq 8000000000000000h,0
|
||||
|
||||
limit dq 2.5
|
||||
|
||||
section '.bss' readable writeable
|
||||
|
||||
hinstance dq ?
|
||||
hwnd dq ?
|
||||
msg MSG
|
||||
|
||||
ddsd DDSURFACEDESC
|
||||
ddscaps DDSCAPS
|
||||
|
||||
DDraw DirectDraw
|
||||
DDSPrimary DirectDrawSurface
|
||||
DDSBack DirectDrawSurface
|
||||
|
||||
rect RECT
|
||||
|
||||
refresh_needed dd ?
|
||||
|
||||
buffer rb 100h
|
||||
|
||||
|
||||
section '.idata' import data readable
|
||||
|
||||
library kernel32,'KERNEL32.DLL',\
|
||||
user32,'USER32.DLL',\
|
||||
ddraw,'DDRAW.DLL'
|
||||
|
||||
include 'api\kernel32.inc'
|
||||
include 'api\user32.inc'
|
||||
|
||||
import ddraw,\
|
||||
DirectDrawCreate,'DirectDrawCreate'
|
||||
615
toolchain/fasmw17332/EXAMPLES/WIN64/OPENGL/OPENGL.ASM
Normal file
615
toolchain/fasmw17332/EXAMPLES/WIN64/OPENGL/OPENGL.ASM
Normal file
@@ -0,0 +1,615 @@
|
||||
|
||||
; OpenGL programming example
|
||||
|
||||
format PE64 GUI 5.0
|
||||
entry start
|
||||
|
||||
include 'win64a.inc'
|
||||
|
||||
include '..\..\opengl\opengl.inc'
|
||||
|
||||
section '.text' code readable executable
|
||||
|
||||
start:
|
||||
sub rsp,8 ; Make stack dqword aligned
|
||||
|
||||
invoke GetModuleHandle,0
|
||||
mov [wc.hInstance],rax
|
||||
invoke LoadIcon,0,IDI_APPLICATION
|
||||
mov [wc.hIcon],rax
|
||||
invoke LoadCursor,0,IDC_ARROW
|
||||
mov [wc.hCursor],rax
|
||||
invoke RegisterClass,wc
|
||||
invoke CreateWindowEx,0,_class,_title,WS_VISIBLE+WS_OVERLAPPEDWINDOW+WS_CLIPCHILDREN+WS_CLIPSIBLINGS,16,16,432,432,NULL,NULL,[wc.hInstance],NULL
|
||||
|
||||
msg_loop:
|
||||
invoke GetMessage,addr msg,NULL,0,0
|
||||
cmp eax,1
|
||||
jb end_loop
|
||||
jne msg_loop
|
||||
invoke TranslateMessage,addr msg
|
||||
invoke DispatchMessage,addr msg
|
||||
jmp msg_loop
|
||||
|
||||
end_loop:
|
||||
invoke ExitProcess,[msg.wParam]
|
||||
|
||||
proc WindowProc uses rbx rsi rdi, hwnd,wmsg,wparam,lparam
|
||||
mov [hwnd],rcx
|
||||
frame
|
||||
cmp edx,WM_CREATE
|
||||
je .wmcreate
|
||||
cmp edx,WM_SIZE
|
||||
je .wmsize
|
||||
cmp edx,WM_PAINT
|
||||
je .wmpaint
|
||||
cmp edx,WM_KEYDOWN
|
||||
je .wmkeydown
|
||||
cmp edx,WM_DESTROY
|
||||
je .wmdestroy
|
||||
.defwndproc:
|
||||
invoke DefWindowProc,rcx,rdx,r8,r9
|
||||
jmp .finish
|
||||
.wmcreate:
|
||||
invoke GetDC,rcx
|
||||
mov [hdc],rax
|
||||
lea rdi,[pfd]
|
||||
mov rcx,sizeof.PIXELFORMATDESCRIPTOR shr 3
|
||||
xor eax,eax
|
||||
rep stosq
|
||||
mov [pfd.nSize],sizeof.PIXELFORMATDESCRIPTOR
|
||||
mov [pfd.nVersion],1
|
||||
mov [pfd.dwFlags],PFD_SUPPORT_OPENGL+PFD_DOUBLEBUFFER+PFD_DRAW_TO_WINDOW
|
||||
mov [pfd.iLayerType],PFD_MAIN_PLANE
|
||||
mov [pfd.iPixelType],PFD_TYPE_RGBA
|
||||
mov [pfd.cColorBits],16
|
||||
mov [pfd.cDepthBits],16
|
||||
mov [pfd.cAccumBits],0
|
||||
mov [pfd.cStencilBits],0
|
||||
invoke ChoosePixelFormat,[hdc],addr pfd
|
||||
invoke SetPixelFormat,[hdc],eax,addr pfd
|
||||
invoke wglCreateContext,[hdc]
|
||||
mov [hrc],rax
|
||||
invoke wglMakeCurrent,[hdc],[hrc]
|
||||
invoke GetClientRect,[hwnd],addr rc
|
||||
invoke glViewport,0,0,[rc.right],[rc.bottom]
|
||||
invoke GetTickCount
|
||||
mov [clock],eax
|
||||
xor eax,eax
|
||||
jmp .finish
|
||||
.wmsize:
|
||||
invoke GetClientRect,[hwnd],addr rc
|
||||
invoke glViewport,0,0,[rc.right],[rc.bottom]
|
||||
xor eax,eax
|
||||
jmp .finish
|
||||
.wmpaint:
|
||||
invoke GetTickCount
|
||||
sub eax,[clock]
|
||||
cmp eax,10
|
||||
jb .animation_ok
|
||||
add [clock],eax
|
||||
invoke glRotatef,float [theta],float dword 0.0,float dword 0.0,float dword 1.0
|
||||
.animation_ok:
|
||||
invoke glClear,GL_COLOR_BUFFER_BIT
|
||||
invoke glBegin,GL_QUADS
|
||||
invoke glColor3f,float dword 1.0,float dword 0.1,float dword 0.1
|
||||
invoke glVertex3d,float -0.6,float -0.6,float 0.0
|
||||
invoke glColor3f,float dword 0.1,float dword 0.1,float dword 0.1
|
||||
invoke glVertex3d,float 0.6,float -0.6,float 0.0
|
||||
invoke glColor3f,float dword 0.1,float dword 0.1,float dword 1.0
|
||||
invoke glVertex3d,float 0.6,float 0.6,float 0.0
|
||||
invoke glColor3f,float dword 1.0,float dword 0.1,float dword 1.0
|
||||
invoke glVertex3d,float -0.6,float 0.6,float 0.0
|
||||
invoke glEnd
|
||||
invoke SwapBuffers,[hdc]
|
||||
xor eax,eax
|
||||
jmp .finish
|
||||
.wmkeydown:
|
||||
cmp r8d,VK_ESCAPE
|
||||
jne .defwndproc
|
||||
.wmdestroy:
|
||||
invoke wglMakeCurrent,0,0
|
||||
invoke wglDeleteContext,[hrc]
|
||||
invoke ReleaseDC,[hwnd],[hdc]
|
||||
invoke PostQuitMessage,0
|
||||
xor eax,eax
|
||||
.finish:
|
||||
endf
|
||||
ret
|
||||
endp
|
||||
|
||||
section '.data' data readable writeable
|
||||
|
||||
_title db 'OpenGL example',0
|
||||
_class db 'FASMOPENGL32',0
|
||||
|
||||
theta GLfloat 0.6
|
||||
|
||||
wc WNDCLASS 0,WindowProc,0,0,NULL,NULL,NULL,NULL,NULL,_class
|
||||
|
||||
hdc dq ?
|
||||
hrc dq ?
|
||||
|
||||
msg MSG
|
||||
rc RECT
|
||||
pfd PIXELFORMATDESCRIPTOR
|
||||
|
||||
clock dd ?
|
||||
|
||||
section '.idata' import data readable writeable
|
||||
|
||||
library kernel,'KERNEL32.DLL',\
|
||||
user,'USER32.DLL',\
|
||||
gdi,'GDI32.DLL',\
|
||||
opengl,'OPENGL32.DLL',\
|
||||
glu,'GLU32.DLL'
|
||||
|
||||
import kernel,\
|
||||
GetModuleHandle,'GetModuleHandleA',\
|
||||
GetTickCount,'GetTickCount',\
|
||||
ExitProcess,'ExitProcess'
|
||||
|
||||
import user,\
|
||||
RegisterClass,'RegisterClassA',\
|
||||
CreateWindowEx,'CreateWindowExA',\
|
||||
DefWindowProc,'DefWindowProcA',\
|
||||
GetMessage,'GetMessageA',\
|
||||
TranslateMessage,'TranslateMessage',\
|
||||
DispatchMessage,'DispatchMessageA',\
|
||||
LoadCursor,'LoadCursorA',\
|
||||
LoadIcon,'LoadIconA',\
|
||||
GetClientRect,'GetClientRect',\
|
||||
GetDC,'GetDC',\
|
||||
ReleaseDC,'ReleaseDC',\
|
||||
PostQuitMessage,'PostQuitMessage'
|
||||
|
||||
import gdi,\
|
||||
ChoosePixelFormat,'ChoosePixelFormat',\
|
||||
SetPixelFormat,'SetPixelFormat',\
|
||||
SwapBuffers,'SwapBuffers'
|
||||
|
||||
import opengl,\
|
||||
glAccum,'glAccum',\
|
||||
glAlphaFunc,'glAlphaFunc',\
|
||||
glAreTexturesResident,'glAreTexturesResident',\
|
||||
glArrayElement,'glArrayElement',\
|
||||
glBegin,'glBegin',\
|
||||
glBindTexture,'glBindTexture',\
|
||||
glBitmap,'glBitmap',\
|
||||
glBlendFunc,'glBlendFunc',\
|
||||
glCallList,'glCallList',\
|
||||
glCallLists,'glCallLists',\
|
||||
glClear,'glClear',\
|
||||
glClearAccum,'glClearAccum',\
|
||||
glClearColor,'glClearColor',\
|
||||
glClearDepth,'glClearDepth',\
|
||||
glClearIndex,'glClearIndex',\
|
||||
glClearStencil,'glClearStencil',\
|
||||
glClipPlane,'glClipPlane',\
|
||||
glColor3b,'glColor3b',\
|
||||
glColor3bv,'glColor3bv',\
|
||||
glColor3d,'glColor3d',\
|
||||
glColor3dv,'glColor3dv',\
|
||||
glColor3f,'glColor3f',\
|
||||
glColor3fv,'glColor3fv',\
|
||||
glColor3i,'glColor3i',\
|
||||
glColor3iv,'glColor3iv',\
|
||||
glColor3s,'glColor3s',\
|
||||
glColor3sv,'glColor3sv',\
|
||||
glColor3ub,'glColor3ub',\
|
||||
glColor3ubv,'glColor3ubv',\
|
||||
glColor3ui,'glColor3ui',\
|
||||
glColor3uiv,'glColor3uiv',\
|
||||
glColor3us,'glColor3us',\
|
||||
glColor3usv,'glColor3usv',\
|
||||
glColor4b,'glColor4b',\
|
||||
glColor4bv,'glColor4bv',\
|
||||
glColor4d,'glColor4d',\
|
||||
glColor4dv,'glColor4dv',\
|
||||
glColor4f,'glColor4f',\
|
||||
glColor4fv,'glColor4fv',\
|
||||
glColor4i,'glColor4i',\
|
||||
glColor4iv,'glColor4iv',\
|
||||
glColor4s,'glColor4s',\
|
||||
glColor4sv,'glColor4sv',\
|
||||
glColor4ub,'glColor4ub',\
|
||||
glColor4ubv,'glColor4ubv',\
|
||||
glColor4ui,'glColor4ui',\
|
||||
glColor4uiv,'glColor4uiv',\
|
||||
glColor4us,'glColor4us',\
|
||||
glColor4usv,'glColor4usv',\
|
||||
glColorMask,'glColorMask',\
|
||||
glColorMaterial,'glColorMaterial',\
|
||||
glColorPointer,'glColorPointer',\
|
||||
glCopyPixels,'glCopyPixels',\
|
||||
glCopyTexImage1D,'glCopyTexImage1D',\
|
||||
glCopyTexImage2D,'glCopyTexImage2D',\
|
||||
glCopyTexSubImage1D,'glCopyTexSubImage1D',\
|
||||
glCopyTexSubImage2D,'glCopyTexSubImage2D',\
|
||||
glCullFace,'glCullFace',\
|
||||
glDeleteLists,'glDeleteLists',\
|
||||
glDeleteTextures,'glDeleteTextures',\
|
||||
glDepthFunc,'glDepthFunc',\
|
||||
glDepthMask,'glDepthMask',\
|
||||
glDepthRange,'glDepthRange',\
|
||||
glDisable,'glDisable',\
|
||||
glDisableClientState,'glDisableClientState',\
|
||||
glDrawArrays,'glDrawArrays',\
|
||||
glDrawBuffer,'glDrawBuffer',\
|
||||
glDrawElements,'glDrawElements',\
|
||||
glDrawPixels,'glDrawPixels',\
|
||||
glEdgeFlag,'glEdgeFlag',\
|
||||
glEdgeFlagPointer,'glEdgeFlagPointer',\
|
||||
glEdgeFlagv,'glEdgeFlagv',\
|
||||
glEnable,'glEnable',\
|
||||
glEnableClientState,'glEnableClientState',\
|
||||
glEnd,'glEnd',\
|
||||
glEndList,'glEndList',\
|
||||
glEvalCoord1d,'glEvalCoord1d',\
|
||||
glEvalCoord1dv,'glEvalCoord1dv',\
|
||||
glEvalCoord1f,'glEvalCoord1f',\
|
||||
glEvalCoord1fv,'glEvalCoord1fv',\
|
||||
glEvalCoord2d,'glEvalCoord2d',\
|
||||
glEvalCoord2dv,'glEvalCoord2dv',\
|
||||
glEvalCoord2f,'glEvalCoord2f',\
|
||||
glEvalCoord2fv,'glEvalCoord2fv',\
|
||||
glEvalMesh1,'glEvalMesh1',\
|
||||
glEvalMesh2,'glEvalMesh2',\
|
||||
glEvalPoint1,'glEvalPoint1',\
|
||||
glEvalPoint2,'glEvalPoint2',\
|
||||
glFeedbackBuffer,'glFeedbackBuffer',\
|
||||
glFinish,'glFinish',\
|
||||
glFlush,'glFlush',\
|
||||
glFogf,'glFogf',\
|
||||
glFogfv,'glFogfv',\
|
||||
glFogi,'glFogi',\
|
||||
glFogiv,'glFogiv',\
|
||||
glFrontFace,'glFrontFace',\
|
||||
glFrustum,'glFrustum',\
|
||||
glGenLists,'glGenLists',\
|
||||
glGenTextures,'glGenTextures',\
|
||||
glGetBooleanv,'glGetBooleanv',\
|
||||
glGetClipPlane,'glGetClipPlane',\
|
||||
glGetDoublev,'glGetDoublev',\
|
||||
glGetError,'glGetError',\
|
||||
glGetFloatv,'glGetFloatv',\
|
||||
glGetIntegerv,'glGetIntegerv',\
|
||||
glGetLightfv,'glGetLightfv',\
|
||||
glGetLightiv,'glGetLightiv',\
|
||||
glGetMapdv,'glGetMapdv',\
|
||||
glGetMapfv,'glGetMapfv',\
|
||||
glGetMapiv,'glGetMapiv',\
|
||||
glGetMaterialfv,'glGetMaterialfv',\
|
||||
glGetMaterialiv,'glGetMaterialiv',\
|
||||
glGetPixelMapfv,'glGetPixelMapfv',\
|
||||
glGetPixelMapuiv,'glGetPixelMapuiv',\
|
||||
glGetPixelMapusv,'glGetPixelMapusv',\
|
||||
glGetPointerv,'glGetPointerv',\
|
||||
glGetPolygonStipple,'glGetPolygonStipple',\
|
||||
glGetString,'glGetString',\
|
||||
glGetTexEnvfv,'glGetTexEnvfv',\
|
||||
glGetTexEnviv,'glGetTexEnviv',\
|
||||
glGetTexGendv,'glGetTexGendv',\
|
||||
glGetTexGenfv,'glGetTexGenfv',\
|
||||
glGetTexGeniv,'glGetTexGeniv',\
|
||||
glGetTexImage,'glGetTexImage',\
|
||||
glGetTexLevelParameterfv,'glGetTexLevelParameterfv',\
|
||||
glGetTexLevelParameteriv,'glGetTexLevelParameteriv',\
|
||||
glGetTexParameterfv,'glGetTexParameterfv',\
|
||||
glGetTexParameteriv,'glGetTexParameteriv',\
|
||||
glHint,'glHint',\
|
||||
glIndexMask,'glIndexMask',\
|
||||
glIndexPointer,'glIndexPointer',\
|
||||
glIndexd,'glIndexd',\
|
||||
glIndexdv,'glIndexdv',\
|
||||
glIndexf,'glIndexf',\
|
||||
glIndexfv,'glIndexfv',\
|
||||
glIndexi,'glIndexi',\
|
||||
glIndexiv,'glIndexiv',\
|
||||
glIndexs,'glIndexs',\
|
||||
glIndexsv,'glIndexsv',\
|
||||
glIndexub,'glIndexub',\
|
||||
glIndexubv,'glIndexubv',\
|
||||
glInitNames,'glInitNames',\
|
||||
glInterleavedArrays,'glInterleavedArrays',\
|
||||
glIsEnabled,'glIsEnabled',\
|
||||
glIsList,'glIsList',\
|
||||
glIsTexture,'glIsTexture',\
|
||||
glLightModelf,'glLightModelf',\
|
||||
glLightModelfv,'glLightModelfv',\
|
||||
glLightModeli,'glLightModeli',\
|
||||
glLightModeliv,'glLightModeliv',\
|
||||
glLightf,'glLightf',\
|
||||
glLightfv,'glLightfv',\
|
||||
glLighti,'glLighti',\
|
||||
glLightiv,'glLightiv',\
|
||||
glLineStipple,'glLineStipple',\
|
||||
glLineWidth,'glLineWidth',\
|
||||
glListBase,'glListBase',\
|
||||
glLoadIdentity,'glLoadIdentity',\
|
||||
glLoadMatrixd,'glLoadMatrixd',\
|
||||
glLoadMatrixf,'glLoadMatrixf',\
|
||||
glLoadName,'glLoadName',\
|
||||
glLogicOp,'glLogicOp',\
|
||||
glMap1d,'glMap1d',\
|
||||
glMap1f,'glMap1f',\
|
||||
glMap2d,'glMap2d',\
|
||||
glMap2f,'glMap2f',\
|
||||
glMapGrid1d,'glMapGrid1d',\
|
||||
glMapGrid1f,'glMapGrid1f',\
|
||||
glMapGrid2d,'glMapGrid2d',\
|
||||
glMapGrid2f,'glMapGrid2f',\
|
||||
glMaterialf,'glMaterialf',\
|
||||
glMaterialfv,'glMaterialfv',\
|
||||
glMateriali,'glMateriali',\
|
||||
glMaterialiv,'glMaterialiv',\
|
||||
glMatrixMode,'glMatrixMode',\
|
||||
glMultMatrixd,'glMultMatrixd',\
|
||||
glMultMatrixf,'glMultMatrixf',\
|
||||
glNewList,'glNewList',\
|
||||
glNormal3b,'glNormal3b',\
|
||||
glNormal3bv,'glNormal3bv',\
|
||||
glNormal3d,'glNormal3d',\
|
||||
glNormal3dv,'glNormal3dv',\
|
||||
glNormal3f,'glNormal3f',\
|
||||
glNormal3fv,'glNormal3fv',\
|
||||
glNormal3i,'glNormal3i',\
|
||||
glNormal3iv,'glNormal3iv',\
|
||||
glNormal3s,'glNormal3s',\
|
||||
glNormal3sv,'glNormal3sv',\
|
||||
glNormalPointer,'glNormalPointer',\
|
||||
glOrtho,'glOrtho',\
|
||||
glPassThrough,'glPassThrough',\
|
||||
glPixelMapfv,'glPixelMapfv',\
|
||||
glPixelMapuiv,'glPixelMapuiv',\
|
||||
glPixelMapusv,'glPixelMapusv',\
|
||||
glPixelStoref,'glPixelStoref',\
|
||||
glPixelStorei,'glPixelStorei',\
|
||||
glPixelTransferf,'glPixelTransferf',\
|
||||
glPixelTransferi,'glPixelTransferi',\
|
||||
glPixelZoom,'glPixelZoom',\
|
||||
glPointSize,'glPointSize',\
|
||||
glPolygonMode,'glPolygonMode',\
|
||||
glPolygonOffset,'glPolygonOffset',\
|
||||
glPolygonStipple,'glPolygonStipple',\
|
||||
glPopAttrib,'glPopAttrib',\
|
||||
glPopClientAttrib,'glPopClientAttrib',\
|
||||
glPopMatrix,'glPopMatrix',\
|
||||
glPopName,'glPopName',\
|
||||
glPrioritizeTextures,'glPrioritizeTextures',\
|
||||
glPushAttrib,'glPushAttrib',\
|
||||
glPushClientAttrib,'glPushClientAttrib',\
|
||||
glPushMatrix,'glPushMatrix',\
|
||||
glPushName,'glPushName',\
|
||||
glRasterPos2d,'glRasterPos2d',\
|
||||
glRasterPos2dv,'glRasterPos2dv',\
|
||||
glRasterPos2f,'glRasterPos2f',\
|
||||
glRasterPos2fv,'glRasterPos2fv',\
|
||||
glRasterPos2i,'glRasterPos2i',\
|
||||
glRasterPos2iv,'glRasterPos2iv',\
|
||||
glRasterPos2s,'glRasterPos2s',\
|
||||
glRasterPos2sv,'glRasterPos2sv',\
|
||||
glRasterPos3d,'glRasterPos3d',\
|
||||
glRasterPos3dv,'glRasterPos3dv',\
|
||||
glRasterPos3f,'glRasterPos3f',\
|
||||
glRasterPos3fv,'glRasterPos3fv',\
|
||||
glRasterPos3i,'glRasterPos3i',\
|
||||
glRasterPos3iv,'glRasterPos3iv',\
|
||||
glRasterPos3s,'glRasterPos3s',\
|
||||
glRasterPos3sv,'glRasterPos3sv',\
|
||||
glRasterPos4d,'glRasterPos4d',\
|
||||
glRasterPos4dv,'glRasterPos4dv',\
|
||||
glRasterPos4f,'glRasterPos4f',\
|
||||
glRasterPos4fv,'glRasterPos4fv',\
|
||||
glRasterPos4i,'glRasterPos4i',\
|
||||
glRasterPos4iv,'glRasterPos4iv',\
|
||||
glRasterPos4s,'glRasterPos4s',\
|
||||
glRasterPos4sv,'glRasterPos4sv',\
|
||||
glReadBuffer,'glReadBuffer',\
|
||||
glReadPixels,'glReadPixels',\
|
||||
glRectd,'glRectd',\
|
||||
glRectdv,'glRectdv',\
|
||||
glRectf,'glRectf',\
|
||||
glRectfv,'glRectfv',\
|
||||
glRecti,'glRecti',\
|
||||
glRectiv,'glRectiv',\
|
||||
glRects,'glRects',\
|
||||
glRectsv,'glRectsv',\
|
||||
glRenderMode,'glRenderMode',\
|
||||
glRotated,'glRotated',\
|
||||
glRotatef,'glRotatef',\
|
||||
glScaled,'glScaled',\
|
||||
glScalef,'glScalef',\
|
||||
glScissor,'glScissor',\
|
||||
glSelectBuffer,'glSelectBuffer',\
|
||||
glShadeModel,'glShadeModel',\
|
||||
glStencilFunc,'glStencilFunc',\
|
||||
glStencilMask,'glStencilMask',\
|
||||
glStencilOp,'glStencilOp',\
|
||||
glTexCoord1d,'glTexCoord1d',\
|
||||
glTexCoord1dv,'glTexCoord1dv',\
|
||||
glTexCoord1f,'glTexCoord1f',\
|
||||
glTexCoord1fv,'glTexCoord1fv',\
|
||||
glTexCoord1i,'glTexCoord1i',\
|
||||
glTexCoord1iv,'glTexCoord1iv',\
|
||||
glTexCoord1s,'glTexCoord1s',\
|
||||
glTexCoord1sv,'glTexCoord1sv',\
|
||||
glTexCoord2d,'glTexCoord2d',\
|
||||
glTexCoord2dv,'glTexCoord2dv',\
|
||||
glTexCoord2f,'glTexCoord2f',\
|
||||
glTexCoord2fv,'glTexCoord2fv',\
|
||||
glTexCoord2i,'glTexCoord2i',\
|
||||
glTexCoord2iv,'glTexCoord2iv',\
|
||||
glTexCoord2s,'glTexCoord2s',\
|
||||
glTexCoord2sv,'glTexCoord2sv',\
|
||||
glTexCoord3d,'glTexCoord3d',\
|
||||
glTexCoord3dv,'glTexCoord3dv',\
|
||||
glTexCoord3f,'glTexCoord3f',\
|
||||
glTexCoord3fv,'glTexCoord3fv',\
|
||||
glTexCoord3i,'glTexCoord3i',\
|
||||
glTexCoord3iv,'glTexCoord3iv',\
|
||||
glTexCoord3s,'glTexCoord3s',\
|
||||
glTexCoord3sv,'glTexCoord3sv',\
|
||||
glTexCoord4d,'glTexCoord4d',\
|
||||
glTexCoord4dv,'glTexCoord4dv',\
|
||||
glTexCoord4f,'glTexCoord4f',\
|
||||
glTexCoord4fv,'glTexCoord4fv',\
|
||||
glTexCoord4i,'glTexCoord4i',\
|
||||
glTexCoord4iv,'glTexCoord4iv',\
|
||||
glTexCoord4s,'glTexCoord4s',\
|
||||
glTexCoord4sv,'glTexCoord4sv',\
|
||||
glTexCoordPointer,'glTexCoordPointer',\
|
||||
glTexEnvf,'glTexEnvf',\
|
||||
glTexEnvfv,'glTexEnvfv',\
|
||||
glTexEnvi,'glTexEnvi',\
|
||||
glTexEnviv,'glTexEnviv',\
|
||||
glTexGend,'glTexGend',\
|
||||
glTexGendv,'glTexGendv',\
|
||||
glTexGenf,'glTexGenf',\
|
||||
glTexGenfv,'glTexGenfv',\
|
||||
glTexGeni,'glTexGeni',\
|
||||
glTexGeniv,'glTexGeniv',\
|
||||
glTexImage1D,'glTexImage1D',\
|
||||
glTexImage2D,'glTexImage2D',\
|
||||
glTexParameterf,'glTexParameterf',\
|
||||
glTexParameterfv,'glTexParameterfv',\
|
||||
glTexParameteri,'glTexParameteri',\
|
||||
glTexParameteriv,'glTexParameteriv',\
|
||||
glTexSubImage1D,'glTexSubImage1D',\
|
||||
glTexSubImage2D,'glTexSubImage2D',\
|
||||
glTranslated,'glTranslated',\
|
||||
glTranslatef,'glTranslatef',\
|
||||
glVertex2d,'glVertex2d',\
|
||||
glVertex2dv,'glVertex2dv',\
|
||||
glVertex2f,'glVertex2f',\
|
||||
glVertex2fv,'glVertex2fv',\
|
||||
glVertex2i,'glVertex2i',\
|
||||
glVertex2iv,'glVertex2iv',\
|
||||
glVertex2s,'glVertex2s',\
|
||||
glVertex2sv,'glVertex2sv',\
|
||||
glVertex3d,'glVertex3d',\
|
||||
glVertex3dv,'glVertex3dv',\
|
||||
glVertex3f,'glVertex3f',\
|
||||
glVertex3fv,'glVertex3fv',\
|
||||
glVertex3i,'glVertex3i',\
|
||||
glVertex3iv,'glVertex3iv',\
|
||||
glVertex3s,'glVertex3s',\
|
||||
glVertex3sv,'glVertex3sv',\
|
||||
glVertex4d,'glVertex4d',\
|
||||
glVertex4dv,'glVertex4dv',\
|
||||
glVertex4f,'glVertex4f',\
|
||||
glVertex4fv,'glVertex4fv',\
|
||||
glVertex4i,'glVertex4i',\
|
||||
glVertex4iv,'glVertex4iv',\
|
||||
glVertex4s,'glVertex4s',\
|
||||
glVertex4sv,'glVertex4sv',\
|
||||
glVertexPointer,'glVertexPointer',\
|
||||
glViewport,'glViewport',\
|
||||
wglGetProcAddress,'wglGetProcAddress',\
|
||||
wglCopyContext,'wglCopyContext',\
|
||||
wglCreateContext,'wglCreateContext',\
|
||||
wglCreateLayerContext,'wglCreateLayerContext',\
|
||||
wglDeleteContext,'wglDeleteContext',\
|
||||
wglDescribeLayerPlane,'wglDescribeLayerPlane',\
|
||||
wglGetCurrentContext,'wglGetCurrentContext',\
|
||||
wglGetCurrentDC,'wglGetCurrentDC',\
|
||||
wglGetLayerPaletteEntries,'wglGetLayerPaletteEntries',\
|
||||
wglMakeCurrent,'wglMakeCurrent',\
|
||||
wglRealizeLayerPalette,'wglRealizeLayerPalette',\
|
||||
wglSetLayerPaletteEntries,'wglSetLayerPaletteEntries',\
|
||||
wglShareLists,'wglShareLists',\
|
||||
wglSwapLayerBuffers,'wglSwapLayerBuffers',\
|
||||
wglSwapMultipleBuffers,'wglSwapMultipleBuffers',\
|
||||
wglUseFontBitmapsA,'wglUseFontBitmapsA',\
|
||||
wglUseFontOutlinesA,'wglUseFontOutlinesA',\
|
||||
wglUseFontBitmapsW,'wglUseFontBitmapsW',\
|
||||
wglUseFontOutlinesW,'wglUseFontOutlinesW',\
|
||||
glDrawRangeElements,'glDrawRangeElements',\
|
||||
glTexImage3D,'glTexImage3D',\
|
||||
glBlendColor,'glBlendColor',\
|
||||
glBlendEquation,'glBlendEquation',\
|
||||
glColorSubTable,'glColorSubTable',\
|
||||
glCopyColorSubTable,'glCopyColorSubTable',\
|
||||
glColorTable,'glColorTable',\
|
||||
glCopyColorTable,'glCopyColorTable',\
|
||||
glColorTableParameteriv,'glColorTableParameteriv',\
|
||||
glColorTableParameterfv,'glColorTableParameterfv',\
|
||||
glGetColorTable,'glGetColorTable',\
|
||||
glGetColorTableParameteriv,'glGetColorTableParameteriv',\
|
||||
glGetColorTableParameterfv,'glGetColorTableParameterfv',\
|
||||
glConvolutionFilter1D,'glConvolutionFilter1D',\
|
||||
glConvolutionFilter2D,'glConvolutionFilter2D',\
|
||||
glCopyConvolutionFilter1D,'glCopyConvolutionFilter1D',\
|
||||
glCopyConvolutionFilter2D,'glCopyConvolutionFilter2D',\
|
||||
glGetConvolutionFilter,'glGetConvolutionFilter',\
|
||||
glSeparableFilter2D,'glSeparableFilter2D',\
|
||||
glGetSeparableFilter,'glGetSeparableFilter',\
|
||||
glConvolutionParameteri,'glConvolutionParameteri',\
|
||||
glConvolutionParameteriv,'glConvolutionParameteriv',\
|
||||
glConvolutionParameterf,'glConvolutionParameterf',\
|
||||
glConvolutionParameterfv,'glConvolutionParameterfv',\
|
||||
glGetConvolutionParameteriv,'glGetConvolutionParameteriv',\
|
||||
glGetConvolutionParameterfv,'glGetConvolutionParameterfv',\
|
||||
glHistogram,'glHistogram',\
|
||||
glResetHistogram,'glResetHistogram',\
|
||||
glGetHistogram,'glGetHistogram',\
|
||||
glGetHistogramParameteriv,'glGetHistogramParameteriv',\
|
||||
glGetHistogramParameterfv,'glGetHistogramParameterfv',\
|
||||
glMinmax,'glMinmax',\
|
||||
glResetMinmax,'glResetMinmax',\
|
||||
glGetMinmax,'glGetMinmax',\
|
||||
glGetMinmaxParameteriv,'glGetMinmaxParameteriv',\
|
||||
glGetMinmaxParameterfv,'glGetMinmaxParameterfv'
|
||||
|
||||
import glu,\
|
||||
gluBeginCurve,'gluBeginCurve',\
|
||||
gluBeginPolygon,'gluBeginPolygon',\
|
||||
gluBeginSurface,'gluBeginSurface',\
|
||||
gluBeginTrim,'gluBeginTrim',\
|
||||
gluBuild1DMipmaps,'gluBuild1DMipmaps',\
|
||||
gluBuild2DMipmaps,'gluBuild2DMipmaps',\
|
||||
gluCylinder,'gluCylinder',\
|
||||
gluDeleteNurbsRenderer,'gluDeleteNurbsRenderer',\
|
||||
gluDeleteQuadric,'gluDeleteQuadric',\
|
||||
gluDeleteTess,'gluDeleteTess',\
|
||||
gluDisk,'gluDisk',\
|
||||
gluEndCurve,'gluEndCurve',\
|
||||
gluEndPolygon,'gluEndPolygon',\
|
||||
gluEndSurface,'gluEndSurface',\
|
||||
gluEndTrim,'gluEndTrim',\
|
||||
gluErrorString,'gluErrorString',\
|
||||
gluGetNurbsProperty,'gluGetNurbsProperty',\
|
||||
gluGetString,'gluGetString',\
|
||||
gluGetTessProperty,'gluGetTessProperty',\
|
||||
gluLoadSamplingMatrices,'gluLoadSamplingMatrices',\
|
||||
gluLookAt,'gluLookAt',\
|
||||
gluNewNurbsRenderer,'gluNewNurbsRenderer',\
|
||||
gluNewQuadric,'gluNewQuadric',\
|
||||
gluNewTess,'gluNewTess',\
|
||||
gluNextContour,'gluNextContour',\
|
||||
gluNurbsCallback,'gluNurbsCallback',\
|
||||
gluNurbsCurve,'gluNurbsCurve',\
|
||||
gluNurbsProperty,'gluNurbsProperty',\
|
||||
gluNurbsSurface,'gluNurbsSurface',\
|
||||
gluOrtho2D,'gluOrtho2D',\
|
||||
gluPartialDisk,'gluPartialDisk',\
|
||||
gluPerspective,'gluPerspective',\
|
||||
gluPickMatrix,'gluPickMatrix',\
|
||||
gluProject,'gluProject',\
|
||||
gluPwlCurve,'gluPwlCurve',\
|
||||
gluQuadricCallback,'gluQuadricCallback',\
|
||||
gluQuadricDrawStyle,'gluQuadricDrawStyle',\
|
||||
gluQuadricNormals,'gluQuadricNormals',\
|
||||
gluQuadricOrientation,'gluQuadricOrientation',\
|
||||
gluQuadricTexture,'gluQuadricTexture',\
|
||||
gluScaleImage,'gluScaleImage',\
|
||||
gluSphere,'gluSphere',\
|
||||
gluTessBeginContour,'gluTessBeginContour',\
|
||||
gluTessBeginPolygon,'gluTessBeginPolygon',\
|
||||
gluTessCallback,'gluTessCallback',\
|
||||
gluTessEndContour,'gluTessEndContour',\
|
||||
gluTessEndPolygon,'gluTessEndPolygon',\
|
||||
gluTessNormal,'gluTessNormal',\
|
||||
gluTessProperty,'gluTessProperty',\
|
||||
gluTessVertex,'gluTessVertex',\
|
||||
gluUnProject,'gluUnProject'
|
||||
45
toolchain/fasmw17332/EXAMPLES/WIN64/PE64DEMO/PE64DEMO.ASM
Normal file
45
toolchain/fasmw17332/EXAMPLES/WIN64/PE64DEMO/PE64DEMO.ASM
Normal file
@@ -0,0 +1,45 @@
|
||||
|
||||
; Example of 64-bit PE program
|
||||
|
||||
format PE64 GUI
|
||||
entry start
|
||||
|
||||
section '.text' code readable executable
|
||||
|
||||
start:
|
||||
sub rsp,8*5 ; reserve stack for API use and make stack dqword aligned
|
||||
|
||||
mov r9d,0
|
||||
lea r8,[_caption]
|
||||
lea rdx,[_message]
|
||||
mov rcx,0
|
||||
call [MessageBoxA]
|
||||
|
||||
mov ecx,eax
|
||||
call [ExitProcess]
|
||||
|
||||
section '.data' data readable writeable
|
||||
|
||||
_caption db 'Win64 assembly program',0
|
||||
_message db 'Hello World!',0
|
||||
|
||||
section '.idata' import data readable writeable
|
||||
|
||||
dd 0,0,0,RVA kernel_name,RVA kernel_table
|
||||
dd 0,0,0,RVA user_name,RVA user_table
|
||||
dd 0,0,0,0,0
|
||||
|
||||
kernel_table:
|
||||
ExitProcess dq RVA _ExitProcess
|
||||
dq 0
|
||||
user_table:
|
||||
MessageBoxA dq RVA _MessageBoxA
|
||||
dq 0
|
||||
|
||||
kernel_name db 'KERNEL32.DLL',0
|
||||
user_name db 'USER32.DLL',0
|
||||
|
||||
_ExitProcess dw 0
|
||||
db 'ExitProcess',0
|
||||
_MessageBoxA dw 0
|
||||
db 'MessageBoxA',0
|
||||
82
toolchain/fasmw17332/EXAMPLES/WIN64/TEMPLATE/TEMPLATE.ASM
Normal file
82
toolchain/fasmw17332/EXAMPLES/WIN64/TEMPLATE/TEMPLATE.ASM
Normal file
@@ -0,0 +1,82 @@
|
||||
|
||||
format PE64 GUI 5.0
|
||||
entry start
|
||||
|
||||
include 'win64a.inc'
|
||||
|
||||
section '.text' code readable executable
|
||||
|
||||
start:
|
||||
sub rsp,8 ; Make stack dqword aligned
|
||||
|
||||
invoke GetModuleHandle,0
|
||||
mov [wc.hInstance],rax
|
||||
invoke LoadIcon,0,IDI_APPLICATION
|
||||
mov [wc.hIcon],rax
|
||||
mov [wc.hIconSm],rax
|
||||
invoke LoadCursor,0,IDC_ARROW
|
||||
mov [wc.hCursor],rax
|
||||
invoke RegisterClassEx,wc
|
||||
test rax,rax
|
||||
jz error
|
||||
|
||||
invoke CreateWindowEx,0,_class,_title,WS_VISIBLE+WS_DLGFRAME+WS_SYSMENU,128,128,256,192,NULL,NULL,[wc.hInstance],NULL
|
||||
test rax,rax
|
||||
jz error
|
||||
|
||||
msg_loop:
|
||||
invoke GetMessage,msg,NULL,0,0
|
||||
cmp eax,1
|
||||
jb end_loop
|
||||
jne msg_loop
|
||||
invoke TranslateMessage,msg
|
||||
invoke DispatchMessage,msg
|
||||
jmp msg_loop
|
||||
|
||||
error:
|
||||
invoke MessageBox,NULL,_error,NULL,MB_ICONERROR+MB_OK
|
||||
|
||||
end_loop:
|
||||
invoke ExitProcess,[msg.wParam]
|
||||
|
||||
proc WindowProc uses rbx rsi rdi, hwnd,wmsg,wparam,lparam
|
||||
|
||||
; Note that first four parameters are passed in registers,
|
||||
; while names given in the declaration of procedure refer to the stack
|
||||
; space reserved for them - you may store them there to be later accessible
|
||||
; if the contents of registers gets destroyed. This may look like:
|
||||
; mov [hwnd],rcx
|
||||
; mov [wmsg],edx
|
||||
; mov [wparam],r8
|
||||
; mov [lparam],r9
|
||||
|
||||
cmp edx,WM_DESTROY
|
||||
je .wmdestroy
|
||||
.defwndproc:
|
||||
invoke DefWindowProc,rcx,rdx,r8,r9
|
||||
jmp .finish
|
||||
.wmdestroy:
|
||||
invoke PostQuitMessage,0
|
||||
xor eax,eax
|
||||
.finish:
|
||||
ret
|
||||
|
||||
endp
|
||||
|
||||
section '.data' data readable writeable
|
||||
|
||||
_title TCHAR 'Win64 program template',0
|
||||
_class TCHAR 'FASMWIN64',0
|
||||
_error TCHAR 'Startup failed.',0
|
||||
|
||||
wc WNDCLASSEX sizeof.WNDCLASSEX,0,WindowProc,0,0,NULL,NULL,NULL,COLOR_BTNFACE+1,NULL,_class,NULL
|
||||
|
||||
msg MSG
|
||||
|
||||
section '.idata' import data readable writeable
|
||||
|
||||
library kernel32,'KERNEL32.DLL',\
|
||||
user32,'USER32.DLL'
|
||||
|
||||
include 'api\kernel32.inc'
|
||||
include 'api\user32.inc'
|
||||
142
toolchain/fasmw17332/EXAMPLES/WIN64/USECOM/USECOM.ASM
Normal file
142
toolchain/fasmw17332/EXAMPLES/WIN64/USECOM/USECOM.ASM
Normal file
@@ -0,0 +1,142 @@
|
||||
|
||||
; Component Object Model usage demonstration
|
||||
|
||||
format PE64 GUI 5.0
|
||||
entry start
|
||||
|
||||
include 'win64a.inc'
|
||||
|
||||
struc GUID def
|
||||
{
|
||||
match d1-d2-d3-d4-d5, def
|
||||
\{
|
||||
.Data1 dd 0x\#d1
|
||||
.Data2 dw 0x\#d2
|
||||
.Data3 dw 0x\#d3
|
||||
.Data4 db 0x\#d4 shr 8,0x\#d4 and 0FFh
|
||||
.Data5 db 0x\#d5 shr 40,0x\#d5 shr 32 and 0FFh,0x\#d5 shr 24 and 0FFh,0x\#d5 shr 16 and 0FFh,0x\#d5 shr 8 and 0FFh,0x\#d5 and 0FFh
|
||||
\}
|
||||
}
|
||||
|
||||
interface ITaskBarList,\
|
||||
QueryInterface,\
|
||||
AddRef,\
|
||||
Release,\
|
||||
HrInit,\
|
||||
AddTab,\
|
||||
DeleteTab,\
|
||||
ActivateTab,\
|
||||
SetActiveAlt
|
||||
|
||||
CLSCTX_INPROC_SERVER = 0x1
|
||||
CLSCTX_INPROC_HANDLER = 0x2
|
||||
CLSCTX_LOCAL_SERVER = 0x4
|
||||
CLSCTX_INPROC_SERVER16 = 0x8
|
||||
CLSCTX_REMOTE_SERVER = 0x10
|
||||
CLSCTX_INPROC_HANDLER16 = 0x20
|
||||
CLSCTX_INPROC_SERVERX86 = 0x40
|
||||
CLSCTX_INPROC_HANDLERX86 = 0x80
|
||||
CLSCTX_ESERVER_HANDLER = 0x100
|
||||
CLSCTX_NO_CODE_DOWNLOAD = 0x400
|
||||
CLSCTX_NO_CUSTOM_MARSHAL = 0x1000
|
||||
CLSCTX_ENABLE_CODE_DOWNLOAD = 0x2000
|
||||
CLSCTX_NO_FAILURE_LOG = 0x4000
|
||||
CLSCTX_DISABLE_AAA = 0x8000
|
||||
CLSCTX_ENABLE_AAA = 0x10000
|
||||
CLSCTX_FROM_DEFAULT_CONTEXT = 0x20000
|
||||
|
||||
ID_EXIT = IDCANCEL
|
||||
ID_SHOW = 100
|
||||
ID_HIDE = 101
|
||||
|
||||
IDD_COMDEMO = 1
|
||||
|
||||
section '.text' code readable executable
|
||||
|
||||
start:
|
||||
sub rsp,8 ; Make stack dqword aligned
|
||||
|
||||
invoke CoInitialize,NULL
|
||||
invoke CoCreateInstance,CLSID_TaskbarList,NULL,CLSCTX_INPROC_SERVER,IID_ITaskbarList,ShellTaskBar
|
||||
|
||||
invoke GetModuleHandle,0
|
||||
invoke DialogBoxParam,rax,IDD_COMDEMO,HWND_DESKTOP,COMDemo,0
|
||||
|
||||
cominvk ShellTaskBar,Release
|
||||
|
||||
invoke ExitProcess,0
|
||||
|
||||
proc COMDemo uses rbx, hwnd,msg,wparam,lparam
|
||||
mov [hwnd],rcx
|
||||
cmp edx,WM_INITDIALOG
|
||||
je .wminitdialog
|
||||
cmp edx,WM_COMMAND
|
||||
je .wmcommand
|
||||
cmp edx,WM_CLOSE
|
||||
je .wmclose
|
||||
xor eax,eax
|
||||
jmp .finish
|
||||
.wminitdialog:
|
||||
jmp .processed
|
||||
.wmcommand:
|
||||
cmp r8,BN_CLICKED shl 16 + ID_EXIT
|
||||
je .wmclose
|
||||
cmp r8,BN_CLICKED shl 16 + ID_SHOW
|
||||
je .show
|
||||
cmp r8,BN_CLICKED shl 16 + ID_HIDE
|
||||
jne .processed
|
||||
.hide:
|
||||
cominvk ShellTaskBar,HrInit
|
||||
cominvk ShellTaskBar,DeleteTab,[hwnd]
|
||||
jmp .processed
|
||||
.show:
|
||||
mov rbx,[ShellTaskBar]
|
||||
comcall rbx,ITaskBarList,HrInit
|
||||
comcall rbx,ITaskBarList,AddTab,[hwnd]
|
||||
comcall rbx,ITaskBarList,ActivateTab,[hwnd]
|
||||
jmp .processed
|
||||
.wmclose:
|
||||
invoke EndDialog,[hwnd],0
|
||||
.processed:
|
||||
mov eax,1
|
||||
.finish:
|
||||
ret
|
||||
endp
|
||||
|
||||
section '.data' data readable writeable
|
||||
|
||||
CLSID_TaskbarList GUID 56FDF344-FD6D-11D0-958A-006097C9A090
|
||||
IID_ITaskbarList GUID 56FDF342-FD6D-11D0-958A-006097C9A090
|
||||
|
||||
ShellTaskBar ITaskBarList
|
||||
|
||||
section '.idata' import data readable
|
||||
|
||||
library kernel,'KERNEL32.DLL',\
|
||||
user,'USER32.DLL',\
|
||||
ole,'OLE32.DLL'
|
||||
|
||||
import kernel,\
|
||||
GetModuleHandle,'GetModuleHandleA',\
|
||||
ExitProcess,'ExitProcess'
|
||||
|
||||
import user,\
|
||||
DialogBoxParam,'DialogBoxParamA',\
|
||||
EndDialog,'EndDialog'
|
||||
|
||||
import ole,\
|
||||
CoInitialize,'CoInitialize',\
|
||||
CoCreateInstance,'CoCreateInstance'
|
||||
|
||||
section '.rsrc' resource data readable
|
||||
|
||||
directory RT_DIALOG,dialogs
|
||||
|
||||
resource dialogs,\
|
||||
IDD_COMDEMO,LANG_ENGLISH+SUBLANG_DEFAULT,comdemo
|
||||
|
||||
dialog comdemo,'Taskbar item control',70,70,170,24,WS_CAPTION+WS_POPUP+WS_SYSMENU+DS_MODALFRAME
|
||||
dialogitem 'BUTTON','Show',ID_SHOW,4,4,45,15,WS_VISIBLE+WS_TABSTOP
|
||||
dialogitem 'BUTTON','Hide',ID_HIDE,54,4,45,15,WS_VISIBLE+WS_TABSTOP
|
||||
dialogitem 'BUTTON','Exit',ID_EXIT,120,4,45,15,WS_VISIBLE+WS_TABSTOP
|
||||
enddialog
|
||||
98
toolchain/fasmw17332/EXAMPLES/WIN64/WIN64AVX/WIN64AVX.ASM
Normal file
98
toolchain/fasmw17332/EXAMPLES/WIN64/WIN64AVX/WIN64AVX.ASM
Normal file
@@ -0,0 +1,98 @@
|
||||
|
||||
format PE64 NX GUI 6.0
|
||||
entry start
|
||||
|
||||
include 'win64a.inc'
|
||||
|
||||
section '.data' data readable writeable
|
||||
|
||||
_title db 'AVX playground',0
|
||||
_error db 'AVX instructions are not supported.',0
|
||||
|
||||
x dq 3.14159265389
|
||||
|
||||
vector_output:
|
||||
rept 16 i:0
|
||||
{
|
||||
db 'ymm',`i,': %f,%f,%f,%f',13,10
|
||||
}
|
||||
db 0
|
||||
|
||||
buffer db 1000h dup ?
|
||||
|
||||
section '.text' code readable executable
|
||||
|
||||
start:
|
||||
|
||||
mov eax,1
|
||||
cpuid
|
||||
and ecx,18000000h
|
||||
cmp ecx,18000000h
|
||||
jne no_AVX
|
||||
xor ecx,ecx
|
||||
xgetbv
|
||||
and eax,110b
|
||||
cmp eax,110b
|
||||
jne no_AVX
|
||||
|
||||
vbroadcastsd ymm0, [x]
|
||||
vsqrtpd ymm1, ymm0
|
||||
|
||||
vsubpd ymm2, ymm0, ymm1
|
||||
vsubpd ymm3, ymm1, ymm2
|
||||
|
||||
vaddpd xmm4, xmm2, xmm3
|
||||
vaddpd ymm5, ymm4, ymm0
|
||||
|
||||
vperm2f128 ymm6, ymm4, ymm5, 03h
|
||||
vshufpd ymm7, ymm6, ymm5, 10010011b
|
||||
|
||||
vroundpd ymm8, ymm7, 0011b
|
||||
vroundpd ymm9, ymm7, 0
|
||||
|
||||
sub rsp,418h
|
||||
|
||||
rept 16 i:0
|
||||
{
|
||||
vmovups [rsp+10h+i*32],ymm#i
|
||||
}
|
||||
|
||||
mov r8,[rsp+10h]
|
||||
mov r9,[rsp+18h]
|
||||
lea rdx,[vector_output]
|
||||
lea rcx,[buffer]
|
||||
call [sprintf]
|
||||
|
||||
xor ecx,ecx
|
||||
lea rdx,[buffer]
|
||||
lea r8,[_title]
|
||||
xor r9d,r9d
|
||||
call [MessageBoxA]
|
||||
|
||||
xor ecx,ecx
|
||||
call [ExitProcess]
|
||||
|
||||
no_AVX:
|
||||
|
||||
sub rsp,28h
|
||||
|
||||
xor ecx,ecx
|
||||
lea rdx,[_error]
|
||||
lea r8,[_title]
|
||||
mov r9d,10h
|
||||
call [MessageBoxA]
|
||||
|
||||
mov ecx,1
|
||||
call [ExitProcess]
|
||||
|
||||
section '.idata' import data readable writeable
|
||||
|
||||
library kernel32,'KERNEL32.DLL',\
|
||||
user32,'USER32.DLL',\
|
||||
msvcrt,'MSVCRT.DLL'
|
||||
|
||||
include 'api\kernel32.inc'
|
||||
include 'api\user32.inc'
|
||||
|
||||
import msvcrt,\
|
||||
sprintf,'sprintf'
|
||||
BIN
toolchain/fasmw17332/FASM.EXE
Normal file
BIN
toolchain/fasmw17332/FASM.EXE
Normal file
Binary file not shown.
BIN
toolchain/fasmw17332/FASM.pdf
Normal file
BIN
toolchain/fasmw17332/FASM.pdf
Normal file
Binary file not shown.
BIN
toolchain/fasmw17332/FASMW.EXE
Normal file
BIN
toolchain/fasmw17332/FASMW.EXE
Normal file
Binary file not shown.
535
toolchain/fasmw17332/INCLUDE/API/ADVAPI32.INC
Normal file
535
toolchain/fasmw17332/INCLUDE/API/ADVAPI32.INC
Normal file
@@ -0,0 +1,535 @@
|
||||
|
||||
; ADVAPI32 API calls
|
||||
|
||||
import advapi32,\
|
||||
AbortSystemShutdownA,'AbortSystemShutdownA',\
|
||||
AbortSystemShutdownW,'AbortSystemShutdownW',\
|
||||
AccessCheck,'AccessCheck',\
|
||||
AccessCheckAndAuditAlarmA,'AccessCheckAndAuditAlarmA',\
|
||||
AccessCheckAndAuditAlarmW,'AccessCheckAndAuditAlarmW',\
|
||||
AccessCheckByType,'AccessCheckByType',\
|
||||
AccessCheckByTypeAndAuditAlarmA,'AccessCheckByTypeAndAuditAlarmA',\
|
||||
AccessCheckByTypeAndAuditAlarmW,'AccessCheckByTypeAndAuditAlarmW',\
|
||||
AccessCheckByTypeResultList,'AccessCheckByTypeResultList',\
|
||||
AccessCheckByTypeResultListAndAuditAlarmA,'AccessCheckByTypeResultListAndAuditAlarmA',\
|
||||
AccessCheckByTypeResultListAndAuditAlarmW,'AccessCheckByTypeResultListAndAuditAlarmW',\
|
||||
AddAccessAllowedAce,'AddAccessAllowedAce',\
|
||||
AddAccessAllowedAceEx,'AddAccessAllowedAceEx',\
|
||||
AddAccessAllowedObjectAce,'AddAccessAllowedObjectAce',\
|
||||
AddAccessDeniedAce,'AddAccessDeniedAce',\
|
||||
AddAccessDeniedAceEx,'AddAccessDeniedAceEx',\
|
||||
AddAccessDeniedObjectAce,'AddAccessDeniedObjectAce',\
|
||||
AddAce,'AddAce',\
|
||||
AddAuditAccessAce,'AddAuditAccessAce',\
|
||||
AddAuditAccessAceEx,'AddAuditAccessAceEx',\
|
||||
AddAuditAccessObjectAce,'AddAuditAccessObjectAce',\
|
||||
AdjustTokenGroups,'AdjustTokenGroups',\
|
||||
AdjustTokenPrivileges,'AdjustTokenPrivileges',\
|
||||
AllocateAndInitializeSid,'AllocateAndInitializeSid',\
|
||||
AllocateLocallyUniqueId,'AllocateLocallyUniqueId',\
|
||||
AreAllAccessesGranted,'AreAllAccessesGranted',\
|
||||
AreAnyAccessesGranted,'AreAnyAccessesGranted',\
|
||||
BackupEventLogA,'BackupEventLogA',\
|
||||
BackupEventLogW,'BackupEventLogW',\
|
||||
BuildExplicitAccessWithNameA,'BuildExplicitAccessWithNameA',\
|
||||
BuildExplicitAccessWithNameW,'BuildExplicitAccessWithNameW',\
|
||||
BuildImpersonateExplicitAccessWithNameA,'BuildImpersonateExplicitAccessWithNameA',\
|
||||
BuildImpersonateExplicitAccessWithNameW,'BuildImpersonateExplicitAccessWithNameW',\
|
||||
BuildImpersonateTrusteeA,'BuildImpersonateTrusteeA',\
|
||||
BuildImpersonateTrusteeW,'BuildImpersonateTrusteeW',\
|
||||
BuildSecurityDescriptorA,'BuildSecurityDescriptorA',\
|
||||
BuildSecurityDescriptorW,'BuildSecurityDescriptorW',\
|
||||
BuildTrusteeWithNameA,'BuildTrusteeWithNameA',\
|
||||
BuildTrusteeWithNameW,'BuildTrusteeWithNameW',\
|
||||
BuildTrusteeWithSidA,'BuildTrusteeWithSidA',\
|
||||
BuildTrusteeWithSidW,'BuildTrusteeWithSidW',\
|
||||
CancelOverlappedAccess,'CancelOverlappedAccess',\
|
||||
ChangeServiceConfig2A,'ChangeServiceConfig2A',\
|
||||
ChangeServiceConfig2W,'ChangeServiceConfig2W',\
|
||||
ChangeServiceConfigA,'ChangeServiceConfigA',\
|
||||
ChangeServiceConfigW,'ChangeServiceConfigW',\
|
||||
ClearEventLogA,'ClearEventLogA',\
|
||||
ClearEventLogW,'ClearEventLogW',\
|
||||
CloseEventLog,'CloseEventLog',\
|
||||
CloseRaw,'CloseRaw',\
|
||||
CloseServiceHandle,'CloseServiceHandle',\
|
||||
ControlService,'ControlService',\
|
||||
ConvertAccessToSecurityDescriptorA,'ConvertAccessToSecurityDescriptorA',\
|
||||
ConvertAccessToSecurityDescriptorW,'ConvertAccessToSecurityDescriptorW',\
|
||||
ConvertSecurityDescriptorToAccessA,'ConvertSecurityDescriptorToAccessA',\
|
||||
ConvertSecurityDescriptorToAccessW,'ConvertSecurityDescriptorToAccessW',\
|
||||
ConvertSecurityDescriptorToAccessNamedA,'ConvertSecurityDescriptorToAccessNamedA',\
|
||||
ConvertSecurityDescriptorToAccessNamedW,'ConvertSecurityDescriptorToAccessNamedW',\
|
||||
ConvertToAutoInheritPrivateObjectSecurity,'ConvertToAutoInheritPrivateObjectSecurity',\
|
||||
CopySid,'CopySid',\
|
||||
CreatePrivateObjectSecurity,'CreatePrivateObjectSecurity',\
|
||||
CreatePrivateObjectSecurityEx,'CreatePrivateObjectSecurityEx',\
|
||||
CreateProcessAsUserA,'CreateProcessAsUserA',\
|
||||
CreateProcessAsUserW,'CreateProcessAsUserW',\
|
||||
CreateRestrictedToken,'CreateRestrictedToken',\
|
||||
CreateServiceA,'CreateServiceA',\
|
||||
CreateServiceW,'CreateServiceW',\
|
||||
CryptAcquireContextA,'CryptAcquireContextA',\
|
||||
CryptAcquireContextW,'CryptAcquireContextW',\
|
||||
CryptContextAddRef,'CryptContextAddRef',\
|
||||
CryptCreateHash,'CryptCreateHash',\
|
||||
CryptDecrypt,'CryptDecrypt',\
|
||||
CryptDeriveKey,'CryptDeriveKey',\
|
||||
CryptDestroyHash,'CryptDestroyHash',\
|
||||
CryptDestroyKey,'CryptDestroyKey',\
|
||||
CryptDuplicateHash,'CryptDuplicateHash',\
|
||||
CryptDuplicateKey,'CryptDuplicateKey',\
|
||||
CryptEncrypt,'CryptEncrypt',\
|
||||
CryptEnumProviderTypesA,'CryptEnumProviderTypesA',\
|
||||
CryptEnumProviderTypesW,'CryptEnumProviderTypesW',\
|
||||
CryptEnumProvidersA,'CryptEnumProvidersA',\
|
||||
CryptEnumProvidersW,'CryptEnumProvidersW',\
|
||||
CryptExportKey,'CryptExportKey',\
|
||||
CryptGenKey,'CryptGenKey',\
|
||||
CryptGenRandom,'CryptGenRandom',\
|
||||
CryptGetDefaultProviderA,'CryptGetDefaultProviderA',\
|
||||
CryptGetDefaultProviderW,'CryptGetDefaultProviderW',\
|
||||
CryptGetHashParam,'CryptGetHashParam',\
|
||||
CryptGetKeyParam,'CryptGetKeyParam',\
|
||||
CryptGetProvParam,'CryptGetProvParam',\
|
||||
CryptGetUserKey,'CryptGetUserKey',\
|
||||
CryptHashData,'CryptHashData',\
|
||||
CryptHashSessionKey,'CryptHashSessionKey',\
|
||||
CryptImportKey,'CryptImportKey',\
|
||||
CryptReleaseContext,'CryptReleaseContext',\
|
||||
CryptSetHashParam,'CryptSetHashParam',\
|
||||
CryptSetKeyParam,'CryptSetKeyParam',\
|
||||
CryptSetProvParam,'CryptSetProvParam',\
|
||||
CryptSetProviderA,'CryptSetProviderA',\
|
||||
CryptSetProviderW,'CryptSetProviderW',\
|
||||
CryptSetProviderExA,'CryptSetProviderExA',\
|
||||
CryptSetProviderExW,'CryptSetProviderExW',\
|
||||
CryptSignHashA,'CryptSignHashA',\
|
||||
CryptSignHashW,'CryptSignHashW',\
|
||||
CryptVerifySignatureA,'CryptVerifySignatureA',\
|
||||
CryptVerifySignatureW,'CryptVerifySignatureW',\
|
||||
DecryptFileA,'DecryptFileA',\
|
||||
DecryptFileW,'DecryptFileW',\
|
||||
DeleteAce,'DeleteAce',\
|
||||
DeleteService,'DeleteService',\
|
||||
DeregisterEventSource,'DeregisterEventSource',\
|
||||
DestroyPrivateObjectSecurity,'DestroyPrivateObjectSecurity',\
|
||||
DuplicateToken,'DuplicateToken',\
|
||||
DuplicateTokenEx,'DuplicateTokenEx',\
|
||||
ElfBackupEventLogFileA,'ElfBackupEventLogFileA',\
|
||||
ElfBackupEventLogFileW,'ElfBackupEventLogFileW',\
|
||||
ElfChangeNotify,'ElfChangeNotify',\
|
||||
ElfClearEventLogFileA,'ElfClearEventLogFileA',\
|
||||
ElfClearEventLogFileW,'ElfClearEventLogFileW',\
|
||||
ElfCloseEventLog,'ElfCloseEventLog',\
|
||||
ElfDeregisterEventSource,'ElfDeregisterEventSource',\
|
||||
ElfNumberOfRecords,'ElfNumberOfRecords',\
|
||||
ElfOldestRecord,'ElfOldestRecord',\
|
||||
ElfOpenBackupEventLogA,'ElfOpenBackupEventLogA',\
|
||||
ElfOpenBackupEventLogW,'ElfOpenBackupEventLogW',\
|
||||
ElfOpenEventLogA,'ElfOpenEventLogA',\
|
||||
ElfOpenEventLogW,'ElfOpenEventLogW',\
|
||||
ElfReadEventLogA,'ElfReadEventLogA',\
|
||||
ElfReadEventLogW,'ElfReadEventLogW',\
|
||||
ElfRegisterEventSourceA,'ElfRegisterEventSourceA',\
|
||||
ElfRegisterEventSourceW,'ElfRegisterEventSourceW',\
|
||||
ElfReportEventA,'ElfReportEventA',\
|
||||
ElfReportEventW,'ElfReportEventW',\
|
||||
EncryptFileA,'EncryptFileA',\
|
||||
EncryptFileW,'EncryptFileW',\
|
||||
EnumDependentServicesA,'EnumDependentServicesA',\
|
||||
EnumDependentServicesW,'EnumDependentServicesW',\
|
||||
EnumServicesStatusA,'EnumServicesStatusA',\
|
||||
EnumServicesStatusW,'EnumServicesStatusW',\
|
||||
EqualPrefixSid,'EqualPrefixSid',\
|
||||
EqualSid,'EqualSid',\
|
||||
FindFirstFreeAce,'FindFirstFreeAce',\
|
||||
FreeSid,'FreeSid',\
|
||||
GetAccessPermissionsForObjectA,'GetAccessPermissionsForObjectA',\
|
||||
GetAccessPermissionsForObjectW,'GetAccessPermissionsForObjectW',\
|
||||
GetAce,'GetAce',\
|
||||
GetAclInformation,'GetAclInformation',\
|
||||
GetAuditedPermissionsFromAclA,'GetAuditedPermissionsFromAclA',\
|
||||
GetAuditedPermissionsFromAclW,'GetAuditedPermissionsFromAclW',\
|
||||
GetCurrentHwProfileA,'GetCurrentHwProfileA',\
|
||||
GetCurrentHwProfileW,'GetCurrentHwProfileW',\
|
||||
GetEffectiveRightsFromAclA,'GetEffectiveRightsFromAclA',\
|
||||
GetEffectiveRightsFromAclW,'GetEffectiveRightsFromAclW',\
|
||||
GetExplicitEntriesFromAclA,'GetExplicitEntriesFromAclA',\
|
||||
GetExplicitEntriesFromAclW,'GetExplicitEntriesFromAclW',\
|
||||
GetFileSecurityA,'GetFileSecurityA',\
|
||||
GetFileSecurityW,'GetFileSecurityW',\
|
||||
GetKernelObjectSecurity,'GetKernelObjectSecurity',\
|
||||
GetLengthSid,'GetLengthSid',\
|
||||
GetMultipleTrusteeA,'GetMultipleTrusteeA',\
|
||||
GetMultipleTrusteeW,'GetMultipleTrusteeW',\
|
||||
GetMultipleTrusteeOperationA,'GetMultipleTrusteeOperationA',\
|
||||
GetMultipleTrusteeOperationW,'GetMultipleTrusteeOperationW',\
|
||||
GetNamedSecurityInfoA,'GetNamedSecurityInfoA',\
|
||||
GetNamedSecurityInfoW,'GetNamedSecurityInfoW',\
|
||||
GetNamedSecurityInfoExA,'GetNamedSecurityInfoExA',\
|
||||
GetNamedSecurityInfoExW,'GetNamedSecurityInfoExW',\
|
||||
GetNumberOfEventLogRecords,'GetNumberOfEventLogRecords',\
|
||||
GetOldestEventLogRecord,'GetOldestEventLogRecord',\
|
||||
GetOverlappedAccessResults,'GetOverlappedAccessResults',\
|
||||
GetPrivateObjectSecurity,'GetPrivateObjectSecurity',\
|
||||
GetSecurityDescriptorControl,'GetSecurityDescriptorControl',\
|
||||
GetSecurityDescriptorDacl,'GetSecurityDescriptorDacl',\
|
||||
GetSecurityDescriptorGroup,'GetSecurityDescriptorGroup',\
|
||||
GetSecurityDescriptorLength,'GetSecurityDescriptorLength',\
|
||||
GetSecurityDescriptorOwner,'GetSecurityDescriptorOwner',\
|
||||
GetSecurityDescriptorSacl,'GetSecurityDescriptorSacl',\
|
||||
GetSecurityInfo,'GetSecurityInfo',\
|
||||
GetSecurityInfoExA,'GetSecurityInfoExA',\
|
||||
GetSecurityInfoExW,'GetSecurityInfoExW',\
|
||||
GetServiceDisplayNameA,'GetServiceDisplayNameA',\
|
||||
GetServiceDisplayNameW,'GetServiceDisplayNameW',\
|
||||
GetServiceKeyNameA,'GetServiceKeyNameA',\
|
||||
GetServiceKeyNameW,'GetServiceKeyNameW',\
|
||||
GetSidLengthRequiredA,'GetSidLengthRequiredA',\
|
||||
GetSidLengthRequiredW,'GetSidLengthRequiredW',\
|
||||
GetSidSubAuthority,'GetSidSubAuthority',\
|
||||
GetSidSubAuthorityCount,'GetSidSubAuthorityCount',\
|
||||
GetTokenInformation,'GetTokenInformation',\
|
||||
GetTrusteeNameA,'GetTrusteeNameA',\
|
||||
GetTrusteeNameW,'GetTrusteeNameW',\
|
||||
GetTrusteeTypeA,'GetTrusteeTypeA',\
|
||||
GetTrusteeTypeW,'GetTrusteeTypeW',\
|
||||
GetUserNameA,'GetUserNameA',\
|
||||
GetUserNameW,'GetUserNameW',\
|
||||
I_ScSetServiceBitsA,'I_ScSetServiceBitsA',\
|
||||
I_ScSetServiceBitsW,'I_ScSetServiceBitsW',\
|
||||
ImpersonateLoggedOnUser,'ImpersonateLoggedOnUser',\
|
||||
ImpersonateNamedPipeClient,'ImpersonateNamedPipeClient',\
|
||||
ImpersonateSelf,'ImpersonateSelf',\
|
||||
InitializeAcl,'InitializeAcl',\
|
||||
InitializeSecurityDescriptor,'InitializeSecurityDescriptor',\
|
||||
InitializeSid,'InitializeSid',\
|
||||
InitiateSystemShutdownA,'InitiateSystemShutdownA',\
|
||||
InitiateSystemShutdownW,'InitiateSystemShutdownW',\
|
||||
IsTextUnicode,'IsTextUnicode',\
|
||||
IsTokenRestricted,'IsTokenRestricted',\
|
||||
IsValidAcl,'IsValidAcl',\
|
||||
IsValidSecurityDescriptor,'IsValidSecurityDescriptor',\
|
||||
IsValidSid,'IsValidSid',\
|
||||
LockServiceDatabase,'LockServiceDatabase',\
|
||||
LogonUserA,'LogonUserA',\
|
||||
LogonUserW,'LogonUserW',\
|
||||
LookupAccountNameA,'LookupAccountNameA',\
|
||||
LookupAccountNameW,'LookupAccountNameW',\
|
||||
LookupAccountSidA,'LookupAccountSidA',\
|
||||
LookupAccountSidW,'LookupAccountSidW',\
|
||||
LookupPrivilegeDisplayNameA,'LookupPrivilegeDisplayNameA',\
|
||||
LookupPrivilegeDisplayNameW,'LookupPrivilegeDisplayNameW',\
|
||||
LookupPrivilegeNameA,'LookupPrivilegeNameA',\
|
||||
LookupPrivilegeNameW,'LookupPrivilegeNameW',\
|
||||
LookupPrivilegeValueA,'LookupPrivilegeValueA',\
|
||||
LookupPrivilegeValueW,'LookupPrivilegeValueW',\
|
||||
LookupSecurityDescriptorPartsA,'LookupSecurityDescriptorPartsA',\
|
||||
LookupSecurityDescriptorPartsW,'LookupSecurityDescriptorPartsW',\
|
||||
LsaAddAccountRights,'LsaAddAccountRights',\
|
||||
LsaAddPrivilegesToAccount,'LsaAddPrivilegesToAccount',\
|
||||
LsaClearAuditLog,'LsaClearAuditLog',\
|
||||
LsaClose,'LsaClose',\
|
||||
LsaCreateAccount,'LsaCreateAccount',\
|
||||
LsaCreateSecret,'LsaCreateSecret',\
|
||||
LsaCreateTrustedDomain,'LsaCreateTrustedDomain',\
|
||||
LsaCreateTrustedDomainEx,'LsaCreateTrustedDomainEx',\
|
||||
LsaDelete,'LsaDelete',\
|
||||
LsaDeleteTrustedDomain,'LsaDeleteTrustedDomain',\
|
||||
LsaEnumerateAccountRights,'LsaEnumerateAccountRights',\
|
||||
LsaEnumerateAccounts,'LsaEnumerateAccounts',\
|
||||
LsaEnumerateAccountsWithUserRight,'LsaEnumerateAccountsWithUserRight',\
|
||||
LsaEnumeratePrivileges,'LsaEnumeratePrivileges',\
|
||||
LsaEnumeratePrivilegesOfAccount,'LsaEnumeratePrivilegesOfAccount',\
|
||||
LsaEnumerateTrustedDomains,'LsaEnumerateTrustedDomains',\
|
||||
LsaEnumerateTrustedDomainsEx,'LsaEnumerateTrustedDomainsEx',\
|
||||
LsaFreeMemory,'LsaFreeMemory',\
|
||||
LsaGetQuotasForAccount,'LsaGetQuotasForAccount',\
|
||||
LsaGetSystemAccessAccount,'LsaGetSystemAccessAccount',\
|
||||
LsaGetUserName,'LsaGetUserName',\
|
||||
LsaICLookupNames,'LsaICLookupNames',\
|
||||
LsaICLookupSids,'LsaICLookupSids',\
|
||||
LsaIGetTrustedDomainAuthInfoBlobs,'LsaIGetTrustedDomainAuthInfoBlobs',\
|
||||
LsaISetTrustedDomainAuthInfoBlobs,'LsaISetTrustedDomainAuthInfoBlobs',\
|
||||
LsaLookupNames,'LsaLookupNames',\
|
||||
LsaLookupPrivilegeDisplayName,'LsaLookupPrivilegeDisplayName',\
|
||||
LsaLookupPrivilegeName,'LsaLookupPrivilegeName',\
|
||||
LsaLookupPrivilegeValue,'LsaLookupPrivilegeValue',\
|
||||
LsaLookupSids,'LsaLookupSids',\
|
||||
LsaNtStatusToWinError,'LsaNtStatusToWinError',\
|
||||
LsaOpenAccount,'LsaOpenAccount',\
|
||||
LsaOpenPolicy,'LsaOpenPolicy',\
|
||||
LsaOpenSecret,'LsaOpenSecret',\
|
||||
LsaOpenTrustedDomain,'LsaOpenTrustedDomain',\
|
||||
LsaQueryDomainInformationPolicy,'LsaQueryDomainInformationPolicy',\
|
||||
LsaQueryInfoTrustedDomain,'LsaQueryInfoTrustedDomain',\
|
||||
LsaQueryInformationPolicy,'LsaQueryInformationPolicy',\
|
||||
LsaQueryLocalInformationPolicy,'LsaQueryLocalInformationPolicy',\
|
||||
LsaQuerySecret,'LsaQuerySecret',\
|
||||
LsaQuerySecurityObject,'LsaQuerySecurityObject',\
|
||||
LsaQueryTrustedDomainInfo,'LsaQueryTrustedDomainInfo',\
|
||||
LsaQueryTrustedDomainInfoByName,'LsaQueryTrustedDomainInfoByName',\
|
||||
LsaRemoveAccountRights,'LsaRemoveAccountRights',\
|
||||
LsaRemovePrivilegesFromAccount,'LsaRemovePrivilegesFromAccount',\
|
||||
LsaRetrievePrivateData,'LsaRetrievePrivateData',\
|
||||
LsaSetDomainInformationPolicy,'LsaSetDomainInformationPolicy',\
|
||||
LsaSetInformationPolicy,'LsaSetInformationPolicy',\
|
||||
LsaSetInformationTrustedDomain,'LsaSetInformationTrustedDomain',\
|
||||
LsaSetLocalInformationPolicy,'LsaSetLocalInformationPolicy',\
|
||||
LsaSetQuotasForAccount,'LsaSetQuotasForAccount',\
|
||||
LsaSetSecret,'LsaSetSecret',\
|
||||
LsaSetSecurityObject,'LsaSetSecurityObject',\
|
||||
LsaSetSystemAccessAccount,'LsaSetSystemAccessAccount',\
|
||||
LsaSetTrustedDomainInfoByName,'LsaSetTrustedDomainInfoByName',\
|
||||
LsaSetTrustedDomainInformation,'LsaSetTrustedDomainInformation',\
|
||||
LsaStorePrivateData,'LsaStorePrivateData',\
|
||||
MakeAbsoluteSD,'MakeAbsoluteSD',\
|
||||
MakeSelfRelativeSD,'MakeSelfRelativeSD',\
|
||||
MapGenericMask,'MapGenericMask',\
|
||||
NotifyBootConfigStatus,'NotifyBootConfigStatus',\
|
||||
NotifyChangeEventLog,'NotifyChangeEventLog',\
|
||||
ObjectCloseAuditAlarmA,'ObjectCloseAuditAlarmA',\
|
||||
ObjectCloseAuditAlarmW,'ObjectCloseAuditAlarmW',\
|
||||
ObjectDeleteAuditAlarmA,'ObjectDeleteAuditAlarmA',\
|
||||
ObjectDeleteAuditAlarmW,'ObjectDeleteAuditAlarmW',\
|
||||
ObjectOpenAuditAlarmA,'ObjectOpenAuditAlarmA',\
|
||||
ObjectOpenAuditAlarmW,'ObjectOpenAuditAlarmW',\
|
||||
ObjectPrivilegeAuditAlarmA,'ObjectPrivilegeAuditAlarmA',\
|
||||
ObjectPrivilegeAuditAlarmW,'ObjectPrivilegeAuditAlarmW',\
|
||||
OpenBackupEventLogA,'OpenBackupEventLogA',\
|
||||
OpenBackupEventLogW,'OpenBackupEventLogW',\
|
||||
OpenEventLogA,'OpenEventLogA',\
|
||||
OpenEventLogW,'OpenEventLogW',\
|
||||
OpenProcessToken,'OpenProcessToken',\
|
||||
OpenRawA,'OpenRawA',\
|
||||
OpenRawW,'OpenRawW',\
|
||||
OpenSCManagerA,'OpenSCManagerA',\
|
||||
OpenSCManagerW,'OpenSCManagerW',\
|
||||
OpenServiceA,'OpenServiceA',\
|
||||
OpenServiceW,'OpenServiceW',\
|
||||
OpenThreadToken,'OpenThreadToken',\
|
||||
PrivilegeCheck,'PrivilegeCheck',\
|
||||
PrivilegedServiceAuditAlarmA,'PrivilegedServiceAuditAlarmA',\
|
||||
PrivilegedServiceAuditAlarmW,'PrivilegedServiceAuditAlarmW',\
|
||||
QueryRecoveryAgentsA,'QueryRecoveryAgentsA',\
|
||||
QueryRecoveryAgentsW,'QueryRecoveryAgentsW',\
|
||||
QueryServiceConfig2A,'QueryServiceConfig2A',\
|
||||
QueryServiceConfig2W,'QueryServiceConfig2W',\
|
||||
QueryServiceConfigA,'QueryServiceConfigA',\
|
||||
QueryServiceConfigW,'QueryServiceConfigW',\
|
||||
QueryServiceLockStatusA,'QueryServiceLockStatusA',\
|
||||
QueryServiceLockStatusW,'QueryServiceLockStatusW',\
|
||||
QueryServiceObjectSecurity,'QueryServiceObjectSecurity',\
|
||||
QueryServiceStatus,'QueryServiceStatus',\
|
||||
QueryWindows31FilesMigration,'QueryWindows31FilesMigration',\
|
||||
ReadEventLogA,'ReadEventLogA',\
|
||||
ReadEventLogW,'ReadEventLogW',\
|
||||
ReadRaw,'ReadRaw',\
|
||||
RegCloseKey,'RegCloseKey',\
|
||||
RegConnectRegistryA,'RegConnectRegistryA',\
|
||||
RegConnectRegistryW,'RegConnectRegistryW',\
|
||||
RegCreateKeyA,'RegCreateKeyA',\
|
||||
RegCreateKeyW,'RegCreateKeyW',\
|
||||
RegCreateKeyExA,'RegCreateKeyExA',\
|
||||
RegCreateKeyExW,'RegCreateKeyExW',\
|
||||
RegDeleteKeyA,'RegDeleteKeyA',\
|
||||
RegDeleteKeyW,'RegDeleteKeyW',\
|
||||
RegDeleteValueA,'RegDeleteValueA',\
|
||||
RegDeleteValueW,'RegDeleteValueW',\
|
||||
RegEnumKeyA,'RegEnumKeyA',\
|
||||
RegEnumKeyW,'RegEnumKeyW',\
|
||||
RegEnumKeyExA,'RegEnumKeyExA',\
|
||||
RegEnumKeyExW,'RegEnumKeyExW',\
|
||||
RegEnumValueA,'RegEnumValueA',\
|
||||
RegEnumValueW,'RegEnumValueW',\
|
||||
RegFlushKey,'RegFlushKey',\
|
||||
RegGetKeySecurity,'RegGetKeySecurity',\
|
||||
RegLoadKeyA,'RegLoadKeyA',\
|
||||
RegLoadKeyW,'RegLoadKeyW',\
|
||||
RegNotifyChangeKeyValue,'RegNotifyChangeKeyValue',\
|
||||
RegOpenKeyA,'RegOpenKeyA',\
|
||||
RegOpenKeyW,'RegOpenKeyW',\
|
||||
RegOpenKeyExA,'RegOpenKeyExA',\
|
||||
RegOpenKeyExW,'RegOpenKeyExW',\
|
||||
RegOverridePredefKey,'RegOverridePredefKey',\
|
||||
RegQueryInfoKeyA,'RegQueryInfoKeyA',\
|
||||
RegQueryInfoKeyW,'RegQueryInfoKeyW',\
|
||||
RegQueryMultipleValuesA,'RegQueryMultipleValuesA',\
|
||||
RegQueryMultipleValuesW,'RegQueryMultipleValuesW',\
|
||||
RegQueryValueA,'RegQueryValueA',\
|
||||
RegQueryValueW,'RegQueryValueW',\
|
||||
RegQueryValueExA,'RegQueryValueExA',\
|
||||
RegQueryValueExW,'RegQueryValueExW',\
|
||||
RegReplaceKeyA,'RegReplaceKeyA',\
|
||||
RegReplaceKeyW,'RegReplaceKeyW',\
|
||||
RegRestoreKeyA,'RegRestoreKeyA',\
|
||||
RegRestoreKeyW,'RegRestoreKeyW',\
|
||||
RegSaveKeyA,'RegSaveKeyA',\
|
||||
RegSaveKeyW,'RegSaveKeyW',\
|
||||
RegSetKeySecurity,'RegSetKeySecurity',\
|
||||
RegSetValueA,'RegSetValueA',\
|
||||
RegSetValueW,'RegSetValueW',\
|
||||
RegSetValueExA,'RegSetValueExA',\
|
||||
RegSetValueExW,'RegSetValueExW',\
|
||||
RegUnLoadKeyA,'RegUnLoadKeyA',\
|
||||
RegUnLoadKeyW,'RegUnLoadKeyW',\
|
||||
RegisterEventSourceA,'RegisterEventSourceA',\
|
||||
RegisterEventSourceW,'RegisterEventSourceW',\
|
||||
RegisterServiceCtrlHandlerA,'RegisterServiceCtrlHandlerA',\
|
||||
RegisterServiceCtrlHandlerW,'RegisterServiceCtrlHandlerW',\
|
||||
ReportEventA,'ReportEventA',\
|
||||
ReportEventW,'ReportEventW',\
|
||||
RevertToSelf,'RevertToSelf',\
|
||||
SetAclInformation,'SetAclInformation',\
|
||||
SetEntriesInAccessListA,'SetEntriesInAccessListA',\
|
||||
SetEntriesInAccessListW,'SetEntriesInAccessListW',\
|
||||
SetEntriesInAclA,'SetEntriesInAclA',\
|
||||
SetEntriesInAclW,'SetEntriesInAclW',\
|
||||
SetEntriesInAuditListA,'SetEntriesInAuditListA',\
|
||||
SetEntriesInAuditListW,'SetEntriesInAuditListW',\
|
||||
SetFileSecurityA,'SetFileSecurityA',\
|
||||
SetFileSecurityW,'SetFileSecurityW',\
|
||||
SetKernelObjectSecurity,'SetKernelObjectSecurity',\
|
||||
SetNamedSecurityInfoA,'SetNamedSecurityInfoA',\
|
||||
SetNamedSecurityInfoW,'SetNamedSecurityInfoW',\
|
||||
SetNamedSecurityInfoExA,'SetNamedSecurityInfoExA',\
|
||||
SetNamedSecurityInfoExW,'SetNamedSecurityInfoExW',\
|
||||
SetPrivateObjectSecurity,'SetPrivateObjectSecurity',\
|
||||
SetPrivateObjectSecurityEx,'SetPrivateObjectSecurityEx',\
|
||||
SetSecurityDescriptorControl,'SetSecurityDescriptorControl',\
|
||||
SetSecurityDescriptorDacl,'SetSecurityDescriptorDacl',\
|
||||
SetSecurityDescriptorGroup,'SetSecurityDescriptorGroup',\
|
||||
SetSecurityDescriptorOwner,'SetSecurityDescriptorOwner',\
|
||||
SetSecurityDescriptorSacl,'SetSecurityDescriptorSacl',\
|
||||
SetSecurityInfo,'SetSecurityInfo',\
|
||||
SetSecurityInfoExA,'SetSecurityInfoExA',\
|
||||
SetSecurityInfoExW,'SetSecurityInfoExW',\
|
||||
SetServiceBits,'SetServiceBits',\
|
||||
SetServiceObjectSecurity,'SetServiceObjectSecurity',\
|
||||
SetServiceStatus,'SetServiceStatus',\
|
||||
SetThreadToken,'SetThreadToken',\
|
||||
SetTokenInformation,'SetTokenInformation',\
|
||||
StartServiceA,'StartServiceA',\
|
||||
StartServiceW,'StartServiceW',\
|
||||
StartServiceCtrlDispatcherA,'StartServiceCtrlDispatcherA',\
|
||||
StartServiceCtrlDispatcherW,'StartServiceCtrlDispatcherW',\
|
||||
SynchronizeWindows31FilesAndWindowsNTRegistry,'SynchronizeWindows31FilesAndWindowsNTRegistry',\
|
||||
TrusteeAccessToObjectA,'TrusteeAccessToObjectA',\
|
||||
TrusteeAccessToObjectW,'TrusteeAccessToObjectW',\
|
||||
UnlockServiceDatabase,'UnlockServiceDatabase',\
|
||||
WriteRaw,'WriteRaw'
|
||||
|
||||
api AbortSystemShutdown,\
|
||||
AccessCheckAndAuditAlarm,\
|
||||
AccessCheckByTypeAndAuditAlarm,\
|
||||
AccessCheckByTypeResultListAndAuditAlarm,\
|
||||
BackupEventLog,\
|
||||
BuildExplicitAccessWithName,\
|
||||
BuildImpersonateExplicitAccessWithName,\
|
||||
BuildImpersonateTrustee,\
|
||||
BuildSecurityDescriptor,\
|
||||
BuildTrusteeWithName,\
|
||||
BuildTrusteeWithSid,\
|
||||
ChangeServiceConfig2,\
|
||||
ChangeServiceConfig,\
|
||||
ClearEventLog,\
|
||||
ConvertAccessToSecurityDescriptor,\
|
||||
ConvertSecurityDescriptorToAccess,\
|
||||
ConvertSecurityDescriptorToAccessNamed,\
|
||||
CreateProcessAsUser,\
|
||||
CreateService,\
|
||||
CryptAcquireContext,\
|
||||
CryptEnumProviderTypes,\
|
||||
CryptEnumProviders,\
|
||||
CryptGetDefaultProvider,\
|
||||
CryptSetProvider,\
|
||||
CryptSetProviderEx,\
|
||||
CryptSignHash,\
|
||||
CryptVerifySignature,\
|
||||
DecryptFile,\
|
||||
ElfBackupEventLogFile,\
|
||||
ElfClearEventLogFile,\
|
||||
ElfOpenBackupEventLog,\
|
||||
ElfOpenEventLog,\
|
||||
ElfReadEventLog,\
|
||||
ElfRegisterEventSource,\
|
||||
ElfReportEvent,\
|
||||
EncryptFile,\
|
||||
EnumDependentServices,\
|
||||
EnumServicesStatus,\
|
||||
GetAccessPermissionsForObject,\
|
||||
GetAuditedPermissionsFromAcl,\
|
||||
GetCurrentHwProfile,\
|
||||
GetEffectiveRightsFromAcl,\
|
||||
GetExplicitEntriesFromAcl,\
|
||||
GetFileSecurity,\
|
||||
GetMultipleTrustee,\
|
||||
GetMultipleTrusteeOperation,\
|
||||
GetNamedSecurityInfo,\
|
||||
GetNamedSecurityInfoEx,\
|
||||
GetSecurityInfoEx,\
|
||||
GetServiceDisplayName,\
|
||||
GetServiceKeyName,\
|
||||
GetSidLengthRequired,\
|
||||
GetTrusteeName,\
|
||||
GetTrusteeType,\
|
||||
GetUserName,\
|
||||
I_ScSetServiceBits,\
|
||||
InitiateSystemShutdown,\
|
||||
LogonUser,\
|
||||
LookupAccountName,\
|
||||
LookupAccountSid,\
|
||||
LookupPrivilegeDisplayName,\
|
||||
LookupPrivilegeName,\
|
||||
LookupPrivilegeValue,\
|
||||
LookupSecurityDescriptorParts,\
|
||||
ObjectCloseAuditAlarm,\
|
||||
ObjectDeleteAuditAlarm,\
|
||||
ObjectOpenAuditAlarm,\
|
||||
ObjectPrivilegeAuditAlarm,\
|
||||
OpenBackupEventLog,\
|
||||
OpenEventLog,\
|
||||
OpenRaw,\
|
||||
OpenSCManager,\
|
||||
OpenService,\
|
||||
PrivilegedServiceAuditAlarm,\
|
||||
QueryRecoveryAgents,\
|
||||
QueryServiceConfig2,\
|
||||
QueryServiceConfig,\
|
||||
QueryServiceLockStatus,\
|
||||
ReadEventLog,\
|
||||
RegConnectRegistry,\
|
||||
RegCreateKey,\
|
||||
RegCreateKeyEx,\
|
||||
RegDeleteKey,\
|
||||
RegDeleteValue,\
|
||||
RegEnumKey,\
|
||||
RegEnumKeyEx,\
|
||||
RegEnumValue,\
|
||||
RegLoadKey,\
|
||||
RegOpenKey,\
|
||||
RegOpenKeyEx,\
|
||||
RegQueryInfoKey,\
|
||||
RegQueryMultipleValues,\
|
||||
RegQueryValue,\
|
||||
RegQueryValueEx,\
|
||||
RegReplaceKey,\
|
||||
RegRestoreKey,\
|
||||
RegSaveKey,\
|
||||
RegSetValue,\
|
||||
RegSetValueEx,\
|
||||
RegUnLoadKey,\
|
||||
RegisterEventSource,\
|
||||
RegisterServiceCtrlHandler,\
|
||||
ReportEvent,\
|
||||
SetEntriesInAccessList,\
|
||||
SetEntriesInAcl,\
|
||||
SetEntriesInAuditList,\
|
||||
SetFileSecurity,\
|
||||
SetNamedSecurityInfo,\
|
||||
SetNamedSecurityInfoEx,\
|
||||
SetSecurityInfoEx,\
|
||||
StartService,\
|
||||
StartServiceCtrlDispatcher,\
|
||||
TrusteeAccessToObject
|
||||
81
toolchain/fasmw17332/INCLUDE/API/COMCTL32.INC
Normal file
81
toolchain/fasmw17332/INCLUDE/API/COMCTL32.INC
Normal file
@@ -0,0 +1,81 @@
|
||||
|
||||
; COMCTL32 API calls
|
||||
|
||||
import comctl32,\
|
||||
CreateMappedBitmap,'CreateMappedBitmap',\
|
||||
CreatePropertySheetPageA,'CreatePropertySheetPageA',\
|
||||
CreatePropertySheetPageW,'CreatePropertySheetPageW',\
|
||||
CreateStatusWindowA,'CreateStatusWindowA',\
|
||||
CreateStatusWindowW,'CreateStatusWindowW',\
|
||||
CreateToolbar,'CreateToolbar',\
|
||||
CreateToolbarEx,'CreateToolbarEx',\
|
||||
CreateUpDownControl,'CreateUpDownControl',\
|
||||
DestroyPropertySheetPage,'DestroyPropertySheetPage',\
|
||||
DrawInsert,'DrawInsert',\
|
||||
DrawStatusTextA,'DrawStatusTextA',\
|
||||
DrawStatusTextW,'DrawStatusTextW',\
|
||||
FlatSB_EnableScrollBar,'FlatSB_EnableScrollBar',\
|
||||
FlatSB_GetScrollInfo,'FlatSB_GetScrollInfo',\
|
||||
FlatSB_GetScrollPos,'FlatSB_GetScrollPos',\
|
||||
FlatSB_GetScrollProp,'FlatSB_GetScrollProp',\
|
||||
FlatSB_GetScrollRange,'FlatSB_GetScrollRange',\
|
||||
FlatSB_SetScrollInfo,'FlatSB_SetScrollInfo',\
|
||||
FlatSB_SetScrollPos,'FlatSB_SetScrollPos',\
|
||||
FlatSB_SetScrollProp,'FlatSB_SetScrollProp',\
|
||||
FlatSB_SetScrollRange,'FlatSB_SetScrollRange',\
|
||||
FlatSB_ShowScrollBar,'FlatSB_ShowScrollBar',\
|
||||
GetEffectiveClientRect,'GetEffectiveClientRect',\
|
||||
ImageList_Add,'ImageList_Add',\
|
||||
ImageList_AddIcon,'ImageList_AddIcon',\
|
||||
ImageList_AddMasked,'ImageList_AddMasked',\
|
||||
ImageList_BeginDrag,'ImageList_BeginDrag',\
|
||||
ImageList_Copy,'ImageList_Copy',\
|
||||
ImageList_Create,'ImageList_Create',\
|
||||
ImageList_Destroy,'ImageList_Destroy',\
|
||||
ImageList_DragEnter,'ImageList_DragEnter',\
|
||||
ImageList_DragLeave,'ImageList_DragLeave',\
|
||||
ImageList_DragMove,'ImageList_DragMove',\
|
||||
ImageList_DragShowNolock,'ImageList_DragShowNolock',\
|
||||
ImageList_Draw,'ImageList_Draw',\
|
||||
ImageList_DrawEx,'ImageList_DrawEx',\
|
||||
ImageList_DrawIndirect,'ImageList_DrawIndirect',\
|
||||
ImageList_Duplicate,'ImageList_Duplicate',\
|
||||
ImageList_EndDrag,'ImageList_EndDrag',\
|
||||
ImageList_GetBkColor,'ImageList_GetBkColor',\
|
||||
ImageList_GetDragImage,'ImageList_GetDragImage',\
|
||||
ImageList_GetIcon,'ImageList_GetIcon',\
|
||||
ImageList_GetIconSize,'ImageList_GetIconSize',\
|
||||
ImageList_GetImageCount,'ImageList_GetImageCount',\
|
||||
ImageList_GetImageInfo,'ImageList_GetImageInfo',\
|
||||
ImageList_GetImageRect,'ImageList_GetImageRect',\
|
||||
ImageList_LoadImageA,'ImageList_LoadImageA',\
|
||||
ImageList_LoadImageW,'ImageList_LoadImageW',\
|
||||
ImageList_Merge,'ImageList_Merge',\
|
||||
ImageList_Read,'ImageList_Read',\
|
||||
ImageList_Remove,'ImageList_Remove',\
|
||||
ImageList_Replace,'ImageList_Replace',\
|
||||
ImageList_ReplaceIcon,'ImageList_ReplaceIcon',\
|
||||
ImageList_SetBkColor,'ImageList_SetBkColor',\
|
||||
ImageList_SetDragCursorImage,'ImageList_SetDragCursorImage',\
|
||||
ImageList_SetFilter,'ImageList_SetFilter',\
|
||||
ImageList_SetIconSize,'ImageList_SetIconSize',\
|
||||
ImageList_SetImageCount,'ImageList_SetImageCount',\
|
||||
ImageList_SetOverlayImage,'ImageList_SetOverlayImage',\
|
||||
ImageList_Write,'ImageList_Write',\
|
||||
InitCommonControls,'InitCommonControls',\
|
||||
InitCommonControlsEx,'InitCommonControlsEx',\
|
||||
InitializeFlatSB,'InitializeFlatSB',\
|
||||
LBItemFromPt,'LBItemFromPt',\
|
||||
MakeDragList,'MakeDragList',\
|
||||
MenuHelp,'MenuHelp',\
|
||||
PropertySheetA,'PropertySheetA',\
|
||||
PropertySheetW,'PropertySheetW',\
|
||||
ShowHideMenuCtl,'ShowHideMenuCtl',\
|
||||
UninitializeFlatSB,'UninitializeFlatSB',\
|
||||
_TrackMouseEvent,'_TrackMouseEvent'
|
||||
|
||||
api CreatePropertySheetPage,\
|
||||
CreateStatusWindow,\
|
||||
DrawStatusText,\
|
||||
ImageList_LoadImage,\
|
||||
PropertySheet
|
||||
38
toolchain/fasmw17332/INCLUDE/API/COMDLG32.INC
Normal file
38
toolchain/fasmw17332/INCLUDE/API/COMDLG32.INC
Normal file
@@ -0,0 +1,38 @@
|
||||
|
||||
; COMDLG32 API calls
|
||||
|
||||
import comdlg32,\
|
||||
ChooseColorA,'ChooseColorA',\
|
||||
ChooseColorW,'ChooseColorW',\
|
||||
ChooseFontA,'ChooseFontA',\
|
||||
ChooseFontW,'ChooseFontW',\
|
||||
CommDlgExtendedError,'CommDlgExtendedError',\
|
||||
FindTextA,'FindTextA',\
|
||||
FindTextW,'FindTextW',\
|
||||
FormatCharDlgProc,'FormatCharDlgProc',\
|
||||
GetFileTitleA,'GetFileTitleA',\
|
||||
GetFileTitleW,'GetFileTitleW',\
|
||||
GetOpenFileNameA,'GetOpenFileNameA',\
|
||||
GetOpenFileNameW,'GetOpenFileNameW',\
|
||||
GetSaveFileNameA,'GetSaveFileNameA',\
|
||||
GetSaveFileNameW,'GetSaveFileNameW',\
|
||||
LoadAlterBitmap,'LoadAlterBitmap',\
|
||||
PageSetupDlgA,'PageSetupDlgA',\
|
||||
PageSetupDlgW,'PageSetupDlgW',\
|
||||
PrintDlgA,'PrintDlgA',\
|
||||
PrintDlgW,'PrintDlgW',\
|
||||
ReplaceTextA,'ReplaceTextA',\
|
||||
ReplaceTextW,'ReplaceTextW',\
|
||||
WantArrows,'WantArrows',\
|
||||
dwLBSubclass,'dwLBSubclass',\
|
||||
dwOKSubclass,'dwOKSubclass'
|
||||
|
||||
api ChooseColor,\
|
||||
ChooseFont,\
|
||||
FindText,\
|
||||
GetFileTitle,\
|
||||
GetOpenFileName,\
|
||||
GetSaveFileName,\
|
||||
PageSetupDlg,\
|
||||
PrintDlg,\
|
||||
ReplaceText
|
||||
419
toolchain/fasmw17332/INCLUDE/API/GDI32.INC
Normal file
419
toolchain/fasmw17332/INCLUDE/API/GDI32.INC
Normal file
@@ -0,0 +1,419 @@
|
||||
|
||||
; GDI32 API calls
|
||||
|
||||
import gdi32,\
|
||||
AbortDoc,'AbortDoc',\
|
||||
AbortPath,'AbortPath',\
|
||||
AddFontMemResourceEx,'AddFontMemResourceEx',\
|
||||
AddFontResourceA,'AddFontResourceA',\
|
||||
AddFontResourceW,'AddFontResourceW',\
|
||||
AddFontResourceExA,'AddFontResourceExA',\
|
||||
AddFontResourceExW,'AddFontResourceExW',\
|
||||
AngleArc,'AngleArc',\
|
||||
AnimatePalette,'AnimatePalette',\
|
||||
Arc,'Arc',\
|
||||
ArcTo,'ArcTo',\
|
||||
BeginPath,'BeginPath',\
|
||||
BitBlt,'BitBlt',\
|
||||
CancelDC,'CancelDC',\
|
||||
CheckColorsInGamut,'CheckColorsInGamut',\
|
||||
ChoosePixelFormat,'ChoosePixelFormat',\
|
||||
Chord,'Chord',\
|
||||
CloseEnhMetaFile,'CloseEnhMetaFile',\
|
||||
CloseFigure,'CloseFigure',\
|
||||
CloseMetaFile,'CloseMetaFile',\
|
||||
ColorCorrectPalette,'ColorCorrectPalette',\
|
||||
ColorMatchToTarget,'ColorMatchToTarget',\
|
||||
CombineRgn,'CombineRgn',\
|
||||
CombineTransform,'CombineTransform',\
|
||||
CopyEnhMetaFileA,'CopyEnhMetaFileA',\
|
||||
CopyEnhMetaFileW,'CopyEnhMetaFileW',\
|
||||
CopyMetaFileA,'CopyMetaFileA',\
|
||||
CopyMetaFileW,'CopyMetaFileW',\
|
||||
CreateBitmap,'CreateBitmap',\
|
||||
CreateBitmapIndirect,'CreateBitmapIndirect',\
|
||||
CreateBrushIndirect,'CreateBrushIndirect',\
|
||||
CreateColorSpaceA,'CreateColorSpaceA',\
|
||||
CreateColorSpaceW,'CreateColorSpaceW',\
|
||||
CreateCompatibleBitmap,'CreateCompatibleBitmap',\
|
||||
CreateCompatibleDC,'CreateCompatibleDC',\
|
||||
CreateDCA,'CreateDCA',\
|
||||
CreateDCW,'CreateDCW',\
|
||||
CreateDIBPatternBrush,'CreateDIBPatternBrush',\
|
||||
CreateDIBPatternBrushPt,'CreateDIBPatternBrushPt',\
|
||||
CreateDIBSection,'CreateDIBSection',\
|
||||
CreateDIBitmap,'CreateDIBitmap',\
|
||||
CreateDiscardableBitmap,'CreateDiscardableBitmap',\
|
||||
CreateEllipticRgn,'CreateEllipticRgn',\
|
||||
CreateEllipticRgnIndirect,'CreateEllipticRgnIndirect',\
|
||||
CreateEnhMetaFileA,'CreateEnhMetaFileA',\
|
||||
CreateEnhMetaFileW,'CreateEnhMetaFileW',\
|
||||
CreateFontA,'CreateFontA',\
|
||||
CreateFontW,'CreateFontW',\
|
||||
CreateFontIndirectA,'CreateFontIndirectA',\
|
||||
CreateFontIndirectW,'CreateFontIndirectW',\
|
||||
CreateFontIndirectExA,'CreateFontIndirectExA',\
|
||||
CreateFontIndirectExW,'CreateFontIndirectExW',\
|
||||
CreateHalftonePalette,'CreateHalftonePalette',\
|
||||
CreateHatchBrush,'CreateHatchBrush',\
|
||||
CreateICA,'CreateICA',\
|
||||
CreateICW,'CreateICW',\
|
||||
CreateMetaFileA,'CreateMetaFileA',\
|
||||
CreateMetaFileW,'CreateMetaFileW',\
|
||||
CreatePalette,'CreatePalette',\
|
||||
CreatePatternBrush,'CreatePatternBrush',\
|
||||
CreatePen,'CreatePen',\
|
||||
CreatePenIndirect,'CreatePenIndirect',\
|
||||
CreatePolyPolygonRgn,'CreatePolyPolygonRgn',\
|
||||
CreatePolygonRgn,'CreatePolygonRgn',\
|
||||
CreateRectRgn,'CreateRectRgn',\
|
||||
CreateRectRgnIndirect,'CreateRectRgnIndirect',\
|
||||
CreateRoundRectRgn,'CreateRoundRectRgn',\
|
||||
CreateScalableFontResourceA,'CreateScalableFontResourceA',\
|
||||
CreateScalableFontResourceW,'CreateScalableFontResourceW',\
|
||||
CreateSolidBrush,'CreateSolidBrush',\
|
||||
DPtoLP,'DPtoLP',\
|
||||
DeleteColorSpace,'DeleteColorSpace',\
|
||||
DeleteDC,'DeleteDC',\
|
||||
DeleteEnhMetaFile,'DeleteEnhMetaFile',\
|
||||
DeleteMetaFile,'DeleteMetaFile',\
|
||||
DeleteObject,'DeleteObject',\
|
||||
DescribePixelFormat,'DescribePixelFormat',\
|
||||
DeviceCapabilitiesExA,'DeviceCapabilitiesExA',\
|
||||
DeviceCapabilitiesExW,'DeviceCapabilitiesExW',\
|
||||
DrawEscape,'DrawEscape',\
|
||||
Ellipse,'Ellipse',\
|
||||
EnableEUDC,'EnableEUDC',\
|
||||
EndDoc,'EndDoc',\
|
||||
EndPage,'EndPage',\
|
||||
EndPath,'EndPath',\
|
||||
EnumEnhMetaFile,'EnumEnhMetaFile',\
|
||||
EnumFontFamiliesA,'EnumFontFamiliesA',\
|
||||
EnumFontFamiliesW,'EnumFontFamiliesW',\
|
||||
EnumFontFamiliesExA,'EnumFontFamiliesExA',\
|
||||
EnumFontFamiliesExW,'EnumFontFamiliesExW',\
|
||||
EnumFontsA,'EnumFontsA',\
|
||||
EnumFontsW,'EnumFontsW',\
|
||||
EnumICMProfilesA,'EnumICMProfilesA',\
|
||||
EnumICMProfilesW,'EnumICMProfilesW',\
|
||||
EnumMetaFile,'EnumMetaFile',\
|
||||
EnumObjects,'EnumObjects',\
|
||||
EqualRgn,'EqualRgn',\
|
||||
Escape,'Escape',\
|
||||
ExcludeClipRect,'ExcludeClipRect',\
|
||||
ExtCreatePen,'ExtCreatePen',\
|
||||
ExtCreateRegion,'ExtCreateRegion',\
|
||||
ExtEscape,'ExtEscape',\
|
||||
ExtFloodFill,'ExtFloodFill',\
|
||||
ExtSelectClipRgn,'ExtSelectClipRgn',\
|
||||
ExtTextOutA,'ExtTextOutA',\
|
||||
ExtTextOutW,'ExtTextOutW',\
|
||||
FillPath,'FillPath',\
|
||||
FillRgn,'FillRgn',\
|
||||
FixBrushOrgEx,'FixBrushOrgEx',\
|
||||
FlattenPath,'FlattenPath',\
|
||||
FloodFill,'FloodFill',\
|
||||
FrameRgn,'FrameRgn',\
|
||||
GdiComment,'GdiComment',\
|
||||
GdiDeleteSpoolFileHandle,'GdiDeleteSpoolFileHandle',\
|
||||
GdiEndDocEMF,'GdiEndDocEMF',\
|
||||
GdiEndPageEMF,'GdiEndPageEMF',\
|
||||
GdiFlush,'GdiFlush',\
|
||||
GdiGetBatchLimit,'GdiGetBatchLimit',\
|
||||
GdiGetDC,'GdiGetDC',\
|
||||
GdiGetDevmodeForPage,'GdiGetDevmodeForPage',\
|
||||
GdiGetPageCount,'GdiGetPageCount',\
|
||||
GdiGetPageHandle,'GdiGetPageHandle',\
|
||||
GdiGetSpoolFileHandle,'GdiGetSpoolFileHandle',\
|
||||
GdiPlayDCScript,'GdiPlayDCScript',\
|
||||
GdiPlayEMF,'GdiPlayEMF',\
|
||||
GdiPlayJournal,'GdiPlayJournal',\
|
||||
GdiPlayPageEMF,'GdiPlayPageEMF',\
|
||||
GdiPlayPrivatePageEMF,'GdiPlayPrivatePageEMF',\
|
||||
GdiPlayScript,'GdiPlayScript',\
|
||||
GdiResetDCEMF,'GdiResetDCEMF',\
|
||||
GdiSetBatchLimit,'GdiSetBatchLimit',\
|
||||
GdiStartDocEMF,'GdiStartDocEMF',\
|
||||
GdiStartPageEMF,'GdiStartPageEMF',\
|
||||
GetArcDirection,'GetArcDirection',\
|
||||
GetAspectRatioFilterEx,'GetAspectRatioFilterEx',\
|
||||
GetBitmapBits,'GetBitmapBits',\
|
||||
GetBitmapDimensionEx,'GetBitmapDimensionEx',\
|
||||
GetBkColor,'GetBkColor',\
|
||||
GetBkMode,'GetBkMode',\
|
||||
GetBoundsRect,'GetBoundsRect',\
|
||||
GetBrushOrgEx,'GetBrushOrgEx',\
|
||||
GetCharABCWidthsA,'GetCharABCWidthsA',\
|
||||
GetCharABCWidthsW,'GetCharABCWidthsW',\
|
||||
GetCharABCWidthsFloatA,'GetCharABCWidthsFloatA',\
|
||||
GetCharABCWidthsFloatW,'GetCharABCWidthsFloatW',\
|
||||
GetCharABCWidthsI,'GetCharABCWidthsI',\
|
||||
GetCharWidth32A,'GetCharWidth32A',\
|
||||
GetCharWidth32W,'GetCharWidth32W',\
|
||||
GetCharWidthA,'GetCharWidthA',\
|
||||
GetCharWidthW,'GetCharWidthW',\
|
||||
GetCharWidthFloatA,'GetCharWidthFloatA',\
|
||||
GetCharWidthFloatW,'GetCharWidthFloatW',\
|
||||
GetCharWidthI,'GetCharWidthI',\
|
||||
GetCharacterPlacementA,'GetCharacterPlacementA',\
|
||||
GetCharacterPlacementW,'GetCharacterPlacementW',\
|
||||
GetClipBox,'GetClipBox',\
|
||||
GetClipRgn,'GetClipRgn',\
|
||||
GetColorAdjustment,'GetColorAdjustment',\
|
||||
GetColorSpace,'GetColorSpace',\
|
||||
GetCurrentObject,'GetCurrentObject',\
|
||||
GetCurrentPositionEx,'GetCurrentPositionEx',\
|
||||
GetDCBrushColor,'GetDCBrushColor',\
|
||||
GetDCOrgEx,'GetDCOrgEx',\
|
||||
GetDCPenColor,'GetDCPenColor',\
|
||||
GetDIBColorTable,'GetDIBColorTable',\
|
||||
GetDIBits,'GetDIBits',\
|
||||
GetDeviceCaps,'GetDeviceCaps',\
|
||||
GetDeviceGammaRamp,'GetDeviceGammaRamp',\
|
||||
GetEnhMetaFileA,'GetEnhMetaFileA',\
|
||||
GetEnhMetaFileW,'GetEnhMetaFileW',\
|
||||
GetEnhMetaFileBits,'GetEnhMetaFileBits',\
|
||||
GetEnhMetaFileDescriptionA,'GetEnhMetaFileDescriptionA',\
|
||||
GetEnhMetaFileDescriptionW,'GetEnhMetaFileDescriptionW',\
|
||||
GetEnhMetaFileHeader,'GetEnhMetaFileHeader',\
|
||||
GetEnhMetaFilePaletteEntries,'GetEnhMetaFilePaletteEntries',\
|
||||
GetEnhMetaFilePixelFormat,'GetEnhMetaFilePixelFormat',\
|
||||
GetFontAssocStatus,'GetFontAssocStatus',\
|
||||
GetFontData,'GetFontData',\
|
||||
GetFontLanguageInfo,'GetFontLanguageInfo',\
|
||||
GetFontUnicodeRanges,'GetFontUnicodeRanges',\
|
||||
GetGlyphIndicesA,'GetGlyphIndicesA',\
|
||||
GetGlyphIndicesW,'GetGlyphIndicesW',\
|
||||
GetGlyphOutlineA,'GetGlyphOutlineA',\
|
||||
GetGlyphOutlineW,'GetGlyphOutlineW',\
|
||||
GetGraphicsMode,'GetGraphicsMode',\
|
||||
GetICMProfileA,'GetICMProfileA',\
|
||||
GetICMProfileW,'GetICMProfileW',\
|
||||
GetKerningPairsA,'GetKerningPairsA',\
|
||||
GetKerningPairsW,'GetKerningPairsW',\
|
||||
GetLogColorSpaceA,'GetLogColorSpaceA',\
|
||||
GetLogColorSpaceW,'GetLogColorSpaceW',\
|
||||
GetMapMode,'GetMapMode',\
|
||||
GetMetaFileA,'GetMetaFileA',\
|
||||
GetMetaFileW,'GetMetaFileW',\
|
||||
GetMetaFileBitsEx,'GetMetaFileBitsEx',\
|
||||
GetMetaRgn,'GetMetaRgn',\
|
||||
GetMiterLimit,'GetMiterLimit',\
|
||||
GetNearestColor,'GetNearestColor',\
|
||||
GetNearestPaletteIndex,'GetNearestPaletteIndex',\
|
||||
GetObjectA,'GetObjectA',\
|
||||
GetObjectW,'GetObjectW',\
|
||||
GetObjectType,'GetObjectType',\
|
||||
GetOutlineTextMetricsA,'GetOutlineTextMetricsA',\
|
||||
GetOutlineTextMetricsW,'GetOutlineTextMetricsW',\
|
||||
GetPaletteEntries,'GetPaletteEntries',\
|
||||
GetPath,'GetPath',\
|
||||
GetPixel,'GetPixel',\
|
||||
GetPixelFormat,'GetPixelFormat',\
|
||||
GetPolyFillMode,'GetPolyFillMode',\
|
||||
GetROP2,'GetROP2',\
|
||||
GetRandomRgn,'GetRandomRgn',\
|
||||
GetRasterizerCaps,'GetRasterizerCaps',\
|
||||
GetRegionData,'GetRegionData',\
|
||||
GetRelAbs,'GetRelAbs',\
|
||||
GetRgnBox,'GetRgnBox',\
|
||||
GetStockObject,'GetStockObject',\
|
||||
GetStretchBltMode,'GetStretchBltMode',\
|
||||
GetSystemPaletteEntries,'GetSystemPaletteEntries',\
|
||||
GetSystemPaletteUse,'GetSystemPaletteUse',\
|
||||
GetTextAlign,'GetTextAlign',\
|
||||
GetTextCharacterExtra,'GetTextCharacterExtra',\
|
||||
GetTextCharset,'GetTextCharset',\
|
||||
GetTextCharsetInfo,'GetTextCharsetInfo',\
|
||||
GetTextColor,'GetTextColor',\
|
||||
GetTextExtentExPointA,'GetTextExtentExPointA',\
|
||||
GetTextExtentExPointW,'GetTextExtentExPointW',\
|
||||
GetTextExtentExPointI,'GetTextExtentExPointI',\
|
||||
GetTextExtentPoint32A,'GetTextExtentPoint32A',\
|
||||
GetTextExtentPoint32W,'GetTextExtentPoint32W',\
|
||||
GetTextExtentPointA,'GetTextExtentPointA',\
|
||||
GetTextExtentPointW,'GetTextExtentPointW',\
|
||||
GetTextExtentPointI,'GetTextExtentPointI',\
|
||||
GetTextFaceA,'GetTextFaceA',\
|
||||
GetTextFaceW,'GetTextFaceW',\
|
||||
GetTextMetricsA,'GetTextMetricsA',\
|
||||
GetTextMetricsW,'GetTextMetricsW',\
|
||||
GetViewportExtEx,'GetViewportExtEx',\
|
||||
GetViewportOrgEx,'GetViewportOrgEx',\
|
||||
GetWinMetaFileBits,'GetWinMetaFileBits',\
|
||||
GetWindowExtEx,'GetWindowExtEx',\
|
||||
GetWindowOrgEx,'GetWindowOrgEx',\
|
||||
GetWorldTransform,'GetWorldTransform',\
|
||||
IntersectClipRect,'IntersectClipRect',\
|
||||
InvertRgn,'InvertRgn',\
|
||||
LPtoDP,'LPtoDP',\
|
||||
LineDDA,'LineDDA',\
|
||||
LineDDW,'LineDDW',\
|
||||
LineTo,'LineTo',\
|
||||
MaskBlt,'MaskBlt',\
|
||||
ModifyWorldTransform,'ModifyWorldTransform',\
|
||||
MoveToEx,'MoveToEx',\
|
||||
OffsetClipRgn,'OffsetClipRgn',\
|
||||
OffsetRgn,'OffsetRgn',\
|
||||
OffsetViewportOrgEx,'OffsetViewportOrgEx',\
|
||||
OffsetWindowOrgEx,'OffsetWindowOrgEx',\
|
||||
PaintRgn,'PaintRgn',\
|
||||
PatBlt,'PatBlt',\
|
||||
PathToRegion,'PathToRegion',\
|
||||
Pie,'Pie',\
|
||||
PlayEnhMetaFile,'PlayEnhMetaFile',\
|
||||
PlayEnhMetaFileRecord,'PlayEnhMetaFileRecord',\
|
||||
PlayMetaFile,'PlayMetaFile',\
|
||||
PlayMetaFileRecord,'PlayMetaFileRecord',\
|
||||
PlgBlt,'PlgBlt',\
|
||||
PolyBezier,'PolyBezier',\
|
||||
PolyBezierTo,'PolyBezierTo',\
|
||||
PolyDraw,'PolyDraw',\
|
||||
PolyPatBlt,'PolyPatBlt',\
|
||||
PolyPolygon,'PolyPolygon',\
|
||||
PolyPolyline,'PolyPolyline',\
|
||||
PolyTextOutA,'PolyTextOutA',\
|
||||
PolyTextOutW,'PolyTextOutW',\
|
||||
Polygon,'Polygon',\
|
||||
Polyline,'Polyline',\
|
||||
PolylineTo,'PolylineTo',\
|
||||
PtInRegion,'PtInRegion',\
|
||||
PtVisible,'PtVisible',\
|
||||
RealizePalette,'RealizePalette',\
|
||||
RectInRegion,'RectInRegion',\
|
||||
RectVisible,'RectVisible',\
|
||||
Rectangle,'Rectangle',\
|
||||
RemoveFontMemResourceEx,'RemoveFontMemResourceEx',\
|
||||
RemoveFontResourceA,'RemoveFontResourceA',\
|
||||
RemoveFontResourceW,'RemoveFontResourceW',\
|
||||
RemoveFontResourceExA,'RemoveFontResourceExA',\
|
||||
RemoveFontResourceExW,'RemoveFontResourceExW',\
|
||||
ResetDCA,'ResetDCA',\
|
||||
ResetDCW,'ResetDCW',\
|
||||
ResizePalette,'ResizePalette',\
|
||||
RestoreDC,'RestoreDC',\
|
||||
RoundRect,'RoundRect',\
|
||||
SaveDC,'SaveDC',\
|
||||
ScaleViewportExtEx,'ScaleViewportExtEx',\
|
||||
ScaleWindowExtEx,'ScaleWindowExtEx',\
|
||||
SelectBrushLocal,'SelectBrushLocal',\
|
||||
SelectClipPath,'SelectClipPath',\
|
||||
SelectClipRgn,'SelectClipRgn',\
|
||||
SelectFontLocal,'SelectFontLocal',\
|
||||
SelectObject,'SelectObject',\
|
||||
SelectPalette,'SelectPalette',\
|
||||
SetAbortProc,'SetAbortProc',\
|
||||
SetArcDirection,'SetArcDirection',\
|
||||
SetBitmapBits,'SetBitmapBits',\
|
||||
SetBitmapDimensionEx,'SetBitmapDimensionEx',\
|
||||
SetBkColor,'SetBkColor',\
|
||||
SetBkMode,'SetBkMode',\
|
||||
SetBoundsRect,'SetBoundsRect',\
|
||||
SetBrushOrgEx,'SetBrushOrgEx',\
|
||||
SetColorAdjustment,'SetColorAdjustment',\
|
||||
SetColorSpace,'SetColorSpace',\
|
||||
SetDCBrushColor,'SetDCBrushColor',\
|
||||
SetDCPenColor,'SetDCPenColor',\
|
||||
SetDIBColorTable,'SetDIBColorTable',\
|
||||
SetDIBits,'SetDIBits',\
|
||||
SetDIBitsToDevice,'SetDIBitsToDevice',\
|
||||
SetDeviceGammaRamp,'SetDeviceGammaRamp',\
|
||||
SetEnhMetaFileBits,'SetEnhMetaFileBits',\
|
||||
SetFontEnumeration,'SetFontEnumeration',\
|
||||
SetGraphicsMode,'SetGraphicsMode',\
|
||||
SetICMMode,'SetICMMode',\
|
||||
SetICMProfileA,'SetICMProfileA',\
|
||||
SetICMProfileW,'SetICMProfileW',\
|
||||
SetMagicColors,'SetMagicColors',\
|
||||
SetMapMode,'SetMapMode',\
|
||||
SetMapperFlags,'SetMapperFlags',\
|
||||
SetMetaFileBitsEx,'SetMetaFileBitsEx',\
|
||||
SetMetaRgn,'SetMetaRgn',\
|
||||
SetMiterLimit,'SetMiterLimit',\
|
||||
SetPaletteEntries,'SetPaletteEntries',\
|
||||
SetPixel,'SetPixel',\
|
||||
SetPixelFormat,'SetPixelFormat',\
|
||||
SetPixelV,'SetPixelV',\
|
||||
SetPolyFillMode,'SetPolyFillMode',\
|
||||
SetROP2,'SetROP2',\
|
||||
SetRectRgn,'SetRectRgn',\
|
||||
SetRelAbs,'SetRelAbs',\
|
||||
SetStretchBltMode,'SetStretchBltMode',\
|
||||
SetSystemPaletteUse,'SetSystemPaletteUse',\
|
||||
SetTextAlign,'SetTextAlign',\
|
||||
SetTextCharacterExtra,'SetTextCharacterExtra',\
|
||||
SetTextColor,'SetTextColor',\
|
||||
SetTextJustification,'SetTextJustification',\
|
||||
SetViewportExtEx,'SetViewportExtEx',\
|
||||
SetViewportOrgEx,'SetViewportOrgEx',\
|
||||
SetWinMetaFileBits,'SetWinMetaFileBits',\
|
||||
SetWindowExtEx,'SetWindowExtEx',\
|
||||
SetWindowOrgEx,'SetWindowOrgEx',\
|
||||
SetWorldTransform,'SetWorldTransform',\
|
||||
StartDocA,'StartDocA',\
|
||||
StartDocW,'StartDocW',\
|
||||
StartPage,'StartPage',\
|
||||
StretchBlt,'StretchBlt',\
|
||||
StretchDIBits,'StretchDIBits',\
|
||||
StrokeAndFillPath,'StrokeAndFillPath',\
|
||||
StrokePath,'StrokePath',\
|
||||
SwapBuffers,'SwapBuffers',\
|
||||
TextOutA,'TextOutA',\
|
||||
TextOutW,'TextOutW',\
|
||||
TranslateCharsetInfo,'TranslateCharsetInfo',\
|
||||
UnrealizeObject,'UnrealizeObject',\
|
||||
UpdateColors,'UpdateColors',\
|
||||
UpdateICMRegKeyA,'UpdateICMRegKeyA',\
|
||||
UpdateICMRegKeyW,'UpdateICMRegKeyW',\
|
||||
WidenPath,'WidenPath',\
|
||||
gdiPlaySpoolStream,'gdiPlaySpoolStream'
|
||||
|
||||
api AddFontResource,\
|
||||
AddFontResourceEx,\
|
||||
CopyEnhMetaFile,\
|
||||
CopyMetaFile,\
|
||||
CreateColorSpace,\
|
||||
CreateDC,\
|
||||
CreateEnhMetaFile,\
|
||||
CreateFont,\
|
||||
CreateFontIndirect,\
|
||||
CreateFontIndirectEx,\
|
||||
CreateIC,\
|
||||
CreateMetaFile,\
|
||||
CreateScalableFontResource,\
|
||||
DeviceCapabilitiesEx,\
|
||||
EnumFontFamilies,\
|
||||
EnumFontFamiliesEx,\
|
||||
EnumFonts,\
|
||||
EnumICMProfiles,\
|
||||
ExtTextOut,\
|
||||
GetCharABCWidths,\
|
||||
GetCharABCWidthsFloat,\
|
||||
GetCharWidth32,\
|
||||
GetCharWidth,\
|
||||
GetCharWidthFloat,\
|
||||
GetCharacterPlacement,\
|
||||
GetEnhMetaFile,\
|
||||
GetEnhMetaFileDescription,\
|
||||
GetGlyphIndices,\
|
||||
GetGlyphOutline,\
|
||||
GetICMProfile,\
|
||||
GetKerningPairs,\
|
||||
GetLogColorSpace,\
|
||||
GetMetaFile,\
|
||||
GetObject,\
|
||||
GetOutlineTextMetrics,\
|
||||
GetTextExtentExPoint,\
|
||||
GetTextExtentPoint32,\
|
||||
GetTextExtentPoint,\
|
||||
GetTextFace,\
|
||||
GetTextMetrics,\
|
||||
LineDD,\
|
||||
PolyTextOut,\
|
||||
RemoveFontResource,\
|
||||
RemoveFontResourceEx,\
|
||||
ResetDC,\
|
||||
SetICMProfile,\
|
||||
StartDoc,\
|
||||
TextOut,\
|
||||
UpdateICMRegKey
|
||||
881
toolchain/fasmw17332/INCLUDE/API/KERNEL32.INC
Normal file
881
toolchain/fasmw17332/INCLUDE/API/KERNEL32.INC
Normal file
@@ -0,0 +1,881 @@
|
||||
|
||||
; KERNEL32 API calls
|
||||
|
||||
import kernel32,\
|
||||
AddAtomA,'AddAtomA',\
|
||||
AddAtomW,'AddAtomW',\
|
||||
AddConsoleAliasA,'AddConsoleAliasA',\
|
||||
AddConsoleAliasW,'AddConsoleAliasW',\
|
||||
AllocConsole,'AllocConsole',\
|
||||
AreFileApisANSI,'AreFileApisANSI',\
|
||||
AssignProcessToJobObject,'AssignProcessToJobObject',\
|
||||
BackupRead,'BackupRead',\
|
||||
BackupSeek,'BackupSeek',\
|
||||
BackupWrite,'BackupWrite',\
|
||||
BaseAttachCompleteThunk,'BaseAttachCompleteThunk',\
|
||||
Beep,'Beep',\
|
||||
BeginUpdateResourceA,'BeginUpdateResourceA',\
|
||||
BeginUpdateResourceW,'BeginUpdateResourceW',\
|
||||
BuildCommDCBA,'BuildCommDCBA',\
|
||||
BuildCommDCBW,'BuildCommDCBW',\
|
||||
BuildCommDCBAndTimeoutsA,'BuildCommDCBAndTimeoutsA',\
|
||||
BuildCommDCBAndTimeoutsW,'BuildCommDCBAndTimeoutsW',\
|
||||
CallNamedPipeA,'CallNamedPipeA',\
|
||||
CallNamedPipeW,'CallNamedPipeW',\
|
||||
CancelIo,'CancelIo',\
|
||||
CancelWaitableTimer,'CancelWaitableTimer',\
|
||||
ClearCommBreak,'ClearCommBreak',\
|
||||
ClearCommError,'ClearCommError',\
|
||||
CloseConsoleHandle,'CloseConsoleHandle',\
|
||||
CloseHandle,'CloseHandle',\
|
||||
CloseProfileUserMapping,'CloseProfileUserMapping',\
|
||||
CmdBatNotification,'CmdBatNotification',\
|
||||
CommConfigDialogA,'CommConfigDialogA',\
|
||||
CommConfigDialogW,'CommConfigDialogW',\
|
||||
CompareFileTime,'CompareFileTime',\
|
||||
CompareStringA,'CompareStringA',\
|
||||
CompareStringW,'CompareStringW',\
|
||||
ConnectNamedPipe,'ConnectNamedPipe',\
|
||||
ConsoleMenuControl,'ConsoleMenuControl',\
|
||||
ContinueDebugEvent,'ContinueDebugEvent',\
|
||||
ConvertDefaultLocale,'ConvertDefaultLocale',\
|
||||
ConvertThreadToFiber,'ConvertThreadToFiber',\
|
||||
CopyFileA,'CopyFileA',\
|
||||
CopyFileW,'CopyFileW',\
|
||||
CopyFileExA,'CopyFileExA',\
|
||||
CopyFileExW,'CopyFileExW',\
|
||||
CreateConsoleScreenBuffer,'CreateConsoleScreenBuffer',\
|
||||
CreateDirectoryA,'CreateDirectoryA',\
|
||||
CreateDirectoryW,'CreateDirectoryW',\
|
||||
CreateDirectoryExA,'CreateDirectoryExA',\
|
||||
CreateDirectoryExW,'CreateDirectoryExW',\
|
||||
CreateEventA,'CreateEventA',\
|
||||
CreateEventW,'CreateEventW',\
|
||||
CreateFiber,'CreateFiber',\
|
||||
CreateFileA,'CreateFileA',\
|
||||
CreateFileW,'CreateFileW',\
|
||||
CreateFileMappingA,'CreateFileMappingA',\
|
||||
CreateFileMappingW,'CreateFileMappingW',\
|
||||
CreateHardLinkA,'CreateHardLinkA',\
|
||||
CreateHardLinkW,'CreateHardLinkW',\
|
||||
CreateIoCompletionPort,'CreateIoCompletionPort',\
|
||||
CreateJobObjectA,'CreateJobObjectA',\
|
||||
CreateJobObjectW,'CreateJobObjectW',\
|
||||
CreateMailslotA,'CreateMailslotA',\
|
||||
CreateMailslotW,'CreateMailslotW',\
|
||||
CreateMutexA,'CreateMutexA',\
|
||||
CreateMutexW,'CreateMutexW',\
|
||||
CreateNamedPipeA,'CreateNamedPipeA',\
|
||||
CreateNamedPipeW,'CreateNamedPipeW',\
|
||||
CreatePipe,'CreatePipe',\
|
||||
CreateProcessA,'CreateProcessA',\
|
||||
CreateProcessW,'CreateProcessW',\
|
||||
CreateRemoteThread,'CreateRemoteThread',\
|
||||
CreateSemaphoreA,'CreateSemaphoreA',\
|
||||
CreateSemaphoreW,'CreateSemaphoreW',\
|
||||
CreateTapePartition,'CreateTapePartition',\
|
||||
CreateThread,'CreateThread',\
|
||||
CreateToolhelp32Snapshot,'CreateToolhelp32Snapshot',\
|
||||
CreateVirtualBuffer,'CreateVirtualBuffer',\
|
||||
CreateWaitableTimerA,'CreateWaitableTimerA',\
|
||||
CreateWaitableTimerW,'CreateWaitableTimerW',\
|
||||
DebugActiveProcess,'DebugActiveProcess',\
|
||||
DebugBreak,'DebugBreak',\
|
||||
DefineDosDeviceA,'DefineDosDeviceA',\
|
||||
DefineDosDeviceW,'DefineDosDeviceW',\
|
||||
DeleteAtom,'DeleteAtom',\
|
||||
DeleteCriticalSection,'DeleteCriticalSection',\
|
||||
DeleteFiber,'DeleteFiber',\
|
||||
DeleteFileA,'DeleteFileA',\
|
||||
DeleteFileW,'DeleteFileW',\
|
||||
DeviceIoControl,'DeviceIoControl',\
|
||||
DisableThreadLibraryCalls,'DisableThreadLibraryCalls',\
|
||||
DisconnectNamedPipe,'DisconnectNamedPipe',\
|
||||
DosDateTimeToFileTime,'DosDateTimeToFileTime',\
|
||||
DuplicateConsoleHandle,'DuplicateConsoleHandle',\
|
||||
DuplicateHandle,'DuplicateHandle',\
|
||||
EndUpdateResourceA,'EndUpdateResourceA',\
|
||||
EndUpdateResourceW,'EndUpdateResourceW',\
|
||||
EnterCriticalSection,'EnterCriticalSection',\
|
||||
EnumCalendarInfoA,'EnumCalendarInfoA',\
|
||||
EnumCalendarInfoW,'EnumCalendarInfoW',\
|
||||
EnumCalendarInfoExA,'EnumCalendarInfoExA',\
|
||||
EnumCalendarInfoExW,'EnumCalendarInfoExW',\
|
||||
EnumDateFormatsA,'EnumDateFormatsA',\
|
||||
EnumDateFormatsW,'EnumDateFormatsW',\
|
||||
EnumDateFormatsExA,'EnumDateFormatsExA',\
|
||||
EnumDateFormatsExW,'EnumDateFormatsExW',\
|
||||
EnumResourceLanguagesA,'EnumResourceLanguagesA',\
|
||||
EnumResourceLanguagesW,'EnumResourceLanguagesW',\
|
||||
EnumResourceNamesA,'EnumResourceNamesA',\
|
||||
EnumResourceNamesW,'EnumResourceNamesW',\
|
||||
EnumResourceTypesA,'EnumResourceTypesA',\
|
||||
EnumResourceTypesW,'EnumResourceTypesW',\
|
||||
EnumSystemCodePagesA,'EnumSystemCodePagesA',\
|
||||
EnumSystemCodePagesW,'EnumSystemCodePagesW',\
|
||||
EnumSystemLocalesA,'EnumSystemLocalesA',\
|
||||
EnumSystemLocalesW,'EnumSystemLocalesW',\
|
||||
EnumTimeFormatsA,'EnumTimeFormatsA',\
|
||||
EnumTimeFormatsW,'EnumTimeFormatsW',\
|
||||
EraseTape,'EraseTape',\
|
||||
EscapeCommFunction,'EscapeCommFunction',\
|
||||
ExitProcess,'ExitProcess',\
|
||||
ExitThread,'ExitThread',\
|
||||
ExitVDM,'ExitVDM',\
|
||||
ExpandEnvironmentStringsA,'ExpandEnvironmentStringsA',\
|
||||
ExpandEnvironmentStringsW,'ExpandEnvironmentStringsW',\
|
||||
ExpungeConsoleCommandHistoryA,'ExpungeConsoleCommandHistoryA',\
|
||||
ExpungeConsoleCommandHistoryW,'ExpungeConsoleCommandHistoryW',\
|
||||
ExtendVirtualBuffer,'ExtendVirtualBuffer',\
|
||||
FatalAppExitA,'FatalAppExitA',\
|
||||
FatalAppExitW,'FatalAppExitW',\
|
||||
FatalExit,'FatalExit',\
|
||||
FileTimeToDosDateTime,'FileTimeToDosDateTime',\
|
||||
FileTimeToLocalFileTime,'FileTimeToLocalFileTime',\
|
||||
FileTimeToSystemTime,'FileTimeToSystemTime',\
|
||||
FillConsoleOutputAttribute,'FillConsoleOutputAttribute',\
|
||||
FillConsoleOutputCharacterA,'FillConsoleOutputCharacterA',\
|
||||
FillConsoleOutputCharacterW,'FillConsoleOutputCharacterW',\
|
||||
FindAtomA,'FindAtomA',\
|
||||
FindAtomW,'FindAtomW',\
|
||||
FindClose,'FindClose',\
|
||||
FindCloseChangeNotification,'FindCloseChangeNotification',\
|
||||
FindFirstChangeNotificationA,'FindFirstChangeNotificationA',\
|
||||
FindFirstChangeNotificationW,'FindFirstChangeNotificationW',\
|
||||
FindFirstFileA,'FindFirstFileA',\
|
||||
FindFirstFileW,'FindFirstFileW',\
|
||||
FindFirstFileExA,'FindFirstFileExA',\
|
||||
FindFirstFileExW,'FindFirstFileExW',\
|
||||
FindNextChangeNotification,'FindNextChangeNotification',\
|
||||
FindNextFileA,'FindNextFileA',\
|
||||
FindNextFileW,'FindNextFileW',\
|
||||
FindResourceA,'FindResourceA',\
|
||||
FindResourceW,'FindResourceW',\
|
||||
FindResourceExA,'FindResourceExA',\
|
||||
FindResourceExW,'FindResourceExW',\
|
||||
FlushConsoleInputBuffer,'FlushConsoleInputBuffer',\
|
||||
FlushFileBuffers,'FlushFileBuffers',\
|
||||
FlushInstructionCache,'FlushInstructionCache',\
|
||||
FlushViewOfFile,'FlushViewOfFile',\
|
||||
FoldStringA,'FoldStringA',\
|
||||
FoldStringW,'FoldStringW',\
|
||||
FormatMessageA,'FormatMessageA',\
|
||||
FormatMessageW,'FormatMessageW',\
|
||||
FreeConsole,'FreeConsole',\
|
||||
FreeEnvironmentStringsA,'FreeEnvironmentStringsA',\
|
||||
FreeEnvironmentStringsW,'FreeEnvironmentStringsW',\
|
||||
FreeLibrary,'FreeLibrary',\
|
||||
FreeLibraryAndExitThread,'FreeLibraryAndExitThread',\
|
||||
FreeResource,'FreeResource',\
|
||||
FreeVirtualBuffer,'FreeVirtualBuffer',\
|
||||
GenerateConsoleCtrlEvent,'GenerateConsoleCtrlEvent',\
|
||||
GetACP,'GetACP',\
|
||||
GetAtomNameA,'GetAtomNameA',\
|
||||
GetAtomNameW,'GetAtomNameW',\
|
||||
GetBinaryTypeA,'GetBinaryTypeA',\
|
||||
GetBinaryTypeW,'GetBinaryTypeW',\
|
||||
GetCPInfo,'GetCPInfo',\
|
||||
GetCPInfoExA,'GetCPInfoExA',\
|
||||
GetCPInfoExW,'GetCPInfoExW',\
|
||||
GetCommConfig,'GetCommConfig',\
|
||||
GetCommMask,'GetCommMask',\
|
||||
GetCommModemStatus,'GetCommModemStatus',\
|
||||
GetCommProperties,'GetCommProperties',\
|
||||
GetCommState,'GetCommState',\
|
||||
GetCommTimeouts,'GetCommTimeouts',\
|
||||
GetCommandLineA,'GetCommandLineA',\
|
||||
GetCommandLineW,'GetCommandLineW',\
|
||||
GetCompressedFileSizeA,'GetCompressedFileSizeA',\
|
||||
GetCompressedFileSizeW,'GetCompressedFileSizeW',\
|
||||
GetComputerNameA,'GetComputerNameA',\
|
||||
GetComputerNameW,'GetComputerNameW',\
|
||||
GetConsoleAliasA,'GetConsoleAliasA',\
|
||||
GetConsoleAliasW,'GetConsoleAliasW',\
|
||||
GetConsoleAliasExesA,'GetConsoleAliasExesA',\
|
||||
GetConsoleAliasExesW,'GetConsoleAliasExesW',\
|
||||
GetConsoleAliasExesLengthA,'GetConsoleAliasExesLengthA',\
|
||||
GetConsoleAliasExesLengthW,'GetConsoleAliasExesLengthW',\
|
||||
GetConsoleAliasesA,'GetConsoleAliasesA',\
|
||||
GetConsoleAliasesW,'GetConsoleAliasesW',\
|
||||
GetConsoleAliasesLengthA,'GetConsoleAliasesLengthA',\
|
||||
GetConsoleAliasesLengthW,'GetConsoleAliasesLengthW',\
|
||||
GetConsoleCP,'GetConsoleCP',\
|
||||
GetConsoleCommandHistoryA,'GetConsoleCommandHistoryA',\
|
||||
GetConsoleCommandHistoryW,'GetConsoleCommandHistoryW',\
|
||||
GetConsoleCommandHistoryLengthA,'GetConsoleCommandHistoryLengthA',\
|
||||
GetConsoleCommandHistoryLengthW,'GetConsoleCommandHistoryLengthW',\
|
||||
GetConsoleCursorInfo,'GetConsoleCursorInfo',\
|
||||
GetConsoleDisplayMode,'GetConsoleDisplayMode',\
|
||||
GetConsoleFontInfo,'GetConsoleFontInfo',\
|
||||
GetConsoleFontSize,'GetConsoleFontSize',\
|
||||
GetConsoleHardwareState,'GetConsoleHardwareState',\
|
||||
GetConsoleInputExeNameA,'GetConsoleInputExeNameA',\
|
||||
GetConsoleInputExeNameW,'GetConsoleInputExeNameW',\
|
||||
GetConsoleInputWaitHandle,'GetConsoleInputWaitHandle',\
|
||||
GetConsoleKeyboardLayoutNameA,'GetConsoleKeyboardLayoutNameA',\
|
||||
GetConsoleKeyboardLayoutNameW,'GetConsoleKeyboardLayoutNameW',\
|
||||
GetConsoleMode,'GetConsoleMode',\
|
||||
GetConsoleOutputCP,'GetConsoleOutputCP',\
|
||||
GetConsoleScreenBufferInfo,'GetConsoleScreenBufferInfo',\
|
||||
GetConsoleTitleA,'GetConsoleTitleA',\
|
||||
GetConsoleTitleW,'GetConsoleTitleW',\
|
||||
GetConsoleWindow,'GetConsoleWindow',\
|
||||
GetCurrencyFormatA,'GetCurrencyFormatA',\
|
||||
GetCurrencyFormatW,'GetCurrencyFormatW',\
|
||||
GetCurrentConsoleFont,'GetCurrentConsoleFont',\
|
||||
GetCurrentDirectoryA,'GetCurrentDirectoryA',\
|
||||
GetCurrentDirectoryW,'GetCurrentDirectoryW',\
|
||||
GetCurrentProcess,'GetCurrentProcess',\
|
||||
GetCurrentProcessId,'GetCurrentProcessId',\
|
||||
GetCurrentThread,'GetCurrentThread',\
|
||||
GetCurrentThreadId,'GetCurrentThreadId',\
|
||||
GetDateFormatA,'GetDateFormatA',\
|
||||
GetDateFormatW,'GetDateFormatW',\
|
||||
GetDefaultCommConfigA,'GetDefaultCommConfigA',\
|
||||
GetDefaultCommConfigW,'GetDefaultCommConfigW',\
|
||||
GetDevicePowerState,'GetDevicePowerState',\
|
||||
GetDiskFreeSpaceA,'GetDiskFreeSpaceA',\
|
||||
GetDiskFreeSpaceW,'GetDiskFreeSpaceW',\
|
||||
GetDiskFreeSpaceExA,'GetDiskFreeSpaceExA',\
|
||||
GetDiskFreeSpaceExW,'GetDiskFreeSpaceExW',\
|
||||
GetDriveTypeA,'GetDriveTypeA',\
|
||||
GetDriveTypeW,'GetDriveTypeW',\
|
||||
GetEnvironmentStringsA,'GetEnvironmentStringsA',\
|
||||
GetEnvironmentStringsW,'GetEnvironmentStringsW',\
|
||||
GetEnvironmentVariableA,'GetEnvironmentVariableA',\
|
||||
GetEnvironmentVariableW,'GetEnvironmentVariableW',\
|
||||
GetExitCodeProcess,'GetExitCodeProcess',\
|
||||
GetExitCodeThread,'GetExitCodeThread',\
|
||||
GetFileAttributesA,'GetFileAttributesA',\
|
||||
GetFileAttributesW,'GetFileAttributesW',\
|
||||
GetFileAttributesExA,'GetFileAttributesExA',\
|
||||
GetFileAttributesExW,'GetFileAttributesExW',\
|
||||
GetFileInformationByHandle,'GetFileInformationByHandle',\
|
||||
GetFileSize,'GetFileSize',\
|
||||
GetFileSizeEx,'GetFileSizeEx',\
|
||||
GetFileTime,'GetFileTime',\
|
||||
GetFileType,'GetFileType',\
|
||||
GetFullPathNameA,'GetFullPathNameA',\
|
||||
GetFullPathNameW,'GetFullPathNameW',\
|
||||
GetHandleInformation,'GetHandleInformation',\
|
||||
GetLargestConsoleWindowSize,'GetLargestConsoleWindowSize',\
|
||||
GetLastError,'GetLastError',\
|
||||
GetLocalTime,'GetLocalTime',\
|
||||
GetLocaleInfoA,'GetLocaleInfoA',\
|
||||
GetLocaleInfoW,'GetLocaleInfoW',\
|
||||
GetLogicalDriveStringsA,'GetLogicalDriveStringsA',\
|
||||
GetLogicalDriveStringsW,'GetLogicalDriveStringsW',\
|
||||
GetLogicalDrives,'GetLogicalDrives',\
|
||||
GetLongPathNameA,'GetLongPathNameA',\
|
||||
GetLongPathNameW,'GetLongPathNameW',\
|
||||
GetMailslotInfo,'GetMailslotInfo',\
|
||||
GetModuleFileNameA,'GetModuleFileNameA',\
|
||||
GetModuleFileNameW,'GetModuleFileNameW',\
|
||||
GetModuleHandleA,'GetModuleHandleA',\
|
||||
GetModuleHandleW,'GetModuleHandleW',\
|
||||
GetNamedPipeHandleStateA,'GetNamedPipeHandleStateA',\
|
||||
GetNamedPipeHandleStateW,'GetNamedPipeHandleStateW',\
|
||||
GetNamedPipeInfo,'GetNamedPipeInfo',\
|
||||
GetNextVDMCommand,'GetNextVDMCommand',\
|
||||
GetNumberFormatA,'GetNumberFormatA',\
|
||||
GetNumberFormatW,'GetNumberFormatW',\
|
||||
GetNumberOfConsoleFonts,'GetNumberOfConsoleFonts',\
|
||||
GetNumberOfConsoleInputEvents,'GetNumberOfConsoleInputEvents',\
|
||||
GetNumberOfConsoleMouseButtons,'GetNumberOfConsoleMouseButtons',\
|
||||
GetOEMCP,'GetOEMCP',\
|
||||
GetOverlappedResult,'GetOverlappedResult',\
|
||||
GetPriorityClass,'GetPriorityClass',\
|
||||
GetPrivateProfileIntA,'GetPrivateProfileIntA',\
|
||||
GetPrivateProfileIntW,'GetPrivateProfileIntW',\
|
||||
GetPrivateProfileSectionA,'GetPrivateProfileSectionA',\
|
||||
GetPrivateProfileSectionW,'GetPrivateProfileSectionW',\
|
||||
GetPrivateProfileSectionNamesA,'GetPrivateProfileSectionNamesA',\
|
||||
GetPrivateProfileSectionNamesW,'GetPrivateProfileSectionNamesW',\
|
||||
GetPrivateProfileStringA,'GetPrivateProfileStringA',\
|
||||
GetPrivateProfileStringW,'GetPrivateProfileStringW',\
|
||||
GetPrivateProfileStructA,'GetPrivateProfileStructA',\
|
||||
GetPrivateProfileStructW,'GetPrivateProfileStructW',\
|
||||
GetProcAddress,'GetProcAddress',\
|
||||
GetProcessAffinityMask,'GetProcessAffinityMask',\
|
||||
GetProcessHeap,'GetProcessHeap',\
|
||||
GetProcessHeaps,'GetProcessHeaps',\
|
||||
GetProcessPriorityBoost,'GetProcessPriorityBoost',\
|
||||
GetProcessShutdownParameters,'GetProcessShutdownParameters',\
|
||||
GetProcessTimes,'GetProcessTimes',\
|
||||
GetProcessVersion,'GetProcessVersion',\
|
||||
GetProcessWorkingSetSize,'GetProcessWorkingSetSize',\
|
||||
GetProfileIntA,'GetProfileIntA',\
|
||||
GetProfileIntW,'GetProfileIntW',\
|
||||
GetProfileSectionA,'GetProfileSectionA',\
|
||||
GetProfileSectionW,'GetProfileSectionW',\
|
||||
GetProfileStringA,'GetProfileStringA',\
|
||||
GetProfileStringW,'GetProfileStringW',\
|
||||
GetQueuedCompletionStatus,'GetQueuedCompletionStatus',\
|
||||
GetShortPathNameA,'GetShortPathNameA',\
|
||||
GetShortPathNameW,'GetShortPathNameW',\
|
||||
GetStartupInfoA,'GetStartupInfoA',\
|
||||
GetStartupInfoW,'GetStartupInfoW',\
|
||||
GetStdHandle,'GetStdHandle',\
|
||||
GetStringTypeA,'GetStringTypeA',\
|
||||
GetStringTypeW,'GetStringTypeW',\
|
||||
GetStringTypeExA,'GetStringTypeExA',\
|
||||
GetStringTypeExW,'GetStringTypeExW',\
|
||||
GetSystemDefaultLCID,'GetSystemDefaultLCID',\
|
||||
GetSystemDefaultLangID,'GetSystemDefaultLangID',\
|
||||
GetSystemDirectoryA,'GetSystemDirectoryA',\
|
||||
GetSystemDirectoryW,'GetSystemDirectoryW',\
|
||||
GetSystemInfo,'GetSystemInfo',\
|
||||
GetSystemPowerStatus,'GetSystemPowerStatus',\
|
||||
GetSystemTime,'GetSystemTime',\
|
||||
GetSystemTimeAdjustment,'GetSystemTimeAdjustment',\
|
||||
GetSystemTimeAsFileTime,'GetSystemTimeAsFileTime',\
|
||||
GetTapeParameters,'GetTapeParameters',\
|
||||
GetTapePosition,'GetTapePosition',\
|
||||
GetTapeStatus,'GetTapeStatus',\
|
||||
GetTempFileNameA,'GetTempFileNameA',\
|
||||
GetTempFileNameW,'GetTempFileNameW',\
|
||||
GetTempPathA,'GetTempPathA',\
|
||||
GetTempPathW,'GetTempPathW',\
|
||||
GetThreadContext,'GetThreadContext',\
|
||||
GetThreadLocale,'GetThreadLocale',\
|
||||
GetThreadPriority,'GetThreadPriority',\
|
||||
GetThreadPriorityBoost,'GetThreadPriorityBoost',\
|
||||
GetThreadSelectorEntry,'GetThreadSelectorEntry',\
|
||||
GetThreadTimes,'GetThreadTimes',\
|
||||
GetTickCount,'GetTickCount',\
|
||||
GetTimeFormatA,'GetTimeFormatA',\
|
||||
GetTimeFormatW,'GetTimeFormatW',\
|
||||
GetTimeZoneInformation,'GetTimeZoneInformation',\
|
||||
GetUserDefaultLCID,'GetUserDefaultLCID',\
|
||||
GetUserDefaultLangID,'GetUserDefaultLangID',\
|
||||
GetVDMCurrentDirectories,'GetVDMCurrentDirectories',\
|
||||
GetVersion,'GetVersion',\
|
||||
GetVersionExA,'GetVersionExA',\
|
||||
GetVersionExW,'GetVersionExW',\
|
||||
GetVolumeInformationA,'GetVolumeInformationA',\
|
||||
GetVolumeInformationW,'GetVolumeInformationW',\
|
||||
GetWindowsDirectoryA,'GetWindowsDirectoryA',\
|
||||
GetWindowsDirectoryW,'GetWindowsDirectoryW',\
|
||||
GlobalAddAtomA,'GlobalAddAtomA',\
|
||||
GlobalAddAtomW,'GlobalAddAtomW',\
|
||||
GlobalAlloc,'GlobalAlloc',\
|
||||
GlobalCompact,'GlobalCompact',\
|
||||
GlobalDeleteAtom,'GlobalDeleteAtom',\
|
||||
GlobalFindAtomA,'GlobalFindAtomA',\
|
||||
GlobalFindAtomW,'GlobalFindAtomW',\
|
||||
GlobalFix,'GlobalFix',\
|
||||
GlobalFlags,'GlobalFlags',\
|
||||
GlobalFree,'GlobalFree',\
|
||||
GlobalGetAtomNameA,'GlobalGetAtomNameA',\
|
||||
GlobalGetAtomNameW,'GlobalGetAtomNameW',\
|
||||
GlobalHandle,'GlobalHandle',\
|
||||
GlobalLock,'GlobalLock',\
|
||||
GlobalMemoryStatus,'GlobalMemoryStatus',\
|
||||
GlobalMemoryStatusVlm,'GlobalMemoryStatusVlm',\
|
||||
GlobalReAlloc,'GlobalReAlloc',\
|
||||
GlobalSize,'GlobalSize',\
|
||||
GlobalUnWire,'GlobalUnWire',\
|
||||
GlobalUnfix,'GlobalUnfix',\
|
||||
GlobalUnlock,'GlobalUnlock',\
|
||||
GlobalWire,'GlobalWire',\
|
||||
Heap32First,'Heap32First',\
|
||||
Heap32ListFirst,'Heap32ListFirst',\
|
||||
Heap32ListNext,'Heap32ListNext',\
|
||||
Heap32Next,'Heap32Next',\
|
||||
HeapAlloc,'HeapAlloc',\
|
||||
HeapCompact,'HeapCompact',\
|
||||
HeapCreate,'HeapCreate',\
|
||||
HeapDestroy,'HeapDestroy',\
|
||||
HeapExtend,'HeapExtend',\
|
||||
HeapFree,'HeapFree',\
|
||||
HeapLock,'HeapLock',\
|
||||
HeapReAlloc,'HeapReAlloc',\
|
||||
HeapSize,'HeapSize',\
|
||||
HeapSummary,'HeapSummary',\
|
||||
HeapUnlock,'HeapUnlock',\
|
||||
HeapUsage,'HeapUsage',\
|
||||
HeapValidate,'HeapValidate',\
|
||||
HeapWalk,'HeapWalk',\
|
||||
InitAtomTable,'InitAtomTable',\
|
||||
InitializeCriticalSection,'InitializeCriticalSection',\
|
||||
InitializeCriticalSectionAndSpinCount,'InitializeCriticalSectionAndSpinCount',\
|
||||
InterlockedCompareExchange,'InterlockedCompareExchange',\
|
||||
InterlockedDecrement,'InterlockedDecrement',\
|
||||
InterlockedExchange,'InterlockedExchange',\
|
||||
InterlockedExchangeAdd,'InterlockedExchangeAdd',\
|
||||
InterlockedIncrement,'InterlockedIncrement',\
|
||||
InvalidateConsoleDIBits,'InvalidateConsoleDIBits',\
|
||||
IsBadCodePtr,'IsBadCodePtr',\
|
||||
IsBadHugeReadPtr,'IsBadHugeReadPtr',\
|
||||
IsBadHugeWritePtr,'IsBadHugeWritePtr',\
|
||||
IsBadReadPtr,'IsBadReadPtr',\
|
||||
IsBadStringPtrA,'IsBadStringPtrA',\
|
||||
IsBadStringPtrW,'IsBadStringPtrW',\
|
||||
IsBadWritePtr,'IsBadWritePtr',\
|
||||
IsDBCSLeadByte,'IsDBCSLeadByte',\
|
||||
IsDBCSLeadByteEx,'IsDBCSLeadByteEx',\
|
||||
IsDebuggerPresent,'IsDebuggerPresent',\
|
||||
IsProcessorFeaturePresent,'IsProcessorFeaturePresent',\
|
||||
IsValidCodePage,'IsValidCodePage',\
|
||||
IsValidLocale,'IsValidLocale',\
|
||||
LCMapStringA,'LCMapStringA',\
|
||||
LCMapStringW,'LCMapStringW',\
|
||||
LeaveCriticalSection,'LeaveCriticalSection',\
|
||||
LoadLibraryA,'LoadLibraryA',\
|
||||
LoadLibraryW,'LoadLibraryW',\
|
||||
LoadLibraryExA,'LoadLibraryExA',\
|
||||
LoadLibraryExW,'LoadLibraryExW',\
|
||||
LoadModule,'LoadModule',\
|
||||
LoadResource,'LoadResource',\
|
||||
LocalAlloc,'LocalAlloc',\
|
||||
LocalCompact,'LocalCompact',\
|
||||
LocalFileTimeToFileTime,'LocalFileTimeToFileTime',\
|
||||
LocalFlags,'LocalFlags',\
|
||||
LocalFree,'LocalFree',\
|
||||
LocalHandle,'LocalHandle',\
|
||||
LocalLock,'LocalLock',\
|
||||
LocalReAlloc,'LocalReAlloc',\
|
||||
LocalShrink,'LocalShrink',\
|
||||
LocalSize,'LocalSize',\
|
||||
LocalUnlock,'LocalUnlock',\
|
||||
LockFile,'LockFile',\
|
||||
LockFileEx,'LockFileEx',\
|
||||
LockResource,'LockResource',\
|
||||
MapViewOfFile,'MapViewOfFile',\
|
||||
MapViewOfFileEx,'MapViewOfFileEx',\
|
||||
MapViewOfFileVlm,'MapViewOfFileVlm',\
|
||||
Module32First,'Module32First',\
|
||||
Module32Next,'Module32Next',\
|
||||
MoveFileA,'MoveFileA',\
|
||||
MoveFileW,'MoveFileW',\
|
||||
MoveFileExA,'MoveFileExA',\
|
||||
MoveFileExW,'MoveFileExW',\
|
||||
MoveFileWithProgressA,'MoveFileWithProgressA',\
|
||||
MoveFileWithProgressW,'MoveFileWithProgressW',\
|
||||
MulDiv,'MulDiv',\
|
||||
MultiByteToWideChar,'MultiByteToWideChar',\
|
||||
OpenEventA,'OpenEventA',\
|
||||
OpenEventW,'OpenEventW',\
|
||||
OpenFile,'OpenFile',\
|
||||
OpenFileMappingA,'OpenFileMappingA',\
|
||||
OpenFileMappingW,'OpenFileMappingW',\
|
||||
OpenJobObjectA,'OpenJobObjectA',\
|
||||
OpenJobObjectW,'OpenJobObjectW',\
|
||||
OpenMutexA,'OpenMutexA',\
|
||||
OpenMutexW,'OpenMutexW',\
|
||||
OpenProcess,'OpenProcess',\
|
||||
OpenProfileUserMapping,'OpenProfileUserMapping',\
|
||||
OpenSemaphoreA,'OpenSemaphoreA',\
|
||||
OpenSemaphoreW,'OpenSemaphoreW',\
|
||||
OpenWaitableTimerA,'OpenWaitableTimerA',\
|
||||
OpenWaitableTimerW,'OpenWaitableTimerW',\
|
||||
OutputDebugStringA,'OutputDebugStringA',\
|
||||
OutputDebugStringW,'OutputDebugStringW',\
|
||||
PeekConsoleInputA,'PeekConsoleInputA',\
|
||||
PeekConsoleInputW,'PeekConsoleInputW',\
|
||||
PeekNamedPipe,'PeekNamedPipe',\
|
||||
PostQueuedCompletionStatus,'PostQueuedCompletionStatus',\
|
||||
PrepareTape,'PrepareTape',\
|
||||
Process32First,'Process32First',\
|
||||
Process32Next,'Process32Next',\
|
||||
PulseEvent,'PulseEvent',\
|
||||
PurgeComm,'PurgeComm',\
|
||||
QueryDosDeviceA,'QueryDosDeviceA',\
|
||||
QueryDosDeviceW,'QueryDosDeviceW',\
|
||||
QueryInformationJobObject,'QueryInformationJobObject',\
|
||||
QueryPerformanceCounter,'QueryPerformanceCounter',\
|
||||
QueryPerformanceFrequency,'QueryPerformanceFrequency',\
|
||||
QueryWin31IniFilesMappedToRegistry,'QueryWin31IniFilesMappedToRegistry',\
|
||||
QueueUserAPC,'QueueUserAPC',\
|
||||
RaiseException,'RaiseException',\
|
||||
ReadConsoleA,'ReadConsoleA',\
|
||||
ReadConsoleW,'ReadConsoleW',\
|
||||
ReadConsoleInputA,'ReadConsoleInputA',\
|
||||
ReadConsoleInputW,'ReadConsoleInputW',\
|
||||
ReadConsoleInputExA,'ReadConsoleInputExA',\
|
||||
ReadConsoleInputExW,'ReadConsoleInputExW',\
|
||||
ReadConsoleOutputA,'ReadConsoleOutputA',\
|
||||
ReadConsoleOutputW,'ReadConsoleOutputW',\
|
||||
ReadConsoleOutputAttribute,'ReadConsoleOutputAttribute',\
|
||||
ReadConsoleOutputCharacterA,'ReadConsoleOutputCharacterA',\
|
||||
ReadConsoleOutputCharacterW,'ReadConsoleOutputCharacterW',\
|
||||
ReadFile,'ReadFile',\
|
||||
ReadFileEx,'ReadFileEx',\
|
||||
ReadFileScatter,'ReadFileScatter',\
|
||||
ReadFileVlm,'ReadFileVlm',\
|
||||
ReadProcessMemory,'ReadProcessMemory',\
|
||||
ReadProcessMemoryVlm,'ReadProcessMemoryVlm',\
|
||||
RegisterConsoleVDM,'RegisterConsoleVDM',\
|
||||
RegisterWaitForInputIdle,'RegisterWaitForInputIdle',\
|
||||
RegisterWowBaseHandlers,'RegisterWowBaseHandlers',\
|
||||
RegisterWowExec,'RegisterWowExec',\
|
||||
ReleaseMutex,'ReleaseMutex',\
|
||||
ReleaseSemaphore,'ReleaseSemaphore',\
|
||||
RemoveDirectoryA,'RemoveDirectoryA',\
|
||||
RemoveDirectoryW,'RemoveDirectoryW',\
|
||||
RequestWakeupLatency,'RequestWakeupLatency',\
|
||||
ResetEvent,'ResetEvent',\
|
||||
ResumeThread,'ResumeThread',\
|
||||
RtlFillMemory,'RtlFillMemory',\
|
||||
RtlMoveMemory,'RtlMoveMemory',\
|
||||
RtlUnwind,'RtlUnwind',\
|
||||
RtlZeroMemory,'RtlZeroMemory',\
|
||||
ScrollConsoleScreenBufferA,'ScrollConsoleScreenBufferA',\
|
||||
ScrollConsoleScreenBufferW,'ScrollConsoleScreenBufferW',\
|
||||
SearchPathA,'SearchPathA',\
|
||||
SearchPathW,'SearchPathW',\
|
||||
SetCommBreak,'SetCommBreak',\
|
||||
SetCommConfig,'SetCommConfig',\
|
||||
SetCommMask,'SetCommMask',\
|
||||
SetCommState,'SetCommState',\
|
||||
SetCommTimeouts,'SetCommTimeouts',\
|
||||
SetComputerNameA,'SetComputerNameA',\
|
||||
SetComputerNameW,'SetComputerNameW',\
|
||||
SetConsoleActiveScreenBuffer,'SetConsoleActiveScreenBuffer',\
|
||||
SetConsoleCP,'SetConsoleCP',\
|
||||
SetConsoleCommandHistoryMode,'SetConsoleCommandHistoryMode',\
|
||||
SetConsoleCtrlHandler,'SetConsoleCtrlHandler',\
|
||||
SetConsoleCursor,'SetConsoleCursor',\
|
||||
SetConsoleCursorInfo,'SetConsoleCursorInfo',\
|
||||
SetConsoleCursorPosition,'SetConsoleCursorPosition',\
|
||||
SetConsoleDisplayMode,'SetConsoleDisplayMode',\
|
||||
SetConsoleFont,'SetConsoleFont',\
|
||||
SetConsoleHardwareState,'SetConsoleHardwareState',\
|
||||
SetConsoleIcon,'SetConsoleIcon',\
|
||||
SetConsoleInputExeNameA,'SetConsoleInputExeNameA',\
|
||||
SetConsoleInputExeNameW,'SetConsoleInputExeNameW',\
|
||||
SetConsoleKeyShortcuts,'SetConsoleKeyShortcuts',\
|
||||
SetConsoleMaximumWindowSize,'SetConsoleMaximumWindowSize',\
|
||||
SetConsoleMenuClose,'SetConsoleMenuClose',\
|
||||
SetConsoleMode,'SetConsoleMode',\
|
||||
SetConsoleNumberOfCommandsA,'SetConsoleNumberOfCommandsA',\
|
||||
SetConsoleNumberOfCommandsW,'SetConsoleNumberOfCommandsW',\
|
||||
SetConsoleOutputCP,'SetConsoleOutputCP',\
|
||||
SetConsolePalette,'SetConsolePalette',\
|
||||
SetConsoleScreenBufferSize,'SetConsoleScreenBufferSize',\
|
||||
SetConsoleTextAttribute,'SetConsoleTextAttribute',\
|
||||
SetConsoleTitleA,'SetConsoleTitleA',\
|
||||
SetConsoleTitleW,'SetConsoleTitleW',\
|
||||
SetConsoleWindowInfo,'SetConsoleWindowInfo',\
|
||||
SetCriticalSectionSpinCount,'SetCriticalSectionSpinCount',\
|
||||
SetCurrentDirectoryA,'SetCurrentDirectoryA',\
|
||||
SetCurrentDirectoryW,'SetCurrentDirectoryW',\
|
||||
SetDefaultCommConfigA,'SetDefaultCommConfigA',\
|
||||
SetDefaultCommConfigW,'SetDefaultCommConfigW',\
|
||||
SetEndOfFile,'SetEndOfFile',\
|
||||
SetEnvironmentVariableA,'SetEnvironmentVariableA',\
|
||||
SetEnvironmentVariableW,'SetEnvironmentVariableW',\
|
||||
SetErrorMode,'SetErrorMode',\
|
||||
SetEvent,'SetEvent',\
|
||||
SetFileApisToANSI,'SetFileApisToANSI',\
|
||||
SetFileApisToOEM,'SetFileApisToOEM',\
|
||||
SetFileAttributesA,'SetFileAttributesA',\
|
||||
SetFileAttributesW,'SetFileAttributesW',\
|
||||
SetFilePointer,'SetFilePointer',\
|
||||
SetFilePointerEx,'SetFilePointerEx',\
|
||||
SetFileTime,'SetFileTime',\
|
||||
SetHandleCount,'SetHandleCount',\
|
||||
SetHandleInformation,'SetHandleInformation',\
|
||||
SetInformationJobObject,'SetInformationJobObject',\
|
||||
SetLastConsoleEventActive,'SetLastConsoleEventActive',\
|
||||
SetLastError,'SetLastError',\
|
||||
SetLocalTime,'SetLocalTime',\
|
||||
SetLocaleInfoA,'SetLocaleInfoA',\
|
||||
SetLocaleInfoW,'SetLocaleInfoW',\
|
||||
SetMailslotInfo,'SetMailslotInfo',\
|
||||
SetNamedPipeHandleState,'SetNamedPipeHandleState',\
|
||||
SetPriorityClass,'SetPriorityClass',\
|
||||
SetProcessAffinityMask,'SetProcessAffinityMask',\
|
||||
SetProcessPriorityBoost,'SetProcessPriorityBoost',\
|
||||
SetProcessShutdownParameters,'SetProcessShutdownParameters',\
|
||||
SetProcessWorkingSetSize,'SetProcessWorkingSetSize',\
|
||||
SetStdHandle,'SetStdHandle',\
|
||||
SetSystemPowerState,'SetSystemPowerState',\
|
||||
SetSystemTime,'SetSystemTime',\
|
||||
SetSystemTimeAdjustment,'SetSystemTimeAdjustment',\
|
||||
SetTapeParameters,'SetTapeParameters',\
|
||||
SetTapePosition,'SetTapePosition',\
|
||||
SetThreadAffinityMask,'SetThreadAffinityMask',\
|
||||
SetThreadContext,'SetThreadContext',\
|
||||
SetThreadExecutionState,'SetThreadExecutionState',\
|
||||
SetThreadIdealProcessor,'SetThreadIdealProcessor',\
|
||||
SetThreadLocale,'SetThreadLocale',\
|
||||
SetThreadPriority,'SetThreadPriority',\
|
||||
SetThreadPriorityBoost,'SetThreadPriorityBoost',\
|
||||
SetTimeZoneInformation,'SetTimeZoneInformation',\
|
||||
SetUnhandledExceptionFilter,'SetUnhandledExceptionFilter',\
|
||||
SetVDMCurrentDirectories,'SetVDMCurrentDirectories',\
|
||||
SetVolumeLabelA,'SetVolumeLabelA',\
|
||||
SetVolumeLabelW,'SetVolumeLabelW',\
|
||||
SetWaitableTimer,'SetWaitableTimer',\
|
||||
SetupComm,'SetupComm',\
|
||||
ShowConsoleCursor,'ShowConsoleCursor',\
|
||||
SignalObjectAndWait,'SignalObjectAndWait',\
|
||||
SizeofResource,'SizeofResource',\
|
||||
Sleep,'Sleep',\
|
||||
SleepEx,'SleepEx',\
|
||||
SuspendThread,'SuspendThread',\
|
||||
SwitchToFiber,'SwitchToFiber',\
|
||||
SwitchToThread,'SwitchToThread',\
|
||||
SystemTimeToFileTime,'SystemTimeToFileTime',\
|
||||
SystemTimeToTzSpecificLocalTime,'SystemTimeToTzSpecificLocalTime',\
|
||||
TerminateJobObject,'TerminateJobObject',\
|
||||
TerminateProcess,'TerminateProcess',\
|
||||
TerminateThread,'TerminateThread',\
|
||||
Thread32First,'Thread32First',\
|
||||
Thread32Next,'Thread32Next',\
|
||||
TlsAlloc,'TlsAlloc',\
|
||||
TlsFree,'TlsFree',\
|
||||
TlsGetValue,'TlsGetValue',\
|
||||
TlsSetValue,'TlsSetValue',\
|
||||
Toolhelp32ReadProcessMemory,'Toolhelp32ReadProcessMemory',\
|
||||
TransactNamedPipe,'TransactNamedPipe',\
|
||||
TransmitCommChar,'TransmitCommChar',\
|
||||
TrimVirtualBuffer,'TrimVirtualBuffer',\
|
||||
TryEnterCriticalSection,'TryEnterCriticalSection',\
|
||||
UnhandledExceptionFilter,'UnhandledExceptionFilter',\
|
||||
UnlockFile,'UnlockFile',\
|
||||
UnlockFileEx,'UnlockFileEx',\
|
||||
UnmapViewOfFile,'UnmapViewOfFile',\
|
||||
UnmapViewOfFileVlm,'UnmapViewOfFileVlm',\
|
||||
UpdateResourceA,'UpdateResourceA',\
|
||||
UpdateResourceW,'UpdateResourceW',\
|
||||
VDMConsoleOperation,'VDMConsoleOperation',\
|
||||
VDMOperationStarted,'VDMOperationStarted',\
|
||||
VerLanguageNameA,'VerLanguageNameA',\
|
||||
VerLanguageNameW,'VerLanguageNameW',\
|
||||
VerifyConsoleIoHandle,'VerifyConsoleIoHandle',\
|
||||
VirtualAlloc,'VirtualAlloc',\
|
||||
VirtualAllocEx,'VirtualAllocEx',\
|
||||
VirtualAllocVlm,'VirtualAllocVlm',\
|
||||
VirtualBufferExceptionHandler,'VirtualBufferExceptionHandler',\
|
||||
VirtualFree,'VirtualFree',\
|
||||
VirtualFreeEx,'VirtualFreeEx',\
|
||||
VirtualFreeVlm,'VirtualFreeVlm',\
|
||||
VirtualLock,'VirtualLock',\
|
||||
VirtualProtect,'VirtualProtect',\
|
||||
VirtualProtectEx,'VirtualProtectEx',\
|
||||
VirtualProtectVlm,'VirtualProtectVlm',\
|
||||
VirtualQuery,'VirtualQuery',\
|
||||
VirtualQueryEx,'VirtualQueryEx',\
|
||||
VirtualQueryVlm,'VirtualQueryVlm',\
|
||||
VirtualUnlock,'VirtualUnlock',\
|
||||
WaitCommEvent,'WaitCommEvent',\
|
||||
WaitForDebugEvent,'WaitForDebugEvent',\
|
||||
WaitForMultipleObjects,'WaitForMultipleObjects',\
|
||||
WaitForMultipleObjectsEx,'WaitForMultipleObjectsEx',\
|
||||
WaitForSingleObject,'WaitForSingleObject',\
|
||||
WaitForSingleObjectEx,'WaitForSingleObjectEx',\
|
||||
WaitNamedPipeA,'WaitNamedPipeA',\
|
||||
WaitNamedPipeW,'WaitNamedPipeW',\
|
||||
WideCharToMultiByte,'WideCharToMultiByte',\
|
||||
WinExec,'WinExec',\
|
||||
WriteConsoleA,'WriteConsoleA',\
|
||||
WriteConsoleW,'WriteConsoleW',\
|
||||
WriteConsoleInputA,'WriteConsoleInputA',\
|
||||
WriteConsoleInputW,'WriteConsoleInputW',\
|
||||
WriteConsoleInputVDMA,'WriteConsoleInputVDMA',\
|
||||
WriteConsoleInputVDMW,'WriteConsoleInputVDMW',\
|
||||
WriteConsoleOutputA,'WriteConsoleOutputA',\
|
||||
WriteConsoleOutputW,'WriteConsoleOutputW',\
|
||||
WriteConsoleOutputAttribute,'WriteConsoleOutputAttribute',\
|
||||
WriteConsoleOutputCharacterA,'WriteConsoleOutputCharacterA',\
|
||||
WriteConsoleOutputCharacterW,'WriteConsoleOutputCharacterW',\
|
||||
WriteFile,'WriteFile',\
|
||||
WriteFileEx,'WriteFileEx',\
|
||||
WriteFileGather,'WriteFileGather',\
|
||||
WriteFileVlm,'WriteFileVlm',\
|
||||
WritePrivateProfileSectionA,'WritePrivateProfileSectionA',\
|
||||
WritePrivateProfileSectionW,'WritePrivateProfileSectionW',\
|
||||
WritePrivateProfileStringA,'WritePrivateProfileStringA',\
|
||||
WritePrivateProfileStringW,'WritePrivateProfileStringW',\
|
||||
WritePrivateProfileStructA,'WritePrivateProfileStructA',\
|
||||
WritePrivateProfileStructW,'WritePrivateProfileStructW',\
|
||||
WriteProcessMemory,'WriteProcessMemory',\
|
||||
WriteProcessMemoryVlm,'WriteProcessMemoryVlm',\
|
||||
WriteProfileSectionA,'WriteProfileSectionA',\
|
||||
WriteProfileSectionW,'WriteProfileSectionW',\
|
||||
WriteProfileStringA,'WriteProfileStringA',\
|
||||
WriteProfileStringW,'WriteProfileStringW',\
|
||||
WriteTapemark,'WriteTapemark',\
|
||||
_hread,'_hread',\
|
||||
_hwrite,'_hwrite',\
|
||||
_lclose,'_lclose',\
|
||||
_lcreat,'_lcreat',\
|
||||
_llseek,'_llseek',\
|
||||
_lopen,'_lopen',\
|
||||
_lread,'_lread',\
|
||||
_lwrite,'_lwrite',\
|
||||
lstrcatA,'lstrcatA',\
|
||||
lstrcatW,'lstrcatW',\
|
||||
lstrcmpA,'lstrcmpA',\
|
||||
lstrcmpW,'lstrcmpW',\
|
||||
lstrcmpiA,'lstrcmpiA',\
|
||||
lstrcmpiW,'lstrcmpiW',\
|
||||
lstrcpyA,'lstrcpyA',\
|
||||
lstrcpyW,'lstrcpyW',\
|
||||
lstrcpynA,'lstrcpynA',\
|
||||
lstrcpynW,'lstrcpynW',\
|
||||
lstrlenA,'lstrlenA',\
|
||||
lstrlenW,'lstrlenW'
|
||||
|
||||
api AddAtom,\
|
||||
AddConsoleAlias,\
|
||||
BeginUpdateResource,\
|
||||
BuildCommDCB,\
|
||||
BuildCommDCBAndTimeouts,\
|
||||
CallNamedPipe,\
|
||||
CommConfigDialog,\
|
||||
CompareString,\
|
||||
CopyFile,\
|
||||
CopyFileEx,\
|
||||
CreateDirectory,\
|
||||
CreateDirectoryEx,\
|
||||
CreateEvent,\
|
||||
CreateFile,\
|
||||
CreateFileMapping,\
|
||||
CreateHardLink,\
|
||||
CreateJobObject,\
|
||||
CreateMailslot,\
|
||||
CreateMutex,\
|
||||
CreateNamedPipe,\
|
||||
CreateProcess,\
|
||||
CreateSemaphore,\
|
||||
CreateWaitableTimer,\
|
||||
DefineDosDevice,\
|
||||
DeleteFile,\
|
||||
EndUpdateResource,\
|
||||
EnumCalendarInfo,\
|
||||
EnumCalendarInfoEx,\
|
||||
EnumDateFormats,\
|
||||
EnumDateFormatsEx,\
|
||||
EnumResourceLanguages,\
|
||||
EnumResourceNames,\
|
||||
EnumResourceTypes,\
|
||||
EnumSystemCodePages,\
|
||||
EnumSystemLocales,\
|
||||
EnumTimeFormats,\
|
||||
ExpandEnvironmentStrings,\
|
||||
ExpungeConsoleCommandHistory,\
|
||||
FatalAppExit,\
|
||||
FillConsoleOutputCharacter,\
|
||||
FindAtom,\
|
||||
FindFirstChangeNotification,\
|
||||
FindFirstFile,\
|
||||
FindFirstFileEx,\
|
||||
FindNextFile,\
|
||||
FindResource,\
|
||||
FindResourceEx,\
|
||||
FoldString,\
|
||||
FormatMessage,\
|
||||
FreeEnvironmentStrings,\
|
||||
GetAtomName,\
|
||||
GetBinaryType,\
|
||||
GetCPInfoEx,\
|
||||
GetCommandLine,\
|
||||
GetCompressedFileSize,\
|
||||
GetComputerName,\
|
||||
GetConsoleAlias,\
|
||||
GetConsoleAliasExes,\
|
||||
GetConsoleAliasExesLength,\
|
||||
GetConsoleAliases,\
|
||||
GetConsoleAliasesLength,\
|
||||
GetConsoleCommandHistory,\
|
||||
GetConsoleCommandHistoryLength,\
|
||||
GetConsoleInputExeName,\
|
||||
GetConsoleKeyboardLayoutName,\
|
||||
GetConsoleTitle,\
|
||||
GetCurrencyFormat,\
|
||||
GetCurrentDirectory,\
|
||||
GetDateFormat,\
|
||||
GetDefaultCommConfig,\
|
||||
GetDiskFreeSpace,\
|
||||
GetDiskFreeSpaceEx,\
|
||||
GetDriveType,\
|
||||
GetEnvironmentStrings,\
|
||||
GetEnvironmentVariable,\
|
||||
GetFileAttributes,\
|
||||
GetFileAttributesEx,\
|
||||
GetFullPathName,\
|
||||
GetLocaleInfo,\
|
||||
GetLogicalDriveStrings,\
|
||||
GetLongPathName,\
|
||||
GetModuleFileName,\
|
||||
GetModuleHandle,\
|
||||
GetNamedPipeHandleState,\
|
||||
GetNumberFormat,\
|
||||
GetPrivateProfileInt,\
|
||||
GetPrivateProfileSection,\
|
||||
GetPrivateProfileSectionNames,\
|
||||
GetPrivateProfileString,\
|
||||
GetPrivateProfileStruct,\
|
||||
GetProfileInt,\
|
||||
GetProfileSection,\
|
||||
GetProfileString,\
|
||||
GetShortPathName,\
|
||||
GetStartupInfo,\
|
||||
GetStringType,\
|
||||
GetStringTypeEx,\
|
||||
GetSystemDirectory,\
|
||||
GetTempFileName,\
|
||||
GetTempPath,\
|
||||
GetTimeFormat,\
|
||||
GetVersionEx,\
|
||||
GetVolumeInformation,\
|
||||
GetWindowsDirectory,\
|
||||
GlobalAddAtom,\
|
||||
GlobalFindAtom,\
|
||||
GlobalGetAtomName,\
|
||||
IsBadStringPtr,\
|
||||
LCMapString,\
|
||||
LoadLibrary,\
|
||||
LoadLibraryEx,\
|
||||
MoveFile,\
|
||||
MoveFileEx,\
|
||||
MoveFileWithProgress,\
|
||||
OpenEvent,\
|
||||
OpenFileMapping,\
|
||||
OpenJobObject,\
|
||||
OpenMutex,\
|
||||
OpenSemaphore,\
|
||||
OpenWaitableTimer,\
|
||||
OutputDebugString,\
|
||||
PeekConsoleInput,\
|
||||
QueryDosDevice,\
|
||||
ReadConsole,\
|
||||
ReadConsoleInput,\
|
||||
ReadConsoleInputEx,\
|
||||
ReadConsoleOutput,\
|
||||
ReadConsoleOutputCharacter,\
|
||||
RemoveDirectory,\
|
||||
ScrollConsoleScreenBuffer,\
|
||||
SearchPath,\
|
||||
SetComputerName,\
|
||||
SetConsoleInputExeName,\
|
||||
SetConsoleNumberOfCommands,\
|
||||
SetConsoleTitle,\
|
||||
SetCurrentDirectory,\
|
||||
SetDefaultCommConfig,\
|
||||
SetEnvironmentVariable,\
|
||||
SetFileAttributes,\
|
||||
SetLocaleInfo,\
|
||||
SetVolumeLabel,\
|
||||
UpdateResource,\
|
||||
VerLanguageName,\
|
||||
WaitNamedPipe,\
|
||||
WriteConsole,\
|
||||
WriteConsoleInput,\
|
||||
WriteConsoleInputVDM,\
|
||||
WriteConsoleOutput,\
|
||||
WriteConsoleOutputCharacter,\
|
||||
WritePrivateProfileSection,\
|
||||
WritePrivateProfileString,\
|
||||
WritePrivateProfileStruct,\
|
||||
WriteProfileSection,\
|
||||
WriteProfileString,\
|
||||
lstrcat,\
|
||||
lstrcmp,\
|
||||
lstrcmpi,\
|
||||
lstrcpy,\
|
||||
lstrcpyn,\
|
||||
lstrlen
|
||||
167
toolchain/fasmw17332/INCLUDE/API/SHELL32.INC
Normal file
167
toolchain/fasmw17332/INCLUDE/API/SHELL32.INC
Normal file
@@ -0,0 +1,167 @@
|
||||
|
||||
; SHELL32 API calls
|
||||
|
||||
import shell32,\
|
||||
CheckEscapesA,'CheckEscapesA',\
|
||||
CheckEscapesW,'CheckEscapesW',\
|
||||
DoEnvironmentSubstA,'DoEnvironmentSubstA',\
|
||||
DoEnvironmentSubstW,'DoEnvironmentSubstW',\
|
||||
DragAcceptFiles,'DragAcceptFiles',\
|
||||
DragFinish,'DragFinish',\
|
||||
DragQueryFileA,'DragQueryFileA',\
|
||||
DragQueryFileW,'DragQueryFileW',\
|
||||
DragQueryPoint,'DragQueryPoint',\
|
||||
DuplicateIcon,'DuplicateIcon',\
|
||||
ExtractAssociatedIconA,'ExtractAssociatedIconA',\
|
||||
ExtractAssociatedIconW,'ExtractAssociatedIconW',\
|
||||
ExtractAssociatedIconExA,'ExtractAssociatedIconExA',\
|
||||
ExtractAssociatedIconExW,'ExtractAssociatedIconExW',\
|
||||
ExtractIconA,'ExtractIconA',\
|
||||
ExtractIconW,'ExtractIconW',\
|
||||
ExtractIconExA,'ExtractIconExA',\
|
||||
ExtractIconExW,'ExtractIconExW',\
|
||||
ExtractIconResInfoA,'ExtractIconResInfoA',\
|
||||
ExtractIconResInfoW,'ExtractIconResInfoW',\
|
||||
FindExeDlgProc,'FindExeDlgProc',\
|
||||
FindExecutableA,'FindExecutableA',\
|
||||
FindExecutableW,'FindExecutableW',\
|
||||
FreeIconList,'FreeIconList',\
|
||||
InternalExtractIconListA,'InternalExtractIconListA',\
|
||||
InternalExtractIconListW,'InternalExtractIconListW',\
|
||||
RealShellExecuteA,'RealShellExecuteA',\
|
||||
RealShellExecuteW,'RealShellExecuteW',\
|
||||
RealShellExecuteExA,'RealShellExecuteExA',\
|
||||
RealShellExecuteExW,'RealShellExecuteExW',\
|
||||
RegenerateUserEnvironment,'RegenerateUserEnvironment',\
|
||||
SHAddToRecentDocs,'SHAddToRecentDocs',\
|
||||
SHAppBarMessage,'SHAppBarMessage',\
|
||||
SHBrowseForFolderA,'SHBrowseForFolderA',\
|
||||
SHBrowseForFolderW,'SHBrowseForFolderW',\
|
||||
SHChangeNotify,'SHChangeNotify',\
|
||||
SHEmptyRecycleBinA,'SHEmptyRecycleBinA',\
|
||||
SHEmptyRecycleBinW,'SHEmptyRecycleBinW',\
|
||||
SHFileOperationA,'SHFileOperationA',\
|
||||
SHFileOperationW,'SHFileOperationW',\
|
||||
SHFormatDrive,'SHFormatDrive',\
|
||||
SHFreeNameMappings,'SHFreeNameMappings',\
|
||||
SHGetDataFromIDListA,'SHGetDataFromIDListA',\
|
||||
SHGetDataFromIDListW,'SHGetDataFromIDListW',\
|
||||
SHGetDesktopFolder,'SHGetDesktopFolder',\
|
||||
SHGetDiskFreeSpaceA,'SHGetDiskFreeSpaceA',\
|
||||
SHGetDiskFreeSpaceW,'SHGetDiskFreeSpaceW',\
|
||||
SHGetFileInfoA,'SHGetFileInfoA',\
|
||||
SHGetFileInfoW,'SHGetFileInfoW',\
|
||||
SHGetInstanceExplorer,'SHGetInstanceExplorer',\
|
||||
SHGetMalloc,'SHGetMalloc',\
|
||||
SHGetNewLinkInfo,'SHGetNewLinkInfo',\
|
||||
SHGetPathFromIDListA,'SHGetPathFromIDListA',\
|
||||
SHGetPathFromIDListW,'SHGetPathFromIDListW',\
|
||||
SHGetSettings,'SHGetSettings',\
|
||||
SHGetSpecialFolderLocation,'SHGetSpecialFolderLocation',\
|
||||
SHGetSpecialFolderPathA,'SHGetSpecialFolderPathA',\
|
||||
SHGetSpecialFolderPathW,'SHGetSpecialFolderPathW',\
|
||||
SHInvokePrinterCommandA,'SHInvokePrinterCommandA',\
|
||||
SHInvokePrinterCommandW,'SHInvokePrinterCommandW',\
|
||||
SHLoadInProc,'SHLoadInProc',\
|
||||
SHQueryRecycleBinA,'SHQueryRecycleBinA',\
|
||||
SHQueryRecycleBinW,'SHQueryRecycleBinW',\
|
||||
SHUpdateRecycleBinIcon,'SHUpdateRecycleBinIcon',\
|
||||
SheChangeDirA,'SheChangeDirA',\
|
||||
SheChangeDirW,'SheChangeDirW',\
|
||||
SheChangeDirExA,'SheChangeDirExA',\
|
||||
SheChangeDirExW,'SheChangeDirExW',\
|
||||
SheFullPathA,'SheFullPathA',\
|
||||
SheFullPathW,'SheFullPathW',\
|
||||
SheGetCurDrive,'SheGetCurDrive',\
|
||||
SheGetDirA,'SheGetDirA',\
|
||||
SheGetDirW,'SheGetDirW',\
|
||||
SheRemoveQuotesA,'SheRemoveQuotesA',\
|
||||
SheRemoveQuotesW,'SheRemoveQuotesW',\
|
||||
SheSetCurDrive,'SheSetCurDrive',\
|
||||
SheShortenPathA,'SheShortenPathA',\
|
||||
SheShortenPathW,'SheShortenPathW',\
|
||||
ShellAboutA,'ShellAboutA',\
|
||||
ShellAboutW,'ShellAboutW',\
|
||||
ShellExecuteA,'ShellExecuteA',\
|
||||
ShellExecuteW,'ShellExecuteW',\
|
||||
ShellExecuteExA,'ShellExecuteExA',\
|
||||
ShellExecuteExW,'ShellExecuteExW',\
|
||||
ShellHookProc,'ShellHookProc',\
|
||||
Shell_NotifyIconA,'Shell_NotifyIconA',\
|
||||
Shell_NotifyIconW,'Shell_NotifyIconW',\
|
||||
StrChrA,'StrChrA',\
|
||||
StrChrW,'StrChrW',\
|
||||
StrChrIA,'StrChrIA',\
|
||||
StrChrIW,'StrChrIW',\
|
||||
StrCmpNA,'StrCmpNA',\
|
||||
StrCmpNW,'StrCmpNW',\
|
||||
StrCmpNIA,'StrCmpNIA',\
|
||||
StrCmpNIW,'StrCmpNIW',\
|
||||
StrCpyNA,'StrCpyNA',\
|
||||
StrCpyNW,'StrCpyNW',\
|
||||
StrNCmpA,'StrNCmpA',\
|
||||
StrNCmpW,'StrNCmpW',\
|
||||
StrNCmpIA,'StrNCmpIA',\
|
||||
StrNCmpIW,'StrNCmpIW',\
|
||||
StrNCpyA,'StrNCpyA',\
|
||||
StrNCpyW,'StrNCpyW',\
|
||||
StrRChrA,'StrRChrA',\
|
||||
StrRChrW,'StrRChrW',\
|
||||
StrRChrIA,'StrRChrIA',\
|
||||
StrRChrIW,'StrRChrIW',\
|
||||
StrRStrA,'StrRStrA',\
|
||||
StrRStrW,'StrRStrW',\
|
||||
StrRStrIA,'StrRStrIA',\
|
||||
StrRStrIW,'StrRStrIW',\
|
||||
StrStrA,'StrStrA',\
|
||||
StrStrW,'StrStrW',\
|
||||
StrStrIA,'StrStrIA',\
|
||||
StrStrIW,'StrStrIW',\
|
||||
WOWShellExecute,'WOWShellExecute'
|
||||
|
||||
api CheckEscapes,\
|
||||
DoEnvironmentSubst,\
|
||||
DragQueryFile,\
|
||||
ExtractAssociatedIcon,\
|
||||
ExtractAssociatedIconEx,\
|
||||
ExtractIcon,\
|
||||
ExtractIconEx,\
|
||||
ExtractIconResInfo,\
|
||||
FindExecutable,\
|
||||
InternalExtractIconList,\
|
||||
RealShellExecute,\
|
||||
RealShellExecuteEx,\
|
||||
SHBrowseForFolder,\
|
||||
SHEmptyRecycleBin,\
|
||||
SHFileOperation,\
|
||||
SHGetDataFromIDList,\
|
||||
SHGetDiskFreeSpace,\
|
||||
SHGetFileInfo,\
|
||||
SHGetPathFromIDList,\
|
||||
SHGetSpecialFolderPath,\
|
||||
SHInvokePrinterCommand,\
|
||||
SHQueryRecycleBin,\
|
||||
SheChangeDir,\
|
||||
SheChangeDirEx,\
|
||||
SheFullPath,\
|
||||
SheGetDir,\
|
||||
SheRemoveQuotes,\
|
||||
SheShortenPath,\
|
||||
ShellAbout,\
|
||||
ShellExecute,\
|
||||
ShellExecuteEx,\
|
||||
Shell_NotifyIcon,\
|
||||
StrChr,\
|
||||
StrChrI,\
|
||||
StrCmpN,\
|
||||
StrCmpNI,\
|
||||
StrCpyN,\
|
||||
StrNCmp,\
|
||||
StrNCmpI,\
|
||||
StrNCpy,\
|
||||
StrRChr,\
|
||||
StrRChrI,\
|
||||
StrRStr,\
|
||||
StrRStrI,\
|
||||
StrStr,\
|
||||
StrStrI
|
||||
756
toolchain/fasmw17332/INCLUDE/API/USER32.INC
Normal file
756
toolchain/fasmw17332/INCLUDE/API/USER32.INC
Normal file
@@ -0,0 +1,756 @@
|
||||
|
||||
; USER32 API calls
|
||||
|
||||
import user32,\
|
||||
ActivateKeyboardLayout,'ActivateKeyboardLayout',\
|
||||
AdjustWindowRect,'AdjustWindowRect',\
|
||||
AdjustWindowRectEx,'AdjustWindowRectEx',\
|
||||
AnimateWindow,'AnimateWindow',\
|
||||
AnyPopup,'AnyPopup',\
|
||||
AppendMenuA,'AppendMenuA',\
|
||||
AppendMenuW,'AppendMenuW',\
|
||||
ArrangeIconicWindows,'ArrangeIconicWindows',\
|
||||
AttachThreadInput,'AttachThreadInput',\
|
||||
BeginDeferWindowPos,'BeginDeferWindowPos',\
|
||||
BeginPaint,'BeginPaint',\
|
||||
BlockInput,'BlockInput',\
|
||||
BringWindowToTop,'BringWindowToTop',\
|
||||
BroadcastSystemMessageA,'BroadcastSystemMessageA',\
|
||||
BroadcastSystemMessageW,'BroadcastSystemMessageW',\
|
||||
CallMsgFilterA,'CallMsgFilterA',\
|
||||
CallMsgFilterW,'CallMsgFilterW',\
|
||||
CallNextHookEx,'CallNextHookEx',\
|
||||
CallWindowProcA,'CallWindowProcA',\
|
||||
CallWindowProcW,'CallWindowProcW',\
|
||||
CascadeChildWindows,'CascadeChildWindows',\
|
||||
CascadeWindows,'CascadeWindows',\
|
||||
ChangeClipboardChain,'ChangeClipboardChain',\
|
||||
ChangeDisplaySettingsA,'ChangeDisplaySettingsA',\
|
||||
ChangeDisplaySettingsW,'ChangeDisplaySettingsW',\
|
||||
ChangeDisplaySettingsExA,'ChangeDisplaySettingsExA',\
|
||||
ChangeDisplaySettingsExW,'ChangeDisplaySettingsExW',\
|
||||
ChangeMenuA,'ChangeMenuA',\
|
||||
ChangeMenuW,'ChangeMenuW',\
|
||||
CharLowerA,'CharLowerA',\
|
||||
CharLowerW,'CharLowerW',\
|
||||
CharLowerBuffA,'CharLowerBuffA',\
|
||||
CharLowerBuffW,'CharLowerBuffW',\
|
||||
CharNextA,'CharNextA',\
|
||||
CharNextW,'CharNextW',\
|
||||
CharNextExA,'CharNextExA',\
|
||||
CharNextExW,'CharNextExW',\
|
||||
CharPrevA,'CharPrevA',\
|
||||
CharPrevW,'CharPrevW',\
|
||||
CharPrevExA,'CharPrevExA',\
|
||||
CharPrevExW,'CharPrevExW',\
|
||||
CharToOemA,'CharToOemA',\
|
||||
CharToOemW,'CharToOemW',\
|
||||
CharToOemBuffA,'CharToOemBuffA',\
|
||||
CharToOemBuffW,'CharToOemBuffW',\
|
||||
CharUpperA,'CharUpperA',\
|
||||
CharUpperW,'CharUpperW',\
|
||||
CharUpperBuffA,'CharUpperBuffA',\
|
||||
CharUpperBuffW,'CharUpperBuffW',\
|
||||
CheckDlgButton,'CheckDlgButton',\
|
||||
CheckMenuItem,'CheckMenuItem',\
|
||||
CheckMenuRadioItem,'CheckMenuRadioItem',\
|
||||
CheckRadioButton,'CheckRadioButton',\
|
||||
ChildWindowFromPoint,'ChildWindowFromPoint',\
|
||||
ChildWindowFromPointEx,'ChildWindowFromPointEx',\
|
||||
ClientToScreen,'ClientToScreen',\
|
||||
ClipCursor,'ClipCursor',\
|
||||
CloseClipboard,'CloseClipboard',\
|
||||
CloseDesktop,'CloseDesktop',\
|
||||
CloseWindow,'CloseWindow',\
|
||||
CloseWindowStation,'CloseWindowStation',\
|
||||
CopyAcceleratorTableA,'CopyAcceleratorTableA',\
|
||||
CopyAcceleratorTableW,'CopyAcceleratorTableW',\
|
||||
CopyIcon,'CopyIcon',\
|
||||
CopyImage,'CopyImage',\
|
||||
CopyRect,'CopyRect',\
|
||||
CountClipboardFormats,'CountClipboardFormats',\
|
||||
CreateAcceleratorTableA,'CreateAcceleratorTableA',\
|
||||
CreateAcceleratorTableW,'CreateAcceleratorTableW',\
|
||||
CreateCaret,'CreateCaret',\
|
||||
CreateCursor,'CreateCursor',\
|
||||
CreateDesktopA,'CreateDesktopA',\
|
||||
CreateDesktopW,'CreateDesktopW',\
|
||||
CreateDialogIndirectParamA,'CreateDialogIndirectParamA',\
|
||||
CreateDialogIndirectParamW,'CreateDialogIndirectParamW',\
|
||||
CreateDialogParamA,'CreateDialogParamA',\
|
||||
CreateDialogParamW,'CreateDialogParamW',\
|
||||
CreateIcon,'CreateIcon',\
|
||||
CreateIconFromResource,'CreateIconFromResource',\
|
||||
CreateIconFromResourceEx,'CreateIconFromResourceEx',\
|
||||
CreateIconIndirect,'CreateIconIndirect',\
|
||||
CreateMDIWindowA,'CreateMDIWindowA',\
|
||||
CreateMDIWindowW,'CreateMDIWindowW',\
|
||||
CreateMenu,'CreateMenu',\
|
||||
CreatePopupMenu,'CreatePopupMenu',\
|
||||
CreateWindowExA,'CreateWindowExA',\
|
||||
CreateWindowExW,'CreateWindowExW',\
|
||||
CreateWindowStationA,'CreateWindowStationA',\
|
||||
CreateWindowStationW,'CreateWindowStationW',\
|
||||
DdeAbandonTransaction,'DdeAbandonTransaction',\
|
||||
DdeAccessData,'DdeAccessData',\
|
||||
DdeAddData,'DdeAddData',\
|
||||
DdeClientTransaction,'DdeClientTransaction',\
|
||||
DdeCmpStringHandles,'DdeCmpStringHandles',\
|
||||
DdeConnect,'DdeConnect',\
|
||||
DdeConnectList,'DdeConnectList',\
|
||||
DdeCreateDataHandle,'DdeCreateDataHandle',\
|
||||
DdeCreateStringHandleA,'DdeCreateStringHandleA',\
|
||||
DdeCreateStringHandleW,'DdeCreateStringHandleW',\
|
||||
DdeDisconnect,'DdeDisconnect',\
|
||||
DdeDisconnectList,'DdeDisconnectList',\
|
||||
DdeEnableCallback,'DdeEnableCallback',\
|
||||
DdeFreeDataHandle,'DdeFreeDataHandle',\
|
||||
DdeFreeStringHandle,'DdeFreeStringHandle',\
|
||||
DdeGetData,'DdeGetData',\
|
||||
DdeGetLastError,'DdeGetLastError',\
|
||||
DdeGetQualityOfService,'DdeGetQualityOfService',\
|
||||
DdeImpersonateClient,'DdeImpersonateClient',\
|
||||
DdeInitializeA,'DdeInitializeA',\
|
||||
DdeInitializeW,'DdeInitializeW',\
|
||||
DdeKeepStringHandle,'DdeKeepStringHandle',\
|
||||
DdeNameService,'DdeNameService',\
|
||||
DdePostAdvise,'DdePostAdvise',\
|
||||
DdeQueryConvInfo,'DdeQueryConvInfo',\
|
||||
DdeQueryNextServer,'DdeQueryNextServer',\
|
||||
DdeQueryStringA,'DdeQueryStringA',\
|
||||
DdeQueryStringW,'DdeQueryStringW',\
|
||||
DdeReconnect,'DdeReconnect',\
|
||||
DdeSetQualityOfService,'DdeSetQualityOfService',\
|
||||
DdeSetUserHandle,'DdeSetUserHandle',\
|
||||
DdeUnaccessData,'DdeUnaccessData',\
|
||||
DdeUninitialize,'DdeUninitialize',\
|
||||
DefDlgProcA,'DefDlgProcA',\
|
||||
DefDlgProcW,'DefDlgProcW',\
|
||||
DefFrameProcA,'DefFrameProcA',\
|
||||
DefFrameProcW,'DefFrameProcW',\
|
||||
DefMDIChildProcA,'DefMDIChildProcA',\
|
||||
DefMDIChildProcW,'DefMDIChildProcW',\
|
||||
DefWindowProcA,'DefWindowProcA',\
|
||||
DefWindowProcW,'DefWindowProcW',\
|
||||
DeferWindowPos,'DeferWindowPos',\
|
||||
DeleteMenu,'DeleteMenu',\
|
||||
DestroyAcceleratorTable,'DestroyAcceleratorTable',\
|
||||
DestroyCaret,'DestroyCaret',\
|
||||
DestroyCursor,'DestroyCursor',\
|
||||
DestroyIcon,'DestroyIcon',\
|
||||
DestroyMenu,'DestroyMenu',\
|
||||
DestroyWindow,'DestroyWindow',\
|
||||
DialogBoxIndirectParamA,'DialogBoxIndirectParamA',\
|
||||
DialogBoxIndirectParamW,'DialogBoxIndirectParamW',\
|
||||
DialogBoxParamA,'DialogBoxParamA',\
|
||||
DialogBoxParamW,'DialogBoxParamW',\
|
||||
DispatchMessageA,'DispatchMessageA',\
|
||||
DispatchMessageW,'DispatchMessageW',\
|
||||
DlgDirListA,'DlgDirListA',\
|
||||
DlgDirListW,'DlgDirListW',\
|
||||
DlgDirListComboBoxA,'DlgDirListComboBoxA',\
|
||||
DlgDirListComboBoxW,'DlgDirListComboBoxW',\
|
||||
DlgDirSelectComboBoxExA,'DlgDirSelectComboBoxExA',\
|
||||
DlgDirSelectComboBoxExW,'DlgDirSelectComboBoxExW',\
|
||||
DlgDirSelectExA,'DlgDirSelectExA',\
|
||||
DlgDirSelectExW,'DlgDirSelectExW',\
|
||||
DragDetect,'DragDetect',\
|
||||
DragObject,'DragObject',\
|
||||
DrawAnimatedRects,'DrawAnimatedRects',\
|
||||
DrawCaption,'DrawCaption',\
|
||||
DrawEdge,'DrawEdge',\
|
||||
DrawFocusRect,'DrawFocusRect',\
|
||||
DrawFrame,'DrawFrame',\
|
||||
DrawFrameControl,'DrawFrameControl',\
|
||||
DrawIcon,'DrawIcon',\
|
||||
DrawIconEx,'DrawIconEx',\
|
||||
DrawMenuBar,'DrawMenuBar',\
|
||||
DrawStateA,'DrawStateA',\
|
||||
DrawStateW,'DrawStateW',\
|
||||
DrawTextA,'DrawTextA',\
|
||||
DrawTextW,'DrawTextW',\
|
||||
DrawTextExA,'DrawTextExA',\
|
||||
DrawTextExW,'DrawTextExW',\
|
||||
EditWndProc,'EditWndProc',\
|
||||
EmptyClipboard,'EmptyClipboard',\
|
||||
EnableMenuItem,'EnableMenuItem',\
|
||||
EnableScrollBar,'EnableScrollBar',\
|
||||
EnableWindow,'EnableWindow',\
|
||||
EndDeferWindowPos,'EndDeferWindowPos',\
|
||||
EndDialog,'EndDialog',\
|
||||
EndMenu,'EndMenu',\
|
||||
EndPaint,'EndPaint',\
|
||||
EnumChildWindows,'EnumChildWindows',\
|
||||
EnumClipboardFormats,'EnumClipboardFormats',\
|
||||
EnumDesktopWindows,'EnumDesktopWindows',\
|
||||
EnumDesktopsA,'EnumDesktopsA',\
|
||||
EnumDesktopsW,'EnumDesktopsW',\
|
||||
EnumDisplayMonitors,'EnumDisplayMonitors',\
|
||||
EnumDisplaySettingsA,'EnumDisplaySettingsA',\
|
||||
EnumDisplaySettingsW,'EnumDisplaySettingsW',\
|
||||
EnumDisplaySettingsExA,'EnumDisplaySettingsExA',\
|
||||
EnumDisplaySettingsExW,'EnumDisplaySettingsExW',\
|
||||
EnumPropsA,'EnumPropsA',\
|
||||
EnumPropsW,'EnumPropsW',\
|
||||
EnumPropsExA,'EnumPropsExA',\
|
||||
EnumPropsExW,'EnumPropsExW',\
|
||||
EnumThreadWindows,'EnumThreadWindows',\
|
||||
EnumWindowStationsA,'EnumWindowStationsA',\
|
||||
EnumWindowStationsW,'EnumWindowStationsW',\
|
||||
EnumWindows,'EnumWindows',\
|
||||
EqualRect,'EqualRect',\
|
||||
ExcludeUpdateRgn,'ExcludeUpdateRgn',\
|
||||
ExitWindowsEx,'ExitWindowsEx',\
|
||||
FillRect,'FillRect',\
|
||||
FindWindowA,'FindWindowA',\
|
||||
FindWindowW,'FindWindowW',\
|
||||
FindWindowExA,'FindWindowExA',\
|
||||
FindWindowExW,'FindWindowExW',\
|
||||
FlashWindow,'FlashWindow',\
|
||||
FrameRect,'FrameRect',\
|
||||
FreeDDElParam,'FreeDDElParam',\
|
||||
GetActiveWindow,'GetActiveWindow',\
|
||||
GetAltTabInfoA,'GetAltTabInfoA',\
|
||||
GetAltTabInfoW,'GetAltTabInfoW',\
|
||||
GetAncestor,'GetAncestor',\
|
||||
GetAsyncKeyState,'GetAsyncKeyState',\
|
||||
GetCapture,'GetCapture',\
|
||||
GetCaretBlinkTime,'GetCaretBlinkTime',\
|
||||
GetCaretPos,'GetCaretPos',\
|
||||
GetClassInfoA,'GetClassInfoA',\
|
||||
GetClassInfoW,'GetClassInfoW',\
|
||||
GetClassInfoExA,'GetClassInfoExA',\
|
||||
GetClassInfoExW,'GetClassInfoExW',\
|
||||
GetClassLongA,'GetClassLongA',\
|
||||
GetClassLongW,'GetClassLongW',\
|
||||
GetClassNameA,'GetClassNameA',\
|
||||
GetClassNameW,'GetClassNameW',\
|
||||
GetClassWord,'GetClassWord',\
|
||||
GetClientRect,'GetClientRect',\
|
||||
GetClipCursor,'GetClipCursor',\
|
||||
GetClipboardData,'GetClipboardData',\
|
||||
GetClipboardFormatNameA,'GetClipboardFormatNameA',\
|
||||
GetClipboardFormatNameW,'GetClipboardFormatNameW',\
|
||||
GetClipboardSequenceNumberA,'GetClipboardSequenceNumberA',\
|
||||
GetClipboardSequenceNumberW,'GetClipboardSequenceNumberW',\
|
||||
GetClipboardViewer,'GetClipboardViewer',\
|
||||
GetComboBoxInfo,'GetComboBoxInfo',\
|
||||
GetCursor,'GetCursor',\
|
||||
GetCursorInfo,'GetCursorInfo',\
|
||||
GetCursorPos,'GetCursorPos',\
|
||||
GetDC,'GetDC',\
|
||||
GetDCEx,'GetDCEx',\
|
||||
GetDesktopWindow,'GetDesktopWindow',\
|
||||
GetDialogBaseUnits,'GetDialogBaseUnits',\
|
||||
GetDlgCtrlID,'GetDlgCtrlID',\
|
||||
GetDlgItem,'GetDlgItem',\
|
||||
GetDlgItemInt,'GetDlgItemInt',\
|
||||
GetDlgItemTextA,'GetDlgItemTextA',\
|
||||
GetDlgItemTextW,'GetDlgItemTextW',\
|
||||
GetDoubleClickTime,'GetDoubleClickTime',\
|
||||
GetFocus,'GetFocus',\
|
||||
GetForegroundWindow,'GetForegroundWindow',\
|
||||
GetGUIThreadInfo,'GetGUIThreadInfo',\
|
||||
GetGuiResources,'GetGuiResources',\
|
||||
GetIconInfo,'GetIconInfo',\
|
||||
GetInputDesktop,'GetInputDesktop',\
|
||||
GetInputState,'GetInputState',\
|
||||
GetKBCodePage,'GetKBCodePage',\
|
||||
GetKeyNameTextA,'GetKeyNameTextA',\
|
||||
GetKeyNameTextW,'GetKeyNameTextW',\
|
||||
GetKeyState,'GetKeyState',\
|
||||
GetKeyboardLayout,'GetKeyboardLayout',\
|
||||
GetKeyboardLayoutList,'GetKeyboardLayoutList',\
|
||||
GetKeyboardLayoutNameA,'GetKeyboardLayoutNameA',\
|
||||
GetKeyboardLayoutNameW,'GetKeyboardLayoutNameW',\
|
||||
GetKeyboardState,'GetKeyboardState',\
|
||||
GetKeyboardType,'GetKeyboardType',\
|
||||
GetLastActivePopup,'GetLastActivePopup',\
|
||||
GetLastInputInfo,'GetLastInputInfo',\
|
||||
GetLayeredWindowAttributes,'GetLayeredWindowAttributes',\
|
||||
GetListBoxInfo,'GetListBoxInfo',\
|
||||
GetMenu,'GetMenu',\
|
||||
GetMenuBarInfo,'GetMenuBarInfo',\
|
||||
GetMenuCheckMarkDimensions,'GetMenuCheckMarkDimensions',\
|
||||
GetMenuContextHelpId,'GetMenuContextHelpId',\
|
||||
GetMenuDefaultItem,'GetMenuDefaultItem',\
|
||||
GetMenuInfo,'GetMenuInfo',\
|
||||
GetMenuItemCount,'GetMenuItemCount',\
|
||||
GetMenuItemID,'GetMenuItemID',\
|
||||
GetMenuItemInfoA,'GetMenuItemInfoA',\
|
||||
GetMenuItemInfoW,'GetMenuItemInfoW',\
|
||||
GetMenuItemRect,'GetMenuItemRect',\
|
||||
GetMenuState,'GetMenuState',\
|
||||
GetMenuStringA,'GetMenuStringA',\
|
||||
GetMenuStringW,'GetMenuStringW',\
|
||||
GetMessageA,'GetMessageA',\
|
||||
GetMessageW,'GetMessageW',\
|
||||
GetMessageExtraInfo,'GetMessageExtraInfo',\
|
||||
GetMessagePos,'GetMessagePos',\
|
||||
GetMessageTime,'GetMessageTime',\
|
||||
GetMonitorInfoA,'GetMonitorInfoA',\
|
||||
GetMonitorInfoW,'GetMonitorInfoW',\
|
||||
GetMouseMovePoints,'GetMouseMovePoints',\
|
||||
GetNextDlgGroupItem,'GetNextDlgGroupItem',\
|
||||
GetNextDlgTabItem,'GetNextDlgTabItem',\
|
||||
GetOpenClipboardWindow,'GetOpenClipboardWindow',\
|
||||
GetParent,'GetParent',\
|
||||
GetPriorityClipboardFormat,'GetPriorityClipboardFormat',\
|
||||
GetProcessWindowStation,'GetProcessWindowStation',\
|
||||
GetPropA,'GetPropA',\
|
||||
GetPropW,'GetPropW',\
|
||||
GetQueueStatus,'GetQueueStatus',\
|
||||
GetScrollBarInfo,'GetScrollBarInfo',\
|
||||
GetScrollInfo,'GetScrollInfo',\
|
||||
GetScrollPos,'GetScrollPos',\
|
||||
GetScrollRange,'GetScrollRange',\
|
||||
GetShellWindow,'GetShellWindow',\
|
||||
GetSubMenu,'GetSubMenu',\
|
||||
GetSysColor,'GetSysColor',\
|
||||
GetSysColorBrush,'GetSysColorBrush',\
|
||||
GetSystemMenu,'GetSystemMenu',\
|
||||
GetSystemMetrics,'GetSystemMetrics',\
|
||||
GetTabbedTextExtentA,'GetTabbedTextExtentA',\
|
||||
GetTabbedTextExtentW,'GetTabbedTextExtentW',\
|
||||
GetThreadDesktop,'GetThreadDesktop',\
|
||||
GetTitleBarInfo,'GetTitleBarInfo',\
|
||||
GetTopWindow,'GetTopWindow',\
|
||||
GetUpdateRect,'GetUpdateRect',\
|
||||
GetUpdateRgn,'GetUpdateRgn',\
|
||||
GetUserObjectInformationA,'GetUserObjectInformationA',\
|
||||
GetUserObjectInformationW,'GetUserObjectInformationW',\
|
||||
GetUserObjectSecurity,'GetUserObjectSecurity',\
|
||||
GetWindow,'GetWindow',\
|
||||
GetWindowContextHelpId,'GetWindowContextHelpId',\
|
||||
GetWindowDC,'GetWindowDC',\
|
||||
GetWindowInfo,'GetWindowInfo',\
|
||||
GetWindowLongA,'GetWindowLongA',\
|
||||
GetWindowLongW,'GetWindowLongW',\
|
||||
GetWindowLongPtrA,'GetWindowLongPtrA',\
|
||||
GetWindowLongPtrW,'GetWindowLongPtrW',\
|
||||
GetWindowModuleFileNameA,'GetWindowModuleFileNameA',\
|
||||
GetWindowModuleFileNameW,'GetWindowModuleFileNameW',\
|
||||
GetWindowPlacement,'GetWindowPlacement',\
|
||||
GetWindowRect,'GetWindowRect',\
|
||||
GetWindowRgn,'GetWindowRgn',\
|
||||
GetWindowTextA,'GetWindowTextA',\
|
||||
GetWindowTextW,'GetWindowTextW',\
|
||||
GetWindowTextLengthA,'GetWindowTextLengthA',\
|
||||
GetWindowTextLengthW,'GetWindowTextLengthW',\
|
||||
GetWindowThreadProcessId,'GetWindowThreadProcessId',\
|
||||
GetWindowWord,'GetWindowWord',\
|
||||
GrayStringA,'GrayStringA',\
|
||||
GrayStringW,'GrayStringW',\
|
||||
HideCaret,'HideCaret',\
|
||||
HiliteMenuItem,'HiliteMenuItem',\
|
||||
IMPGetIMEA,'IMPGetIMEA',\
|
||||
IMPGetIMEW,'IMPGetIMEW',\
|
||||
IMPQueryIMEA,'IMPQueryIMEA',\
|
||||
IMPQueryIMEW,'IMPQueryIMEW',\
|
||||
IMPSetIMEA,'IMPSetIMEA',\
|
||||
IMPSetIMEW,'IMPSetIMEW',\
|
||||
ImpersonateDdeClientWindow,'ImpersonateDdeClientWindow',\
|
||||
InSendMessage,'InSendMessage',\
|
||||
InSendMessageEx,'InSendMessageEx',\
|
||||
InflateRect,'InflateRect',\
|
||||
InsertMenuA,'InsertMenuA',\
|
||||
InsertMenuW,'InsertMenuW',\
|
||||
InsertMenuItemA,'InsertMenuItemA',\
|
||||
InsertMenuItemW,'InsertMenuItemW',\
|
||||
IntersectRect,'IntersectRect',\
|
||||
InvalidateRect,'InvalidateRect',\
|
||||
InvalidateRgn,'InvalidateRgn',\
|
||||
InvertRect,'InvertRect',\
|
||||
IsCharAlphaA,'IsCharAlphaA',\
|
||||
IsCharAlphaW,'IsCharAlphaW',\
|
||||
IsCharAlphaNumericA,'IsCharAlphaNumericA',\
|
||||
IsCharAlphaNumericW,'IsCharAlphaNumericW',\
|
||||
IsCharLowerA,'IsCharLowerA',\
|
||||
IsCharLowerW,'IsCharLowerW',\
|
||||
IsCharUpperA,'IsCharUpperA',\
|
||||
IsCharUpperW,'IsCharUpperW',\
|
||||
IsChild,'IsChild',\
|
||||
IsClipboardFormatAvailable,'IsClipboardFormatAvailable',\
|
||||
IsDialogMessageA,'IsDialogMessageA',\
|
||||
IsDialogMessageW,'IsDialogMessageW',\
|
||||
IsDlgButtonChecked,'IsDlgButtonChecked',\
|
||||
IsIconic,'IsIconic',\
|
||||
IsMenu,'IsMenu',\
|
||||
IsRectEmpty,'IsRectEmpty',\
|
||||
IsWindow,'IsWindow',\
|
||||
IsWindowEnabled,'IsWindowEnabled',\
|
||||
IsWindowUnicode,'IsWindowUnicode',\
|
||||
IsWindowVisible,'IsWindowVisible',\
|
||||
IsZoomed,'IsZoomed',\
|
||||
KillSystemTimer,'KillSystemTimer',\
|
||||
KillTimer,'KillTimer',\
|
||||
LoadAcceleratorsA,'LoadAcceleratorsA',\
|
||||
LoadAcceleratorsW,'LoadAcceleratorsW',\
|
||||
LoadBitmapA,'LoadBitmapA',\
|
||||
LoadBitmapW,'LoadBitmapW',\
|
||||
LoadCursorA,'LoadCursorA',\
|
||||
LoadCursorW,'LoadCursorW',\
|
||||
LoadCursorFromFileA,'LoadCursorFromFileA',\
|
||||
LoadCursorFromFileW,'LoadCursorFromFileW',\
|
||||
LoadIconA,'LoadIconA',\
|
||||
LoadIconW,'LoadIconW',\
|
||||
LoadImageA,'LoadImageA',\
|
||||
LoadImageW,'LoadImageW',\
|
||||
LoadKeyboardLayoutA,'LoadKeyboardLayoutA',\
|
||||
LoadKeyboardLayoutW,'LoadKeyboardLayoutW',\
|
||||
LoadMenuA,'LoadMenuA',\
|
||||
LoadMenuW,'LoadMenuW',\
|
||||
LoadMenuIndirectA,'LoadMenuIndirectA',\
|
||||
LoadMenuIndirectW,'LoadMenuIndirectW',\
|
||||
LoadStringA,'LoadStringA',\
|
||||
LoadStringW,'LoadStringW',\
|
||||
LockWindowUpdate,'LockWindowUpdate',\
|
||||
LockWorkStation,'LockWorkStation',\
|
||||
LookupIconIdFromDirectory,'LookupIconIdFromDirectory',\
|
||||
LookupIconIdFromDirectoryEx,'LookupIconIdFromDirectoryEx',\
|
||||
MapDialogRect,'MapDialogRect',\
|
||||
MapVirtualKeyA,'MapVirtualKeyA',\
|
||||
MapVirtualKeyW,'MapVirtualKeyW',\
|
||||
MapVirtualKeyExA,'MapVirtualKeyExA',\
|
||||
MapVirtualKeyExW,'MapVirtualKeyExW',\
|
||||
MapWindowPoints,'MapWindowPoints',\
|
||||
MenuItemFromPoint,'MenuItemFromPoint',\
|
||||
MessageBeep,'MessageBeep',\
|
||||
MessageBoxA,'MessageBoxA',\
|
||||
MessageBoxW,'MessageBoxW',\
|
||||
MessageBoxExA,'MessageBoxExA',\
|
||||
MessageBoxExW,'MessageBoxExW',\
|
||||
MessageBoxIndirectA,'MessageBoxIndirectA',\
|
||||
MessageBoxIndirectW,'MessageBoxIndirectW',\
|
||||
ModifyMenuA,'ModifyMenuA',\
|
||||
ModifyMenuW,'ModifyMenuW',\
|
||||
MonitorFromPoint,'MonitorFromPoint',\
|
||||
MonitorFromRect,'MonitorFromRect',\
|
||||
MonitorFromWindow,'MonitorFromWindow',\
|
||||
MoveWindow,'MoveWindow',\
|
||||
MsgWaitForMultipleObjects,'MsgWaitForMultipleObjects',\
|
||||
MsgWaitForMultipleObjectsEx,'MsgWaitForMultipleObjectsEx',\
|
||||
NotifyWinEvent,'NotifyWinEvent',\
|
||||
OemKeyScan,'OemKeyScan',\
|
||||
OemToCharA,'OemToCharA',\
|
||||
OemToCharW,'OemToCharW',\
|
||||
OemToCharBuffA,'OemToCharBuffA',\
|
||||
OemToCharBuffW,'OemToCharBuffW',\
|
||||
OffsetRect,'OffsetRect',\
|
||||
OpenClipboard,'OpenClipboard',\
|
||||
OpenDesktopA,'OpenDesktopA',\
|
||||
OpenDesktopW,'OpenDesktopW',\
|
||||
OpenIcon,'OpenIcon',\
|
||||
OpenInputDesktop,'OpenInputDesktop',\
|
||||
OpenWindowStationA,'OpenWindowStationA',\
|
||||
OpenWindowStationW,'OpenWindowStationW',\
|
||||
PackDDElParam,'PackDDElParam',\
|
||||
PaintDesktop,'PaintDesktop',\
|
||||
PeekMessageA,'PeekMessageA',\
|
||||
PeekMessageW,'PeekMessageW',\
|
||||
PostMessageA,'PostMessageA',\
|
||||
PostMessageW,'PostMessageW',\
|
||||
PostQuitMessage,'PostQuitMessage',\
|
||||
PostThreadMessageA,'PostThreadMessageA',\
|
||||
PostThreadMessageW,'PostThreadMessageW',\
|
||||
PtInRect,'PtInRect',\
|
||||
RealChildWindowFromPoint,'RealChildWindowFromPoint',\
|
||||
RealGetWindowClassA,'RealGetWindowClassA',\
|
||||
RealGetWindowClassW,'RealGetWindowClassW',\
|
||||
RedrawWindow,'RedrawWindow',\
|
||||
RegisterClassA,'RegisterClassA',\
|
||||
RegisterClassW,'RegisterClassW',\
|
||||
RegisterClassExA,'RegisterClassExA',\
|
||||
RegisterClassExW,'RegisterClassExW',\
|
||||
RegisterClipboardFormatA,'RegisterClipboardFormatA',\
|
||||
RegisterClipboardFormatW,'RegisterClipboardFormatW',\
|
||||
RegisterDeviceNotificationA,'RegisterDeviceNotificationA',\
|
||||
RegisterDeviceNotificationW,'RegisterDeviceNotificationW',\
|
||||
RegisterHotKey,'RegisterHotKey',\
|
||||
RegisterWindowMessageA,'RegisterWindowMessageA',\
|
||||
RegisterWindowMessageW,'RegisterWindowMessageW',\
|
||||
ReleaseCapture,'ReleaseCapture',\
|
||||
ReleaseDC,'ReleaseDC',\
|
||||
RemoveMenu,'RemoveMenu',\
|
||||
RemovePropA,'RemovePropA',\
|
||||
RemovePropW,'RemovePropW',\
|
||||
ReplyMessage,'ReplyMessage',\
|
||||
ReuseDDElParam,'ReuseDDElParam',\
|
||||
ScreenToClient,'ScreenToClient',\
|
||||
ScrollChildren,'ScrollChildren',\
|
||||
ScrollDC,'ScrollDC',\
|
||||
ScrollWindow,'ScrollWindow',\
|
||||
ScrollWindowEx,'ScrollWindowEx',\
|
||||
SendDlgItemMessageA,'SendDlgItemMessageA',\
|
||||
SendDlgItemMessageW,'SendDlgItemMessageW',\
|
||||
SendIMEMessageExA,'SendIMEMessageExA',\
|
||||
SendIMEMessageExW,'SendIMEMessageExW',\
|
||||
SendInput,'SendInput',\
|
||||
SendMessageA,'SendMessageA',\
|
||||
SendMessageW,'SendMessageW',\
|
||||
SendMessageCallbackA,'SendMessageCallbackA',\
|
||||
SendMessageCallbackW,'SendMessageCallbackW',\
|
||||
SendMessageTimeoutA,'SendMessageTimeoutA',\
|
||||
SendMessageTimeoutW,'SendMessageTimeoutW',\
|
||||
SendNotifyMessageA,'SendNotifyMessageA',\
|
||||
SendNotifyMessageW,'SendNotifyMessageW',\
|
||||
SetActiveWindow,'SetActiveWindow',\
|
||||
SetCapture,'SetCapture',\
|
||||
SetCaretBlinkTime,'SetCaretBlinkTime',\
|
||||
SetCaretPos,'SetCaretPos',\
|
||||
SetClassLongA,'SetClassLongA',\
|
||||
SetClassLongW,'SetClassLongW',\
|
||||
SetClassWord,'SetClassWord',\
|
||||
SetClipboardData,'SetClipboardData',\
|
||||
SetClipboardViewer,'SetClipboardViewer',\
|
||||
SetCursor,'SetCursor',\
|
||||
SetCursorPos,'SetCursorPos',\
|
||||
SetDebugErrorLevel,'SetDebugErrorLevel',\
|
||||
SetDeskWallpaper,'SetDeskWallpaper',\
|
||||
SetDlgItemInt,'SetDlgItemInt',\
|
||||
SetDlgItemTextA,'SetDlgItemTextA',\
|
||||
SetDlgItemTextW,'SetDlgItemTextW',\
|
||||
SetDoubleClickTime,'SetDoubleClickTime',\
|
||||
SetFocus,'SetFocus',\
|
||||
SetForegroundWindow,'SetForegroundWindow',\
|
||||
SetKeyboardState,'SetKeyboardState',\
|
||||
SetLastErrorEx,'SetLastErrorEx',\
|
||||
SetLayeredWindowAttributes,'SetLayeredWindowAttributes',\
|
||||
SetMenu,'SetMenu',\
|
||||
SetMenuContextHelpId,'SetMenuContextHelpId',\
|
||||
SetMenuDefaultItem,'SetMenuDefaultItem',\
|
||||
SetMenuInfo,'SetMenuInfo',\
|
||||
SetMenuItemBitmaps,'SetMenuItemBitmaps',\
|
||||
SetMenuItemInfoA,'SetMenuItemInfoA',\
|
||||
SetMenuItemInfoW,'SetMenuItemInfoW',\
|
||||
SetMessageExtraInfo,'SetMessageExtraInfo',\
|
||||
SetMessageQueue,'SetMessageQueue',\
|
||||
SetParent,'SetParent',\
|
||||
SetProcessWindowStation,'SetProcessWindowStation',\
|
||||
SetPropA,'SetPropA',\
|
||||
SetPropW,'SetPropW',\
|
||||
SetRect,'SetRect',\
|
||||
SetRectEmpty,'SetRectEmpty',\
|
||||
SetScrollInfo,'SetScrollInfo',\
|
||||
SetScrollPos,'SetScrollPos',\
|
||||
SetScrollRange,'SetScrollRange',\
|
||||
SetShellWindow,'SetShellWindow',\
|
||||
SetSysColors,'SetSysColors',\
|
||||
SetSystemCursor,'SetSystemCursor',\
|
||||
SetSystemMenu,'SetSystemMenu',\
|
||||
SetSystemTimer,'SetSystemTimer',\
|
||||
SetThreadDesktop,'SetThreadDesktop',\
|
||||
SetTimer,'SetTimer',\
|
||||
SetUserObjectInformationA,'SetUserObjectInformationA',\
|
||||
SetUserObjectInformationW,'SetUserObjectInformationW',\
|
||||
SetUserObjectSecurity,'SetUserObjectSecurity',\
|
||||
SetWinEventHook,'SetWinEventHook',\
|
||||
SetWindowContextHelpId,'SetWindowContextHelpId',\
|
||||
SetWindowLongA,'SetWindowLongA',\
|
||||
SetWindowLongW,'SetWindowLongW',\
|
||||
SetWindowPlacement,'SetWindowPlacement',\
|
||||
SetWindowPos,'SetWindowPos',\
|
||||
SetWindowRgn,'SetWindowRgn',\
|
||||
SetWindowTextA,'SetWindowTextA',\
|
||||
SetWindowTextW,'SetWindowTextW',\
|
||||
SetWindowWord,'SetWindowWord',\
|
||||
SetWindowsHookA,'SetWindowsHookA',\
|
||||
SetWindowsHookW,'SetWindowsHookW',\
|
||||
SetWindowsHookExA,'SetWindowsHookExA',\
|
||||
SetWindowsHookExW,'SetWindowsHookExW',\
|
||||
ShowCaret,'ShowCaret',\
|
||||
ShowCursor,'ShowCursor',\
|
||||
ShowOwnedPopups,'ShowOwnedPopups',\
|
||||
ShowScrollBar,'ShowScrollBar',\
|
||||
ShowWindow,'ShowWindow',\
|
||||
ShowWindowAsync,'ShowWindowAsync',\
|
||||
SubtractRect,'SubtractRect',\
|
||||
SwapMouseButton,'SwapMouseButton',\
|
||||
SwitchDesktop,'SwitchDesktop',\
|
||||
SystemParametersInfoA,'SystemParametersInfoA',\
|
||||
SystemParametersInfoW,'SystemParametersInfoW',\
|
||||
TabbedTextOutA,'TabbedTextOutA',\
|
||||
TabbedTextOutW,'TabbedTextOutW',\
|
||||
TileChildWindows,'TileChildWindows',\
|
||||
TileWindows,'TileWindows',\
|
||||
ToAscii,'ToAscii',\
|
||||
ToAsciiEx,'ToAsciiEx',\
|
||||
ToUnicode,'ToUnicode',\
|
||||
ToUnicodeEx,'ToUnicodeEx',\
|
||||
TrackMouseEvent,'TrackMouseEvent',\
|
||||
TrackPopupMenu,'TrackPopupMenu',\
|
||||
TrackPopupMenuEx,'TrackPopupMenuEx',\
|
||||
TranslateAcceleratorA,'TranslateAcceleratorA',\
|
||||
TranslateAcceleratorW,'TranslateAcceleratorW',\
|
||||
TranslateMDISysAccel,'TranslateMDISysAccel',\
|
||||
TranslateMessage,'TranslateMessage',\
|
||||
UnhookWinEvent,'UnhookWinEvent',\
|
||||
UnhookWindowsHook,'UnhookWindowsHook',\
|
||||
UnhookWindowsHookEx,'UnhookWindowsHookEx',\
|
||||
UnionRect,'UnionRect',\
|
||||
UnloadKeyboardLayout,'UnloadKeyboardLayout',\
|
||||
UnpackDDElParam,'UnpackDDElParam',\
|
||||
UnregisterClassA,'UnregisterClassA',\
|
||||
UnregisterClassW,'UnregisterClassW',\
|
||||
UnregisterDeviceNotification,'UnregisterDeviceNotification',\
|
||||
UnregisterHotKey,'UnregisterHotKey',\
|
||||
UpdateWindow,'UpdateWindow',\
|
||||
UserHandleGrantAccess,'UserHandleGrantAccess',\
|
||||
ValidateRect,'ValidateRect',\
|
||||
ValidateRgn,'ValidateRgn',\
|
||||
VkKeyScanA,'VkKeyScanA',\
|
||||
VkKeyScanW,'VkKeyScanW',\
|
||||
VkKeyScanExA,'VkKeyScanExA',\
|
||||
VkKeyScanExW,'VkKeyScanExW',\
|
||||
WINNLSEnableIME,'WINNLSEnableIME',\
|
||||
WINNLSGetEnableStatus,'WINNLSGetEnableStatus',\
|
||||
WINNLSGetIMEHotkey,'WINNLSGetIMEHotkey',\
|
||||
WaitForInputIdle,'WaitForInputIdle',\
|
||||
WaitMessage,'WaitMessage',\
|
||||
WinHelpA,'WinHelpA',\
|
||||
WinHelpW,'WinHelpW',\
|
||||
WindowFromDC,'WindowFromDC',\
|
||||
WindowFromPoint,'WindowFromPoint',\
|
||||
keybd_event,'keybd_event',\
|
||||
mouse_event,'mouse_event',\
|
||||
wsprintfA,'wsprintfA',\
|
||||
wsprintfW,'wsprintfW',\
|
||||
wvsprintfA,'wvsprintfA',\
|
||||
wvsprintfW,'wvsprintfW'
|
||||
|
||||
api AppendMenu,\
|
||||
BroadcastSystemMessage,\
|
||||
CallMsgFilter,\
|
||||
CallWindowProc,\
|
||||
ChangeDisplaySettings,\
|
||||
ChangeDisplaySettingsEx,\
|
||||
ChangeMenu,\
|
||||
CharLower,\
|
||||
CharLowerBuff,\
|
||||
CharNext,\
|
||||
CharNextEx,\
|
||||
CharPrev,\
|
||||
CharPrevEx,\
|
||||
CharToOem,\
|
||||
CharToOemBuff,\
|
||||
CharUpper,\
|
||||
CharUpperBuff,\
|
||||
CopyAcceleratorTable,\
|
||||
CreateAcceleratorTable,\
|
||||
CreateDesktop,\
|
||||
CreateDialogIndirectParam,\
|
||||
CreateDialogParam,\
|
||||
CreateMDIWindow,\
|
||||
CreateWindowEx,\
|
||||
CreateWindowStation,\
|
||||
DdeCreateStringHandle,\
|
||||
DdeInitialize,\
|
||||
DdeQueryString,\
|
||||
DefDlgProc,\
|
||||
DefFrameProc,\
|
||||
DefMDIChildProc,\
|
||||
DefWindowProc,\
|
||||
DialogBoxIndirectParam,\
|
||||
DialogBoxParam,\
|
||||
DispatchMessage,\
|
||||
DlgDirList,\
|
||||
DlgDirListComboBox,\
|
||||
DlgDirSelectComboBoxEx,\
|
||||
DlgDirSelectEx,\
|
||||
DrawState,\
|
||||
DrawText,\
|
||||
DrawTextEx,\
|
||||
EnumDesktops,\
|
||||
EnumDisplaySettings,\
|
||||
EnumDisplaySettingsEx,\
|
||||
EnumProps,\
|
||||
EnumPropsEx,\
|
||||
EnumWindowStations,\
|
||||
FindWindow,\
|
||||
FindWindowEx,\
|
||||
GetAltTabInfo,\
|
||||
GetClassInfo,\
|
||||
GetClassInfoEx,\
|
||||
GetClassLong,\
|
||||
GetClassName,\
|
||||
GetClipboardFormatName,\
|
||||
GetClipboardSequenceNumber,\
|
||||
GetDlgItemText,\
|
||||
GetKeyNameText,\
|
||||
GetKeyboardLayoutName,\
|
||||
GetMenuItemInfo,\
|
||||
GetMenuString,\
|
||||
GetMessage,\
|
||||
GetMonitorInfo,\
|
||||
GetProp,\
|
||||
GetTabbedTextExtent,\
|
||||
GetUserObjectInformation,\
|
||||
GetWindowLong,\
|
||||
GetWindowModuleFileName,\
|
||||
GetWindowText,\
|
||||
GetWindowTextLength,\
|
||||
GrayString,\
|
||||
IMPGetIME,\
|
||||
IMPQueryIME,\
|
||||
IMPSetIME,\
|
||||
InsertMenu,\
|
||||
InsertMenuItem,\
|
||||
IsCharAlpha,\
|
||||
IsCharAlphaNumeric,\
|
||||
IsCharLower,\
|
||||
IsCharUpper,\
|
||||
IsDialogMessage,\
|
||||
LoadAccelerators,\
|
||||
LoadBitmap,\
|
||||
LoadCursor,\
|
||||
LoadCursorFromFile,\
|
||||
LoadIcon,\
|
||||
LoadImage,\
|
||||
LoadKeyboardLayout,\
|
||||
LoadMenu,\
|
||||
LoadMenuIndirect,\
|
||||
LoadString,\
|
||||
MapVirtualKey,\
|
||||
MapVirtualKeyEx,\
|
||||
MessageBox,\
|
||||
MessageBoxEx,\
|
||||
MessageBoxIndirect,\
|
||||
ModifyMenu,\
|
||||
OemToChar,\
|
||||
OemToCharBuff,\
|
||||
OpenDesktop,\
|
||||
OpenWindowStation,\
|
||||
PeekMessage,\
|
||||
PostMessage,\
|
||||
PostThreadMessage,\
|
||||
RealGetWindowClass,\
|
||||
RegisterClass,\
|
||||
RegisterClassEx,\
|
||||
RegisterClipboardFormat,\
|
||||
RegisterDeviceNotification,\
|
||||
RegisterWindowMessage,\
|
||||
RemoveProp,\
|
||||
SendDlgItemMessage,\
|
||||
SendIMEMessageEx,\
|
||||
SendMessage,\
|
||||
SendMessageCallback,\
|
||||
SendMessageTimeout,\
|
||||
SendNotifyMessage,\
|
||||
SetClassLong,\
|
||||
SetDlgItemText,\
|
||||
SetMenuItemInfo,\
|
||||
SetProp,\
|
||||
SetUserObjectInformation,\
|
||||
SetWindowLong,\
|
||||
SetWindowText,\
|
||||
SetWindowsHook,\
|
||||
SetWindowsHookEx,\
|
||||
SystemParametersInfo,\
|
||||
TabbedTextOut,\
|
||||
TranslateAccelerator,\
|
||||
UnregisterClass,\
|
||||
VkKeyScan,\
|
||||
VkKeyScanEx,\
|
||||
WinHelp,\
|
||||
wsprintf,\
|
||||
wvsprintf
|
||||
85
toolchain/fasmw17332/INCLUDE/API/WSOCK32.INC
Normal file
85
toolchain/fasmw17332/INCLUDE/API/WSOCK32.INC
Normal file
@@ -0,0 +1,85 @@
|
||||
|
||||
; WSOCK32 API calls
|
||||
|
||||
import wsock32,\
|
||||
AcceptEx,'AcceptEx',\
|
||||
EnumProtocolsA,'EnumProtocolsA',\
|
||||
EnumProtocolsW,'EnumProtocolsW',\
|
||||
GetAcceptExSockaddrs,'GetAcceptExSockaddrs',\
|
||||
GetAddressByNameA,'GetAddressByNameA',\
|
||||
GetAddressByNameW,'GetAddressByNameW',\
|
||||
GetNameByTypeA,'GetNameByTypeA',\
|
||||
GetNameByTypeW,'GetNameByTypeW',\
|
||||
GetServiceA,'GetServiceA',\
|
||||
GetServiceW,'GetServiceW',\
|
||||
GetTypeByNameA,'GetTypeByNameA',\
|
||||
GetTypeByNameW,'GetTypeByNameW',\
|
||||
MigrateWinsockConfiguration,'MigrateWinsockConfiguration',\
|
||||
NPLoadNameSpaces,'NPLoadNameSpaces',\
|
||||
SetServiceA,'SetServiceA',\
|
||||
SetServiceW,'SetServiceW',\
|
||||
TransmitFile,'TransmitFile',\
|
||||
WEP,'WEP',\
|
||||
WSAAsyncGetHostByAddr,'WSAAsyncGetHostByAddr',\
|
||||
WSAAsyncGetHostByName,'WSAAsyncGetHostByName',\
|
||||
WSAAsyncGetProtoByName,'WSAAsyncGetProtoByName',\
|
||||
WSAAsyncGetProtoByNumber,'WSAAsyncGetProtoByNumber',\
|
||||
WSAAsyncGetServByName,'WSAAsyncGetServByName',\
|
||||
WSAAsyncGetServByPort,'WSAAsyncGetServByPort',\
|
||||
WSAAsyncSelect,'WSAAsyncSelect',\
|
||||
WSACancelAsyncRequest,'WSACancelAsyncRequest',\
|
||||
WSACancelBlockingCall,'WSACancelBlockingCall',\
|
||||
WSACleanup,'WSACleanup',\
|
||||
WSAGetLastError,'WSAGetLastError',\
|
||||
WSAIsBlocking,'WSAIsBlocking',\
|
||||
WSARecvEx,'WSARecvEx',\
|
||||
WSASetBlockingHook,'WSASetBlockingHook',\
|
||||
WSASetLastError,'WSASetLastError',\
|
||||
WSAStartup,'WSAStartup',\
|
||||
WSAUnhookBlockingHook,'WSAUnhookBlockingHook',\
|
||||
__WSAFDIsSet,'__WSAFDIsSet',\
|
||||
accept,'accept',\
|
||||
bind,'bind',\
|
||||
closesocket,'closesocket',\
|
||||
connect,'connect',\
|
||||
dn_expand,'dn_expand',\
|
||||
gethostbyaddr,'gethostbyaddr',\
|
||||
gethostbyname,'gethostbyname',\
|
||||
gethostname,'gethostname',\
|
||||
getnetbyname,'getnetbyname',\
|
||||
getpeername,'getpeername',\
|
||||
getprotobyname,'getprotobyname',\
|
||||
getprotobynumber,'getprotobynumber',\
|
||||
getservbyname,'getservbyname',\
|
||||
getservbyport,'getservbyport',\
|
||||
getsockname,'getsockname',\
|
||||
getsockopt,'getsockopt',\
|
||||
htonl,'htonl',\
|
||||
htons,'htons',\
|
||||
inet_addr,'inet_addr',\
|
||||
inet_network,'inet_network',\
|
||||
inet_ntoa,'inet_ntoa',\
|
||||
ioctlsocket,'ioctlsocket',\
|
||||
listen,'listen',\
|
||||
ntohl,'ntohl',\
|
||||
ntohs,'ntohs',\
|
||||
rcmd,'rcmd',\
|
||||
recv,'recv',\
|
||||
recvfrom,'recvfrom',\
|
||||
rexec,'rexec',\
|
||||
rresvport,'rresvport',\
|
||||
s_perror,'s_perror',\
|
||||
select,'select',\
|
||||
send,'send',\
|
||||
sendto,'sendto',\
|
||||
sethostname,'sethostname',\
|
||||
setsockopt,'setsockopt',\
|
||||
shutdown,'shutdown',\
|
||||
socket,'socket'
|
||||
|
||||
api EnumProtocols,\
|
||||
GetAddressByName,\
|
||||
GetNameByType,\
|
||||
GetService,\
|
||||
GetTypeByName,\
|
||||
SetService
|
||||
77
toolchain/fasmw17332/INCLUDE/ENCODING/UTF8.INC
Normal file
77
toolchain/fasmw17332/INCLUDE/ENCODING/UTF8.INC
Normal file
@@ -0,0 +1,77 @@
|
||||
|
||||
; UTF-8
|
||||
|
||||
macro du [arg]
|
||||
{ local current,..input,char
|
||||
if arg eqtype ''
|
||||
virtual at 0
|
||||
..input::
|
||||
db arg
|
||||
count = $
|
||||
end virtual
|
||||
current = 0
|
||||
while current < count
|
||||
load char byte from ..input:current
|
||||
wide = char
|
||||
current = current + 1
|
||||
if char > 0C0h
|
||||
if char < 0E0h
|
||||
wide = char and 11111b
|
||||
load char byte from ..input:current
|
||||
wide = wide shl 6 + (char and 111111b)
|
||||
current = current + 1
|
||||
else if char < 0F0h
|
||||
wide = char and 1111b
|
||||
load char byte from ..input:current
|
||||
wide = wide shl 6 + (char and 111111b)
|
||||
load char byte from ..input:current+1
|
||||
wide = wide shl 6 + (char and 111111b)
|
||||
current = current + 2
|
||||
else if char < 0F8h
|
||||
wide = char and 111b
|
||||
load char byte from ..input:current
|
||||
wide = wide shl 6 + (char and 111111b)
|
||||
load char byte from ..input:current+1
|
||||
wide = wide shl 6 + (char and 111111b)
|
||||
load char byte from ..input:current+2
|
||||
wide = wide shl 6 + (char and 111111b)
|
||||
current = current + 3
|
||||
else if char < 0FCh
|
||||
wide = char and 11b
|
||||
load char byte from ..input:current
|
||||
wide = wide shl 6 + (char and 111111b)
|
||||
load char byte from ..input:current+1
|
||||
wide = wide shl 6 + (char and 111111b)
|
||||
load char byte from ..input:current+2
|
||||
wide = wide shl 6 + (char and 111111b)
|
||||
load char byte from ..input:current+3
|
||||
wide = wide shl 6 + (char and 111111b)
|
||||
current = current + 4
|
||||
else
|
||||
wide = char and 1
|
||||
load char byte from ..input:current
|
||||
wide = wide shl 6 + (char and 111111b)
|
||||
load char byte from ..input:current+1
|
||||
wide = wide shl 6 + (char and 111111b)
|
||||
load char byte from ..input:current+2
|
||||
wide = wide shl 6 + (char and 111111b)
|
||||
load char byte from ..input:current+3
|
||||
wide = wide shl 6 + (char and 111111b)
|
||||
load char byte from ..input:current+4
|
||||
wide = wide shl 6 + (char and 111111b)
|
||||
current = current + 5
|
||||
end if
|
||||
end if
|
||||
if wide < 10000h
|
||||
dw wide
|
||||
else
|
||||
dw 0D7C0h + wide shr 10,0DC00h or (wide and 3FFh)
|
||||
end if
|
||||
end while
|
||||
else
|
||||
dw arg
|
||||
end if }
|
||||
|
||||
struc du [args]
|
||||
{ common label . word
|
||||
du args }
|
||||
36
toolchain/fasmw17332/INCLUDE/ENCODING/WIN1250.INC
Normal file
36
toolchain/fasmw17332/INCLUDE/ENCODING/WIN1250.INC
Normal file
@@ -0,0 +1,36 @@
|
||||
|
||||
; Windows 1250
|
||||
|
||||
rept 1 { local ..encoding
|
||||
__encoding equ ..encoding }
|
||||
|
||||
virtual at 0
|
||||
__encoding::
|
||||
times 80h dw %-1
|
||||
dw 20ACh,?,201Ah,?,201Eh,2026h,2020h,2021h,?,2030h,160h,2039h,15Ah,164h,17Dh,179h
|
||||
dw ?,2018h,2019h,201Ch,201Dh,2022h,2013h,2014h,?,2122h,161h,203Ah,15Bh,165h,17Eh,17Ah
|
||||
dw 0A0h,2C7h,2D8h,141h,0A4h,104h,0A6h,0A7h,0A8h,0A9h,15Eh,0ABh,0ACh,0ADh,0AEh,17Bh
|
||||
dw 0B0h,0B1h,2DBh,142h,0B4h,0B5h,0B6h,0B7h,0B8h,105h,15Fh,0BBh,13Dh,2DDh,13Eh,17Ch
|
||||
dw 154h,0C1h,0C2h,102h,0C4h,139h,106h,0C7h,10Ch,0C9h,118h,0CBh,11Ah,0CDh,0CEh,10Eh
|
||||
dw 110h,143h,147h,0D3h,0D4h,150h,0D6h,0D7h,158h,16Eh,0DAh,170h,0DCh,0DDh,162h,0DFh
|
||||
dw 155h,0E1h,0E2h,103h,0E4h,13Ah,107h,0E7h,10Dh,0E9h,119h,0EBh,11Bh,0EDh,0EEh,10Fh
|
||||
dw 111h,144h,148h,0F3h,0F4h,151h,0F6h,0F7h,159h,16Fh,0FAh,171h,0FCh,0FDh,163h,2D9h
|
||||
end virtual
|
||||
|
||||
macro du [arg]
|
||||
{ local offset,char
|
||||
offset = $-$$
|
||||
du arg
|
||||
if arg eqtype ''
|
||||
repeat ($-offset-$$)/2
|
||||
load char byte from $$+offset+(%-1)*2
|
||||
if char > 7Fh
|
||||
load char word from __encoding:char*2
|
||||
store word char at $$+offset+(%-1)*2
|
||||
end if
|
||||
end repeat
|
||||
end if }
|
||||
|
||||
struc du [args]
|
||||
{ common label . word
|
||||
du args }
|
||||
33
toolchain/fasmw17332/INCLUDE/ENCODING/WIN1251.INC
Normal file
33
toolchain/fasmw17332/INCLUDE/ENCODING/WIN1251.INC
Normal file
@@ -0,0 +1,33 @@
|
||||
|
||||
; Windows 1251
|
||||
|
||||
rept 1 { local ..encoding
|
||||
__encoding equ ..encoding }
|
||||
|
||||
virtual at 0
|
||||
__encoding::
|
||||
times 80h dw %-1
|
||||
dw 401h,403h,201Ah,453h,201Eh,2026h,2020h,2021h,20ACh,2030h,409h,2039h,40Ah,40Ch,40Bh,40Fh
|
||||
dw 452h,2018h,2019h,201Ch,201Dh,2022h,2013h,2014h,?,2122h,459h,203Ah,45Ah,45Ch,45Bh,45Fh
|
||||
dw 0A0h,40Eh,45Eh,408h,0A4h,490h,0A6h,0A7h,401h,0A9h,404h,0ABh,0ACh,0ADh,0AEh,407h
|
||||
dw 0B0h,0B1h,406h,456h,491h,0B5h,0B6h,0B7h,451h,2116h,454h,0BBh,458h,405h,455h,457h
|
||||
times 40h dw 410h+%-1
|
||||
end virtual
|
||||
|
||||
macro du [arg]
|
||||
{ local offset,char
|
||||
offset = $-$$
|
||||
du arg
|
||||
if arg eqtype ''
|
||||
repeat ($-offset-$$)/2
|
||||
load char byte from $$+offset+(%-1)*2
|
||||
if char > 7Fh
|
||||
load char word from __encoding:char*2
|
||||
store word char at $$+offset+(%-1)*2
|
||||
end if
|
||||
end repeat
|
||||
end if }
|
||||
|
||||
struc du [args]
|
||||
{ common label . word
|
||||
du args }
|
||||
31
toolchain/fasmw17332/INCLUDE/ENCODING/WIN1252.INC
Normal file
31
toolchain/fasmw17332/INCLUDE/ENCODING/WIN1252.INC
Normal file
@@ -0,0 +1,31 @@
|
||||
|
||||
; Windows 1252
|
||||
|
||||
rept 1 { local ..encoding
|
||||
__encoding equ ..encoding }
|
||||
|
||||
virtual at 0
|
||||
__encoding::
|
||||
times 80h dw %-1
|
||||
dw 20ACh,?,201Ah,192h,201Eh,2026h,2020h,2021h,2C6h,2030h,160h,2039h,152h,?,17D,?
|
||||
dw ?,2018h,2019h,201Ch,201Dh,2022h,2013h,2014h,2DCh,2122h,161h,203Ah,153h,?,17Eh,178h
|
||||
times 60h dw 0A0h+%-1
|
||||
end virtual
|
||||
|
||||
macro du [arg]
|
||||
{ local offset,char
|
||||
offset = $-$$
|
||||
du arg
|
||||
if arg eqtype ''
|
||||
repeat ($-offset-$$)/2
|
||||
load char byte from $$+offset+(%-1)*2
|
||||
if char > 7Fh
|
||||
load char word from __encoding:char*2
|
||||
store word char at $$+offset+(%-1)*2
|
||||
end if
|
||||
end repeat
|
||||
end if }
|
||||
|
||||
struc du [args]
|
||||
{ common label . word
|
||||
du args }
|
||||
33
toolchain/fasmw17332/INCLUDE/ENCODING/WIN1253.INC
Normal file
33
toolchain/fasmw17332/INCLUDE/ENCODING/WIN1253.INC
Normal file
@@ -0,0 +1,33 @@
|
||||
|
||||
; Windows 1253
|
||||
|
||||
rept 1 { local ..encoding
|
||||
__encoding equ ..encoding }
|
||||
|
||||
virtual at 0
|
||||
__encoding::
|
||||
times 80h dw %-1
|
||||
dw 20ACh,?,201Ah,192h,201Eh,2026h,2020h,2021h,?,2030h,?,2039h,?,?,?,?
|
||||
dw ?,2018h,2019h,201Ch,201Dh,2022h,2013h,2014h,?,2122h,?,203Ah,?,?,?,?
|
||||
dw 0A0h,385h,386h,0A3h,0A4h,0A5h,0A6h,0A7h,0A8h,0A9h,?,0ABh,0ACh,0ADh,0AEh,2015h
|
||||
dw 0B0h,0B1h,0B2h,0B3h,384h,0B5h,0B6h,0B7h,288h,389h,38Ah,0BBh,38Ch,0BDh,38Eh,38Fh
|
||||
times 40h dw 390h+%-1
|
||||
end virtual
|
||||
|
||||
macro du [arg]
|
||||
{ local offset,char
|
||||
offset = $-$$
|
||||
du arg
|
||||
if arg eqtype ''
|
||||
repeat ($-offset-$$)/2
|
||||
load char byte from $$+offset+(%-1)*2
|
||||
if char > 7Fh
|
||||
load char word from __encoding:char*2
|
||||
store word char at $$+offset+(%-1)*2
|
||||
end if
|
||||
end repeat
|
||||
end if }
|
||||
|
||||
struc du [args]
|
||||
{ common label . word
|
||||
du args }
|
||||
34
toolchain/fasmw17332/INCLUDE/ENCODING/WIN1254.INC
Normal file
34
toolchain/fasmw17332/INCLUDE/ENCODING/WIN1254.INC
Normal file
@@ -0,0 +1,34 @@
|
||||
|
||||
; Windows 1254
|
||||
|
||||
rept 1 { local ..encoding
|
||||
__encoding equ ..encoding }
|
||||
|
||||
virtual at 0
|
||||
__encoding::
|
||||
times 80h dw %-1
|
||||
dw 20ACh,?,201Ah,192h,201Eh,2026h,2020h,2021h,2C6h,2030h,160h,2039h,152h,?,?,?
|
||||
dw ?,2018h,2019h,201Ch,201Dh,2022h,2013h,2014h,2DCh,2122h,161h,203Ah,153h,?,?,178h
|
||||
times 30h dw 0A0h+%-1
|
||||
dw 11Eh,0D1h,0D2h,0D3h,0D4h,0D5h,0D6h,0D7h,0D8h,0D9h,0DAh,0DBh,0DCh,130h,15Eh,0DFh
|
||||
times 10h dw 0E0h+%-1
|
||||
dw 11Fh,0F1h,0F2h,0F3h,0F4h,0F5h,0F6h,0F7h,0F8h,0F9h,0FAh,0FBh,0FCh,131h,15Fh,0FFh
|
||||
end virtual
|
||||
|
||||
macro du [arg]
|
||||
{ local offset,char
|
||||
offset = $-$$
|
||||
du arg
|
||||
if arg eqtype ''
|
||||
repeat ($-offset-$$)/2
|
||||
load char byte from $$+offset+(%-1)*2
|
||||
if char > 7Fh
|
||||
load char word from __encoding:char*2
|
||||
store word char at $$+offset+(%-1)*2
|
||||
end if
|
||||
end repeat
|
||||
end if }
|
||||
|
||||
struc du [args]
|
||||
{ common label . word
|
||||
du args }
|
||||
36
toolchain/fasmw17332/INCLUDE/ENCODING/WIN1255.INC
Normal file
36
toolchain/fasmw17332/INCLUDE/ENCODING/WIN1255.INC
Normal file
@@ -0,0 +1,36 @@
|
||||
|
||||
; Windows 1255
|
||||
|
||||
rept 1 { local ..encoding
|
||||
__encoding equ ..encoding }
|
||||
|
||||
virtual at 0
|
||||
__encoding::
|
||||
times 80h dw %-1
|
||||
dw 20ACh,?,201Ah,192h,201Eh,2026h,2020h,2021h,2C6h,2030h,?,2039h,?,?,?,?
|
||||
dw ?,2018h,2019h,201Ch,201Dh,2022h,2013h,2014h,2DCh,2122h,?,203Ah,?,?,?,?
|
||||
dw 0A0h,0A1h,0A2h,0A3h,20AAh,0A5h,0A6h,0A7h,0A8h,0A9h,0D7h,0ABh,0ACh,0ADh,0AEh,0AFh
|
||||
dw 0B0h,0B1h,0B2h,0B3h,0B4h,0B5h,0B6h,0B7h,0B8h,0B9h,0F7h,0BBh,0BCh,0BDh,0BEh,0BFh
|
||||
dw 5B0h,5B1h,5B2h,5B3h,5B4h,5B5h,5B6h,5B7h,5B8h,5B9h,?,5BBh,5BCh,5BDh,5BEh,5BFh
|
||||
dw 5C0h,5C1h,5C2h,5C3h,5F0h,5F1h,5F2h,5F3h,5F4h,?,?,?,?,?,?,?
|
||||
dw 5D0h,5D1h,5D2h,5D3h,5D4h,5D5h,5D6h,5D7h,5D8h,5D9h,5DAh,5DBh,5DCh,5DDh,5DEh,5DFh
|
||||
dw 5E0h,5E1h,5E2h,5E3h,5E4h,5E5h,5E6h,5E7h,5E8h,5E9h,5EAh,?,?,200Eh,200Fh,?
|
||||
end virtual
|
||||
|
||||
macro du [arg]
|
||||
{ local offset,char
|
||||
offset = $-$$
|
||||
du arg
|
||||
if arg eqtype ''
|
||||
repeat ($-offset-$$)/2
|
||||
load char byte from $$+offset+(%-1)*2
|
||||
if char > 7Fh
|
||||
load char word from __encoding:char*2
|
||||
store word char at $$+offset+(%-1)*2
|
||||
end if
|
||||
end repeat
|
||||
end if }
|
||||
|
||||
struc du [args]
|
||||
{ common label . word
|
||||
du args }
|
||||
36
toolchain/fasmw17332/INCLUDE/ENCODING/WIN1256.INC
Normal file
36
toolchain/fasmw17332/INCLUDE/ENCODING/WIN1256.INC
Normal file
@@ -0,0 +1,36 @@
|
||||
|
||||
; Windows 1256
|
||||
|
||||
rept 1 { local ..encoding
|
||||
__encoding equ ..encoding }
|
||||
|
||||
virtual at 0
|
||||
__encoding::
|
||||
times 80h dw %-1
|
||||
dw 20ACh,67Eh,201Ah,192h,201Eh,2026h,2020h,2021h,2C6h,2030h,679h,2039h,152h,686h,698h,688h
|
||||
dw 6AFh,2018h,2019h,201Ch,201Dh,2022h,2013h,2014h,6A9h,2122h,691h,203Ah,153h,200Ch,200Dh,6BAh
|
||||
dw 0A0h,60Ch,0A2h,0A3h,0A4h,0A5h,0A6h,0A7h,0A8h,0A9h,6BEh,0ABh,0ACh,0ADh,0AEh,0AFh
|
||||
dw 0B0h,0B1h,0B2h,0B3h,0B4h,0B5h,0B6h,0B7h,0B8h,0B9h,0BAh,0BBh,0BCh,0BDh,0BEh,0BFh
|
||||
dw 6C1h,621h,622h,623h,624h,625h,626h,627h,628h,629h,62Ah,62Bh,62Ch,62Dh,62Eh,62Fh
|
||||
dw 630h,631h,632h,633h,634h,635h,636h,0D7h,637h,638h,639h,63Ah,640h,641h,642h,643h
|
||||
dw 0E0h,644h,0E2h,645h,646h,647h,648h,0E7h,0E8h,0E9h,0EAh,0EBh,649h,64Ah,0EEh,0EFh
|
||||
dw 64Bh,64Ch,64Dh,64Eh,0F4h,64Fh,650h,0F7h,651h,0F9h,652h,0FBh,0FCh,200Eh,200Fh,6D2h
|
||||
end virtual
|
||||
|
||||
macro du [arg]
|
||||
{ local offset,char
|
||||
offset = $-$$
|
||||
du arg
|
||||
if arg eqtype ''
|
||||
repeat ($-offset-$$)/2
|
||||
load char byte from $$+offset+(%-1)*2
|
||||
if char > 7Fh
|
||||
load char word from __encoding:char*2
|
||||
store word char at $$+offset+(%-1)*2
|
||||
end if
|
||||
end repeat
|
||||
end if }
|
||||
|
||||
struc du [args]
|
||||
{ common label . word
|
||||
du args }
|
||||
36
toolchain/fasmw17332/INCLUDE/ENCODING/WIN1257.INC
Normal file
36
toolchain/fasmw17332/INCLUDE/ENCODING/WIN1257.INC
Normal file
@@ -0,0 +1,36 @@
|
||||
|
||||
; Windows 1257
|
||||
|
||||
rept 1 { local ..encoding
|
||||
__encoding equ ..encoding }
|
||||
|
||||
virtual at 0
|
||||
__encoding::
|
||||
times 80h dw %-1
|
||||
dw 20ACh,?,201Ah,?,201Eh,2026h,2020h,2021h,?,2030h,?,2039h,?,0A8h,2C7h,0B8h
|
||||
dw ?,2018h,2019h,201Ch,201Dh,2022h,2013h,2014h,?,2122h,?,203Ah,?,0AFh,2DBh,?
|
||||
dw 0A0h,?,0A2h,0A3h,0A4h,?,0A6h,0A7h,0D8h,0A9h,156h,0ABh,0ACh,0ADh,0AEh,0C6h
|
||||
dw 0B0h,0B1h,0B2h,0B3h,0B4h,0B5h,0B6h,0B7h,0F8h,0B9h,157h,0BBh,0BCh,0BDh,0BEh,0E6h
|
||||
dw 104h,12Eh,100h,106h,0C4h,0C5h,118h,112h,10Ch,0C9h,179h,116h,122h,136h,12Ah,13Bh
|
||||
dw 160h,143h,145h,0D3h,14Ch,0D5h,0D6h,0D7h,172h,141h,15Ah,16Ah,0DCh,17Bh,17Dh,0DFh
|
||||
dw 105h,12Fh,101h,107h,0E4h,0E5h,119h,113h,10Dh,0E9h,17Ah,117h,123h,137h,12Bh,13Ch
|
||||
dw 161h,144h,146h,0F3h,14Dh,0F5h,0F6h,0F7h,173h,142h,15Bh,16Bh,0FCh,17Ch,17Eh,2D9h
|
||||
end virtual
|
||||
|
||||
macro du [arg]
|
||||
{ local offset,char
|
||||
offset = $-$$
|
||||
du arg
|
||||
if arg eqtype ''
|
||||
repeat ($-offset-$$)/2
|
||||
load char byte from $$+offset+(%-1)*2
|
||||
if char > 7Fh
|
||||
load char word from __encoding:char*2
|
||||
store word char at $$+offset+(%-1)*2
|
||||
end if
|
||||
end repeat
|
||||
end if }
|
||||
|
||||
struc du [args]
|
||||
{ common label . word
|
||||
du args }
|
||||
36
toolchain/fasmw17332/INCLUDE/ENCODING/WIN1258.INC
Normal file
36
toolchain/fasmw17332/INCLUDE/ENCODING/WIN1258.INC
Normal file
@@ -0,0 +1,36 @@
|
||||
|
||||
; Windows 1258
|
||||
|
||||
rept 1 { local ..encoding
|
||||
__encoding equ ..encoding }
|
||||
|
||||
virtual at 0
|
||||
__encoding::
|
||||
times 80h dw %-1
|
||||
dw 20ACh,?,201Ah,192h,201Eh,2026h,2020h,2021h,2C6h,2030h,?,2039h,152h,?,?,?
|
||||
dw ?,2018h,2019h,201Ch,201Dh,2022h,2013h,2014h,2DCh,2122h,?,203Ah,153h,?,?,178h
|
||||
dw 0A0h,0A1h,0A2h,0A3h,0A4h,0A5h,0A6h,0A7h,0A8h,0A9h,0AAh,0ABh,0ACh,0ADh,0AEh,0AFh
|
||||
dw 0B0h,0B1h,0B2h,0B3h,0B4h,0B5h,0B6h,0B7h,0B8h,0B9h,0BAh,0BBh,0BCh,0BDh,0BEh,0BFh
|
||||
dw 0C0h,0C1h,0C2h,102h,0C4h,0C5h,0C6h,0C7h,0C8h,0C9h,0CAh,0CBh,300h,0CDh,0CEh,0CFh
|
||||
dw 110h,0D1h,309h,0D3h,0D4h,1A0h,0D6h,0D7h,0D8h,0D9h,0DAh,0DBh,0DCh,1AFh,303h,0DFh
|
||||
dw 0E0h,0E1h,0E2h,103h,0E4h,0E5h,0E6h,0E7h,0E8h,0E9h,0EAh,0EBh,301h,0EDh,0EEh,0EFh
|
||||
dw 111h,0F1h,323h,0F3h,0F4h,1A1h,0F6h,0F7h,0F8h,0F9h,0FAh,0FBh,0FCh,1B0h,20ABh,0FFh
|
||||
end virtual
|
||||
|
||||
macro du [arg]
|
||||
{ local offset,char
|
||||
offset = $-$$
|
||||
du arg
|
||||
if arg eqtype ''
|
||||
repeat ($-offset-$$)/2
|
||||
load char byte from $$+offset+(%-1)*2
|
||||
if char > 7Fh
|
||||
load char word from __encoding:char*2
|
||||
store word char at $$+offset+(%-1)*2
|
||||
end if
|
||||
end repeat
|
||||
end if }
|
||||
|
||||
struc du [args]
|
||||
{ common label . word
|
||||
du args }
|
||||
31
toolchain/fasmw17332/INCLUDE/ENCODING/WIN874.INC
Normal file
31
toolchain/fasmw17332/INCLUDE/ENCODING/WIN874.INC
Normal file
@@ -0,0 +1,31 @@
|
||||
|
||||
; Windows 874
|
||||
|
||||
rept 1 { local ..encoding
|
||||
__encoding equ ..encoding }
|
||||
|
||||
virtual at 0
|
||||
__encoding::
|
||||
times 80h dw %-1
|
||||
dw 20ACh,?,?,?,?,2026h,?,?,?,?,?,?,?,?,?,?
|
||||
dw ?,2018h,2019h,201Ch,201Dh,2022h,2013h,2014h,?,?,?,?,?,?,?,?
|
||||
times 60h dw 0E00h+%-1
|
||||
end virtual
|
||||
|
||||
macro du [arg]
|
||||
{ local offset,char
|
||||
offset = $-$$
|
||||
du arg
|
||||
if arg eqtype ''
|
||||
repeat ($-offset-$$)/2
|
||||
load char byte from $$+offset+(%-1)*2
|
||||
if char > 7Fh
|
||||
load char word from __encoding:char*2
|
||||
store word char at $$+offset+(%-1)*2
|
||||
end if
|
||||
end repeat
|
||||
end if }
|
||||
|
||||
struc du [args]
|
||||
{ common label . word
|
||||
du args }
|
||||
1869
toolchain/fasmw17332/INCLUDE/EQUATES/COMCTL32.INC
Normal file
1869
toolchain/fasmw17332/INCLUDE/EQUATES/COMCTL32.INC
Normal file
File diff suppressed because it is too large
Load Diff
1871
toolchain/fasmw17332/INCLUDE/EQUATES/COMCTL64.INC
Normal file
1871
toolchain/fasmw17332/INCLUDE/EQUATES/COMCTL64.INC
Normal file
File diff suppressed because it is too large
Load Diff
333
toolchain/fasmw17332/INCLUDE/EQUATES/COMDLG32.INC
Normal file
333
toolchain/fasmw17332/INCLUDE/EQUATES/COMDLG32.INC
Normal file
@@ -0,0 +1,333 @@
|
||||
|
||||
; COMDLG32.DLL structures and constants
|
||||
|
||||
struct OPENFILENAME
|
||||
lStructSize dd ?
|
||||
hwndOwner dd ?
|
||||
hInstance dd ?
|
||||
lpstrFilter dd ?
|
||||
lpstrCustomFilter dd ?
|
||||
nMaxCustFilter dd ?
|
||||
nFilterIndex dd ?
|
||||
lpstrFile dd ?
|
||||
nMaxFile dd ?
|
||||
lpstrFileTitle dd ?
|
||||
nMaxFileTitle dd ?
|
||||
lpstrInitialDir dd ?
|
||||
lpstrTitle dd ?
|
||||
Flags dd ?
|
||||
nFileOffset dw ?
|
||||
nFileExtension dw ?
|
||||
lpstrDefExt dd ?
|
||||
lCustData dd ?
|
||||
lpfnHook dd ?
|
||||
lpTemplateName dd ?
|
||||
ends
|
||||
|
||||
struct CHOOSECOLOR
|
||||
lStructSize dd ?
|
||||
hwndOwner dd ?
|
||||
hInstance dd ?
|
||||
rgbResult dd ?
|
||||
lpCustColors dd ?
|
||||
Flags dd ?
|
||||
lCustData dd ?
|
||||
lpfnHook dd ?
|
||||
lpTemplateName dd ?
|
||||
ends
|
||||
|
||||
struct FINDREPLACE
|
||||
lStructSize dd ?
|
||||
hwndOwner dd ?
|
||||
hInstance dd ?
|
||||
Flags dd ?
|
||||
lpstrFindWhat dd ?
|
||||
lpstrReplaceWith dd ?
|
||||
wFindWhatLen dw ?
|
||||
wReplaceWithLen dw ?
|
||||
lCustData dd ?
|
||||
lpfnHook dd ?
|
||||
lpTemplateName dd ?
|
||||
ends
|
||||
|
||||
struct CHOOSEFONT
|
||||
lStructSize dd ?
|
||||
hwndOwner dd ?
|
||||
hDC dd ?
|
||||
lpLogFont dd ?
|
||||
iPointSize dd ?
|
||||
Flags dd ?
|
||||
rgbColors dd ?
|
||||
lCustData dd ?
|
||||
lpfnHook dd ?
|
||||
lpTemplateName dd ?
|
||||
hInstance dd ?
|
||||
lpszStyle dd ?
|
||||
nFontType dw ?
|
||||
wReserved dw ?
|
||||
nSizeMin dd ?
|
||||
nSizeMax dd ?
|
||||
ends
|
||||
|
||||
struct PRINTDLG
|
||||
lStructSize dd ?
|
||||
hwndOwner dd ?
|
||||
hDevMode dd ?
|
||||
hDevNames dd ?
|
||||
hDC dd ?
|
||||
Flags dd ?
|
||||
nFromPage dw ?
|
||||
nToPage dw ?
|
||||
nMinPage dw ?
|
||||
nMaxPage dw ?
|
||||
nCopies dw ?
|
||||
hInstance dd ?
|
||||
lCustData dd ?
|
||||
lpfnPrintHook dd ?
|
||||
lpfnSetupHook dd ?
|
||||
lpPrintTemplateName dd ?
|
||||
lpSetupTemplateName dd ?
|
||||
hPrintTemplate dd ?
|
||||
hSetupTemplate dd ?
|
||||
ends
|
||||
|
||||
struct DEVNAMES
|
||||
wDriverOffset dw ?
|
||||
wDeviceOffset dw ?
|
||||
wOutputOffset dw ?
|
||||
wDefault dw ?
|
||||
ends
|
||||
|
||||
struct PAGESETUPDLG
|
||||
lStructSize dd ?
|
||||
hwndOwner dd ?
|
||||
hDevMode dd ?
|
||||
hDevNames dd ?
|
||||
Flags dd ?
|
||||
ptPaperSize POINT
|
||||
rtMinMargin RECT
|
||||
rtMargin RECT
|
||||
hInstance dd ?
|
||||
lCustData dd ?
|
||||
lpfnPageSetupHook dd ?
|
||||
lpfnPagePaintHook dd ?
|
||||
lpPageSetupTemplateName dd ?
|
||||
hPageSetupTemplate dd ?
|
||||
ends
|
||||
|
||||
; OPENFILENAME flags
|
||||
|
||||
OFN_READONLY = 000001h
|
||||
OFN_OVERWRITEPROMPT = 000002h
|
||||
OFN_HIDEREADONLY = 000004h
|
||||
OFN_NOCHANGEDIR = 000008h
|
||||
OFN_SHOWHELP = 000010h
|
||||
OFN_ENABLEHOOK = 000020h
|
||||
OFN_ENABLETEMPLATE = 000040h
|
||||
OFN_ENABLETEMPLATEHANDLE = 000080h
|
||||
OFN_NOVALIDATE = 000100h
|
||||
OFN_ALLOWMULTISELECT = 000200h
|
||||
OFN_EXTENSIONDIFFERENT = 000400h
|
||||
OFN_PATHMUSTEXIST = 000800h
|
||||
OFN_FILEMUSTEXIST = 001000h
|
||||
OFN_CREATEPROMPT = 002000h
|
||||
OFN_SHAREAWARE = 004000h
|
||||
OFN_NOREADONLYRETURN = 008000h
|
||||
OFN_NOTESTFILECREATE = 010000h
|
||||
OFN_NONETWORKBUTTON = 020000h
|
||||
OFN_NOLONGNAMES = 040000h
|
||||
OFN_EXPLORER = 080000h
|
||||
OFN_NODEREFERENCELINKS = 100000h
|
||||
OFN_LONGNAMES = 200000h
|
||||
|
||||
; Common dialog notifications
|
||||
|
||||
CDN_FIRST = -601
|
||||
CDN_LAST = -699
|
||||
CDN_INITDONE = CDN_FIRST - 0
|
||||
CDN_SELCHANGE = CDN_FIRST - 1
|
||||
CDN_FOLDERCHANGE = CDN_FIRST - 2
|
||||
CDN_SHAREVIOLATION = CDN_FIRST - 3
|
||||
CDN_HELP = CDN_FIRST - 4
|
||||
CDN_FILEOK = CDN_FIRST - 5
|
||||
CDN_TYPECHANGE = CDN_FIRST - 6
|
||||
|
||||
; Common dialog messages
|
||||
|
||||
CDM_FIRST = WM_USER + 100
|
||||
CDM_LAST = WM_USER + 200
|
||||
CDM_GETSPEC = CDM_FIRST + 0
|
||||
CDM_GETFILEPATH = CDM_FIRST + 1
|
||||
CDM_GETFOLDERPATH = CDM_FIRST + 2
|
||||
CDM_GETFOLDERIDLIST = CDM_FIRST + 3
|
||||
CDM_SETCONTROLTEXT = CDM_FIRST + 4
|
||||
CDM_HIDECONTROL = CDM_FIRST + 5
|
||||
CDM_SETDEFEXT = CDM_FIRST + 6
|
||||
|
||||
; CHOOSECOLOR flags
|
||||
|
||||
CC_RGBINIT = 001h
|
||||
CC_FULLOPEN = 002h
|
||||
CC_PREVENTFULLOPEN = 004h
|
||||
CC_SHOWHELP = 008h
|
||||
CC_ENABLEHOOK = 010h
|
||||
CC_ENABLETEMPLATE = 020h
|
||||
CC_ENABLETEMPLATEHANDLE = 040h
|
||||
CC_SOLIDCOLOR = 080h
|
||||
CC_ANYCOLOR = 100h
|
||||
|
||||
; FINDREPLACE flags
|
||||
|
||||
FR_DOWN = 00001h
|
||||
FR_WHOLEWORD = 00002h
|
||||
FR_MATCHCASE = 00004h
|
||||
FR_FINDNEXT = 00008h
|
||||
FR_REPLACE = 00010h
|
||||
FR_REPLACEALL = 00020h
|
||||
FR_DIALOGTERM = 00040h
|
||||
FR_SHOWHELP = 00080h
|
||||
FR_ENABLEHOOK = 00100h
|
||||
FR_ENABLETEMPLATE = 00200h
|
||||
FR_NOUPDOWN = 00400h
|
||||
FR_NOMATCHCASE = 00800h
|
||||
FR_NOWHOLEWORD = 01000h
|
||||
FR_ENABLETEMPLATEHANDLE = 02000h
|
||||
FR_HIDEUPDOWN = 04000h
|
||||
FR_HIDEMATCHCASE = 08000h
|
||||
FR_HIDEWHOLEWORD = 10000h
|
||||
|
||||
; CHOOSEFONT flags
|
||||
|
||||
CF_SCREENFONTS = 0000001h
|
||||
CF_PRINTERFONTS = 0000002h
|
||||
CF_BOTH = CF_SCREENFONTS or CF_PRINTERFONTS
|
||||
CF_SHOWHELP = 0000004h
|
||||
CF_ENABLEHOOK = 0000008h
|
||||
CF_ENABLETEMPLATE = 0000010h
|
||||
CF_ENABLETEMPLATEHANDLE = 0000020h
|
||||
CF_INITTOLOGFONTSTRUCT = 0000040h
|
||||
CF_USESTYLE = 0000080h
|
||||
CF_EFFECTS = 0000100h
|
||||
CF_APPLY = 0000200h
|
||||
CF_ANSIONLY = 0000400h
|
||||
CF_SCRIPTSONLY = CF_ANSIONLY
|
||||
CF_NOVECTORFONTS = 0000800h
|
||||
CF_NOOEMFONTS = CF_NOVECTORFONTS
|
||||
CF_NOSIMULATIONS = 0001000h
|
||||
CF_LIMITSIZE = 0002000h
|
||||
CF_FIXEDPITCHONLY = 0004000h
|
||||
CF_WYSIWYG = 0008000h
|
||||
CF_FORCEFONTEXIST = 0010000h
|
||||
CF_SCALABLEONLY = 0020000h
|
||||
CF_TTONLY = 0040000h
|
||||
CF_NOFACESEL = 0080000h
|
||||
CF_NOSTYLESEL = 0100000h
|
||||
CF_NOSIZESEL = 0200000h
|
||||
CF_SELECTSCRIPT = 0400000h
|
||||
CF_NOSCRIPTSEL = 0800000h
|
||||
CF_NOVERTFONTS = 1000000h
|
||||
|
||||
; ChooseFont messages
|
||||
|
||||
WM_CHOOSEFONT_GETLOGFONT = WM_USER + 1
|
||||
WM_CHOOSEFONT_SETLOGFONT = WM_USER + 101
|
||||
WM_CHOOSEFONT_SETFLAGS = WM_USER + 102
|
||||
|
||||
; PRINTDLG flags
|
||||
|
||||
PD_ALLPAGES = 000000h
|
||||
PD_SELECTION = 000001h
|
||||
PD_PAGENUMS = 000002h
|
||||
PD_NOSELECTION = 000004h
|
||||
PD_NOPAGENUMS = 000008h
|
||||
PD_COLLATE = 000010h
|
||||
PD_PRINTTOFILE = 000020h
|
||||
PD_PRINTSETUP = 000040h
|
||||
PD_NOWARNING = 000080h
|
||||
PD_RETURNDC = 000100h
|
||||
PD_RETURNIC = 000200h
|
||||
PD_RETURNDEFAULT = 000400h
|
||||
PD_SHOWHELP = 000800h
|
||||
PD_ENABLEPRINTHOOK = 001000h
|
||||
PD_ENABLESETUPHOOK = 002000h
|
||||
PD_ENABLEPRINTTEMPLATE = 004000h
|
||||
PD_ENABLESETUPTEMPLATE = 008000h
|
||||
PD_ENABLEPRINTTEMPLATEHANDLE = 010000h
|
||||
PD_ENABLESETUPTEMPLATEHANDLE = 020000h
|
||||
PD_USEDEVMODECOPIES = 040000h
|
||||
PD_USEDEVMODECOPIESANDCOLLATE = 040000h
|
||||
PD_DISABLEPRINTTOFILE = 080000h
|
||||
PD_HIDEPRINTTOFILE = 100000h
|
||||
PD_NONETWORKBUTTON = 200000h
|
||||
|
||||
; PAGESETUPDLG flags
|
||||
|
||||
PSD_DEFAULTMINMARGINS = 000000h
|
||||
PSD_INWININIINTLMEASURE = 000000h
|
||||
PSD_MINMARGINS = 000001h
|
||||
PSD_MARGINS = 000002h
|
||||
PSD_INTHOUSANDTHSOFINCHES = 000004h
|
||||
PSD_INHUNDREDTHSOFMILLIMETERS = 000008h
|
||||
PSD_DISABLEMARGINS = 000010h
|
||||
PSD_DISABLEPRINTER = 000020h
|
||||
PSD_NOWARNING = 000080h
|
||||
PSD_DISABLEORIENTATION = 000100h
|
||||
PSD_RETURNDEFAULT = 000400h
|
||||
PSD_DISABLEPAPER = 000200h
|
||||
PSD_SHOWHELP = 000800h
|
||||
PSD_ENABLEPAGESETUPHOOK = 002000h
|
||||
PSD_ENABLEPAGESETUPTEMPLATE = 008000h
|
||||
PSD_ENABLEPAGESETUPTEMPLATEHANDLE = 020000h
|
||||
PSD_ENABLEPAGEPAINTHOOK = 040000h
|
||||
PSD_DISABLEPAGEPAINTING = 080000h
|
||||
PSD_NONETWORKBUTTON = 200000h
|
||||
|
||||
; PageSetupDlg messages
|
||||
|
||||
WM_PSD_PAGESETUPDLG = WM_USER
|
||||
WM_PSD_FULLPAGERECT = WM_USER + 1
|
||||
WM_PSD_MINMARGINRECT = WM_USER + 2
|
||||
WM_PSD_MARGINRECT = WM_USER + 3
|
||||
WM_PSD_GREEKTEXTRECT = WM_USER + 4
|
||||
WM_PSD_ENVSTAMPRECT = WM_USER + 5
|
||||
WM_PSD_YAFULLPAGERECT = WM_USER + 6
|
||||
|
||||
; Common dialog error codes
|
||||
|
||||
CDERR_DIALOGFAILURE = 0FFFFh
|
||||
CDERR_GENERALCODES = 00000h
|
||||
CDERR_STRUCTSIZE = 00001h
|
||||
CDERR_INITIALIZATION = 00002h
|
||||
CDERR_NOTEMPLATE = 00003h
|
||||
CDERR_NOHINSTANCE = 00004h
|
||||
CDERR_LOADSTRFAILURE = 00005h
|
||||
CDERR_FINDRESFAILURE = 00006h
|
||||
CDERR_LOADRESFAILURE = 00007h
|
||||
CDERR_LOCKRESFAILURE = 00008h
|
||||
CDERR_MEMALLOCFAILURE = 00009h
|
||||
CDERR_MEMLOCKFAILURE = 0000Ah
|
||||
CDERR_NOHOOK = 0000Bh
|
||||
CDERR_REGISTERMSGFAIL = 0000Ch
|
||||
PDERR_PRINTERCODES = 01000h
|
||||
PDERR_SETUPFAILURE = 01001h
|
||||
PDERR_PARSEFAILURE = 01002h
|
||||
PDERR_RETDEFFAILURE = 01003h
|
||||
PDERR_LOADDRVFAILURE = 01004h
|
||||
PDERR_GETDEVMODEFAIL = 01005h
|
||||
PDERR_INITFAILURE = 01006h
|
||||
PDERR_NODEVICES = 01007h
|
||||
PDERR_NODEFAULTPRN = 01008h
|
||||
PDERR_DNDMMISMATCH = 01009h
|
||||
PDERR_CREATEICFAILURE = 0100Ah
|
||||
PDERR_PRINTERNOTFOUND = 0100Bh
|
||||
PDERR_DEFAULTDIFFERENT = 0100Ch
|
||||
CFERR_CHOOSEFONTCODES = 02000h
|
||||
CFERR_NOFONTS = 02001h
|
||||
CFERR_MAXLESSTHANMIN = 02002h
|
||||
FNERR_FILENAMECODES = 03000h
|
||||
FNERR_SUBCLASSFAILURE = 03001h
|
||||
FNERR_INVALIDFILENAME = 03002h
|
||||
FNERR_BUFFERTOOSMALL = 03003h
|
||||
FRERR_FINDREPLACECODES = 04000h
|
||||
FRERR_BUFFERLENGTHZERO = 04001h
|
||||
CCERR_CHOOSECOLORCODES = 05000h
|
||||
334
toolchain/fasmw17332/INCLUDE/EQUATES/COMDLG64.INC
Normal file
334
toolchain/fasmw17332/INCLUDE/EQUATES/COMDLG64.INC
Normal file
@@ -0,0 +1,334 @@
|
||||
|
||||
; COMDLG32.DLL structures and constants
|
||||
|
||||
struct OPENFILENAME
|
||||
lStructSize dq ?
|
||||
hwndOwner dq ?
|
||||
hInstance dq ?
|
||||
lpstrFilter dq ?
|
||||
lpstrCustomFilter dq ?
|
||||
nMaxCustFilter dd ?
|
||||
nFilterIndex dd ?
|
||||
lpstrFile dq ?
|
||||
nMaxFile dd ?,?
|
||||
lpstrFileTitle dq ?
|
||||
nMaxFileTitle dd ?,?
|
||||
lpstrInitialDir dq ?
|
||||
lpstrTitle dq ?
|
||||
Flags dd ?
|
||||
nFileOffset dw ?
|
||||
nFileExtension dw ?
|
||||
lpstrDefExt dq ?
|
||||
lCustData dq ?
|
||||
lpfnHook dq ?
|
||||
lpTemplateName dq ?
|
||||
ends
|
||||
|
||||
struct CHOOSECOLOR
|
||||
lStructSize dq ?
|
||||
hwndOwner dq ?
|
||||
hInstance dq ?
|
||||
rgbResult dd ?,?
|
||||
lpCustColors dq ?
|
||||
Flags dd ?,?
|
||||
lCustData dq ?
|
||||
lpfnHook dq ?
|
||||
lpTemplateName dq ?
|
||||
ends
|
||||
|
||||
struct FINDREPLACE
|
||||
lStructSize dq ?
|
||||
hwndOwner dq ?
|
||||
hInstance dq ?
|
||||
Flags dd ?,?
|
||||
lpstrFindWhat dq ?
|
||||
lpstrReplaceWith dq ?
|
||||
wFindWhatLen dw ?
|
||||
wReplaceWithLen dw ?,?,?
|
||||
lCustData dq ?
|
||||
lpfnHook dq ?
|
||||
lpTemplateName dq ?
|
||||
ends
|
||||
|
||||
struct CHOOSEFONT
|
||||
lStructSize dq ?
|
||||
hwndOwner dq ?
|
||||
hDC dq ?
|
||||
lpLogFont dq ?
|
||||
iPointSize dd ?
|
||||
Flags dd ?
|
||||
rgbColors dd ?,?
|
||||
lCustData dq ?
|
||||
lpfnHook dq ?
|
||||
lpTemplateName dq ?
|
||||
hInstance dq ?
|
||||
lpszStyle dq ?
|
||||
nFontType dw ?
|
||||
wReserved dw ?
|
||||
nSizeMin dd ?
|
||||
nSizeMax dd ?
|
||||
ends
|
||||
|
||||
struct PRINTDLG
|
||||
lStructSize dq ?
|
||||
hwndOwner dq ?
|
||||
hDevMode dq ?
|
||||
hDevNames dq ?
|
||||
hDC dq ?
|
||||
Flags dd ?
|
||||
nFromPage dw ?
|
||||
nToPage dw ?
|
||||
nMinPage dw ?
|
||||
nMaxPage dw ?
|
||||
nCopies dw ?,?
|
||||
hInstance dq ?
|
||||
lCustData dq ?
|
||||
lpfnPrintHook dq ?
|
||||
lpfnSetupHook dq ?
|
||||
lpPrintTemplateName dq ?
|
||||
lpSetupTemplateName dq ?
|
||||
hPrintTemplate dq ?
|
||||
hSetupTemplate dq ?
|
||||
ends
|
||||
|
||||
struct DEVNAMES
|
||||
wDriverOffset dw ?
|
||||
wDeviceOffset dw ?
|
||||
wOutputOffset dw ?
|
||||
wDefault dw ?
|
||||
ends
|
||||
|
||||
struct PAGESETUPDLG
|
||||
lStructSize dq ?
|
||||
hwndOwner dq ?
|
||||
hDevMode dq ?
|
||||
hDevNames dq ?
|
||||
Flags dd ?
|
||||
ptPaperSize POINT
|
||||
rtMinMargin RECT
|
||||
rtMargin RECT
|
||||
dd ?
|
||||
hInstance dq ?
|
||||
lCustData dq ?
|
||||
lpfnPageSetupHook dq ?
|
||||
lpfnPagePaintHook dq ?
|
||||
lpPageSetupTemplateName dq ?
|
||||
hPageSetupTemplate dq ?
|
||||
ends
|
||||
|
||||
; OPENFILENAME flags
|
||||
|
||||
OFN_READONLY = 000001h
|
||||
OFN_OVERWRITEPROMPT = 000002h
|
||||
OFN_HIDEREADONLY = 000004h
|
||||
OFN_NOCHANGEDIR = 000008h
|
||||
OFN_SHOWHELP = 000010h
|
||||
OFN_ENABLEHOOK = 000020h
|
||||
OFN_ENABLETEMPLATE = 000040h
|
||||
OFN_ENABLETEMPLATEHANDLE = 000080h
|
||||
OFN_NOVALIDATE = 000100h
|
||||
OFN_ALLOWMULTISELECT = 000200h
|
||||
OFN_EXTENSIONDIFFERENT = 000400h
|
||||
OFN_PATHMUSTEXIST = 000800h
|
||||
OFN_FILEMUSTEXIST = 001000h
|
||||
OFN_CREATEPROMPT = 002000h
|
||||
OFN_SHAREAWARE = 004000h
|
||||
OFN_NOREADONLYRETURN = 008000h
|
||||
OFN_NOTESTFILECREATE = 010000h
|
||||
OFN_NONETWORKBUTTON = 020000h
|
||||
OFN_NOLONGNAMES = 040000h
|
||||
OFN_EXPLORER = 080000h
|
||||
OFN_NODEREFERENCELINKS = 100000h
|
||||
OFN_LONGNAMES = 200000h
|
||||
|
||||
; Common dialog notifications
|
||||
|
||||
CDN_FIRST = -601
|
||||
CDN_LAST = -699
|
||||
CDN_INITDONE = CDN_FIRST - 0
|
||||
CDN_SELCHANGE = CDN_FIRST - 1
|
||||
CDN_FOLDERCHANGE = CDN_FIRST - 2
|
||||
CDN_SHAREVIOLATION = CDN_FIRST - 3
|
||||
CDN_HELP = CDN_FIRST - 4
|
||||
CDN_FILEOK = CDN_FIRST - 5
|
||||
CDN_TYPECHANGE = CDN_FIRST - 6
|
||||
|
||||
; Common dialog messages
|
||||
|
||||
CDM_FIRST = WM_USER + 100
|
||||
CDM_LAST = WM_USER + 200
|
||||
CDM_GETSPEC = CDM_FIRST + 0
|
||||
CDM_GETFILEPATH = CDM_FIRST + 1
|
||||
CDM_GETFOLDERPATH = CDM_FIRST + 2
|
||||
CDM_GETFOLDERIDLIST = CDM_FIRST + 3
|
||||
CDM_SETCONTROLTEXT = CDM_FIRST + 4
|
||||
CDM_HIDECONTROL = CDM_FIRST + 5
|
||||
CDM_SETDEFEXT = CDM_FIRST + 6
|
||||
|
||||
; CHOOSECOLOR flags
|
||||
|
||||
CC_RGBINIT = 001h
|
||||
CC_FULLOPEN = 002h
|
||||
CC_PREVENTFULLOPEN = 004h
|
||||
CC_SHOWHELP = 008h
|
||||
CC_ENABLEHOOK = 010h
|
||||
CC_ENABLETEMPLATE = 020h
|
||||
CC_ENABLETEMPLATEHANDLE = 040h
|
||||
CC_SOLIDCOLOR = 080h
|
||||
CC_ANYCOLOR = 100h
|
||||
|
||||
; FINDREPLACE flags
|
||||
|
||||
FR_DOWN = 00001h
|
||||
FR_WHOLEWORD = 00002h
|
||||
FR_MATCHCASE = 00004h
|
||||
FR_FINDNEXT = 00008h
|
||||
FR_REPLACE = 00010h
|
||||
FR_REPLACEALL = 00020h
|
||||
FR_DIALOGTERM = 00040h
|
||||
FR_SHOWHELP = 00080h
|
||||
FR_ENABLEHOOK = 00100h
|
||||
FR_ENABLETEMPLATE = 00200h
|
||||
FR_NOUPDOWN = 00400h
|
||||
FR_NOMATCHCASE = 00800h
|
||||
FR_NOWHOLEWORD = 01000h
|
||||
FR_ENABLETEMPLATEHANDLE = 02000h
|
||||
FR_HIDEUPDOWN = 04000h
|
||||
FR_HIDEMATCHCASE = 08000h
|
||||
FR_HIDEWHOLEWORD = 10000h
|
||||
|
||||
; CHOOSEFONT flags
|
||||
|
||||
CF_SCREENFONTS = 0000001h
|
||||
CF_PRINTERFONTS = 0000002h
|
||||
CF_BOTH = CF_SCREENFONTS or CF_PRINTERFONTS
|
||||
CF_SHOWHELP = 0000004h
|
||||
CF_ENABLEHOOK = 0000008h
|
||||
CF_ENABLETEMPLATE = 0000010h
|
||||
CF_ENABLETEMPLATEHANDLE = 0000020h
|
||||
CF_INITTOLOGFONTSTRUCT = 0000040h
|
||||
CF_USESTYLE = 0000080h
|
||||
CF_EFFECTS = 0000100h
|
||||
CF_APPLY = 0000200h
|
||||
CF_ANSIONLY = 0000400h
|
||||
CF_SCRIPTSONLY = CF_ANSIONLY
|
||||
CF_NOVECTORFONTS = 0000800h
|
||||
CF_NOOEMFONTS = CF_NOVECTORFONTS
|
||||
CF_NOSIMULATIONS = 0001000h
|
||||
CF_LIMITSIZE = 0002000h
|
||||
CF_FIXEDPITCHONLY = 0004000h
|
||||
CF_WYSIWYG = 0008000h
|
||||
CF_FORCEFONTEXIST = 0010000h
|
||||
CF_SCALABLEONLY = 0020000h
|
||||
CF_TTONLY = 0040000h
|
||||
CF_NOFACESEL = 0080000h
|
||||
CF_NOSTYLESEL = 0100000h
|
||||
CF_NOSIZESEL = 0200000h
|
||||
CF_SELECTSCRIPT = 0400000h
|
||||
CF_NOSCRIPTSEL = 0800000h
|
||||
CF_NOVERTFONTS = 1000000h
|
||||
|
||||
; ChooseFont messages
|
||||
|
||||
WM_CHOOSEFONT_GETLOGFONT = WM_USER + 1
|
||||
WM_CHOOSEFONT_SETLOGFONT = WM_USER + 101
|
||||
WM_CHOOSEFONT_SETFLAGS = WM_USER + 102
|
||||
|
||||
; PRINTDLG flags
|
||||
|
||||
PD_ALLPAGES = 000000h
|
||||
PD_SELECTION = 000001h
|
||||
PD_PAGENUMS = 000002h
|
||||
PD_NOSELECTION = 000004h
|
||||
PD_NOPAGENUMS = 000008h
|
||||
PD_COLLATE = 000010h
|
||||
PD_PRINTTOFILE = 000020h
|
||||
PD_PRINTSETUP = 000040h
|
||||
PD_NOWARNING = 000080h
|
||||
PD_RETURNDC = 000100h
|
||||
PD_RETURNIC = 000200h
|
||||
PD_RETURNDEFAULT = 000400h
|
||||
PD_SHOWHELP = 000800h
|
||||
PD_ENABLEPRINTHOOK = 001000h
|
||||
PD_ENABLESETUPHOOK = 002000h
|
||||
PD_ENABLEPRINTTEMPLATE = 004000h
|
||||
PD_ENABLESETUPTEMPLATE = 008000h
|
||||
PD_ENABLEPRINTTEMPLATEHANDLE = 010000h
|
||||
PD_ENABLESETUPTEMPLATEHANDLE = 020000h
|
||||
PD_USEDEVMODECOPIES = 040000h
|
||||
PD_USEDEVMODECOPIESANDCOLLATE = 040000h
|
||||
PD_DISABLEPRINTTOFILE = 080000h
|
||||
PD_HIDEPRINTTOFILE = 100000h
|
||||
PD_NONETWORKBUTTON = 200000h
|
||||
|
||||
; PAGESETUPDLG flags
|
||||
|
||||
PSD_DEFAULTMINMARGINS = 000000h
|
||||
PSD_INWININIINTLMEASURE = 000000h
|
||||
PSD_MINMARGINS = 000001h
|
||||
PSD_MARGINS = 000002h
|
||||
PSD_INTHOUSANDTHSOFINCHES = 000004h
|
||||
PSD_INHUNDREDTHSOFMILLIMETERS = 000008h
|
||||
PSD_DISABLEMARGINS = 000010h
|
||||
PSD_DISABLEPRINTER = 000020h
|
||||
PSD_NOWARNING = 000080h
|
||||
PSD_DISABLEORIENTATION = 000100h
|
||||
PSD_RETURNDEFAULT = 000400h
|
||||
PSD_DISABLEPAPER = 000200h
|
||||
PSD_SHOWHELP = 000800h
|
||||
PSD_ENABLEPAGESETUPHOOK = 002000h
|
||||
PSD_ENABLEPAGESETUPTEMPLATE = 008000h
|
||||
PSD_ENABLEPAGESETUPTEMPLATEHANDLE = 020000h
|
||||
PSD_ENABLEPAGEPAINTHOOK = 040000h
|
||||
PSD_DISABLEPAGEPAINTING = 080000h
|
||||
PSD_NONETWORKBUTTON = 200000h
|
||||
|
||||
; PageSetupDlg messages
|
||||
|
||||
WM_PSD_PAGESETUPDLG = WM_USER
|
||||
WM_PSD_FULLPAGERECT = WM_USER + 1
|
||||
WM_PSD_MINMARGINRECT = WM_USER + 2
|
||||
WM_PSD_MARGINRECT = WM_USER + 3
|
||||
WM_PSD_GREEKTEXTRECT = WM_USER + 4
|
||||
WM_PSD_ENVSTAMPRECT = WM_USER + 5
|
||||
WM_PSD_YAFULLPAGERECT = WM_USER + 6
|
||||
|
||||
; Common dialog error codes
|
||||
|
||||
CDERR_DIALOGFAILURE = 0FFFFh
|
||||
CDERR_GENERALCODES = 00000h
|
||||
CDERR_STRUCTSIZE = 00001h
|
||||
CDERR_INITIALIZATION = 00002h
|
||||
CDERR_NOTEMPLATE = 00003h
|
||||
CDERR_NOHINSTANCE = 00004h
|
||||
CDERR_LOADSTRFAILURE = 00005h
|
||||
CDERR_FINDRESFAILURE = 00006h
|
||||
CDERR_LOADRESFAILURE = 00007h
|
||||
CDERR_LOCKRESFAILURE = 00008h
|
||||
CDERR_MEMALLOCFAILURE = 00009h
|
||||
CDERR_MEMLOCKFAILURE = 0000Ah
|
||||
CDERR_NOHOOK = 0000Bh
|
||||
CDERR_REGISTERMSGFAIL = 0000Ch
|
||||
PDERR_PRINTERCODES = 01000h
|
||||
PDERR_SETUPFAILURE = 01001h
|
||||
PDERR_PARSEFAILURE = 01002h
|
||||
PDERR_RETDEFFAILURE = 01003h
|
||||
PDERR_LOADDRVFAILURE = 01004h
|
||||
PDERR_GETDEVMODEFAIL = 01005h
|
||||
PDERR_INITFAILURE = 01006h
|
||||
PDERR_NODEVICES = 01007h
|
||||
PDERR_NODEFAULTPRN = 01008h
|
||||
PDERR_DNDMMISMATCH = 01009h
|
||||
PDERR_CREATEICFAILURE = 0100Ah
|
||||
PDERR_PRINTERNOTFOUND = 0100Bh
|
||||
PDERR_DEFAULTDIFFERENT = 0100Ch
|
||||
CFERR_CHOOSEFONTCODES = 02000h
|
||||
CFERR_NOFONTS = 02001h
|
||||
CFERR_MAXLESSTHANMIN = 02002h
|
||||
FNERR_FILENAMECODES = 03000h
|
||||
FNERR_SUBCLASSFAILURE = 03001h
|
||||
FNERR_INVALIDFILENAME = 03002h
|
||||
FNERR_BUFFERTOOSMALL = 03003h
|
||||
FRERR_FINDREPLACECODES = 04000h
|
||||
FRERR_BUFFERLENGTHZERO = 04001h
|
||||
CCERR_CHOOSECOLORCODES = 05000h
|
||||
480
toolchain/fasmw17332/INCLUDE/EQUATES/GDI32.INC
Normal file
480
toolchain/fasmw17332/INCLUDE/EQUATES/GDI32.INC
Normal file
@@ -0,0 +1,480 @@
|
||||
|
||||
; GDI32.DLL structures and constants
|
||||
|
||||
struct SIZE
|
||||
cx dd ?
|
||||
cy dd ?
|
||||
ends
|
||||
|
||||
struct BITMAP
|
||||
bmType dd ?
|
||||
bmWidth dd ?
|
||||
bmHeight dd ?
|
||||
bmWidthBytes dd ?
|
||||
bmPlanes dw ?
|
||||
bmBitsPixel dw ?
|
||||
bmBits dd ?
|
||||
ends
|
||||
|
||||
struct BITMAPCOREHEADER
|
||||
bcSize dd ?
|
||||
bcWidth dw ?
|
||||
bcHeight dw ?
|
||||
bcPlanes dw ?
|
||||
bcBitCount dw ?
|
||||
ends
|
||||
|
||||
struct BITMAPINFOHEADER
|
||||
biSize dd ?
|
||||
biWidth dd ?
|
||||
biHeight dd ?
|
||||
biPlanes dw ?
|
||||
biBitCount dw ?
|
||||
biCompression dd ?
|
||||
biSizeImage dd ?
|
||||
biXPelsPerMeter dd ?
|
||||
biYPelsPerMeter dd ?
|
||||
biClrUsed dd ?
|
||||
biClrImportant dd ?
|
||||
ends
|
||||
|
||||
struct BITMAPFILEHEADER
|
||||
bfType dw ?
|
||||
bfSize dd ?
|
||||
bfReserved1 dw ?
|
||||
bfReserved2 dw ?
|
||||
bfOffBits dd ?
|
||||
ends
|
||||
|
||||
struct TEXTMETRIC
|
||||
tmHeight dd ?
|
||||
tmAscent dd ?
|
||||
tmDescent dd ?
|
||||
tmInternalLeading dd ?
|
||||
tmExternalLeading dd ?
|
||||
tmAveCharWidth dd ?
|
||||
tmMaxCharWidth dd ?
|
||||
tmWeight dd ?
|
||||
tmOverhang dd ?
|
||||
tmDigitizedAspectX dd ?
|
||||
tmDigitizedAspectY dd ?
|
||||
tmFirstChar TCHAR ?
|
||||
tmLastChar TCHAR ?
|
||||
tmDefaultChar TCHAR ?
|
||||
tmBreakChar TCHAR ?
|
||||
tmItalic db ?
|
||||
tmUnderlined db ?
|
||||
tmStruckOut db ?
|
||||
tmPitchAndFamily db ?
|
||||
tmCharSet db ?
|
||||
ends
|
||||
|
||||
struct LOGBRUSH
|
||||
lbStyle dd ?
|
||||
lbColor dd ?
|
||||
lbHatch dd ?
|
||||
ends
|
||||
|
||||
struct LOGPEN
|
||||
lopnStyle dd ?
|
||||
lopnWidth POINT
|
||||
lopnColor dd ?
|
||||
ends
|
||||
|
||||
struct EXTLOGPEN
|
||||
elpPenStyle dd ?
|
||||
elpWidth dd ?
|
||||
elpBrushStyle dd ?
|
||||
elpColor dd ?
|
||||
elpHatch dd ?
|
||||
elpNumEntries dd ?
|
||||
elpStyleEntry dd ?
|
||||
ends
|
||||
|
||||
struct LOGFONT
|
||||
lfHeight dd ?
|
||||
lfWidth dd ?
|
||||
lfEscapement dd ?
|
||||
lfOrientation dd ?
|
||||
lfWeight dd ?
|
||||
lfItalic db ?
|
||||
lfUnderline db ?
|
||||
lfStrikeOut db ?
|
||||
lfCharSet db ?
|
||||
lfOutPrecision db ?
|
||||
lfClipPrecision db ?
|
||||
lfQuality db ?
|
||||
lfPitchAndFamily db ?
|
||||
lfFaceName TCHAR 32 dup (?)
|
||||
ends
|
||||
|
||||
struct ENUMLOGFONT
|
||||
elfLogFont LOGFONT
|
||||
elfFullName TCHAR 64 dup (?)
|
||||
elfStyle TCHAR 32 dup (?)
|
||||
ends
|
||||
|
||||
struct ENUMLOGFONTEX
|
||||
elfLogFont LOGFONT
|
||||
elfFullName TCHAR 64 dup (?)
|
||||
elfStyle TCHAR 32 dup (?)
|
||||
elfScript TCHAR 32 dup (?)
|
||||
ends
|
||||
|
||||
struct PIXELFORMATDESCRIPTOR
|
||||
nSize dw ?
|
||||
nVersion dw ?
|
||||
dwFlags dd ?
|
||||
iPixelType db ?
|
||||
cColorBits db ?
|
||||
cRedBits db ?
|
||||
cRedShift db ?
|
||||
cGreenBits db ?
|
||||
cGreenShift db ?
|
||||
cBlueBits db ?
|
||||
cBlueShift db ?
|
||||
cAlphaBits db ?
|
||||
cAlphaShift db ?
|
||||
cAccumBits db ?
|
||||
cAccumRedBits db ?
|
||||
cAccumGreenBits db ?
|
||||
cAccumBlueBits db ?
|
||||
cAccumAlphaBits db ?
|
||||
cDepthBits db ?
|
||||
cStencilBits db ?
|
||||
cAuxBuffers db ?
|
||||
iLayerType db ?
|
||||
bReserved db ?
|
||||
dwLayerMask dd ?
|
||||
dwVisibleMask dd ?
|
||||
dwDamageMask dd ?
|
||||
ends
|
||||
|
||||
struct TRIVERTEX
|
||||
x dd ?
|
||||
y dd ?
|
||||
Red dw ?
|
||||
Green dw ?
|
||||
Blue dw ?
|
||||
Alpha dw ?
|
||||
ends
|
||||
|
||||
; General constants
|
||||
|
||||
GDI_ERROR = 0FFFFFFFFh
|
||||
HGDI_ERROR = 0FFFFFFFFh
|
||||
|
||||
; Binary raster operations
|
||||
|
||||
R2_BLACK = 1
|
||||
R2_NOTMERGEPEN = 2
|
||||
R2_MASKNOTPEN = 3
|
||||
R2_NOTCOPYPEN = 4
|
||||
R2_MASKPENNOT = 5
|
||||
R2_NOT = 6
|
||||
R2_XORPEN = 7
|
||||
R2_NOTMASKPEN = 8
|
||||
R2_MASKPEN = 9
|
||||
R2_NOTXORPEN = 10
|
||||
R2_NOP = 11
|
||||
R2_MERGENOTPEN = 12
|
||||
R2_COPYPEN = 13
|
||||
R2_MERGEPENNOT = 14
|
||||
R2_MERGEPEN = 15
|
||||
R2_WHITE = 16
|
||||
|
||||
; Raster operations
|
||||
|
||||
SRCCOPY = 00CC0020h
|
||||
SRCPAINT = 00EE0086h
|
||||
SRCAND = 008800C6h
|
||||
SRCINVERT = 00660046h
|
||||
SRCERASE = 00440328h
|
||||
NOTSRCCOPY = 00330008h
|
||||
NOTSRCERASE = 001100A6h
|
||||
MERGECOPY = 00C000CAh
|
||||
MERGEPAINT = 00BB0226h
|
||||
PATCOPY = 00F00021h
|
||||
PATPAINT = 00FB0A09h
|
||||
PATINVERT = 005A0049h
|
||||
DSTINVERT = 00550009h
|
||||
BLACKNESS = 00000042h
|
||||
WHITENESS = 00FF0062h
|
||||
|
||||
; Region flags
|
||||
|
||||
ERROR = 0
|
||||
NULLREGION = 1
|
||||
SIMPLEREGION = 2
|
||||
COMPLEXREGION = 3
|
||||
|
||||
; CombineRgn styles
|
||||
|
||||
RGN_AND = 1
|
||||
RGN_OR = 2
|
||||
RGN_XOR = 3
|
||||
RGN_DIFF = 4
|
||||
RGN_COPY = 5
|
||||
|
||||
; StretchBlt modes
|
||||
|
||||
BLACKONWHITE = 1
|
||||
WHITEONBLACK = 2
|
||||
COLORONCOLOR = 3
|
||||
HALFTONE = 4
|
||||
STRETCH_ANDSCANS = BLACKONWHITE
|
||||
STRETCH_ORSCANS = WHITEONBLACK
|
||||
STRETCH_DELETESCANS = COLORONCOLOR
|
||||
STRETCH_HALFTONE = HALFTONE
|
||||
|
||||
; PolyFill modes
|
||||
|
||||
ALTERNATE = 1
|
||||
WINDING = 2
|
||||
|
||||
; Background modes
|
||||
|
||||
TRANSPARENT = 1
|
||||
OPAQUE = 2
|
||||
|
||||
; Point types
|
||||
|
||||
PT_CLOSEFIGURE = 1
|
||||
PT_LINETO = 2
|
||||
PT_BEZIERTO = 4
|
||||
PT_MOVETO = 6
|
||||
|
||||
; Mapping modes
|
||||
|
||||
MM_TEXT = 1
|
||||
MM_LOMETRIC = 2
|
||||
MM_HIMETRIC = 3
|
||||
MM_LOENGLISH = 4
|
||||
MM_HIENGLISH = 5
|
||||
MM_TWIPS = 6
|
||||
MM_ISOTROPIC = 7
|
||||
MM_ANISOTROPIC = 8
|
||||
|
||||
; Coordinate modes
|
||||
|
||||
ABSOLUTE = 1
|
||||
RELATIVE = 2
|
||||
|
||||
; Stock logical objects
|
||||
|
||||
WHITE_BRUSH = 0
|
||||
LTGRAY_BRUSH = 1
|
||||
GRAY_BRUSH = 2
|
||||
DKGRAY_BRUSH = 3
|
||||
BLACK_BRUSH = 4
|
||||
NULL_BRUSH = 5
|
||||
HOLLOW_BRUSH = NULL_BRUSH
|
||||
WHITE_PEN = 6
|
||||
BLACK_PEN = 7
|
||||
NULL_PEN = 8
|
||||
OEM_FIXED_FONT = 10
|
||||
ANSI_FIXED_FONT = 11
|
||||
ANSI_VAR_FONT = 12
|
||||
SYSTEM_FONT = 13
|
||||
DEVICE_DEFAULT_FONT = 14
|
||||
DEFAULT_PALETTE = 15
|
||||
SYSTEM_FIXED_FONT = 16
|
||||
DEFAULT_GUI_FONT = 17
|
||||
|
||||
; Brush styles
|
||||
|
||||
BS_SOLID = 0
|
||||
BS_NULL = 1
|
||||
BS_HOLLOW = BS_NULL
|
||||
BS_HATCHED = 2
|
||||
BS_PATTERN = 3
|
||||
BS_INDEXED = 4
|
||||
BS_DIBPATTERN = 5
|
||||
BS_DIBPATTERNPT = 6
|
||||
BS_PATTERN8X8 = 7
|
||||
BS_DIBPATTERN8X8 = 8
|
||||
BS_MONOPATTERN = 9
|
||||
|
||||
; Hatch styles
|
||||
|
||||
HS_HORIZONTAL = 0
|
||||
HS_VERTICAL = 1
|
||||
HS_FDIAGONAL = 2
|
||||
HS_BDIAGONAL = 3
|
||||
HS_CROSS = 4
|
||||
HS_DIAGCROSS = 5
|
||||
|
||||
; Pen styles
|
||||
|
||||
PS_SOLID = 0
|
||||
PS_DASH = 1
|
||||
PS_DOT = 2
|
||||
PS_DASHDOT = 3
|
||||
PS_DASHDOTDOT = 4
|
||||
PS_NULL = 5
|
||||
PS_INSIDEFRAME = 6
|
||||
PS_USERSTYLE = 7
|
||||
PS_ALTERNATE = 8
|
||||
PS_ENDCAP_ROUND = 0
|
||||
PS_ENDCAP_SQUARE = 100h
|
||||
PS_ENDCAP_FLAT = 200h
|
||||
PS_JOIN_ROUND = 0
|
||||
PS_JOIN_BEVEL = 1000h
|
||||
PS_JOIN_MITER = 2000h
|
||||
PS_COSMETIC = 0
|
||||
PS_GEOMETRIC = 010000h
|
||||
|
||||
; Arc directions
|
||||
|
||||
AD_COUNTERCLOCKWISE = 1
|
||||
AD_CLOCKWISE = 2
|
||||
|
||||
; Text alignment options
|
||||
|
||||
TA_NOUPDATECP = 0
|
||||
TA_UPDATECP = 1
|
||||
TA_LEFT = 0
|
||||
TA_RIGHT = 2
|
||||
TA_CENTER = 6
|
||||
TA_TOP = 0
|
||||
TA_BOTTOM = 8
|
||||
TA_BASELINE = 24
|
||||
TA_RTLREADING = 100h
|
||||
VTA_BASELINE = TA_BASELINE
|
||||
VTA_LEFT = TA_BOTTOM
|
||||
VTA_RIGHT = TA_TOP
|
||||
VTA_CENTER = TA_CENTER
|
||||
VTA_BOTTOM = TA_RIGHT
|
||||
VTA_TOP = TA_LEFT
|
||||
|
||||
; ExtTextOut options
|
||||
|
||||
ETO_OPAQUE = 0002h
|
||||
ETO_CLIPPED = 0004h
|
||||
ETO_GLYPH_INDEX = 0010h
|
||||
ETO_RTLREADING = 0080h
|
||||
ETO_IGNORELANGUAGE = 1000h
|
||||
|
||||
; Bitmap compression types
|
||||
|
||||
BI_RGB = 0
|
||||
BI_RLE8 = 1
|
||||
BI_RLE4 = 2
|
||||
BI_BITFIELDS = 3
|
||||
|
||||
; tmPitchAndFamily flags
|
||||
|
||||
TMPF_FIXED_PITCH = 1
|
||||
TMPF_VECTOR = 2
|
||||
TMPF_TRUETYPE = 4
|
||||
TMPF_DEVICE = 8
|
||||
|
||||
; Font output precision values
|
||||
|
||||
OUT_DEFAULT_PRECIS = 0
|
||||
OUT_STRING_PRECIS = 1
|
||||
OUT_CHARACTER_PRECIS = 2
|
||||
OUT_STROKE_PRECIS = 3
|
||||
OUT_TT_PRECIS = 4
|
||||
OUT_DEVICE_PRECIS = 5
|
||||
OUT_RASTER_PRECIS = 6
|
||||
OUT_TT_ONLY_PRECIS = 7
|
||||
OUT_OUTLINE_PRECIS = 8
|
||||
OUT_SCREEN_OUTLINE_PRECIS = 9
|
||||
|
||||
; Font clipping precision values
|
||||
|
||||
CLIP_DEFAULT_PRECIS = 0
|
||||
CLIP_CHARACTER_PRECIS = 1
|
||||
CLIP_STROKE_PRECIS = 2
|
||||
CLIP_LH_ANGLES = 10h
|
||||
CLIP_TT_ALWAYS = 20h
|
||||
CLIP_EMBEDDED = 80h
|
||||
|
||||
; Font output quality values
|
||||
|
||||
DEFAULT_QUALITY = 0
|
||||
DRAFT_QUALITY = 1
|
||||
PROOF_QUALITY = 2
|
||||
NONANTIALIASED_QUALITY = 3
|
||||
ANTIALIASED_QUALITY = 4
|
||||
|
||||
; Font pitch values
|
||||
|
||||
DEFAULT_PITCH = 0
|
||||
FIXED_PITCH = 1
|
||||
VARIABLE_PITCH = 2
|
||||
MONO_FONT = 8
|
||||
|
||||
; Font families
|
||||
|
||||
FF_DONTCARE = 00h
|
||||
FF_ROMAN = 10h
|
||||
FF_SWISS = 20h
|
||||
FF_MODERN = 30h
|
||||
FF_SCRIPT = 40h
|
||||
FF_DECORATIVE = 50h
|
||||
|
||||
; Font weights
|
||||
|
||||
FW_DONTCARE = 0
|
||||
FW_THIN = 100
|
||||
FW_EXTRALIGHT = 200
|
||||
FW_LIGHT = 300
|
||||
FW_NORMAL = 400
|
||||
FW_MEDIUM = 500
|
||||
FW_SEMIBOLD = 600
|
||||
FW_BOLD = 700
|
||||
FW_EXTRABOLD = 800
|
||||
FW_HEAVY = 900
|
||||
FW_ULTRALIGHT = FW_EXTRALIGHT
|
||||
FW_REGULAR = FW_NORMAL
|
||||
FW_DEMIBOLD = FW_SEMIBOLD
|
||||
FW_ULTRABOLD = FW_EXTRABOLD
|
||||
FW_BLACK = FW_HEAVY
|
||||
|
||||
; Character set values
|
||||
|
||||
ANSI_CHARSET = 0
|
||||
DEFAULT_CHARSET = 1
|
||||
SYMBOL_CHARSET = 2
|
||||
SHIFTJIS_CHARSET = 128
|
||||
HANGEUL_CHARSET = 129
|
||||
GB2312_CHARSET = 134
|
||||
CHINESEBIG5_CHARSET = 136
|
||||
OEM_CHARSET = 255
|
||||
JOHAB_CHARSET = 130
|
||||
HEBREW_CHARSET = 177
|
||||
ARABIC_CHARSET = 178
|
||||
GREEK_CHARSET = 161
|
||||
TURKISH_CHARSET = 162
|
||||
VIETNAMESE_CHARSET = 163
|
||||
THAI_CHARSET = 222
|
||||
EASTEUROPE_CHARSET = 238
|
||||
RUSSIAN_CHARSET = 204
|
||||
MAC_CHARSET = 77
|
||||
BALTIC_CHARSET = 186
|
||||
|
||||
; Pixel format constants
|
||||
|
||||
PFD_TYPE_RGBA = 0
|
||||
PFD_TYPE_COLORINDEX = 1
|
||||
PFD_MAIN_PLANE = 0
|
||||
PFD_OVERLAY_PLANE = 1
|
||||
PFD_UNDERLAY_PLANE = -1
|
||||
PFD_DOUBLEBUFFER = 1
|
||||
PFD_STEREO = 2
|
||||
PFD_DRAW_TO_WINDOW = 4
|
||||
PFD_DRAW_TO_BITMAP = 8
|
||||
PFD_SUPPORT_GDI = 10h
|
||||
PFD_SUPPORT_OPENGL = 20h
|
||||
PFD_GENERIC_FORMAT = 40h
|
||||
PFD_NEED_PALETTE = 80h
|
||||
PFD_NEED_SYSTEM_PALETTE = 100h
|
||||
PFD_SWAP_EXCHANGE = 200h
|
||||
PFD_SWAP_COPY = 400h
|
||||
PFD_SWAP_LAYER_BUFFERS = 800h
|
||||
PFD_GENERIC_ACCELERATED = 1000h
|
||||
PFD_DEPTH_DONTCARE = 20000000h
|
||||
PFD_DOUBLEBUFFER_DONTCARE = 40000000h
|
||||
PFD_STEREO_DONTCARE = 80000000h
|
||||
480
toolchain/fasmw17332/INCLUDE/EQUATES/GDI64.INC
Normal file
480
toolchain/fasmw17332/INCLUDE/EQUATES/GDI64.INC
Normal file
@@ -0,0 +1,480 @@
|
||||
|
||||
; GDI32.DLL structures and constants
|
||||
|
||||
struct SIZE
|
||||
cx dd ?
|
||||
cy dd ?
|
||||
ends
|
||||
|
||||
struct BITMAP
|
||||
bmType dd ?
|
||||
bmWidth dd ?
|
||||
bmHeight dd ?
|
||||
bmWidthBytes dd ?
|
||||
bmPlanes dw ?
|
||||
bmBitsPixel dw ?,?,?
|
||||
bmBits dq ?
|
||||
ends
|
||||
|
||||
struct BITMAPCOREHEADER
|
||||
bcSize dd ?
|
||||
bcWidth dw ?
|
||||
bcHeight dw ?
|
||||
bcPlanes dw ?
|
||||
bcBitCount dw ?
|
||||
ends
|
||||
|
||||
struct BITMAPINFOHEADER
|
||||
biSize dd ?
|
||||
biWidth dd ?
|
||||
biHeight dd ?
|
||||
biPlanes dw ?
|
||||
biBitCount dw ?
|
||||
biCompression dd ?
|
||||
biSizeImage dd ?
|
||||
biXPelsPerMeter dd ?
|
||||
biYPelsPerMeter dd ?
|
||||
biClrUsed dd ?
|
||||
biClrImportant dd ?
|
||||
ends
|
||||
|
||||
struct BITMAPFILEHEADER
|
||||
bfType dw ?
|
||||
bfSize dd ?
|
||||
bfReserved1 dw ?
|
||||
bfReserved2 dw ?
|
||||
bfOffBits dd ?
|
||||
ends
|
||||
|
||||
struct TEXTMETRIC
|
||||
tmHeight dd ?
|
||||
tmAscent dd ?
|
||||
tmDescent dd ?
|
||||
tmInternalLeading dd ?
|
||||
tmExternalLeading dd ?
|
||||
tmAveCharWidth dd ?
|
||||
tmMaxCharWidth dd ?
|
||||
tmWeight dd ?
|
||||
tmOverhang dd ?
|
||||
tmDigitizedAspectX dd ?
|
||||
tmDigitizedAspectY dd ?
|
||||
tmFirstChar TCHAR ?
|
||||
tmLastChar TCHAR ?
|
||||
tmDefaultChar TCHAR ?
|
||||
tmBreakChar TCHAR ?
|
||||
tmItalic db ?
|
||||
tmUnderlined db ?
|
||||
tmStruckOut db ?
|
||||
tmPitchAndFamily db ?
|
||||
tmCharSet db ?
|
||||
ends
|
||||
|
||||
struct LOGBRUSH
|
||||
lbStyle dd ?
|
||||
lbColor dd ?
|
||||
lbHatch dd ?
|
||||
ends
|
||||
|
||||
struct LOGPEN
|
||||
lopnStyle dd ?
|
||||
lopnWidth POINT
|
||||
lopnColor dd ?
|
||||
ends
|
||||
|
||||
struct EXTLOGPEN
|
||||
elpPenStyle dd ?
|
||||
elpWidth dd ?
|
||||
elpBrushStyle dd ?
|
||||
elpColor dd ?
|
||||
elpHatch dd ?
|
||||
elpNumEntries dd ?
|
||||
elpStyleEntry dd ?
|
||||
ends
|
||||
|
||||
struct LOGFONT
|
||||
lfHeight dd ?
|
||||
lfWidth dd ?
|
||||
lfEscapement dd ?
|
||||
lfOrientation dd ?
|
||||
lfWeight dd ?
|
||||
lfItalic db ?
|
||||
lfUnderline db ?
|
||||
lfStrikeOut db ?
|
||||
lfCharSet db ?
|
||||
lfOutPrecision db ?
|
||||
lfClipPrecision db ?
|
||||
lfQuality db ?
|
||||
lfPitchAndFamily db ?
|
||||
lfFaceName TCHAR 32 dup (?)
|
||||
ends
|
||||
|
||||
struct ENUMLOGFONT
|
||||
elfLogFont LOGFONT
|
||||
elfFullName TCHAR 64 dup (?)
|
||||
elfStyle TCHAR 32 dup (?)
|
||||
ends
|
||||
|
||||
struct ENUMLOGFONTEX
|
||||
elfLogFont LOGFONT
|
||||
elfFullName TCHAR 64 dup (?)
|
||||
elfStyle TCHAR 32 dup (?)
|
||||
elfScript TCHAR 32 dup (?)
|
||||
ends
|
||||
|
||||
struct PIXELFORMATDESCRIPTOR
|
||||
nSize dw ?
|
||||
nVersion dw ?
|
||||
dwFlags dd ?
|
||||
iPixelType db ?
|
||||
cColorBits db ?
|
||||
cRedBits db ?
|
||||
cRedShift db ?
|
||||
cGreenBits db ?
|
||||
cGreenShift db ?
|
||||
cBlueBits db ?
|
||||
cBlueShift db ?
|
||||
cAlphaBits db ?
|
||||
cAlphaShift db ?
|
||||
cAccumBits db ?
|
||||
cAccumRedBits db ?
|
||||
cAccumGreenBits db ?
|
||||
cAccumBlueBits db ?
|
||||
cAccumAlphaBits db ?
|
||||
cDepthBits db ?
|
||||
cStencilBits db ?
|
||||
cAuxBuffers db ?
|
||||
iLayerType db ?
|
||||
bReserved db ?
|
||||
dwLayerMask dd ?
|
||||
dwVisibleMask dd ?
|
||||
dwDamageMask dd ?
|
||||
ends
|
||||
|
||||
struct TRIVERTEX
|
||||
x dd ?
|
||||
y dd ?
|
||||
Red dw ?
|
||||
Green dw ?
|
||||
Blue dw ?
|
||||
Alpha dw ?
|
||||
ends
|
||||
|
||||
; General constants
|
||||
|
||||
GDI_ERROR = 0FFFFFFFFh
|
||||
HGDI_ERROR = 0FFFFFFFFh
|
||||
|
||||
; Binary raster operations
|
||||
|
||||
R2_BLACK = 1
|
||||
R2_NOTMERGEPEN = 2
|
||||
R2_MASKNOTPEN = 3
|
||||
R2_NOTCOPYPEN = 4
|
||||
R2_MASKPENNOT = 5
|
||||
R2_NOT = 6
|
||||
R2_XORPEN = 7
|
||||
R2_NOTMASKPEN = 8
|
||||
R2_MASKPEN = 9
|
||||
R2_NOTXORPEN = 10
|
||||
R2_NOP = 11
|
||||
R2_MERGENOTPEN = 12
|
||||
R2_COPYPEN = 13
|
||||
R2_MERGEPENNOT = 14
|
||||
R2_MERGEPEN = 15
|
||||
R2_WHITE = 16
|
||||
|
||||
; Raster operations
|
||||
|
||||
SRCCOPY = 00CC0020h
|
||||
SRCPAINT = 00EE0086h
|
||||
SRCAND = 008800C6h
|
||||
SRCINVERT = 00660046h
|
||||
SRCERASE = 00440328h
|
||||
NOTSRCCOPY = 00330008h
|
||||
NOTSRCERASE = 001100A6h
|
||||
MERGECOPY = 00C000CAh
|
||||
MERGEPAINT = 00BB0226h
|
||||
PATCOPY = 00F00021h
|
||||
PATPAINT = 00FB0A09h
|
||||
PATINVERT = 005A0049h
|
||||
DSTINVERT = 00550009h
|
||||
BLACKNESS = 00000042h
|
||||
WHITENESS = 00FF0062h
|
||||
|
||||
; Region flags
|
||||
|
||||
ERROR = 0
|
||||
NULLREGION = 1
|
||||
SIMPLEREGION = 2
|
||||
COMPLEXREGION = 3
|
||||
|
||||
; CombineRgn styles
|
||||
|
||||
RGN_AND = 1
|
||||
RGN_OR = 2
|
||||
RGN_XOR = 3
|
||||
RGN_DIFF = 4
|
||||
RGN_COPY = 5
|
||||
|
||||
; StretchBlt modes
|
||||
|
||||
BLACKONWHITE = 1
|
||||
WHITEONBLACK = 2
|
||||
COLORONCOLOR = 3
|
||||
HALFTONE = 4
|
||||
STRETCH_ANDSCANS = BLACKONWHITE
|
||||
STRETCH_ORSCANS = WHITEONBLACK
|
||||
STRETCH_DELETESCANS = COLORONCOLOR
|
||||
STRETCH_HALFTONE = HALFTONE
|
||||
|
||||
; PolyFill modes
|
||||
|
||||
ALTERNATE = 1
|
||||
WINDING = 2
|
||||
|
||||
; Background modes
|
||||
|
||||
TRANSPARENT = 1
|
||||
OPAQUE = 2
|
||||
|
||||
; Point types
|
||||
|
||||
PT_CLOSEFIGURE = 1
|
||||
PT_LINETO = 2
|
||||
PT_BEZIERTO = 4
|
||||
PT_MOVETO = 6
|
||||
|
||||
; Mapping modes
|
||||
|
||||
MM_TEXT = 1
|
||||
MM_LOMETRIC = 2
|
||||
MM_HIMETRIC = 3
|
||||
MM_LOENGLISH = 4
|
||||
MM_HIENGLISH = 5
|
||||
MM_TWIPS = 6
|
||||
MM_ISOTROPIC = 7
|
||||
MM_ANISOTROPIC = 8
|
||||
|
||||
; Coordinate modes
|
||||
|
||||
ABSOLUTE = 1
|
||||
RELATIVE = 2
|
||||
|
||||
; Stock logical objects
|
||||
|
||||
WHITE_BRUSH = 0
|
||||
LTGRAY_BRUSH = 1
|
||||
GRAY_BRUSH = 2
|
||||
DKGRAY_BRUSH = 3
|
||||
BLACK_BRUSH = 4
|
||||
NULL_BRUSH = 5
|
||||
HOLLOW_BRUSH = NULL_BRUSH
|
||||
WHITE_PEN = 6
|
||||
BLACK_PEN = 7
|
||||
NULL_PEN = 8
|
||||
OEM_FIXED_FONT = 10
|
||||
ANSI_FIXED_FONT = 11
|
||||
ANSI_VAR_FONT = 12
|
||||
SYSTEM_FONT = 13
|
||||
DEVICE_DEFAULT_FONT = 14
|
||||
DEFAULT_PALETTE = 15
|
||||
SYSTEM_FIXED_FONT = 16
|
||||
DEFAULT_GUI_FONT = 17
|
||||
|
||||
; Brush styles
|
||||
|
||||
BS_SOLID = 0
|
||||
BS_NULL = 1
|
||||
BS_HOLLOW = BS_NULL
|
||||
BS_HATCHED = 2
|
||||
BS_PATTERN = 3
|
||||
BS_INDEXED = 4
|
||||
BS_DIBPATTERN = 5
|
||||
BS_DIBPATTERNPT = 6
|
||||
BS_PATTERN8X8 = 7
|
||||
BS_DIBPATTERN8X8 = 8
|
||||
BS_MONOPATTERN = 9
|
||||
|
||||
; Hatch styles
|
||||
|
||||
HS_HORIZONTAL = 0
|
||||
HS_VERTICAL = 1
|
||||
HS_FDIAGONAL = 2
|
||||
HS_BDIAGONAL = 3
|
||||
HS_CROSS = 4
|
||||
HS_DIAGCROSS = 5
|
||||
|
||||
; Pen styles
|
||||
|
||||
PS_SOLID = 0
|
||||
PS_DASH = 1
|
||||
PS_DOT = 2
|
||||
PS_DASHDOT = 3
|
||||
PS_DASHDOTDOT = 4
|
||||
PS_NULL = 5
|
||||
PS_INSIDEFRAME = 6
|
||||
PS_USERSTYLE = 7
|
||||
PS_ALTERNATE = 8
|
||||
PS_ENDCAP_ROUND = 0
|
||||
PS_ENDCAP_SQUARE = 100h
|
||||
PS_ENDCAP_FLAT = 200h
|
||||
PS_JOIN_ROUND = 0
|
||||
PS_JOIN_BEVEL = 1000h
|
||||
PS_JOIN_MITER = 2000h
|
||||
PS_COSMETIC = 0
|
||||
PS_GEOMETRIC = 010000h
|
||||
|
||||
; Arc directions
|
||||
|
||||
AD_COUNTERCLOCKWISE = 1
|
||||
AD_CLOCKWISE = 2
|
||||
|
||||
; Text alignment options
|
||||
|
||||
TA_NOUPDATECP = 0
|
||||
TA_UPDATECP = 1
|
||||
TA_LEFT = 0
|
||||
TA_RIGHT = 2
|
||||
TA_CENTER = 6
|
||||
TA_TOP = 0
|
||||
TA_BOTTOM = 8
|
||||
TA_BASELINE = 24
|
||||
TA_RTLREADING = 100h
|
||||
VTA_BASELINE = TA_BASELINE
|
||||
VTA_LEFT = TA_BOTTOM
|
||||
VTA_RIGHT = TA_TOP
|
||||
VTA_CENTER = TA_CENTER
|
||||
VTA_BOTTOM = TA_RIGHT
|
||||
VTA_TOP = TA_LEFT
|
||||
|
||||
; ExtTextOut options
|
||||
|
||||
ETO_OPAQUE = 0002h
|
||||
ETO_CLIPPED = 0004h
|
||||
ETO_GLYPH_INDEX = 0010h
|
||||
ETO_RTLREADING = 0080h
|
||||
ETO_IGNORELANGUAGE = 1000h
|
||||
|
||||
; Bitmap compression types
|
||||
|
||||
BI_RGB = 0
|
||||
BI_RLE8 = 1
|
||||
BI_RLE4 = 2
|
||||
BI_BITFIELDS = 3
|
||||
|
||||
; tmPitchAndFamily flags
|
||||
|
||||
TMPF_FIXED_PITCH = 1
|
||||
TMPF_VECTOR = 2
|
||||
TMPF_TRUETYPE = 4
|
||||
TMPF_DEVICE = 8
|
||||
|
||||
; Font output precision values
|
||||
|
||||
OUT_DEFAULT_PRECIS = 0
|
||||
OUT_STRING_PRECIS = 1
|
||||
OUT_CHARACTER_PRECIS = 2
|
||||
OUT_STROKE_PRECIS = 3
|
||||
OUT_TT_PRECIS = 4
|
||||
OUT_DEVICE_PRECIS = 5
|
||||
OUT_RASTER_PRECIS = 6
|
||||
OUT_TT_ONLY_PRECIS = 7
|
||||
OUT_OUTLINE_PRECIS = 8
|
||||
OUT_SCREEN_OUTLINE_PRECIS = 9
|
||||
|
||||
; Font clipping precision values
|
||||
|
||||
CLIP_DEFAULT_PRECIS = 0
|
||||
CLIP_CHARACTER_PRECIS = 1
|
||||
CLIP_STROKE_PRECIS = 2
|
||||
CLIP_LH_ANGLES = 10h
|
||||
CLIP_TT_ALWAYS = 20h
|
||||
CLIP_EMBEDDED = 80h
|
||||
|
||||
; Font output quality values
|
||||
|
||||
DEFAULT_QUALITY = 0
|
||||
DRAFT_QUALITY = 1
|
||||
PROOF_QUALITY = 2
|
||||
NONANTIALIASED_QUALITY = 3
|
||||
ANTIALIASED_QUALITY = 4
|
||||
|
||||
; Font pitch values
|
||||
|
||||
DEFAULT_PITCH = 0
|
||||
FIXED_PITCH = 1
|
||||
VARIABLE_PITCH = 2
|
||||
MONO_FONT = 8
|
||||
|
||||
; Font families
|
||||
|
||||
FF_DONTCARE = 00h
|
||||
FF_ROMAN = 10h
|
||||
FF_SWISS = 20h
|
||||
FF_MODERN = 30h
|
||||
FF_SCRIPT = 40h
|
||||
FF_DECORATIVE = 50h
|
||||
|
||||
; Font weights
|
||||
|
||||
FW_DONTCARE = 0
|
||||
FW_THIN = 100
|
||||
FW_EXTRALIGHT = 200
|
||||
FW_LIGHT = 300
|
||||
FW_NORMAL = 400
|
||||
FW_MEDIUM = 500
|
||||
FW_SEMIBOLD = 600
|
||||
FW_BOLD = 700
|
||||
FW_EXTRABOLD = 800
|
||||
FW_HEAVY = 900
|
||||
FW_ULTRALIGHT = FW_EXTRALIGHT
|
||||
FW_REGULAR = FW_NORMAL
|
||||
FW_DEMIBOLD = FW_SEMIBOLD
|
||||
FW_ULTRABOLD = FW_EXTRABOLD
|
||||
FW_BLACK = FW_HEAVY
|
||||
|
||||
; Character set values
|
||||
|
||||
ANSI_CHARSET = 0
|
||||
DEFAULT_CHARSET = 1
|
||||
SYMBOL_CHARSET = 2
|
||||
SHIFTJIS_CHARSET = 128
|
||||
HANGEUL_CHARSET = 129
|
||||
GB2312_CHARSET = 134
|
||||
CHINESEBIG5_CHARSET = 136
|
||||
OEM_CHARSET = 255
|
||||
JOHAB_CHARSET = 130
|
||||
HEBREW_CHARSET = 177
|
||||
ARABIC_CHARSET = 178
|
||||
GREEK_CHARSET = 161
|
||||
TURKISH_CHARSET = 162
|
||||
VIETNAMESE_CHARSET = 163
|
||||
THAI_CHARSET = 222
|
||||
EASTEUROPE_CHARSET = 238
|
||||
RUSSIAN_CHARSET = 204
|
||||
MAC_CHARSET = 77
|
||||
BALTIC_CHARSET = 186
|
||||
|
||||
; Pixel format constants
|
||||
|
||||
PFD_TYPE_RGBA = 0
|
||||
PFD_TYPE_COLORINDEX = 1
|
||||
PFD_MAIN_PLANE = 0
|
||||
PFD_OVERLAY_PLANE = 1
|
||||
PFD_UNDERLAY_PLANE = -1
|
||||
PFD_DOUBLEBUFFER = 1
|
||||
PFD_STEREO = 2
|
||||
PFD_DRAW_TO_WINDOW = 4
|
||||
PFD_DRAW_TO_BITMAP = 8
|
||||
PFD_SUPPORT_GDI = 10h
|
||||
PFD_SUPPORT_OPENGL = 20h
|
||||
PFD_GENERIC_FORMAT = 40h
|
||||
PFD_NEED_PALETTE = 80h
|
||||
PFD_NEED_SYSTEM_PALETTE = 100h
|
||||
PFD_SWAP_EXCHANGE = 200h
|
||||
PFD_SWAP_COPY = 400h
|
||||
PFD_SWAP_LAYER_BUFFERS = 800h
|
||||
PFD_GENERIC_ACCELERATED = 1000h
|
||||
PFD_DEPTH_DONTCARE = 20000000h
|
||||
PFD_DOUBLEBUFFER_DONTCARE = 40000000h
|
||||
PFD_STEREO_DONTCARE = 80000000h
|
||||
812
toolchain/fasmw17332/INCLUDE/EQUATES/KERNEL32.INC
Normal file
812
toolchain/fasmw17332/INCLUDE/EQUATES/KERNEL32.INC
Normal file
@@ -0,0 +1,812 @@
|
||||
|
||||
; KERNEL32.DLL structures and constants
|
||||
|
||||
struct SYSTEM_INFO
|
||||
wProcessorArchitecture dw ?
|
||||
wReserved dw ?
|
||||
dwPageSize dd ?
|
||||
lpMinimumApplicationAddress dd ?
|
||||
lpMaximumApplicationAddress dd ?
|
||||
dwActiveProcessorMask dd ?
|
||||
dwNumberOfProcessors dd ?
|
||||
dwProcessorType dd ?
|
||||
dwAllocationGranularity dd ?
|
||||
wProcessorLevel dw ?
|
||||
wProcessorRevision dw ?
|
||||
ends
|
||||
|
||||
struct OSVERSIONINFO
|
||||
dwOSVersionInfoSize dd ?
|
||||
dwMajorVersion dd ?
|
||||
dwMinorVersion dd ?
|
||||
dwBuildNumber dd ?
|
||||
dwPlatformId dd ?
|
||||
szCSDVersion TCHAR 128 dup (?)
|
||||
ends
|
||||
|
||||
struct OSVERSIONINFOA
|
||||
dwOSVersionInfoSize dd ?
|
||||
dwMajorVersion dd ?
|
||||
dwMinorVersion dd ?
|
||||
dwBuildNumber dd ?
|
||||
dwPlatformId dd ?
|
||||
szCSDVersion db 128 dup (?)
|
||||
ends
|
||||
|
||||
struct OSVERSIONINFOW
|
||||
dwOSVersionInfoSize dd ?
|
||||
dwMajorVersion dd ?
|
||||
dwMinorVersion dd ?
|
||||
dwBuildNumber dd ?
|
||||
dwPlatformId dd ?
|
||||
szCSDVersion du 128 dup (?)
|
||||
ends
|
||||
|
||||
struct MEMORYSTATUS
|
||||
dwLength dd ?
|
||||
dwMemoryLoad dd ?
|
||||
dwTotalPhys dd ?
|
||||
dwAvailPhys dd ?
|
||||
dwTotalPageFile dd ?
|
||||
dwAvailPageFile dd ?
|
||||
dwTotalVirtual dd ?
|
||||
dwAvailVirtual dd ?
|
||||
ends
|
||||
|
||||
struct STARTUPINFO
|
||||
cb dd ?
|
||||
lpReserved dd ?
|
||||
lpDesktop dd ?
|
||||
lpTitle dd ?
|
||||
dwX dd ?
|
||||
dwY dd ?
|
||||
dwXSize dd ?
|
||||
dwYSize dd ?
|
||||
dwXCountChars dd ?
|
||||
dwYCountChars dd ?
|
||||
dwFillAttribute dd ?
|
||||
dwFlags dd ?
|
||||
wShowWindow dw ?
|
||||
cbReserved2 dw ?
|
||||
lpReserved2 dd ?
|
||||
hStdInput dd ?
|
||||
hStdOutput dd ?
|
||||
hStdError dd ?
|
||||
ends
|
||||
|
||||
struct PROCESS_INFORMATION
|
||||
hProcess dd ?
|
||||
hThread dd ?
|
||||
dwProcessId dd ?
|
||||
dwThreadId dd ?
|
||||
ends
|
||||
|
||||
struct FILETIME
|
||||
dwLowDateTime dd ?
|
||||
dwHighDateTime dd ?
|
||||
ends
|
||||
|
||||
struct SYSTEMTIME
|
||||
wYear dw ?
|
||||
wMonth dw ?
|
||||
wDayOfWeek dw ?
|
||||
wDay dw ?
|
||||
wHour dw ?
|
||||
wMinute dw ?
|
||||
wSecond dw ?
|
||||
wMilliseconds dw ?
|
||||
ends
|
||||
|
||||
struct BY_HANDLE_FILE_INFORMATION
|
||||
dwFileAttributes dd ?
|
||||
ftCreationTime FILETIME
|
||||
ftLastAccessTime FILETIME
|
||||
ftLastWriteTime FILETIME
|
||||
dwVolumeSerialNumber dd ?
|
||||
nFileSizeHigh dd ?
|
||||
nFileSizeLow dd ?
|
||||
nNumberOfLinks dd ?
|
||||
nFileIndexHigh dd ?
|
||||
nFileIndexLow dd ?
|
||||
ends
|
||||
|
||||
struct WIN32_FIND_DATA
|
||||
dwFileAttributes dd ?
|
||||
ftCreationTime FILETIME
|
||||
ftLastAccessTime FILETIME
|
||||
ftLastWriteTime FILETIME
|
||||
nFileSizeHigh dd ?
|
||||
nFileSizeLow dd ?
|
||||
dwReserved0 dd ?
|
||||
dwReserved1 dd ?
|
||||
cFileName TCHAR MAX_PATH dup (?)
|
||||
cAlternateFileName TCHAR 14 dup (?)
|
||||
ends
|
||||
|
||||
struct WIN32_FIND_DATAA
|
||||
dwFileAttributes dd ?
|
||||
ftCreationTime FILETIME
|
||||
ftLastAccessTime FILETIME
|
||||
ftLastWriteTime FILETIME
|
||||
nFileSizeHigh dd ?
|
||||
nFileSizeLow dd ?
|
||||
dwReserved0 dd ?
|
||||
dwReserved1 dd ?
|
||||
cFileName db MAX_PATH dup (?)
|
||||
cAlternateFileName db 14 dup (?)
|
||||
ends
|
||||
|
||||
struct WIN32_FIND_DATAW
|
||||
dwFileAttributes dd ?
|
||||
ftCreationTime FILETIME
|
||||
ftLastAccessTime FILETIME
|
||||
ftLastWriteTime FILETIME
|
||||
nFileSizeHigh dd ?
|
||||
nFileSizeLow dd ?
|
||||
dwReserved0 dd ?
|
||||
dwReserved1 dd ?
|
||||
cFileName du MAX_PATH dup (?)
|
||||
cAlternateFileName du 14 dup (?)
|
||||
ends
|
||||
|
||||
; General constants
|
||||
|
||||
NULL = 0
|
||||
TRUE = 1
|
||||
FALSE = 0
|
||||
|
||||
; Maximum path length in characters
|
||||
|
||||
MAX_PATH = 260
|
||||
|
||||
; Access rights
|
||||
|
||||
DELETE_RIGHT = 00010000h
|
||||
READ_CONTROL = 00020000h
|
||||
WRITE_DAC = 00040000h
|
||||
WRITE_OWNER = 00080000h
|
||||
SYNCHRONIZE = 00100000h
|
||||
STANDARD_RIGHTS_READ = READ_CONTROL
|
||||
STANDARD_RIGHTS_WRITE = READ_CONTROL
|
||||
STANDARD_RIGHTS_EXECUTE = READ_CONTROL
|
||||
STANDARD_RIGHTS_REQUIRED = 000F0000h
|
||||
STANDARD_RIGHTS_ALL = 001F0000h
|
||||
SPECIFIC_RIGHTS_ALL = 0000FFFFh
|
||||
ACCESS_SYSTEM_SECURITY = 01000000h
|
||||
MAXIMUM_ALLOWED = 02000000h
|
||||
GENERIC_READ = 80000000h
|
||||
GENERIC_WRITE = 40000000h
|
||||
GENERIC_EXECUTE = 20000000h
|
||||
GENERIC_ALL = 10000000h
|
||||
PROCESS_TERMINATE = 00000001h
|
||||
PROCESS_CREATE_THREAD = 00000002h
|
||||
PROCESS_VM_OPERATION = 00000008h
|
||||
PROCESS_VM_READ = 00000010h
|
||||
PROCESS_VM_WRITE = 00000020h
|
||||
PROCESS_DUP_HANDLE = 00000040h
|
||||
PROCESS_CREATE_PROCESS = 00000080h
|
||||
PROCESS_SET_QUOTA = 00000100h
|
||||
PROCESS_SET_INFORMATION = 00000200h
|
||||
PROCESS_QUERY_INFORMATION = 00000400h
|
||||
PROCESS_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED or SYNCHRONIZE or 0FFFh
|
||||
FILE_SHARE_READ = 00000001h
|
||||
FILE_SHARE_WRITE = 00000002h
|
||||
FILE_SHARE_DELETE = 00000004h
|
||||
|
||||
; CreateFile actions
|
||||
|
||||
CREATE_NEW = 1
|
||||
CREATE_ALWAYS = 2
|
||||
OPEN_EXISTING = 3
|
||||
OPEN_ALWAYS = 4
|
||||
TRUNCATE_EXISTING = 5
|
||||
|
||||
; OpenFile modes
|
||||
|
||||
OF_READ = 0000h
|
||||
OF_WRITE = 0001h
|
||||
OF_READWRITE = 0002h
|
||||
OF_SHARE_COMPAT = 0000h
|
||||
OF_SHARE_EXCLUSIVE = 0010h
|
||||
OF_SHARE_DENY_WRITE = 0020h
|
||||
OF_SHARE_DENY_READ = 0030h
|
||||
OF_SHARE_DENY_NONE = 0040h
|
||||
OF_PARSE = 0100h
|
||||
OF_DELETE = 0200h
|
||||
OF_VERIFY = 0400h
|
||||
OF_CANCEL = 0800h
|
||||
OF_CREATE = 1000h
|
||||
OF_PROMPT = 2000h
|
||||
OF_EXIST = 4000h
|
||||
OF_REOPEN = 8000h
|
||||
|
||||
; SetFilePointer methods
|
||||
|
||||
FILE_BEGIN = 0
|
||||
FILE_CURRENT = 1
|
||||
FILE_END = 2
|
||||
|
||||
; File attributes
|
||||
|
||||
FILE_ATTRIBUTE_READONLY = 001h
|
||||
FILE_ATTRIBUTE_HIDDEN = 002h
|
||||
FILE_ATTRIBUTE_SYSTEM = 004h
|
||||
FILE_ATTRIBUTE_DIRECTORY = 010h
|
||||
FILE_ATTRIBUTE_ARCHIVE = 020h
|
||||
FILE_ATTRIBUTE_NORMAL = 080h
|
||||
FILE_ATTRIBUTE_TEMPORARY = 100h
|
||||
FILE_ATTRIBUTE_COMPRESSED = 800h
|
||||
|
||||
; File flags
|
||||
|
||||
FILE_FLAG_WRITE_THROUGH = 80000000h
|
||||
FILE_FLAG_OVERLAPPED = 40000000h
|
||||
FILE_FLAG_NO_BUFFERING = 20000000h
|
||||
FILE_FLAG_RANDOM_ACCESS = 10000000h
|
||||
FILE_FLAG_SEQUENTIAL_SCAN = 08000000h
|
||||
FILE_FLAG_DELETE_ON_CLOSE = 04000000h
|
||||
FILE_FLAG_BACKUP_SEMANTICS = 02000000h
|
||||
FILE_FLAG_POSIX_SEMANTICS = 01000000h
|
||||
|
||||
; Notify filters
|
||||
|
||||
FILE_NOTIFY_CHANGE_FILE_NAME = 001h
|
||||
FILE_NOTIFY_CHANGE_DIR_NAME = 002h
|
||||
FILE_NOTIFY_CHANGE_ATTRIBUTES = 004h
|
||||
FILE_NOTIFY_CHANGE_SIZE = 008h
|
||||
FILE_NOTIFY_CHANGE_LAST_WRITE = 010h
|
||||
FILE_NOTIFY_CHANGE_SECURITY = 100h
|
||||
|
||||
; File types
|
||||
|
||||
FILE_TYPE_UNKNOWN = 0
|
||||
FILE_TYPE_DISK = 1
|
||||
FILE_TYPE_CHAR = 2
|
||||
FILE_TYPE_PIPE = 3
|
||||
FILE_TYPE_REMOTE = 8000h
|
||||
|
||||
; LockFileEx flags
|
||||
|
||||
LOCKFILE_FAIL_IMMEDIATELY = 1
|
||||
LOCKFILE_EXCLUSIVE_LOCK = 2
|
||||
|
||||
; MoveFileEx flags
|
||||
|
||||
MOVEFILE_REPLACE_EXISTING = 1
|
||||
MOVEFILE_COPY_ALLOWED = 2
|
||||
MOVEFILE_DELAY_UNTIL_REBOOT = 4
|
||||
MOVEFILE_WRITE_THROUGH = 8
|
||||
|
||||
; FindFirstFileEx flags
|
||||
|
||||
FIND_FIRST_EX_CASE_SENSITIVE = 1
|
||||
|
||||
; Device handles
|
||||
|
||||
INVALID_HANDLE_VALUE = -1
|
||||
STD_INPUT_HANDLE = -10
|
||||
STD_OUTPUT_HANDLE = -11
|
||||
STD_ERROR_HANDLE = -12
|
||||
|
||||
; DuplicateHandle options
|
||||
|
||||
DUPLICATE_CLOSE_SOURCE = 1
|
||||
DUPLICATE_SAME_ACCESS = 2
|
||||
|
||||
; File mapping acccess rights
|
||||
|
||||
SECTION_QUERY = 01h
|
||||
SECTION_MAP_WRITE = 02h
|
||||
SECTION_MAP_READ = 04h
|
||||
SECTION_MAP_EXECUTE = 08h
|
||||
SECTION_EXTEND_SIZE = 10h
|
||||
SECTION_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED or SECTION_QUERY or SECTION_MAP_WRITE or SECTION_MAP_READ or SECTION_MAP_EXECUTE or SECTION_EXTEND_SIZE
|
||||
FILE_MAP_COPY = SECTION_QUERY
|
||||
FILE_MAP_WRITE = SECTION_MAP_WRITE
|
||||
FILE_MAP_READ = SECTION_MAP_READ
|
||||
FILE_MAP_ALL_ACCESS = SECTION_ALL_ACCESS
|
||||
|
||||
; File system flags
|
||||
|
||||
FILE_CASE_SENSITIVE_SEARCH = 0001h
|
||||
FILE_CASE_PRESERVED_NAMES = 0002h
|
||||
FILE_UNICODE_ON_DISK = 0004h
|
||||
FILE_PERSISTENT_ACLS = 0008h
|
||||
FILE_FILE_COMPRESSION = 0010h
|
||||
FILE_VOLUME_IS_COMPRESSED = 8000h
|
||||
FS_CASE_IS_PRESERVED = FILE_CASE_PRESERVED_NAMES
|
||||
FS_CASE_SENSITIVE = FILE_CASE_SENSITIVE_SEARCH
|
||||
FS_UNICODE_STORED_ON_DISK = FILE_UNICODE_ON_DISK
|
||||
FS_PERSISTENT_ACLS = FILE_PERSISTENT_ACLS
|
||||
|
||||
; Drive types
|
||||
|
||||
DRIVE_UNKNOWN = 0
|
||||
DRIVE_NO_ROOT_DIR = 1
|
||||
DRIVE_REMOVABLE = 2
|
||||
DRIVE_FIXED = 3
|
||||
DRIVE_REMOTE = 4
|
||||
DRIVE_CDROM = 5
|
||||
DRIVE_RAMDISK = 6
|
||||
|
||||
; Pipe modes
|
||||
|
||||
PIPE_ACCESS_INBOUND = 1
|
||||
PIPE_ACCESS_OUTBOUND = 2
|
||||
PIPE_ACCESS_DUPLEX = 3
|
||||
PIPE_CLIENT_END = 0
|
||||
PIPE_SERVER_END = 1
|
||||
PIPE_WAIT = 0
|
||||
PIPE_NOWAIT = 1
|
||||
PIPE_READMODE_BYTE = 0
|
||||
PIPE_READMODE_MESSAGE = 2
|
||||
PIPE_TYPE_BYTE = 0
|
||||
PIPE_TYPE_MESSAGE = 4
|
||||
PIPE_UNLIMITED_INSTANCES = 255
|
||||
|
||||
; Global memory flags
|
||||
|
||||
GMEM_FIXED = 0000h
|
||||
GMEM_MOVEABLE = 0002h
|
||||
GMEM_NOCOMPACT = 0010h
|
||||
GMEM_NODISCARD = 0020h
|
||||
GMEM_ZEROINIT = 0040h
|
||||
GMEM_MODIFY = 0080h
|
||||
GMEM_DISCARDABLE = 0100h
|
||||
GMEM_NOT_BANKED = 1000h
|
||||
GMEM_SHARE = 2000h
|
||||
GMEM_DDESHARE = 2000h
|
||||
GMEM_NOTIFY = 4000h
|
||||
GMEM_LOWER = GMEM_NOT_BANKED
|
||||
GMEM_VALID_FLAGS = 7F72h
|
||||
GMEM_INVALID_HANDLE = 8000h
|
||||
GMEM_DISCARDED = 4000h
|
||||
GMEM_LOCKCOUNT = 0FFh
|
||||
GHND = GMEM_MOVEABLE + GMEM_ZEROINIT
|
||||
GPTR = GMEM_FIXED + GMEM_ZEROINIT
|
||||
|
||||
; Local memory flags
|
||||
|
||||
LMEM_FIXED = 0000h
|
||||
LMEM_MOVEABLE = 0002h
|
||||
LMEM_NOCOMPACT = 0010h
|
||||
LMEM_NODISCARD = 0020h
|
||||
LMEM_ZEROINIT = 0040h
|
||||
LMEM_MODIFY = 0080h
|
||||
LMEM_DISCARDABLE = 0F00h
|
||||
LMEM_VALID_FLAGS = 0F72h
|
||||
LMEM_INVALID_HANDLE = 8000h
|
||||
LHND = LMEM_MOVEABLE + LMEM_ZEROINIT
|
||||
LPTR = LMEM_FIXED + LMEM_ZEROINIT
|
||||
LMEM_DISCARDED = 4000h
|
||||
LMEM_LOCKCOUNT = 00FFh
|
||||
|
||||
; Page access flags
|
||||
|
||||
PAGE_NOACCESS = 001h
|
||||
PAGE_READONLY = 002h
|
||||
PAGE_READWRITE = 004h
|
||||
PAGE_WRITECOPY = 008h
|
||||
PAGE_EXECUTE = 010h
|
||||
PAGE_EXECUTE_READ = 020h
|
||||
PAGE_EXECUTE_READWRITE = 040h
|
||||
PAGE_EXECUTE_WRITECOPY = 080h
|
||||
PAGE_GUARD = 100h
|
||||
PAGE_NOCACHE = 200h
|
||||
|
||||
; Memory allocation flags
|
||||
|
||||
MEM_COMMIT = 001000h
|
||||
MEM_RESERVE = 002000h
|
||||
MEM_DECOMMIT = 004000h
|
||||
MEM_RELEASE = 008000h
|
||||
MEM_FREE = 010000h
|
||||
MEM_PRIVATE = 020000h
|
||||
MEM_MAPPED = 040000h
|
||||
MEM_RESET = 080000h
|
||||
MEM_TOP_DOWN = 100000h
|
||||
|
||||
; Heap allocation flags
|
||||
|
||||
HEAP_NO_SERIALIZE = 1
|
||||
HEAP_GENERATE_EXCEPTIONS = 4
|
||||
HEAP_ZERO_MEMORY = 8
|
||||
|
||||
; Platform identifiers
|
||||
|
||||
VER_PLATFORM_WIN32s = 0
|
||||
VER_PLATFORM_WIN32_WINDOWS = 1
|
||||
VER_PLATFORM_WIN32_NT = 2
|
||||
|
||||
; GetBinaryType return values
|
||||
|
||||
SCS_32BIT_BINARY = 0
|
||||
SCS_DOS_BINARY = 1
|
||||
SCS_WOW_BINARY = 2
|
||||
SCS_PIF_BINARY = 3
|
||||
SCS_POSIX_BINARY = 4
|
||||
SCS_OS216_BINARY = 5
|
||||
|
||||
; CreateProcess flags
|
||||
|
||||
DEBUG_PROCESS = 001h
|
||||
DEBUG_ONLY_THIS_PROCESS = 002h
|
||||
CREATE_SUSPENDED = 004h
|
||||
DETACHED_PROCESS = 008h
|
||||
CREATE_NEW_CONSOLE = 010h
|
||||
NORMAL_PRIORITY_CLASS = 020h
|
||||
IDLE_PRIORITY_CLASS = 040h
|
||||
HIGH_PRIORITY_CLASS = 080h
|
||||
REALTIME_PRIORITY_CLASS = 100h
|
||||
CREATE_NEW_PROCESS_GROUP = 200h
|
||||
CREATE_SEPARATE_WOW_VDM = 800h
|
||||
|
||||
; Thread priority values
|
||||
|
||||
THREAD_BASE_PRIORITY_MIN = -2
|
||||
THREAD_BASE_PRIORITY_MAX = 2
|
||||
THREAD_BASE_PRIORITY_LOWRT = 15
|
||||
THREAD_BASE_PRIORITY_IDLE = -15
|
||||
THREAD_PRIORITY_LOWEST = THREAD_BASE_PRIORITY_MIN
|
||||
THREAD_PRIORITY_BELOW_NORMAL = THREAD_PRIORITY_LOWEST + 1
|
||||
THREAD_PRIORITY_NORMAL = 0
|
||||
THREAD_PRIORITY_HIGHEST = THREAD_BASE_PRIORITY_MAX
|
||||
THREAD_PRIORITY_ABOVE_NORMAL = THREAD_PRIORITY_HIGHEST - 1
|
||||
THREAD_PRIORITY_ERROR_RETURN = 7FFFFFFFh
|
||||
THREAD_PRIORITY_TIME_CRITICAL = THREAD_BASE_PRIORITY_LOWRT
|
||||
THREAD_PRIORITY_IDLE = THREAD_BASE_PRIORITY_IDLE
|
||||
|
||||
; Startup flags
|
||||
|
||||
STARTF_USESHOWWINDOW = 001h
|
||||
STARTF_USESIZE = 002h
|
||||
STARTF_USEPOSITION = 004h
|
||||
STARTF_USECOUNTCHARS = 008h
|
||||
STARTF_USEFILLATTRIBUTE = 010h
|
||||
STARTF_RUNFULLSCREEN = 020h
|
||||
STARTF_FORCEONFEEDBACK = 040h
|
||||
STARTF_FORCEOFFFEEDBACK = 080h
|
||||
STARTF_USESTDHANDLES = 100h
|
||||
|
||||
; Shutdown flags
|
||||
|
||||
SHUTDOWN_NORETRY = 1h
|
||||
|
||||
; LoadLibraryEx flags
|
||||
|
||||
DONT_RESOLVE_DLL_REFERENCES = 1
|
||||
LOAD_LIBRARY_AS_DATAFILE = 2
|
||||
LOAD_WITH_ALTERED_SEARCH_PATH = 8
|
||||
|
||||
; DLL entry-point calls
|
||||
|
||||
DLL_PROCESS_DETACH = 0
|
||||
DLL_PROCESS_ATTACH = 1
|
||||
DLL_THREAD_ATTACH = 2
|
||||
DLL_THREAD_DETACH = 3
|
||||
|
||||
; Status codes
|
||||
|
||||
STATUS_WAIT_0 = 000000000h
|
||||
STATUS_ABANDONED_WAIT_0 = 000000080h
|
||||
STATUS_USER_APC = 0000000C0h
|
||||
STATUS_TIMEOUT = 000000102h
|
||||
STATUS_PENDING = 000000103h
|
||||
STATUS_DATATYPE_MISALIGNMENT = 080000002h
|
||||
STATUS_BREAKPOINT = 080000003h
|
||||
STATUS_SINGLE_STEP = 080000004h
|
||||
STATUS_ACCESS_VIOLATION = 0C0000005h
|
||||
STATUS_IN_PAGE_ERROR = 0C0000006h
|
||||
STATUS_NO_MEMORY = 0C0000017h
|
||||
STATUS_ILLEGAL_INSTRUCTION = 0C000001Dh
|
||||
STATUS_NONCONTINUABLE_EXCEPTION = 0C0000025h
|
||||
STATUS_INVALID_DISPOSITION = 0C0000026h
|
||||
STATUS_ARRAY_BOUNDS_EXCEEDED = 0C000008Ch
|
||||
STATUS_FLOAT_DENORMAL_OPERAND = 0C000008Dh
|
||||
STATUS_FLOAT_DIVIDE_BY_ZERO = 0C000008Eh
|
||||
STATUS_FLOAT_INEXACT_RESULT = 0C000008Fh
|
||||
STATUS_FLOAT_INVALID_OPERATION = 0C0000090h
|
||||
STATUS_FLOAT_OVERFLOW = 0C0000091h
|
||||
STATUS_FLOAT_STACK_CHECK = 0C0000092h
|
||||
STATUS_FLOAT_UNDERFLOW = 0C0000093h
|
||||
STATUS_INTEGER_DIVIDE_BY_ZERO = 0C0000094h
|
||||
STATUS_INTEGER_OVERFLOW = 0C0000095h
|
||||
STATUS_PRIVILEGED_INSTRUCTION = 0C0000096h
|
||||
STATUS_STACK_OVERFLOW = 0C00000FDh
|
||||
STATUS_CONTROL_C_EXIT = 0C000013Ah
|
||||
WAIT_FAILED = -1
|
||||
WAIT_OBJECT_0 = STATUS_WAIT_0
|
||||
WAIT_ABANDONED = STATUS_ABANDONED_WAIT_0
|
||||
WAIT_ABANDONED_0 = STATUS_ABANDONED_WAIT_0
|
||||
WAIT_TIMEOUT = STATUS_TIMEOUT
|
||||
WAIT_IO_COMPLETION = STATUS_USER_APC
|
||||
STILL_ACTIVE = STATUS_PENDING
|
||||
|
||||
; Exception codes
|
||||
|
||||
EXCEPTION_CONTINUABLE = 0
|
||||
EXCEPTION_NONCONTINUABLE = 1
|
||||
EXCEPTION_ACCESS_VIOLATION = STATUS_ACCESS_VIOLATION
|
||||
EXCEPTION_DATATYPE_MISALIGNMENT = STATUS_DATATYPE_MISALIGNMENT
|
||||
EXCEPTION_BREAKPOINT = STATUS_BREAKPOINT
|
||||
EXCEPTION_SINGLE_STEP = STATUS_SINGLE_STEP
|
||||
EXCEPTION_ARRAY_BOUNDS_EXCEEDED = STATUS_ARRAY_BOUNDS_EXCEEDED
|
||||
EXCEPTION_FLT_DENORMAL_OPERAND = STATUS_FLOAT_DENORMAL_OPERAND
|
||||
EXCEPTION_FLT_DIVIDE_BY_ZERO = STATUS_FLOAT_DIVIDE_BY_ZERO
|
||||
EXCEPTION_FLT_INEXACT_RESULT = STATUS_FLOAT_INEXACT_RESULT
|
||||
EXCEPTION_FLT_INVALID_OPERATION = STATUS_FLOAT_INVALID_OPERATION
|
||||
EXCEPTION_FLT_OVERFLOW = STATUS_FLOAT_OVERFLOW
|
||||
EXCEPTION_FLT_STACK_CHECK = STATUS_FLOAT_STACK_CHECK
|
||||
EXCEPTION_FLT_UNDERFLOW = STATUS_FLOAT_UNDERFLOW
|
||||
EXCEPTION_INT_DIVIDE_BY_ZERO = STATUS_INTEGER_DIVIDE_BY_ZERO
|
||||
EXCEPTION_INT_OVERFLOW = STATUS_INTEGER_OVERFLOW
|
||||
EXCEPTION_ILLEGAL_INSTRUCTION = STATUS_ILLEGAL_INSTRUCTION
|
||||
EXCEPTION_PRIV_INSTRUCTION = STATUS_PRIVILEGED_INSTRUCTION
|
||||
EXCEPTION_IN_PAGE_ERROR = STATUS_IN_PAGE_ERROR
|
||||
|
||||
; Registry options
|
||||
|
||||
REG_OPTION_RESERVED = 0
|
||||
REG_OPTION_NON_VOLATILE = 0
|
||||
REG_OPTION_VOLATILE = 1
|
||||
REG_OPTION_CREATE_LINK = 2
|
||||
REG_OPTION_BACKUP_RESTORE = 4
|
||||
REG_CREATED_NEW_KEY = 1
|
||||
REG_OPENED_EXISTING_KEY = 2
|
||||
REG_WHOLE_HIVE_VOLATILE = 1
|
||||
REG_REFRESH_HIVE = 2
|
||||
REG_NOTIFY_CHANGE_NAME = 1
|
||||
REG_NOTIFY_CHANGE_ATTRIBUTES = 2
|
||||
REG_NOTIFY_CHANGE_LAST_SET = 4
|
||||
REG_NOTIFY_CHANGE_SECURITY = 8
|
||||
REG_LEGAL_CHANGE_FILTER = REG_NOTIFY_CHANGE_NAME or REG_NOTIFY_CHANGE_ATTRIBUTES or REG_NOTIFY_CHANGE_LAST_SET or REG_NOTIFY_CHANGE_SECURITY
|
||||
REG_LEGAL_OPTION = REG_OPTION_RESERVED or REG_OPTION_NON_VOLATILE or REG_OPTION_VOLATILE or REG_OPTION_CREATE_LINK or REG_OPTION_BACKUP_RESTORE
|
||||
REG_NONE = 0
|
||||
REG_SZ = 1
|
||||
REG_EXPAND_SZ = 2
|
||||
REG_BINARY = 3
|
||||
REG_DWORD = 4
|
||||
REG_DWORD_LITTLE_ENDIAN = 4
|
||||
REG_DWORD_BIG_ENDIAN = 5
|
||||
REG_LINK = 6
|
||||
REG_MULTI_SZ = 7
|
||||
REG_RESOURCE_LIST = 8
|
||||
REG_FULL_RESOURCE_DESCRIPTOR = 9
|
||||
REG_RESOURCE_REQUIREMENTS_LIST = 10
|
||||
|
||||
; Registry access modes
|
||||
|
||||
KEY_QUERY_VALUE = 1
|
||||
KEY_SET_VALUE = 2
|
||||
KEY_CREATE_SUB_KEY = 4
|
||||
KEY_ENUMERATE_SUB_KEYS = 8
|
||||
KEY_NOTIFY = 10h
|
||||
KEY_CREATE_LINK = 20h
|
||||
KEY_READ = STANDARD_RIGHTS_READ or KEY_QUERY_VALUE or KEY_ENUMERATE_SUB_KEYS or KEY_NOTIFY and not SYNCHRONIZE
|
||||
KEY_WRITE = STANDARD_RIGHTS_WRITE or KEY_SET_VALUE or KEY_CREATE_SUB_KEY and not SYNCHRONIZE
|
||||
KEY_EXECUTE = KEY_READ
|
||||
KEY_ALL_ACCESS = STANDARD_RIGHTS_ALL or KEY_QUERY_VALUE or KEY_SET_VALUE or KEY_CREATE_SUB_KEY or KEY_ENUMERATE_SUB_KEYS or KEY_NOTIFY or KEY_CREATE_LINK and not SYNCHRONIZE
|
||||
|
||||
; Predefined registry keys
|
||||
|
||||
HKEY_CLASSES_ROOT = 80000000h
|
||||
HKEY_CURRENT_USER = 80000001h
|
||||
HKEY_LOCAL_MACHINE = 80000002h
|
||||
HKEY_USERS = 80000003h
|
||||
HKEY_PERFORMANCE_DATA = 80000004h
|
||||
HKEY_CURRENT_CONFIG = 80000005h
|
||||
HKEY_DYN_DATA = 80000006h
|
||||
|
||||
; FormatMessage flags
|
||||
|
||||
FORMAT_MESSAGE_ALLOCATE_BUFFER = 0100h
|
||||
FORMAT_MESSAGE_IGNORE_INSERTS = 0200h
|
||||
FORMAT_MESSAGE_FROM_STRING = 0400h
|
||||
FORMAT_MESSAGE_FROM_HMODULE = 0800h
|
||||
FORMAT_MESSAGE_FROM_SYSTEM = 1000h
|
||||
FORMAT_MESSAGE_ARGUMENT_ARRAY = 2000h
|
||||
FORMAT_MESSAGE_MAX_WIDTH_MASK = 00FFh
|
||||
|
||||
; Language identifiers
|
||||
|
||||
LANG_NEUTRAL = 00h
|
||||
LANG_BULGARIAN = 02h
|
||||
LANG_CHINESE = 04h
|
||||
LANG_CROATIAN = 1Ah
|
||||
LANG_CZECH = 05h
|
||||
LANG_DANISH = 06h
|
||||
LANG_DUTCH = 13h
|
||||
LANG_ENGLISH = 09h
|
||||
LANG_FINNISH = 0Bh
|
||||
LANG_FRENCH = 0Ch
|
||||
LANG_GERMAN = 07h
|
||||
LANG_GREEK = 08h
|
||||
LANG_HUNGARIAN = 0Eh
|
||||
LANG_ICELANDIC = 0Fh
|
||||
LANG_ITALIAN = 10h
|
||||
LANG_JAPANESE = 11h
|
||||
LANG_KOREAN = 12h
|
||||
LANG_NORWEGIAN = 14h
|
||||
LANG_POLISH = 15h
|
||||
LANG_PORTUGUESE = 16h
|
||||
LANG_ROMANIAN = 18h
|
||||
LANG_RUSSIAN = 19h
|
||||
LANG_SLOVAK = 1Bh
|
||||
LANG_SLOVENIAN = 24h
|
||||
LANG_SPANISH = 0Ah
|
||||
LANG_SWEDISH = 1Dh
|
||||
LANG_THAI = 1Eh
|
||||
LANG_TURKISH = 1Fh
|
||||
|
||||
; Sublanguage identifiers
|
||||
|
||||
SUBLANG_NEUTRAL = 00h shl 10
|
||||
SUBLANG_DEFAULT = 01h shl 10
|
||||
SUBLANG_SYS_DEFAULT = 02h shl 10
|
||||
SUBLANG_CHINESE_TRADITIONAL = 01h shl 10
|
||||
SUBLANG_CHINESE_SIMPLIFIED = 02h shl 10
|
||||
SUBLANG_CHINESE_HONGKONG = 03h shl 10
|
||||
SUBLANG_CHINESE_SINGAPORE = 04h shl 10
|
||||
SUBLANG_DUTCH = 01h shl 10
|
||||
SUBLANG_DUTCH_BELGIAN = 02h shl 10
|
||||
SUBLANG_ENGLISH_US = 01h shl 10
|
||||
SUBLANG_ENGLISH_UK = 02h shl 10
|
||||
SUBLANG_ENGLISH_AUS = 03h shl 10
|
||||
SUBLANG_ENGLISH_CAN = 04h shl 10
|
||||
SUBLANG_ENGLISH_NZ = 05h shl 10
|
||||
SUBLANG_ENGLISH_EIRE = 06h shl 10
|
||||
SUBLANG_FRENCH = 01h shl 10
|
||||
SUBLANG_FRENCH_BELGIAN = 02h shl 10
|
||||
SUBLANG_FRENCH_CANADIAN = 03h shl 10
|
||||
SUBLANG_FRENCH_SWISS = 04h shl 10
|
||||
SUBLANG_GERMAN = 01h shl 10
|
||||
SUBLANG_GERMAN_SWISS = 02h shl 10
|
||||
SUBLANG_GERMAN_AUSTRIAN = 03h shl 10
|
||||
SUBLANG_ITALIAN = 01h shl 10
|
||||
SUBLANG_ITALIAN_SWISS = 02h shl 10
|
||||
SUBLANG_NORWEGIAN_BOKMAL = 01h shl 10
|
||||
SUBLANG_NORWEGIAN_NYNORSK = 02h shl 10
|
||||
SUBLANG_PORTUGUESE = 02h shl 10
|
||||
SUBLANG_PORTUGUESE_BRAZILIAN = 01h shl 10
|
||||
SUBLANG_SPANISH = 01h shl 10
|
||||
SUBLANG_SPANISH_MEXICAN = 02h shl 10
|
||||
SUBLANG_SPANISH_MODERN = 03h shl 10
|
||||
|
||||
; Sorting identifiers
|
||||
|
||||
SORT_DEFAULT = 0 shl 16
|
||||
SORT_JAPANESE_XJIS = 0 shl 16
|
||||
SORT_JAPANESE_UNICODE = 1 shl 16
|
||||
SORT_CHINESE_BIG5 = 0 shl 16
|
||||
SORT_CHINESE_PRCP = 0 shl 16
|
||||
SORT_CHINESE_UNICODE = 1 shl 16
|
||||
SORT_CHINESE_PRC = 2 shl 16
|
||||
SORT_CHINESE_BOPOMOFO = 3 shl 16
|
||||
SORT_KOREAN_KSC = 0 shl 16
|
||||
SORT_KOREAN_UNICODE = 1 shl 16
|
||||
SORT_GERMAN_PHONE_BOOK = 1 shl 16
|
||||
SORT_HUNGARIAN_DEFAULT = 0 shl 16
|
||||
SORT_HUNGARIAN_TECHNICAL = 1 shl 16
|
||||
|
||||
; Code pages
|
||||
|
||||
CP_ACP = 0 ; default to ANSI code page
|
||||
CP_OEMCP = 1 ; default to OEM code page
|
||||
CP_MACCP = 2 ; default to MAC code page
|
||||
CP_THREAD_ACP = 3 ; current thread's ANSI code page
|
||||
CP_SYMBOL = 42 ; SYMBOL translations
|
||||
CP_UTF7 = 65000 ; UTF-7 translation
|
||||
CP_UTF8 = 65001 ; UTF-8 translation
|
||||
|
||||
; Resource types
|
||||
|
||||
RT_CURSOR = 1
|
||||
RT_BITMAP = 2
|
||||
RT_ICON = 3
|
||||
RT_MENU = 4
|
||||
RT_DIALOG = 5
|
||||
RT_STRING = 6
|
||||
RT_FONTDIR = 7
|
||||
RT_FONT = 8
|
||||
RT_ACCELERATOR = 9
|
||||
RT_RCDATA = 10
|
||||
RT_MESSAGETABLE = 11
|
||||
RT_GROUP_CURSOR = 12
|
||||
RT_GROUP_ICON = 14
|
||||
RT_VERSION = 16
|
||||
RT_DLGINCLUDE = 17
|
||||
RT_PLUGPLAY = 19
|
||||
RT_VXD = 20
|
||||
RT_ANICURSOR = 21
|
||||
RT_ANIICON = 22
|
||||
RT_HTML = 23
|
||||
RT_MANIFEST = 24
|
||||
|
||||
; Clipboard formats
|
||||
|
||||
CF_TEXT = 001h
|
||||
CF_BITMAP = 002h
|
||||
CF_METAFILEPICT = 003h
|
||||
CF_SYLK = 004h
|
||||
CF_DIF = 005h
|
||||
CF_TIFF = 006h
|
||||
CF_OEMTEXT = 007h
|
||||
CF_DIB = 008h
|
||||
CF_PALETTE = 009h
|
||||
CF_PENDATA = 00Ah
|
||||
CF_RIFF = 00Bh
|
||||
CF_WAVE = 00Ch
|
||||
CF_UNICODETEXT = 00Dh
|
||||
CF_ENHMETAFILE = 00Eh
|
||||
CF_HDROP = 00Fh
|
||||
CF_LOCALE = 010h
|
||||
CF_OWNERDISPLAY = 080h
|
||||
CF_DSPTEXT = 081h
|
||||
CF_DSPBITMAP = 082h
|
||||
CF_DSPMETAFILEPICT = 083h
|
||||
CF_DSPENHMETAFILE = 08Eh
|
||||
CF_PRIVATEFIRST = 200h
|
||||
CF_PRIVATELAST = 2FFh
|
||||
CF_GDIOBJFIRST = 300h
|
||||
CF_GDIOBJLAST = 3FFh
|
||||
|
||||
; OS types for version info
|
||||
|
||||
VOS_UNKNOWN = 00000000h
|
||||
VOS_DOS = 00010000h
|
||||
VOS_OS216 = 00020000h
|
||||
VOS_OS232 = 00030000h
|
||||
VOS_NT = 00040000h
|
||||
VOS__BASE = 00000000h
|
||||
VOS__WINDOWS16 = 00000001h
|
||||
VOS__PM16 = 00000002h
|
||||
VOS__PM32 = 00000003h
|
||||
VOS__WINDOWS32 = 00000004h
|
||||
VOS_DOS_WINDOWS16 = 00010001h
|
||||
VOS_DOS_WINDOWS32 = 00010004h
|
||||
VOS_OS216_PM16 = 00020002h
|
||||
VOS_OS232_PM32 = 00030003h
|
||||
VOS_NT_WINDOWS32 = 00040004h
|
||||
|
||||
; File types for version info
|
||||
|
||||
VFT_UNKNOWN = 00000000h
|
||||
VFT_APP = 00000001h
|
||||
VFT_DLL = 00000002h
|
||||
VFT_DRV = 00000003h
|
||||
VFT_FONT = 00000004h
|
||||
VFT_VXD = 00000005h
|
||||
VFT_STATIC_LIB = 00000007h
|
||||
|
||||
; File subtypes for version info
|
||||
|
||||
VFT2_UNKNOWN = 00000000h
|
||||
VFT2_DRV_PRINTER = 00000001h
|
||||
VFT2_DRV_KEYBOARD = 00000002h
|
||||
VFT2_DRV_LANGUAGE = 00000003h
|
||||
VFT2_DRV_DISPLAY = 00000004h
|
||||
VFT2_DRV_MOUSE = 00000005h
|
||||
VFT2_DRV_NETWORK = 00000006h
|
||||
VFT2_DRV_SYSTEM = 00000007h
|
||||
VFT2_DRV_INSTALLABLE = 00000008h
|
||||
VFT2_DRV_SOUND = 00000009h
|
||||
VFT2_DRV_COMM = 0000000Ah
|
||||
VFT2_DRV_INPUTMETHOD = 0000000Bh
|
||||
VFT2_DRV_VERSIONED_PRINTER = 0000000Ch
|
||||
VFT2_FONT_RASTER = 00000001h
|
||||
VFT2_FONT_VECTOR = 00000002h
|
||||
VFT2_FONT_TRUETYPE = 00000003h
|
||||
|
||||
; Console control signals
|
||||
|
||||
CTRL_C_EVENT = 0
|
||||
CTRL_BREAK_EVENT = 1
|
||||
CTRL_CLOSE_EVENT = 2
|
||||
CTRL_LOGOFF_EVENT = 5
|
||||
CTRL_SHUTDOWN_EVENT = 6
|
||||
|
||||
; Standard file handles
|
||||
|
||||
STD_INPUT_HANDLE = 0FFFFFFF6h
|
||||
STD_OUTPUT_HANDLE = 0FFFFFFF5h
|
||||
STD_ERROR_HANDLE = 0FFFFFFF4h
|
||||
806
toolchain/fasmw17332/INCLUDE/EQUATES/KERNEL64.INC
Normal file
806
toolchain/fasmw17332/INCLUDE/EQUATES/KERNEL64.INC
Normal file
@@ -0,0 +1,806 @@
|
||||
|
||||
; KERNEL32.DLL structures and constants
|
||||
|
||||
struct SYSTEM_INFO
|
||||
wProcessorArchitecture dw ?
|
||||
wReserved dw ?
|
||||
dwPageSize dd ?
|
||||
lpMinimumApplicationAddress dq ?
|
||||
lpMaximumApplicationAddress dq ?
|
||||
dwActiveProcessorMask dq ?
|
||||
dwNumberOfProcessors dd ?
|
||||
dwProcessorType dd ?
|
||||
dwAllocationGranularity dd ?
|
||||
wProcessorLevel dw ?
|
||||
wProcessorRevision dw ?
|
||||
ends
|
||||
|
||||
struct OSVERSIONINFO
|
||||
dwOSVersionInfoSize dd ?
|
||||
dwMajorVersion dd ?
|
||||
dwMinorVersion dd ?
|
||||
dwBuildNumber dd ?
|
||||
dwPlatformId dd ?
|
||||
szCSDVersion TCHAR 128 dup (?)
|
||||
ends
|
||||
|
||||
struct OSVERSIONINFOA
|
||||
dwOSVersionInfoSize dd ?
|
||||
dwMajorVersion dd ?
|
||||
dwMinorVersion dd ?
|
||||
dwBuildNumber dd ?
|
||||
dwPlatformId dd ?
|
||||
szCSDVersion db 128 dup (?)
|
||||
ends
|
||||
|
||||
struct OSVERSIONINFOW
|
||||
dwOSVersionInfoSize dd ?
|
||||
dwMajorVersion dd ?
|
||||
dwMinorVersion dd ?
|
||||
dwBuildNumber dd ?
|
||||
dwPlatformId dd ?
|
||||
szCSDVersion du 128 dup (?)
|
||||
ends
|
||||
|
||||
struct MEMORYSTATUS
|
||||
dwLength dd ?
|
||||
dwMemoryLoad dd ?
|
||||
dwTotalPhys dq ?
|
||||
dwAvailPhys dq ?
|
||||
dwTotalPageFile dq ?
|
||||
dwAvailPageFile dq ?
|
||||
dwTotalVirtual dq ?
|
||||
dwAvailVirtual dq ?
|
||||
ends
|
||||
|
||||
struct STARTUPINFO
|
||||
cb dd ?,?
|
||||
lpReserved dq ?
|
||||
lpDesktop dq ?
|
||||
lpTitle dq ?
|
||||
dwX dd ?
|
||||
dwY dd ?
|
||||
dwXSize dd ?
|
||||
dwYSize dd ?
|
||||
dwXCountChars dd ?
|
||||
dwYCountChars dd ?
|
||||
dwFillAttribute dd ?
|
||||
dwFlags dd ?
|
||||
wShowWindow dw ?
|
||||
cbReserved2 dw ?,?,?
|
||||
lpReserved2 dq ?
|
||||
hStdInput dq ?
|
||||
hStdOutput dq ?
|
||||
hStdError dq ?
|
||||
ends
|
||||
|
||||
struct PROCESS_INFORMATION
|
||||
hProcess dq ?
|
||||
hThread dq ?
|
||||
dwProcessId dd ?
|
||||
dwThreadId dd ?
|
||||
ends
|
||||
|
||||
struct FILETIME
|
||||
dwLowDateTime dd ?
|
||||
dwHighDateTime dd ?
|
||||
ends
|
||||
|
||||
struct SYSTEMTIME
|
||||
wYear dw ?
|
||||
wMonth dw ?
|
||||
wDayOfWeek dw ?
|
||||
wDay dw ?
|
||||
wHour dw ?
|
||||
wMinute dw ?
|
||||
wSecond dw ?
|
||||
wMilliseconds dw ?
|
||||
ends
|
||||
|
||||
struct BY_HANDLE_FILE_INFORMATION
|
||||
dwFileAttributes dd ?
|
||||
ftCreationTime FILETIME
|
||||
ftLastAccessTime FILETIME
|
||||
ftLastWriteTime FILETIME
|
||||
dwVolumeSerialNumber dd ?
|
||||
nFileSizeHigh dd ?
|
||||
nFileSizeLow dd ?
|
||||
nNumberOfLinks dd ?
|
||||
nFileIndexHigh dd ?
|
||||
nFileIndexLow dd ?
|
||||
ends
|
||||
|
||||
struct WIN32_FIND_DATA
|
||||
dwFileAttributes dd ?
|
||||
ftCreationTime FILETIME
|
||||
ftLastAccessTime FILETIME
|
||||
ftLastWriteTime FILETIME
|
||||
nFileSizeHigh dd ?
|
||||
nFileSizeLow dd ?
|
||||
dwReserved0 dd ?
|
||||
dwReserved1 dd ?
|
||||
cFileName TCHAR MAX_PATH dup (?)
|
||||
cAlternateFileName TCHAR 14 dup (?)
|
||||
ends
|
||||
|
||||
struct WIN32_FIND_DATAA
|
||||
dwFileAttributes dd ?
|
||||
ftCreationTime FILETIME
|
||||
ftLastAccessTime FILETIME
|
||||
ftLastWriteTime FILETIME
|
||||
nFileSizeHigh dd ?
|
||||
nFileSizeLow dd ?
|
||||
dwReserved0 dd ?
|
||||
dwReserved1 dd ?
|
||||
cFileName db MAX_PATH dup (?)
|
||||
cAlternateFileName db 14 dup (?)
|
||||
ends
|
||||
|
||||
struct WIN32_FIND_DATAW
|
||||
dwFileAttributes dd ?
|
||||
ftCreationTime FILETIME
|
||||
ftLastAccessTime FILETIME
|
||||
ftLastWriteTime FILETIME
|
||||
nFileSizeHigh dd ?
|
||||
nFileSizeLow dd ?
|
||||
dwReserved0 dd ?
|
||||
dwReserved1 dd ?
|
||||
cFileName du MAX_PATH dup (?)
|
||||
cAlternateFileName du 14 dup (?)
|
||||
ends
|
||||
|
||||
; General constants
|
||||
|
||||
NULL = 0
|
||||
TRUE = 1
|
||||
FALSE = 0
|
||||
|
||||
; Maximum path length in characters
|
||||
|
||||
MAX_PATH = 260
|
||||
|
||||
; Access rights
|
||||
|
||||
DELETE_RIGHT = 00010000h
|
||||
READ_CONTROL = 00020000h
|
||||
WRITE_DAC = 00040000h
|
||||
WRITE_OWNER = 00080000h
|
||||
SYNCHRONIZE = 00100000h
|
||||
STANDARD_RIGHTS_READ = READ_CONTROL
|
||||
STANDARD_RIGHTS_WRITE = READ_CONTROL
|
||||
STANDARD_RIGHTS_EXECUTE = READ_CONTROL
|
||||
STANDARD_RIGHTS_REQUIRED = 000F0000h
|
||||
STANDARD_RIGHTS_ALL = 001F0000h
|
||||
SPECIFIC_RIGHTS_ALL = 0000FFFFh
|
||||
ACCESS_SYSTEM_SECURITY = 01000000h
|
||||
MAXIMUM_ALLOWED = 02000000h
|
||||
GENERIC_READ = 80000000h
|
||||
GENERIC_WRITE = 40000000h
|
||||
GENERIC_EXECUTE = 20000000h
|
||||
GENERIC_ALL = 10000000h
|
||||
PROCESS_TERMINATE = 00000001h
|
||||
PROCESS_CREATE_THREAD = 00000002h
|
||||
PROCESS_VM_OPERATION = 00000008h
|
||||
PROCESS_VM_READ = 00000010h
|
||||
PROCESS_VM_WRITE = 00000020h
|
||||
PROCESS_DUP_HANDLE = 00000040h
|
||||
PROCESS_CREATE_PROCESS = 00000080h
|
||||
PROCESS_SET_QUOTA = 00000100h
|
||||
PROCESS_SET_INFORMATION = 00000200h
|
||||
PROCESS_QUERY_INFORMATION = 00000400h
|
||||
PROCESS_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED or SYNCHRONIZE or 0FFFh
|
||||
FILE_SHARE_READ = 00000001h
|
||||
FILE_SHARE_WRITE = 00000002h
|
||||
FILE_SHARE_DELETE = 00000004h
|
||||
|
||||
; CreateFile actions
|
||||
|
||||
CREATE_NEW = 1
|
||||
CREATE_ALWAYS = 2
|
||||
OPEN_EXISTING = 3
|
||||
OPEN_ALWAYS = 4
|
||||
TRUNCATE_EXISTING = 5
|
||||
|
||||
; OpenFile modes
|
||||
|
||||
OF_READ = 0000h
|
||||
OF_WRITE = 0001h
|
||||
OF_READWRITE = 0002h
|
||||
OF_SHARE_COMPAT = 0000h
|
||||
OF_SHARE_EXCLUSIVE = 0010h
|
||||
OF_SHARE_DENY_WRITE = 0020h
|
||||
OF_SHARE_DENY_READ = 0030h
|
||||
OF_SHARE_DENY_NONE = 0040h
|
||||
OF_PARSE = 0100h
|
||||
OF_DELETE = 0200h
|
||||
OF_VERIFY = 0400h
|
||||
OF_CANCEL = 0800h
|
||||
OF_CREATE = 1000h
|
||||
OF_PROMPT = 2000h
|
||||
OF_EXIST = 4000h
|
||||
OF_REOPEN = 8000h
|
||||
|
||||
; SetFilePointer methods
|
||||
|
||||
FILE_BEGIN = 0
|
||||
FILE_CURRENT = 1
|
||||
FILE_END = 2
|
||||
|
||||
; File attributes
|
||||
|
||||
FILE_ATTRIBUTE_READONLY = 001h
|
||||
FILE_ATTRIBUTE_HIDDEN = 002h
|
||||
FILE_ATTRIBUTE_SYSTEM = 004h
|
||||
FILE_ATTRIBUTE_DIRECTORY = 010h
|
||||
FILE_ATTRIBUTE_ARCHIVE = 020h
|
||||
FILE_ATTRIBUTE_NORMAL = 080h
|
||||
FILE_ATTRIBUTE_TEMPORARY = 100h
|
||||
FILE_ATTRIBUTE_COMPRESSED = 800h
|
||||
|
||||
; File flags
|
||||
|
||||
FILE_FLAG_WRITE_THROUGH = 80000000h
|
||||
FILE_FLAG_OVERLAPPED = 40000000h
|
||||
FILE_FLAG_NO_BUFFERING = 20000000h
|
||||
FILE_FLAG_RANDOM_ACCESS = 10000000h
|
||||
FILE_FLAG_SEQUENTIAL_SCAN = 08000000h
|
||||
FILE_FLAG_DELETE_ON_CLOSE = 04000000h
|
||||
FILE_FLAG_BACKUP_SEMANTICS = 02000000h
|
||||
FILE_FLAG_POSIX_SEMANTICS = 01000000h
|
||||
|
||||
; Notify filters
|
||||
|
||||
FILE_NOTIFY_CHANGE_FILE_NAME = 001h
|
||||
FILE_NOTIFY_CHANGE_DIR_NAME = 002h
|
||||
FILE_NOTIFY_CHANGE_ATTRIBUTES = 004h
|
||||
FILE_NOTIFY_CHANGE_SIZE = 008h
|
||||
FILE_NOTIFY_CHANGE_LAST_WRITE = 010h
|
||||
FILE_NOTIFY_CHANGE_SECURITY = 100h
|
||||
|
||||
; File types
|
||||
|
||||
FILE_TYPE_UNKNOWN = 0
|
||||
FILE_TYPE_DISK = 1
|
||||
FILE_TYPE_CHAR = 2
|
||||
FILE_TYPE_PIPE = 3
|
||||
FILE_TYPE_REMOTE = 8000h
|
||||
|
||||
; LockFileEx flags
|
||||
|
||||
LOCKFILE_FAIL_IMMEDIATELY = 1
|
||||
LOCKFILE_EXCLUSIVE_LOCK = 2
|
||||
|
||||
; MoveFileEx flags
|
||||
|
||||
MOVEFILE_REPLACE_EXISTING = 1
|
||||
MOVEFILE_COPY_ALLOWED = 2
|
||||
MOVEFILE_DELAY_UNTIL_REBOOT = 4
|
||||
MOVEFILE_WRITE_THROUGH = 8
|
||||
|
||||
; FindFirstFileEx flags
|
||||
|
||||
FIND_FIRST_EX_CASE_SENSITIVE = 1
|
||||
|
||||
; Device handles
|
||||
|
||||
INVALID_HANDLE_VALUE = -1
|
||||
STD_INPUT_HANDLE = -10
|
||||
STD_OUTPUT_HANDLE = -11
|
||||
STD_ERROR_HANDLE = -12
|
||||
|
||||
; DuplicateHandle options
|
||||
|
||||
DUPLICATE_CLOSE_SOURCE = 1
|
||||
DUPLICATE_SAME_ACCESS = 2
|
||||
|
||||
; File mapping acccess rights
|
||||
|
||||
SECTION_QUERY = 01h
|
||||
SECTION_MAP_WRITE = 02h
|
||||
SECTION_MAP_READ = 04h
|
||||
SECTION_MAP_EXECUTE = 08h
|
||||
SECTION_EXTEND_SIZE = 10h
|
||||
SECTION_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED or SECTION_QUERY or SECTION_MAP_WRITE or SECTION_MAP_READ or SECTION_MAP_EXECUTE or SECTION_EXTEND_SIZE
|
||||
FILE_MAP_COPY = SECTION_QUERY
|
||||
FILE_MAP_WRITE = SECTION_MAP_WRITE
|
||||
FILE_MAP_READ = SECTION_MAP_READ
|
||||
FILE_MAP_ALL_ACCESS = SECTION_ALL_ACCESS
|
||||
|
||||
; File system flags
|
||||
|
||||
FILE_CASE_SENSITIVE_SEARCH = 0001h
|
||||
FILE_CASE_PRESERVED_NAMES = 0002h
|
||||
FILE_UNICODE_ON_DISK = 0004h
|
||||
FILE_PERSISTENT_ACLS = 0008h
|
||||
FILE_FILE_COMPRESSION = 0010h
|
||||
FILE_VOLUME_IS_COMPRESSED = 8000h
|
||||
FS_CASE_IS_PRESERVED = FILE_CASE_PRESERVED_NAMES
|
||||
FS_CASE_SENSITIVE = FILE_CASE_SENSITIVE_SEARCH
|
||||
FS_UNICODE_STORED_ON_DISK = FILE_UNICODE_ON_DISK
|
||||
FS_PERSISTENT_ACLS = FILE_PERSISTENT_ACLS
|
||||
|
||||
; Drive types
|
||||
|
||||
DRIVE_UNKNOWN = 0
|
||||
DRIVE_NO_ROOT_DIR = 1
|
||||
DRIVE_REMOVABLE = 2
|
||||
DRIVE_FIXED = 3
|
||||
DRIVE_REMOTE = 4
|
||||
DRIVE_CDROM = 5
|
||||
DRIVE_RAMDISK = 6
|
||||
|
||||
; Pipe modes
|
||||
|
||||
PIPE_ACCESS_INBOUND = 1
|
||||
PIPE_ACCESS_OUTBOUND = 2
|
||||
PIPE_ACCESS_DUPLEX = 3
|
||||
PIPE_CLIENT_END = 0
|
||||
PIPE_SERVER_END = 1
|
||||
PIPE_WAIT = 0
|
||||
PIPE_NOWAIT = 1
|
||||
PIPE_READMODE_BYTE = 0
|
||||
PIPE_READMODE_MESSAGE = 2
|
||||
PIPE_TYPE_BYTE = 0
|
||||
PIPE_TYPE_MESSAGE = 4
|
||||
PIPE_UNLIMITED_INSTANCES = 255
|
||||
|
||||
; Global memory flags
|
||||
|
||||
GMEM_FIXED = 0000h
|
||||
GMEM_MOVEABLE = 0002h
|
||||
GMEM_NOCOMPACT = 0010h
|
||||
GMEM_NODISCARD = 0020h
|
||||
GMEM_ZEROINIT = 0040h
|
||||
GMEM_MODIFY = 0080h
|
||||
GMEM_DISCARDABLE = 0100h
|
||||
GMEM_NOT_BANKED = 1000h
|
||||
GMEM_SHARE = 2000h
|
||||
GMEM_DDESHARE = 2000h
|
||||
GMEM_NOTIFY = 4000h
|
||||
GMEM_LOWER = GMEM_NOT_BANKED
|
||||
GMEM_VALID_FLAGS = 7F72h
|
||||
GMEM_INVALID_HANDLE = 8000h
|
||||
GMEM_DISCARDED = 4000h
|
||||
GMEM_LOCKCOUNT = 0FFh
|
||||
GHND = GMEM_MOVEABLE + GMEM_ZEROINIT
|
||||
GPTR = GMEM_FIXED + GMEM_ZEROINIT
|
||||
|
||||
; Local memory flags
|
||||
|
||||
LMEM_FIXED = 0000h
|
||||
LMEM_MOVEABLE = 0002h
|
||||
LMEM_NOCOMPACT = 0010h
|
||||
LMEM_NODISCARD = 0020h
|
||||
LMEM_ZEROINIT = 0040h
|
||||
LMEM_MODIFY = 0080h
|
||||
LMEM_DISCARDABLE = 0F00h
|
||||
LMEM_VALID_FLAGS = 0F72h
|
||||
LMEM_INVALID_HANDLE = 8000h
|
||||
LHND = LMEM_MOVEABLE + LMEM_ZEROINIT
|
||||
LPTR = LMEM_FIXED + LMEM_ZEROINIT
|
||||
LMEM_DISCARDED = 4000h
|
||||
LMEM_LOCKCOUNT = 00FFh
|
||||
|
||||
; Page access flags
|
||||
|
||||
PAGE_NOACCESS = 001h
|
||||
PAGE_READONLY = 002h
|
||||
PAGE_READWRITE = 004h
|
||||
PAGE_WRITECOPY = 008h
|
||||
PAGE_EXECUTE = 010h
|
||||
PAGE_EXECUTE_READ = 020h
|
||||
PAGE_EXECUTE_READWRITE = 040h
|
||||
PAGE_EXECUTE_WRITECOPY = 080h
|
||||
PAGE_GUARD = 100h
|
||||
PAGE_NOCACHE = 200h
|
||||
|
||||
; Memory allocation flags
|
||||
|
||||
MEM_COMMIT = 001000h
|
||||
MEM_RESERVE = 002000h
|
||||
MEM_DECOMMIT = 004000h
|
||||
MEM_RELEASE = 008000h
|
||||
MEM_FREE = 010000h
|
||||
MEM_PRIVATE = 020000h
|
||||
MEM_MAPPED = 040000h
|
||||
MEM_RESET = 080000h
|
||||
MEM_TOP_DOWN = 100000h
|
||||
|
||||
; Heap allocation flags
|
||||
|
||||
HEAP_NO_SERIALIZE = 1
|
||||
HEAP_GENERATE_EXCEPTIONS = 4
|
||||
HEAP_ZERO_MEMORY = 8
|
||||
|
||||
; Platform identifiers
|
||||
|
||||
VER_PLATFORM_WIN32s = 0
|
||||
VER_PLATFORM_WIN32_WINDOWS = 1
|
||||
VER_PLATFORM_WIN32_NT = 2
|
||||
|
||||
; GetBinaryType return values
|
||||
|
||||
SCS_32BIT_BINARY = 0
|
||||
SCS_DOS_BINARY = 1
|
||||
SCS_WOW_BINARY = 2
|
||||
SCS_PIF_BINARY = 3
|
||||
SCS_POSIX_BINARY = 4
|
||||
SCS_OS216_BINARY = 5
|
||||
|
||||
; CreateProcess flags
|
||||
|
||||
DEBUG_PROCESS = 001h
|
||||
DEBUG_ONLY_THIS_PROCESS = 002h
|
||||
CREATE_SUSPENDED = 004h
|
||||
DETACHED_PROCESS = 008h
|
||||
CREATE_NEW_CONSOLE = 010h
|
||||
NORMAL_PRIORITY_CLASS = 020h
|
||||
IDLE_PRIORITY_CLASS = 040h
|
||||
HIGH_PRIORITY_CLASS = 080h
|
||||
REALTIME_PRIORITY_CLASS = 100h
|
||||
CREATE_NEW_PROCESS_GROUP = 200h
|
||||
CREATE_SEPARATE_WOW_VDM = 800h
|
||||
|
||||
; Thread priority values
|
||||
|
||||
THREAD_BASE_PRIORITY_MIN = -2
|
||||
THREAD_BASE_PRIORITY_MAX = 2
|
||||
THREAD_BASE_PRIORITY_LOWRT = 15
|
||||
THREAD_BASE_PRIORITY_IDLE = -15
|
||||
THREAD_PRIORITY_LOWEST = THREAD_BASE_PRIORITY_MIN
|
||||
THREAD_PRIORITY_BELOW_NORMAL = THREAD_PRIORITY_LOWEST + 1
|
||||
THREAD_PRIORITY_NORMAL = 0
|
||||
THREAD_PRIORITY_HIGHEST = THREAD_BASE_PRIORITY_MAX
|
||||
THREAD_PRIORITY_ABOVE_NORMAL = THREAD_PRIORITY_HIGHEST - 1
|
||||
THREAD_PRIORITY_ERROR_RETURN = 7FFFFFFFh
|
||||
THREAD_PRIORITY_TIME_CRITICAL = THREAD_BASE_PRIORITY_LOWRT
|
||||
THREAD_PRIORITY_IDLE = THREAD_BASE_PRIORITY_IDLE
|
||||
|
||||
; Startup flags
|
||||
|
||||
STARTF_USESHOWWINDOW = 001h
|
||||
STARTF_USESIZE = 002h
|
||||
STARTF_USEPOSITION = 004h
|
||||
STARTF_USECOUNTCHARS = 008h
|
||||
STARTF_USEFILLATTRIBUTE = 010h
|
||||
STARTF_RUNFULLSCREEN = 020h
|
||||
STARTF_FORCEONFEEDBACK = 040h
|
||||
STARTF_FORCEOFFFEEDBACK = 080h
|
||||
STARTF_USESTDHANDLES = 100h
|
||||
|
||||
; Shutdown flags
|
||||
|
||||
SHUTDOWN_NORETRY = 1h
|
||||
|
||||
; LoadLibraryEx flags
|
||||
|
||||
DONT_RESOLVE_DLL_REFERENCES = 1
|
||||
LOAD_LIBRARY_AS_DATAFILE = 2
|
||||
LOAD_WITH_ALTERED_SEARCH_PATH = 8
|
||||
|
||||
; DLL entry-point calls
|
||||
|
||||
DLL_PROCESS_DETACH = 0
|
||||
DLL_PROCESS_ATTACH = 1
|
||||
DLL_THREAD_ATTACH = 2
|
||||
DLL_THREAD_DETACH = 3
|
||||
|
||||
; Status codes
|
||||
|
||||
STATUS_WAIT_0 = 000000000h
|
||||
STATUS_ABANDONED_WAIT_0 = 000000080h
|
||||
STATUS_USER_APC = 0000000C0h
|
||||
STATUS_TIMEOUT = 000000102h
|
||||
STATUS_PENDING = 000000103h
|
||||
STATUS_DATATYPE_MISALIGNMENT = 080000002h
|
||||
STATUS_BREAKPOINT = 080000003h
|
||||
STATUS_SINGLE_STEP = 080000004h
|
||||
STATUS_ACCESS_VIOLATION = 0C0000005h
|
||||
STATUS_IN_PAGE_ERROR = 0C0000006h
|
||||
STATUS_NO_MEMORY = 0C0000017h
|
||||
STATUS_ILLEGAL_INSTRUCTION = 0C000001Dh
|
||||
STATUS_NONCONTINUABLE_EXCEPTION = 0C0000025h
|
||||
STATUS_INVALID_DISPOSITION = 0C0000026h
|
||||
STATUS_ARRAY_BOUNDS_EXCEEDED = 0C000008Ch
|
||||
STATUS_FLOAT_DENORMAL_OPERAND = 0C000008Dh
|
||||
STATUS_FLOAT_DIVIDE_BY_ZERO = 0C000008Eh
|
||||
STATUS_FLOAT_INEXACT_RESULT = 0C000008Fh
|
||||
STATUS_FLOAT_INVALID_OPERATION = 0C0000090h
|
||||
STATUS_FLOAT_OVERFLOW = 0C0000091h
|
||||
STATUS_FLOAT_STACK_CHECK = 0C0000092h
|
||||
STATUS_FLOAT_UNDERFLOW = 0C0000093h
|
||||
STATUS_INTEGER_DIVIDE_BY_ZERO = 0C0000094h
|
||||
STATUS_INTEGER_OVERFLOW = 0C0000095h
|
||||
STATUS_PRIVILEGED_INSTRUCTION = 0C0000096h
|
||||
STATUS_STACK_OVERFLOW = 0C00000FDh
|
||||
STATUS_CONTROL_C_EXIT = 0C000013Ah
|
||||
WAIT_FAILED = -1
|
||||
WAIT_OBJECT_0 = STATUS_WAIT_0
|
||||
WAIT_ABANDONED = STATUS_ABANDONED_WAIT_0
|
||||
WAIT_ABANDONED_0 = STATUS_ABANDONED_WAIT_0
|
||||
WAIT_TIMEOUT = STATUS_TIMEOUT
|
||||
WAIT_IO_COMPLETION = STATUS_USER_APC
|
||||
STILL_ACTIVE = STATUS_PENDING
|
||||
|
||||
; Exception codes
|
||||
|
||||
EXCEPTION_CONTINUABLE = 0
|
||||
EXCEPTION_NONCONTINUABLE = 1
|
||||
EXCEPTION_ACCESS_VIOLATION = STATUS_ACCESS_VIOLATION
|
||||
EXCEPTION_DATATYPE_MISALIGNMENT = STATUS_DATATYPE_MISALIGNMENT
|
||||
EXCEPTION_BREAKPOINT = STATUS_BREAKPOINT
|
||||
EXCEPTION_SINGLE_STEP = STATUS_SINGLE_STEP
|
||||
EXCEPTION_ARRAY_BOUNDS_EXCEEDED = STATUS_ARRAY_BOUNDS_EXCEEDED
|
||||
EXCEPTION_FLT_DENORMAL_OPERAND = STATUS_FLOAT_DENORMAL_OPERAND
|
||||
EXCEPTION_FLT_DIVIDE_BY_ZERO = STATUS_FLOAT_DIVIDE_BY_ZERO
|
||||
EXCEPTION_FLT_INEXACT_RESULT = STATUS_FLOAT_INEXACT_RESULT
|
||||
EXCEPTION_FLT_INVALID_OPERATION = STATUS_FLOAT_INVALID_OPERATION
|
||||
EXCEPTION_FLT_OVERFLOW = STATUS_FLOAT_OVERFLOW
|
||||
EXCEPTION_FLT_STACK_CHECK = STATUS_FLOAT_STACK_CHECK
|
||||
EXCEPTION_FLT_UNDERFLOW = STATUS_FLOAT_UNDERFLOW
|
||||
EXCEPTION_INT_DIVIDE_BY_ZERO = STATUS_INTEGER_DIVIDE_BY_ZERO
|
||||
EXCEPTION_INT_OVERFLOW = STATUS_INTEGER_OVERFLOW
|
||||
EXCEPTION_ILLEGAL_INSTRUCTION = STATUS_ILLEGAL_INSTRUCTION
|
||||
EXCEPTION_PRIV_INSTRUCTION = STATUS_PRIVILEGED_INSTRUCTION
|
||||
EXCEPTION_IN_PAGE_ERROR = STATUS_IN_PAGE_ERROR
|
||||
|
||||
; Registry options
|
||||
|
||||
REG_OPTION_RESERVED = 0
|
||||
REG_OPTION_NON_VOLATILE = 0
|
||||
REG_OPTION_VOLATILE = 1
|
||||
REG_OPTION_CREATE_LINK = 2
|
||||
REG_OPTION_BACKUP_RESTORE = 4
|
||||
REG_CREATED_NEW_KEY = 1
|
||||
REG_OPENED_EXISTING_KEY = 2
|
||||
REG_WHOLE_HIVE_VOLATILE = 1
|
||||
REG_REFRESH_HIVE = 2
|
||||
REG_NOTIFY_CHANGE_NAME = 1
|
||||
REG_NOTIFY_CHANGE_ATTRIBUTES = 2
|
||||
REG_NOTIFY_CHANGE_LAST_SET = 4
|
||||
REG_NOTIFY_CHANGE_SECURITY = 8
|
||||
REG_LEGAL_CHANGE_FILTER = REG_NOTIFY_CHANGE_NAME or REG_NOTIFY_CHANGE_ATTRIBUTES or REG_NOTIFY_CHANGE_LAST_SET or REG_NOTIFY_CHANGE_SECURITY
|
||||
REG_LEGAL_OPTION = REG_OPTION_RESERVED or REG_OPTION_NON_VOLATILE or REG_OPTION_VOLATILE or REG_OPTION_CREATE_LINK or REG_OPTION_BACKUP_RESTORE
|
||||
REG_NONE = 0
|
||||
REG_SZ = 1
|
||||
REG_EXPAND_SZ = 2
|
||||
REG_BINARY = 3
|
||||
REG_DWORD = 4
|
||||
REG_DWORD_LITTLE_ENDIAN = 4
|
||||
REG_DWORD_BIG_ENDIAN = 5
|
||||
REG_LINK = 6
|
||||
REG_MULTI_SZ = 7
|
||||
REG_RESOURCE_LIST = 8
|
||||
REG_FULL_RESOURCE_DESCRIPTOR = 9
|
||||
REG_RESOURCE_REQUIREMENTS_LIST = 10
|
||||
|
||||
; Registry access modes
|
||||
|
||||
KEY_QUERY_VALUE = 1
|
||||
KEY_SET_VALUE = 2
|
||||
KEY_CREATE_SUB_KEY = 4
|
||||
KEY_ENUMERATE_SUB_KEYS = 8
|
||||
KEY_NOTIFY = 10h
|
||||
KEY_CREATE_LINK = 20h
|
||||
KEY_READ = STANDARD_RIGHTS_READ or KEY_QUERY_VALUE or KEY_ENUMERATE_SUB_KEYS or KEY_NOTIFY and not SYNCHRONIZE
|
||||
KEY_WRITE = STANDARD_RIGHTS_WRITE or KEY_SET_VALUE or KEY_CREATE_SUB_KEY and not SYNCHRONIZE
|
||||
KEY_EXECUTE = KEY_READ
|
||||
KEY_ALL_ACCESS = STANDARD_RIGHTS_ALL or KEY_QUERY_VALUE or KEY_SET_VALUE or KEY_CREATE_SUB_KEY or KEY_ENUMERATE_SUB_KEYS or KEY_NOTIFY or KEY_CREATE_LINK and not SYNCHRONIZE
|
||||
|
||||
; Predefined registry keys
|
||||
|
||||
HKEY_CLASSES_ROOT = 80000000h
|
||||
HKEY_CURRENT_USER = 80000001h
|
||||
HKEY_LOCAL_MACHINE = 80000002h
|
||||
HKEY_USERS = 80000003h
|
||||
HKEY_PERFORMANCE_DATA = 80000004h
|
||||
HKEY_CURRENT_CONFIG = 80000005h
|
||||
HKEY_DYN_DATA = 80000006h
|
||||
|
||||
; FormatMessage flags
|
||||
|
||||
FORMAT_MESSAGE_ALLOCATE_BUFFER = 0100h
|
||||
FORMAT_MESSAGE_IGNORE_INSERTS = 0200h
|
||||
FORMAT_MESSAGE_FROM_STRING = 0400h
|
||||
FORMAT_MESSAGE_FROM_HMODULE = 0800h
|
||||
FORMAT_MESSAGE_FROM_SYSTEM = 1000h
|
||||
FORMAT_MESSAGE_ARGUMENT_ARRAY = 2000h
|
||||
FORMAT_MESSAGE_MAX_WIDTH_MASK = 00FFh
|
||||
|
||||
; Language identifiers
|
||||
|
||||
LANG_NEUTRAL = 00h
|
||||
LANG_BULGARIAN = 02h
|
||||
LANG_CHINESE = 04h
|
||||
LANG_CROATIAN = 1Ah
|
||||
LANG_CZECH = 05h
|
||||
LANG_DANISH = 06h
|
||||
LANG_DUTCH = 13h
|
||||
LANG_ENGLISH = 09h
|
||||
LANG_FINNISH = 0Bh
|
||||
LANG_FRENCH = 0Ch
|
||||
LANG_GERMAN = 07h
|
||||
LANG_GREEK = 08h
|
||||
LANG_HUNGARIAN = 0Eh
|
||||
LANG_ICELANDIC = 0Fh
|
||||
LANG_ITALIAN = 10h
|
||||
LANG_JAPANESE = 11h
|
||||
LANG_KOREAN = 12h
|
||||
LANG_NORWEGIAN = 14h
|
||||
LANG_POLISH = 15h
|
||||
LANG_PORTUGUESE = 16h
|
||||
LANG_ROMANIAN = 18h
|
||||
LANG_RUSSIAN = 19h
|
||||
LANG_SLOVAK = 1Bh
|
||||
LANG_SLOVENIAN = 24h
|
||||
LANG_SPANISH = 0Ah
|
||||
LANG_SWEDISH = 1Dh
|
||||
LANG_THAI = 1Eh
|
||||
LANG_TURKISH = 1Fh
|
||||
|
||||
; Sublanguage identifiers
|
||||
|
||||
SUBLANG_NEUTRAL = 00h shl 10
|
||||
SUBLANG_DEFAULT = 01h shl 10
|
||||
SUBLANG_SYS_DEFAULT = 02h shl 10
|
||||
SUBLANG_CHINESE_TRADITIONAL = 01h shl 10
|
||||
SUBLANG_CHINESE_SIMPLIFIED = 02h shl 10
|
||||
SUBLANG_CHINESE_HONGKONG = 03h shl 10
|
||||
SUBLANG_CHINESE_SINGAPORE = 04h shl 10
|
||||
SUBLANG_DUTCH = 01h shl 10
|
||||
SUBLANG_DUTCH_BELGIAN = 02h shl 10
|
||||
SUBLANG_ENGLISH_US = 01h shl 10
|
||||
SUBLANG_ENGLISH_UK = 02h shl 10
|
||||
SUBLANG_ENGLISH_AUS = 03h shl 10
|
||||
SUBLANG_ENGLISH_CAN = 04h shl 10
|
||||
SUBLANG_ENGLISH_NZ = 05h shl 10
|
||||
SUBLANG_ENGLISH_EIRE = 06h shl 10
|
||||
SUBLANG_FRENCH = 01h shl 10
|
||||
SUBLANG_FRENCH_BELGIAN = 02h shl 10
|
||||
SUBLANG_FRENCH_CANADIAN = 03h shl 10
|
||||
SUBLANG_FRENCH_SWISS = 04h shl 10
|
||||
SUBLANG_GERMAN = 01h shl 10
|
||||
SUBLANG_GERMAN_SWISS = 02h shl 10
|
||||
SUBLANG_GERMAN_AUSTRIAN = 03h shl 10
|
||||
SUBLANG_ITALIAN = 01h shl 10
|
||||
SUBLANG_ITALIAN_SWISS = 02h shl 10
|
||||
SUBLANG_NORWEGIAN_BOKMAL = 01h shl 10
|
||||
SUBLANG_NORWEGIAN_NYNORSK = 02h shl 10
|
||||
SUBLANG_PORTUGUESE = 02h shl 10
|
||||
SUBLANG_PORTUGUESE_BRAZILIAN = 01h shl 10
|
||||
SUBLANG_SPANISH = 01h shl 10
|
||||
SUBLANG_SPANISH_MEXICAN = 02h shl 10
|
||||
SUBLANG_SPANISH_MODERN = 03h shl 10
|
||||
|
||||
; Sorting identifiers
|
||||
|
||||
SORT_DEFAULT = 0 shl 16
|
||||
SORT_JAPANESE_XJIS = 0 shl 16
|
||||
SORT_JAPANESE_UNICODE = 1 shl 16
|
||||
SORT_CHINESE_BIG5 = 0 shl 16
|
||||
SORT_CHINESE_PRCP = 0 shl 16
|
||||
SORT_CHINESE_UNICODE = 1 shl 16
|
||||
SORT_CHINESE_PRC = 2 shl 16
|
||||
SORT_CHINESE_BOPOMOFO = 3 shl 16
|
||||
SORT_KOREAN_KSC = 0 shl 16
|
||||
SORT_KOREAN_UNICODE = 1 shl 16
|
||||
SORT_GERMAN_PHONE_BOOK = 1 shl 16
|
||||
SORT_HUNGARIAN_DEFAULT = 0 shl 16
|
||||
SORT_HUNGARIAN_TECHNICAL = 1 shl 16
|
||||
|
||||
; Code pages
|
||||
|
||||
CP_ACP = 0 ; default to ANSI code page
|
||||
CP_OEMCP = 1 ; default to OEM code page
|
||||
CP_MACCP = 2 ; default to MAC code page
|
||||
CP_THREAD_ACP = 3 ; current thread's ANSI code page
|
||||
CP_SYMBOL = 42 ; SYMBOL translations
|
||||
CP_UTF7 = 65000 ; UTF-7 translation
|
||||
CP_UTF8 = 65001 ; UTF-8 translation
|
||||
|
||||
; Resource types
|
||||
|
||||
RT_CURSOR = 1
|
||||
RT_BITMAP = 2
|
||||
RT_ICON = 3
|
||||
RT_MENU = 4
|
||||
RT_DIALOG = 5
|
||||
RT_STRING = 6
|
||||
RT_FONTDIR = 7
|
||||
RT_FONT = 8
|
||||
RT_ACCELERATOR = 9
|
||||
RT_RCDATA = 10
|
||||
RT_MESSAGETABLE = 11
|
||||
RT_GROUP_CURSOR = 12
|
||||
RT_GROUP_ICON = 14
|
||||
RT_VERSION = 16
|
||||
RT_DLGINCLUDE = 17
|
||||
RT_PLUGPLAY = 19
|
||||
RT_VXD = 20
|
||||
RT_ANICURSOR = 21
|
||||
RT_ANIICON = 22
|
||||
RT_HTML = 23
|
||||
RT_MANIFEST = 24
|
||||
|
||||
; Clipboard formats
|
||||
|
||||
CF_TEXT = 001h
|
||||
CF_BITMAP = 002h
|
||||
CF_METAFILEPICT = 003h
|
||||
CF_SYLK = 004h
|
||||
CF_DIF = 005h
|
||||
CF_TIFF = 006h
|
||||
CF_OEMTEXT = 007h
|
||||
CF_DIB = 008h
|
||||
CF_PALETTE = 009h
|
||||
CF_PENDATA = 00Ah
|
||||
CF_RIFF = 00Bh
|
||||
CF_WAVE = 00Ch
|
||||
CF_UNICODETEXT = 00Dh
|
||||
CF_ENHMETAFILE = 00Eh
|
||||
CF_HDROP = 00Fh
|
||||
CF_LOCALE = 010h
|
||||
CF_OWNERDISPLAY = 080h
|
||||
CF_DSPTEXT = 081h
|
||||
CF_DSPBITMAP = 082h
|
||||
CF_DSPMETAFILEPICT = 083h
|
||||
CF_DSPENHMETAFILE = 08Eh
|
||||
CF_PRIVATEFIRST = 200h
|
||||
CF_PRIVATELAST = 2FFh
|
||||
CF_GDIOBJFIRST = 300h
|
||||
CF_GDIOBJLAST = 3FFh
|
||||
|
||||
; OS types for version info
|
||||
|
||||
VOS_UNKNOWN = 00000000h
|
||||
VOS_DOS = 00010000h
|
||||
VOS_OS216 = 00020000h
|
||||
VOS_OS232 = 00030000h
|
||||
VOS_NT = 00040000h
|
||||
VOS__BASE = 00000000h
|
||||
VOS__WINDOWS16 = 00000001h
|
||||
VOS__PM16 = 00000002h
|
||||
VOS__PM32 = 00000003h
|
||||
VOS__WINDOWS32 = 00000004h
|
||||
VOS_DOS_WINDOWS16 = 00010001h
|
||||
VOS_DOS_WINDOWS32 = 00010004h
|
||||
VOS_OS216_PM16 = 00020002h
|
||||
VOS_OS232_PM32 = 00030003h
|
||||
VOS_NT_WINDOWS32 = 00040004h
|
||||
|
||||
; File types for version info
|
||||
|
||||
VFT_UNKNOWN = 00000000h
|
||||
VFT_APP = 00000001h
|
||||
VFT_DLL = 00000002h
|
||||
VFT_DRV = 00000003h
|
||||
VFT_FONT = 00000004h
|
||||
VFT_VXD = 00000005h
|
||||
VFT_STATIC_LIB = 00000007h
|
||||
|
||||
; File subtypes for version info
|
||||
|
||||
VFT2_UNKNOWN = 00000000h
|
||||
VFT2_DRV_PRINTER = 00000001h
|
||||
VFT2_DRV_KEYBOARD = 00000002h
|
||||
VFT2_DRV_LANGUAGE = 00000003h
|
||||
VFT2_DRV_DISPLAY = 00000004h
|
||||
VFT2_DRV_MOUSE = 00000005h
|
||||
VFT2_DRV_NETWORK = 00000006h
|
||||
VFT2_DRV_SYSTEM = 00000007h
|
||||
VFT2_DRV_INSTALLABLE = 00000008h
|
||||
VFT2_DRV_SOUND = 00000009h
|
||||
VFT2_DRV_COMM = 0000000Ah
|
||||
VFT2_DRV_INPUTMETHOD = 0000000Bh
|
||||
VFT2_DRV_VERSIONED_PRINTER = 0000000Ch
|
||||
VFT2_FONT_RASTER = 00000001h
|
||||
VFT2_FONT_VECTOR = 00000002h
|
||||
VFT2_FONT_TRUETYPE = 00000003h
|
||||
|
||||
; Console control signals
|
||||
|
||||
CTRL_C_EVENT = 0
|
||||
CTRL_BREAK_EVENT = 1
|
||||
CTRL_CLOSE_EVENT = 2
|
||||
CTRL_LOGOFF_EVENT = 5
|
||||
CTRL_SHUTDOWN_EVENT = 6
|
||||
128
toolchain/fasmw17332/INCLUDE/EQUATES/SHELL32.INC
Normal file
128
toolchain/fasmw17332/INCLUDE/EQUATES/SHELL32.INC
Normal file
@@ -0,0 +1,128 @@
|
||||
|
||||
; SHELL32.DLL structures and constants
|
||||
|
||||
struct NOTIFYICONDATA
|
||||
cbSize dd ?
|
||||
hWnd dd ?
|
||||
uID dd ?
|
||||
uFlags dd ?
|
||||
uCallbackMessage dd ?
|
||||
hIcon dd ?
|
||||
szTip TCHAR 64 dup (?)
|
||||
ends
|
||||
|
||||
struct NOTIFYICONDATAA
|
||||
cbSize dd ?
|
||||
hWnd dd ?
|
||||
uID dd ?
|
||||
uFlags dd ?
|
||||
uCallbackMessage dd ?
|
||||
hIcon dd ?
|
||||
szTip db 64 dup (?)
|
||||
ends
|
||||
|
||||
struct NOTIFYICONDATAW
|
||||
cbSize dd ?
|
||||
hWnd dd ?
|
||||
uID dd ?
|
||||
uFlags dd ?
|
||||
uCallbackMessage dd ?
|
||||
hIcon dd ?
|
||||
szTip du 64 dup (?)
|
||||
ends
|
||||
|
||||
struct BROWSEINFO
|
||||
hwndOwner dd ?
|
||||
pidlRoot dd ?
|
||||
pszDisplayName dd ?
|
||||
lpszTitle dd ?
|
||||
ulFlags dd ?
|
||||
lpfn dd ?
|
||||
lParam dd ?
|
||||
iImage dd ?
|
||||
ends
|
||||
|
||||
; Taskbar icon messages
|
||||
|
||||
NIM_ADD = 0
|
||||
NIM_MODIFY = 1
|
||||
NIM_DELETE = 2
|
||||
NIM_SETFOCUS = 3
|
||||
NIM_SETVERSION = 4
|
||||
|
||||
; Taskbar icon flags
|
||||
|
||||
NIF_MESSAGE = 01h
|
||||
NIF_ICON = 02h
|
||||
NIF_TIP = 04h
|
||||
NIF_STATE = 08h
|
||||
NIF_INFO = 10h
|
||||
NIF_GUID = 20h
|
||||
|
||||
; Constant Special Item ID List
|
||||
|
||||
CSIDL_DESKTOP = 0x0000
|
||||
CSIDL_INTERNET = 0x0001
|
||||
CSIDL_PROGRAMS = 0x0002
|
||||
CSIDL_CONTROLS = 0x0003
|
||||
CSIDL_PRINTERS = 0x0004
|
||||
CSIDL_PERSONAL = 0x0005
|
||||
CSIDL_FAVORITES = 0x0006
|
||||
CSIDL_STARTUP = 0x0007
|
||||
CSIDL_RECENT = 0x0008
|
||||
CSIDL_SENDTO = 0x0009
|
||||
CSIDL_BITBUCKET = 0x000A
|
||||
CSIDL_STARTMENU = 0x000B
|
||||
CSIDL_MYDOCUMENTS = 0x000C
|
||||
CSIDL_MYMUSIC = 0x000D
|
||||
CSIDL_MYVIDEO = 0x000E
|
||||
CSIDL_DESKTOPDIRECTORY = 0x0010
|
||||
CSIDL_DRIVES = 0x0011
|
||||
CSIDL_NETWORK = 0x0012
|
||||
CSIDL_NETHOOD = 0x0013
|
||||
CSIDL_FONTS = 0x0014
|
||||
CSIDL_TEMPLATES = 0x0015
|
||||
CSIDL_COMMON_STARTMENU = 0x0016
|
||||
CSIDL_COMMON_PROGRAMS = 0x0017
|
||||
CSIDL_COMMON_STARTUP = 0x0018
|
||||
CSIDL_COMMON_DESKTOPDIRECTORY = 0x0019
|
||||
CSIDL_APPDATA = 0x001A
|
||||
CSIDL_PRINTHOOD = 0x001B
|
||||
CSIDL_LOCAL_APPDATA = 0x001C
|
||||
CSIDL_ALTSTARTUP = 0x001D
|
||||
CSIDL_COMMON_ALTSTARTUP = 0x001E
|
||||
CSIDL_COMMON_FAVORITES = 0x001F
|
||||
CSIDL_INTERNET_CACHE = 0x0020
|
||||
CSIDL_COOKIES = 0x0021
|
||||
CSIDL_HISTORY = 0x0022
|
||||
CSIDL_COMMON_APPDATA = 0x0023
|
||||
CSIDL_WINDOWS = 0x0024
|
||||
CSIDL_SYSTEM = 0x0025
|
||||
CSIDL_PROGRAM_FILES = 0x0026
|
||||
CSIDL_MYPICTURES = 0x0027
|
||||
CSIDL_PROFILE = 0x0028
|
||||
CSIDL_SYSTEMX86 = 0x0029
|
||||
CSIDL_PROGRAM_FILESX86 = 0x002A
|
||||
CSIDL_PROGRAM_FILES_COMMON = 0x002B
|
||||
CSIDL_PROGRAM_FILES_COMMONX86 = 0x002C
|
||||
CSIDL_COMMON_TEMPLATES = 0x002D
|
||||
CSIDL_COMMON_DOCUMENTS = 0x002E
|
||||
CSIDL_COMMON_ADMINTOOLS = 0x002F
|
||||
CSIDL_ADMINTOOLS = 0x0030
|
||||
CSIDL_CONNECTIONS = 0x0031
|
||||
CSIDL_COMMON_MUSIC = 0x0035
|
||||
CSIDL_COMMON_PICTURES = 0x0036
|
||||
CSIDL_COMMON_VIDEO = 0x0037
|
||||
CSIDL_RESOURCES = 0x0038
|
||||
CSIDL_RESOURCES_LOCALIZED = 0x0039
|
||||
CSIDL_COMMON_OEM_LINKS = 0x003A
|
||||
CSIDL_CDBURN_AREA = 0x003B
|
||||
CSIDL_COMPUTERSNEARME = 0x003D
|
||||
CSIDL_PROFILES = 0x003E
|
||||
CSIDL_FOLDER_MASK = 0x00FF
|
||||
CSIDL_FLAG_PER_USER_INIT = 0x0800
|
||||
CSIDL_FLAG_NO_ALIAS = 0x1000
|
||||
CSIDL_FLAG_DONT_VERIFY = 0x4000
|
||||
CSIDL_FLAG_CREATE = 0x8000
|
||||
CSIDL_FLAG_MASK = 0xFF00
|
||||
|
||||
127
toolchain/fasmw17332/INCLUDE/EQUATES/SHELL64.INC
Normal file
127
toolchain/fasmw17332/INCLUDE/EQUATES/SHELL64.INC
Normal file
@@ -0,0 +1,127 @@
|
||||
|
||||
; SHELL32.DLL structures and constants
|
||||
|
||||
struct NOTIFYICONDATA
|
||||
cbSize dd ?,?
|
||||
hWnd dq ?
|
||||
uID dd ?
|
||||
uFlags dd ?
|
||||
uCallbackMessage dd ?,?
|
||||
hIcon dq ?
|
||||
szTip TCHAR 64 dup (?)
|
||||
ends
|
||||
|
||||
struct NOTIFYICONDATAA
|
||||
cbSize dd ?,?
|
||||
hWnd dq ?
|
||||
uID dd ?
|
||||
uFlags dd ?
|
||||
uCallbackMessage dd ?,?
|
||||
hIcon dq ?
|
||||
szTip db 64 dup (?)
|
||||
ends
|
||||
|
||||
struct NOTIFYICONDATAW
|
||||
cbSize dd ?,?
|
||||
hWnd dq ?
|
||||
uID dd ?
|
||||
uFlags dd ?
|
||||
uCallbackMessage dd ?,?
|
||||
hIcon dq ?
|
||||
szTip du 64 dup (?)
|
||||
ends
|
||||
|
||||
struct BROWSEINFO
|
||||
hwndOwner dq ?
|
||||
pidlRoot dq ?
|
||||
pszDisplayName dq ?
|
||||
lpszTitle dq ?
|
||||
ulFlags dd ?,?
|
||||
lpfn dq ?
|
||||
lParam dq ?
|
||||
iImage dq ?
|
||||
ends
|
||||
|
||||
; Taskbar icon messages
|
||||
|
||||
NIM_ADD = 0
|
||||
NIM_MODIFY = 1
|
||||
NIM_DELETE = 2
|
||||
NIM_SETFOCUS = 3
|
||||
NIM_SETVERSION = 4
|
||||
|
||||
; Taskbar icon flags
|
||||
|
||||
NIF_MESSAGE = 01h
|
||||
NIF_ICON = 02h
|
||||
NIF_TIP = 04h
|
||||
NIF_STATE = 08h
|
||||
NIF_INFO = 10h
|
||||
NIF_GUID = 20h
|
||||
|
||||
; Constant Special Item ID List
|
||||
|
||||
CSIDL_DESKTOP = 0x0000
|
||||
CSIDL_INTERNET = 0x0001
|
||||
CSIDL_PROGRAMS = 0x0002
|
||||
CSIDL_CONTROLS = 0x0003
|
||||
CSIDL_PRINTERS = 0x0004
|
||||
CSIDL_PERSONAL = 0x0005
|
||||
CSIDL_FAVORITES = 0x0006
|
||||
CSIDL_STARTUP = 0x0007
|
||||
CSIDL_RECENT = 0x0008
|
||||
CSIDL_SENDTO = 0x0009
|
||||
CSIDL_BITBUCKET = 0x000A
|
||||
CSIDL_STARTMENU = 0x000B
|
||||
CSIDL_MYDOCUMENTS = 0x000C
|
||||
CSIDL_MYMUSIC = 0x000D
|
||||
CSIDL_MYVIDEO = 0x000E
|
||||
CSIDL_DESKTOPDIRECTORY = 0x0010
|
||||
CSIDL_DRIVES = 0x0011
|
||||
CSIDL_NETWORK = 0x0012
|
||||
CSIDL_NETHOOD = 0x0013
|
||||
CSIDL_FONTS = 0x0014
|
||||
CSIDL_TEMPLATES = 0x0015
|
||||
CSIDL_COMMON_STARTMENU = 0x0016
|
||||
CSIDL_COMMON_PROGRAMS = 0x0017
|
||||
CSIDL_COMMON_STARTUP = 0x0018
|
||||
CSIDL_COMMON_DESKTOPDIRECTORY = 0x0019
|
||||
CSIDL_APPDATA = 0x001A
|
||||
CSIDL_PRINTHOOD = 0x001B
|
||||
CSIDL_LOCAL_APPDATA = 0x001C
|
||||
CSIDL_ALTSTARTUP = 0x001D
|
||||
CSIDL_COMMON_ALTSTARTUP = 0x001E
|
||||
CSIDL_COMMON_FAVORITES = 0x001F
|
||||
CSIDL_INTERNET_CACHE = 0x0020
|
||||
CSIDL_COOKIES = 0x0021
|
||||
CSIDL_HISTORY = 0x0022
|
||||
CSIDL_COMMON_APPDATA = 0x0023
|
||||
CSIDL_WINDOWS = 0x0024
|
||||
CSIDL_SYSTEM = 0x0025
|
||||
CSIDL_PROGRAM_FILES = 0x0026
|
||||
CSIDL_MYPICTURES = 0x0027
|
||||
CSIDL_PROFILE = 0x0028
|
||||
CSIDL_SYSTEMX86 = 0x0029
|
||||
CSIDL_PROGRAM_FILESX86 = 0x002A
|
||||
CSIDL_PROGRAM_FILES_COMMON = 0x002B
|
||||
CSIDL_PROGRAM_FILES_COMMONX86 = 0x002C
|
||||
CSIDL_COMMON_TEMPLATES = 0x002D
|
||||
CSIDL_COMMON_DOCUMENTS = 0x002E
|
||||
CSIDL_COMMON_ADMINTOOLS = 0x002F
|
||||
CSIDL_ADMINTOOLS = 0x0030
|
||||
CSIDL_CONNECTIONS = 0x0031
|
||||
CSIDL_COMMON_MUSIC = 0x0035
|
||||
CSIDL_COMMON_PICTURES = 0x0036
|
||||
CSIDL_COMMON_VIDEO = 0x0037
|
||||
CSIDL_RESOURCES = 0x0038
|
||||
CSIDL_RESOURCES_LOCALIZED = 0x0039
|
||||
CSIDL_COMMON_OEM_LINKS = 0x003A
|
||||
CSIDL_CDBURN_AREA = 0x003B
|
||||
CSIDL_COMPUTERSNEARME = 0x003D
|
||||
CSIDL_PROFILES = 0x003E
|
||||
CSIDL_FOLDER_MASK = 0x00FF
|
||||
CSIDL_FLAG_PER_USER_INIT = 0x0800
|
||||
CSIDL_FLAG_NO_ALIAS = 0x1000
|
||||
CSIDL_FLAG_DONT_VERIFY = 0x4000
|
||||
CSIDL_FLAG_CREATE = 0x8000
|
||||
CSIDL_FLAG_MASK = 0xFF00
|
||||
1934
toolchain/fasmw17332/INCLUDE/EQUATES/USER32.INC
Normal file
1934
toolchain/fasmw17332/INCLUDE/EQUATES/USER32.INC
Normal file
File diff suppressed because it is too large
Load Diff
1935
toolchain/fasmw17332/INCLUDE/EQUATES/USER64.INC
Normal file
1935
toolchain/fasmw17332/INCLUDE/EQUATES/USER64.INC
Normal file
File diff suppressed because it is too large
Load Diff
124
toolchain/fasmw17332/INCLUDE/EQUATES/WSOCK32.INC
Normal file
124
toolchain/fasmw17332/INCLUDE/EQUATES/WSOCK32.INC
Normal file
@@ -0,0 +1,124 @@
|
||||
|
||||
; WSOCK32.DLL structures and constants
|
||||
|
||||
struct WSADATA
|
||||
wVersion dw ?
|
||||
wHighVersion dw ?
|
||||
szDescription db 256+1 dup (?)
|
||||
szSystemStatus db 128+1 dup (?)
|
||||
iMaxSockets dw ?
|
||||
iMaxUdpDg dw ?
|
||||
_padding_ db 2 dup (?)
|
||||
lpVendorInfo dd ?
|
||||
ends
|
||||
|
||||
struct hostent
|
||||
h_name dd ?
|
||||
h_aliases dd ?
|
||||
h_addrtype dw ?
|
||||
h_length dw ?
|
||||
h_addr_list dd ?
|
||||
ends
|
||||
|
||||
struct sockaddr_in
|
||||
sin_family dw ?
|
||||
sin_port dw ?
|
||||
sin_addr dd ?
|
||||
sin_zero db 8 dup (?)
|
||||
ends
|
||||
|
||||
struct sockaddr
|
||||
sa_family dw ?
|
||||
sa_data db 14 dup (?)
|
||||
ends
|
||||
|
||||
; Socket types
|
||||
|
||||
SOCK_STREAM = 1
|
||||
SOCK_DGRAM = 2
|
||||
SOCK_RAW = 3
|
||||
SOCK_RDM = 4
|
||||
SOCK_SEQPACKET = 5
|
||||
|
||||
; Address formats
|
||||
|
||||
AF_UNSPEC = 0
|
||||
AF_UNIX = 1
|
||||
AF_INET = 2
|
||||
AF_IMPLINK = 3
|
||||
AF_PUP = 4
|
||||
AF_CHAOS = 5
|
||||
AF_NS = 6
|
||||
AF_IPX = 6
|
||||
AF_ISO = 7
|
||||
AF_OSI = AF_ISO
|
||||
AF_ECMA = 8
|
||||
AF_DATAKIT = 9
|
||||
AF_CCITT = 10
|
||||
AF_SNA = 11
|
||||
AF_DECnet = 12
|
||||
AF_DLI = 13
|
||||
AF_LAT = 14
|
||||
AF_HYLINK = 15
|
||||
AF_APPLETALK = 16
|
||||
AF_NETBIOS = 17
|
||||
|
||||
; Protocol formats
|
||||
|
||||
PF_UNSPEC = 0
|
||||
PF_UNIX = 1
|
||||
PF_INET = 2
|
||||
PF_IMPLINK = 3
|
||||
PF_PUP = 4
|
||||
PF_CHAOS = 5
|
||||
PF_NS = 6
|
||||
PF_IPX = 6
|
||||
PF_ISO = 7
|
||||
PF_OSI = PF_ISO
|
||||
PF_ECMA = 8
|
||||
PF_DATAKIT = 9
|
||||
PF_CCITT = 10
|
||||
PF_SNA = 11
|
||||
PF_DECnet = 12
|
||||
PF_DLI = 13
|
||||
PF_LAT = 14
|
||||
PF_HYLINK = 15
|
||||
PF_APPLETALK = 16
|
||||
PF_NETBIOS = 17
|
||||
|
||||
; IP Ports
|
||||
|
||||
IPPORT_ECHO = 7
|
||||
IPPORT_DISCARD = 9
|
||||
IPPORT_SYSTAT = 11
|
||||
IPPORT_DAYTIME = 13
|
||||
IPPORT_NETSTAT = 15
|
||||
IPPORT_FTP = 21
|
||||
IPPORT_TELNET = 23
|
||||
IPPORT_SMTP = 25
|
||||
IPPORT_TIMESERVER = 37
|
||||
IPPORT_NAMESERVER = 42
|
||||
IPPORT_WHOIS = 43
|
||||
IPPORT_MTP = 57
|
||||
IPPORT_TFTP = 69
|
||||
IPPORT_RJE = 77
|
||||
IPPORT_FINGER = 79
|
||||
IPPORT_TTYLINK = 87
|
||||
IPPORT_SUPDUP = 95
|
||||
IPPORT_EXECSERVER = 512
|
||||
IPPORT_LOGINSERVER = 513
|
||||
IPPORT_CMDSERVER = 514
|
||||
IPPORT_EFSSERVER = 520
|
||||
IPPORT_BIFFUDP = 512
|
||||
IPPORT_WHOSERVER = 513
|
||||
IPPORT_ROUTESERVER = 520
|
||||
IPPORT_RESERVED = 1024
|
||||
|
||||
; Notifications
|
||||
|
||||
FD_READ = 01h
|
||||
FD_WRITE = 02h
|
||||
FD_OOB = 04h
|
||||
FD_ACCEPT = 08h
|
||||
FD_CONNECT = 10h
|
||||
FD_CLOSE = 20h
|
||||
53
toolchain/fasmw17332/INCLUDE/MACRO/COM32.INC
Normal file
53
toolchain/fasmw17332/INCLUDE/MACRO/COM32.INC
Normal file
@@ -0,0 +1,53 @@
|
||||
|
||||
; Macroinstructions for interfacing the COM (Component Object Model) classes
|
||||
|
||||
macro cominvk object,proc,[arg]
|
||||
{ common
|
||||
if ~ arg eq
|
||||
reverse
|
||||
pushd arg
|
||||
common
|
||||
end if
|
||||
assert defined object#.com.object ; must be a COM object
|
||||
mov eax,[object]
|
||||
push eax
|
||||
mov eax,[eax]
|
||||
call [eax+object#.#proc] }
|
||||
|
||||
macro comcall handle,interface,proc,[arg]
|
||||
{ common
|
||||
if ~ arg eq
|
||||
reverse
|
||||
pushd arg
|
||||
common
|
||||
end if
|
||||
assert defined interface#.com.interface ; must be a COM interface
|
||||
if handle eqtype eax | handle eqtype 0
|
||||
push handle
|
||||
local ..handle
|
||||
label ..handle at handle
|
||||
mov eax,[..handle]
|
||||
else
|
||||
mov eax,handle
|
||||
push eax
|
||||
mov eax,[eax]
|
||||
end if
|
||||
call [eax+interface#.#proc] }
|
||||
|
||||
macro interface name,[proc]
|
||||
{ common
|
||||
struc name \{
|
||||
match , @struct \\{ define field@struct .,name, \\}
|
||||
match no, @struct \\{ . dd ?
|
||||
virtual at 0
|
||||
forward
|
||||
.#proc dd ?
|
||||
common
|
||||
.\#\\.com.object = name#.com.interface
|
||||
end virtual \\} \}
|
||||
virtual at 0
|
||||
forward
|
||||
name#.#proc dd ?
|
||||
common
|
||||
name#.com.interface = $ shr 2
|
||||
end virtual }
|
||||
39
toolchain/fasmw17332/INCLUDE/MACRO/COM64.INC
Normal file
39
toolchain/fasmw17332/INCLUDE/MACRO/COM64.INC
Normal file
@@ -0,0 +1,39 @@
|
||||
|
||||
; Macroinstructions for interfacing the COM (Component Object Model) classes
|
||||
|
||||
macro cominvk object,proc,[arg]
|
||||
{ common
|
||||
assert defined object#.com.object ; must be a COM object
|
||||
macro call dummy
|
||||
\{ mov rax,[rcx]
|
||||
call [rax+object#.#proc] \}
|
||||
fastcall ,[object],arg
|
||||
purge call }
|
||||
|
||||
macro comcall handle,interface,proc,[arg]
|
||||
{ common
|
||||
assert defined interface#.com.interface ; must be a COM interface
|
||||
macro call dummy
|
||||
\{ mov rax,[rcx]
|
||||
call [rax+interface#.#proc] \}
|
||||
fastcall ,handle,arg
|
||||
purge call }
|
||||
|
||||
macro interface name,[proc]
|
||||
{ common
|
||||
struc name \{
|
||||
match , @struct \\{ define field@struct .,name, \\}
|
||||
match no, @struct \\{ . dq ?
|
||||
virtual at 0
|
||||
forward
|
||||
.#proc dq ?
|
||||
common
|
||||
.\#\\.com.object = name#.com.interface
|
||||
end virtual \\} \}
|
||||
virtual at 0
|
||||
forward
|
||||
name#.#proc dq ?
|
||||
common
|
||||
name#.com.interface = $ shr 3
|
||||
end virtual }
|
||||
|
||||
66
toolchain/fasmw17332/INCLUDE/MACRO/EXPORT.INC
Normal file
66
toolchain/fasmw17332/INCLUDE/MACRO/EXPORT.INC
Normal file
@@ -0,0 +1,66 @@
|
||||
|
||||
; Macroinstruction for making export section
|
||||
|
||||
macro export dllname,[label,string]
|
||||
{ common
|
||||
local module,addresses,names,ordinal,count
|
||||
count = 0
|
||||
forward
|
||||
count = count+1
|
||||
common
|
||||
dd 0,0,0,RVA module,1
|
||||
dd count,count,RVA addresses,RVA names,RVA ordinal
|
||||
addresses:
|
||||
forward
|
||||
dd RVA label
|
||||
common
|
||||
names:
|
||||
forward
|
||||
local name
|
||||
dd RVA name
|
||||
common
|
||||
ordinal: count = 0
|
||||
forward
|
||||
dw count
|
||||
count = count+1
|
||||
common
|
||||
module db dllname,0
|
||||
forward
|
||||
name db string,0
|
||||
common
|
||||
local x,y,z,str1,str2,v1,v2
|
||||
x = count shr 1
|
||||
while x > 0
|
||||
y = x
|
||||
while y < count
|
||||
z = y
|
||||
while z-x >= 0
|
||||
load v1 dword from names+z*4
|
||||
str1=($-RVA $)+v1
|
||||
load v2 dword from names+(z-x)*4
|
||||
str2=($-RVA $)+v2
|
||||
while v1 > 0
|
||||
load v1 from str1+%-1
|
||||
load v2 from str2+%-1
|
||||
if v1 <> v2
|
||||
break
|
||||
end if
|
||||
end while
|
||||
if v1<v2
|
||||
load v1 dword from names+z*4
|
||||
load v2 dword from names+(z-x)*4
|
||||
store dword v1 at names+(z-x)*4
|
||||
store dword v2 at names+z*4
|
||||
load v1 word from ordinal+z*2
|
||||
load v2 word from ordinal+(z-x)*2
|
||||
store word v1 at ordinal+(z-x)*2
|
||||
store word v2 at ordinal+z*2
|
||||
else
|
||||
break
|
||||
end if
|
||||
z = z-x
|
||||
end while
|
||||
y = y+1
|
||||
end while
|
||||
x = x shr 1
|
||||
end while }
|
||||
507
toolchain/fasmw17332/INCLUDE/MACRO/IF.INC
Normal file
507
toolchain/fasmw17332/INCLUDE/MACRO/IF.INC
Normal file
@@ -0,0 +1,507 @@
|
||||
|
||||
; Macroinstructions for HLL-style conditional operations
|
||||
|
||||
macro .if [arg]
|
||||
{
|
||||
common
|
||||
__IF equ
|
||||
local ..endif
|
||||
__ENDIF equ ..endif
|
||||
local ..else
|
||||
__ELSE equ ..else
|
||||
JNCOND __ELSE,arg
|
||||
}
|
||||
|
||||
macro .else
|
||||
{
|
||||
jmp __ENDIF
|
||||
__ELSE:
|
||||
restore __IF
|
||||
__IF equ ,
|
||||
}
|
||||
|
||||
macro .elseif [arg]
|
||||
{
|
||||
common
|
||||
jmp __ENDIF
|
||||
__ELSE:
|
||||
restore __ELSE
|
||||
local ..else
|
||||
__ELSE equ ..else
|
||||
JNCOND __ELSE,arg
|
||||
}
|
||||
|
||||
macro .endif
|
||||
{
|
||||
if __IF eq
|
||||
__ELSE:
|
||||
end if
|
||||
__ENDIF:
|
||||
restore __ELSE
|
||||
restore __ENDIF
|
||||
restore __IF
|
||||
}
|
||||
|
||||
macro .while [arg]
|
||||
{
|
||||
common
|
||||
local ..while
|
||||
__WHILE equ ..while
|
||||
local ..endw
|
||||
__ENDW equ ..endw
|
||||
__WHILE:
|
||||
JNCOND __ENDW,arg
|
||||
}
|
||||
|
||||
macro .endw
|
||||
{
|
||||
jmp __WHILE
|
||||
__ENDW:
|
||||
restore __ENDW
|
||||
restore __WHILE
|
||||
}
|
||||
|
||||
macro .repeat
|
||||
{
|
||||
local ..repeat
|
||||
__REPEAT equ ..repeat
|
||||
__REPEAT:
|
||||
}
|
||||
|
||||
macro .until [arg]
|
||||
{
|
||||
common
|
||||
JNCOND __REPEAT,arg
|
||||
restore __REPEAT
|
||||
}
|
||||
|
||||
jnne equ je
|
||||
jnna equ ja
|
||||
jnnb equ jb
|
||||
jnng equ jg
|
||||
jnnl equ jl
|
||||
jnnae equ jae
|
||||
jnnbe equ jbe
|
||||
jnnge equ jge
|
||||
jnnle equ jle
|
||||
|
||||
macro JNCOND label,v1,c,v2
|
||||
{
|
||||
match any,c
|
||||
\{
|
||||
cmp v1,v2
|
||||
jn\#c label
|
||||
\}
|
||||
match ,c
|
||||
\{
|
||||
PARSECOND parsed@cond,v1
|
||||
match cond,parsed@cond \\{ JNCONDEXPR label,cond \\}
|
||||
\}
|
||||
}
|
||||
|
||||
gt equ >
|
||||
lt equ <
|
||||
|
||||
macro PARSECOND parsed,cond
|
||||
{
|
||||
define parsed
|
||||
define neg@cond
|
||||
define status@cond
|
||||
define nest@cond
|
||||
irps symb,cond
|
||||
\{
|
||||
define symb@cond symb
|
||||
match >,symb
|
||||
\\{
|
||||
define symb@cond gt
|
||||
\\}
|
||||
match <,symb
|
||||
\\{
|
||||
define symb@cond lt
|
||||
\\}
|
||||
current@cond equ status@cond
|
||||
match ,current@cond
|
||||
\\{
|
||||
match ~,symb
|
||||
\\\{
|
||||
neg@cond equ neg@cond ~
|
||||
match ~~,neg@cond
|
||||
\\\\{
|
||||
define neg@cond
|
||||
\\\\}
|
||||
define symb@cond
|
||||
\\\}
|
||||
match (,symb
|
||||
\\\{
|
||||
parsed equ parsed neg@cond,<
|
||||
define nest@cond +
|
||||
define symb@cond
|
||||
define neg@cond
|
||||
\\\}
|
||||
match any,symb@cond
|
||||
\\\{
|
||||
parsed equ parsed neg@cond,symb@cond
|
||||
define status@cond +
|
||||
\\\}
|
||||
\\}
|
||||
match status,current@cond
|
||||
\\{
|
||||
match &,symb
|
||||
\\\{
|
||||
parsed equ parsed,&,
|
||||
define status@cond
|
||||
define symb@cond
|
||||
define neg@cond
|
||||
\\\}
|
||||
match |,symb
|
||||
\\\{
|
||||
parsed equ parsed,|,
|
||||
define status@cond
|
||||
define symb@cond
|
||||
define neg@cond
|
||||
\\\}
|
||||
match (,symb
|
||||
\\\{
|
||||
define nest@cond (
|
||||
\\\}
|
||||
match ),symb
|
||||
\\\{
|
||||
match +,nest@cond
|
||||
\\\\{
|
||||
parsed equ parsed>
|
||||
define symb@cond
|
||||
\\\\}
|
||||
restore nest@cond
|
||||
\\\}
|
||||
match any,symb@cond
|
||||
\\\{
|
||||
parsed equ parsed symb@cond
|
||||
\\\}
|
||||
\\}
|
||||
\}
|
||||
}
|
||||
|
||||
macro define_JNCONDEXPR
|
||||
{
|
||||
macro JNCONDEXPR elabel,[mod,cond,op]
|
||||
\{
|
||||
\common
|
||||
\local ..t,..f
|
||||
define t@cond ..t
|
||||
define f@cond ..f
|
||||
\forward
|
||||
match ,op
|
||||
\\{
|
||||
match ,mod \\\{ JNCONDEL elabel,<cond> \\\}
|
||||
match ~,mod \\\{ JCONDEL elabel,<cond> \\\}
|
||||
\\}
|
||||
match &:flabel:tlabel, op:f@cond:t@cond
|
||||
\\{
|
||||
match ,mod \\\{ JNCONDEL flabel,<cond> \\\}
|
||||
match ~,mod \\\{ JCONDEL flabel,<cond> \\\}
|
||||
tlabel:
|
||||
\\local ..tnew
|
||||
restore t@cond
|
||||
define t@cond ..tnew
|
||||
\\}
|
||||
match |:flabel:tlabel, op:f@cond:t@cond
|
||||
\\{
|
||||
match ,mod \\\{ JCONDEL tlabel,<cond> \\\}
|
||||
match ~,mod \\\{ JNCONDEL tlabel,<cond> \\\}
|
||||
flabel:
|
||||
\\local ..fnew
|
||||
restore f@cond
|
||||
define f@cond ..fnew
|
||||
\\}
|
||||
\common
|
||||
label f@cond at elabel
|
||||
t@cond:
|
||||
restore t@cond
|
||||
restore f@cond
|
||||
\}
|
||||
}
|
||||
|
||||
macro define_JCONDEXPR
|
||||
{
|
||||
macro JCONDEXPR elabel,[mod,cond,op]
|
||||
\{
|
||||
\common
|
||||
\local ..t,..f
|
||||
define t@cond ..t
|
||||
define f@cond ..f
|
||||
\forward
|
||||
match ,op
|
||||
\\{
|
||||
match ,mod \\\{ JCONDEL elabel,<cond> \\\}
|
||||
match ~,mod \\\{ JNCONDEL elabel,<cond> \\\}
|
||||
\\}
|
||||
match |:flabel:tlabel, op:f@cond:t@cond
|
||||
\\{
|
||||
match ,mod \\\{ JCONDEL flabel,<cond> \\\}
|
||||
match ~,mod \\\{ JNCONDEL flabel,<cond> \\\}
|
||||
tlabel:
|
||||
\\local ..tnew
|
||||
restore t@cond
|
||||
define t@cond ..tnew
|
||||
\\}
|
||||
match &:flabel:tlabel, op:f@cond:t@cond
|
||||
\\{
|
||||
match ,mod \\\{ JNCONDEL tlabel,<cond> \\\}
|
||||
match ~,mod \\\{ JCONDEL tlabel,<cond> \\\}
|
||||
flabel:
|
||||
\\local ..fnew
|
||||
restore f@cond
|
||||
define f@cond ..fnew
|
||||
\\}
|
||||
\common
|
||||
label f@cond at elabel
|
||||
t@cond:
|
||||
restore t@cond
|
||||
restore f@cond
|
||||
\}
|
||||
}
|
||||
|
||||
macro define_JNCONDEL
|
||||
{
|
||||
macro JNCONDEL label,cond
|
||||
\{
|
||||
\local COND
|
||||
match car=,cdr,:cond
|
||||
\\{
|
||||
define_JNCONDEXPR
|
||||
define_JCONDEXPR
|
||||
define_JCONDEL
|
||||
define_JNCONDEL
|
||||
JNCONDEXPR label,cond
|
||||
purge JNCONDEXPR,JCONDEXPR,JCONDEL,JNCONDEL
|
||||
define COND
|
||||
\\}
|
||||
match c,cond ; replace gt and lt
|
||||
\\{
|
||||
match =COND =signed v1>==v2, COND c
|
||||
\\\{
|
||||
cmp v1,v2
|
||||
jl label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND =signed v1<==v2, COND c
|
||||
\\\{
|
||||
cmp v1,v2
|
||||
jg label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND v1>==v2, COND c
|
||||
\\\{
|
||||
cmp v1,v2
|
||||
jb label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND v1<==v2, COND c
|
||||
\\\{
|
||||
cmp v1,v2
|
||||
ja label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND v1==v2, COND c
|
||||
\\\{
|
||||
cmp v1,v2
|
||||
jne label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND v1<>v2, COND c
|
||||
\\\{
|
||||
cmp v1,v2
|
||||
je label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND =signed v1>v2, COND c
|
||||
\\\{
|
||||
cmp v1,v2
|
||||
jle label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND =signed v1<v2, COND c
|
||||
\\\{
|
||||
cmp v1,v2
|
||||
jge label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND v1>v2, COND c
|
||||
\\\{
|
||||
cmp v1,v2
|
||||
jbe label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND v1<v2, COND c
|
||||
\\\{
|
||||
cmp v1,v2
|
||||
jae label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND =ZERO?, COND c
|
||||
\\\{
|
||||
jnz label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND =CARRY?, COND c
|
||||
\\\{
|
||||
jnc label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND =OVERFLOW?, COND c
|
||||
\\\{
|
||||
jno label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND =SIGN?, COND c
|
||||
\\\{
|
||||
jns label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND =PARITY?, COND c
|
||||
\\\{
|
||||
jnp label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND v, COND c
|
||||
\\\{
|
||||
if v eqtype 0
|
||||
if ~ v
|
||||
jmp label
|
||||
end if
|
||||
else if v eqtype eax
|
||||
test v,v
|
||||
jz label
|
||||
else
|
||||
cmp v,0
|
||||
je label
|
||||
end if
|
||||
\\\}
|
||||
\\}
|
||||
\}
|
||||
}
|
||||
|
||||
macro define_JCONDEL
|
||||
{
|
||||
macro JCONDEL label,cond
|
||||
\{
|
||||
\local COND
|
||||
match car=,cdr,:cond
|
||||
\\{
|
||||
define_JNCONDEXPR
|
||||
define_JCONDEXPR
|
||||
define_JCONDEL
|
||||
define_JNCONDEL
|
||||
JCONDEXPR label,cond
|
||||
purge JNCONDEXPR,JCONDEXPR,JCONDEL,JNCONDEL
|
||||
define COND
|
||||
\\}
|
||||
match c,cond ; replace gt and lt
|
||||
\\{
|
||||
match =COND =signed v1>==v2, COND c
|
||||
\\\{
|
||||
cmp v1,v2
|
||||
jge label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND =signed v1<==v2, COND c
|
||||
\\\{
|
||||
cmp v1,v2
|
||||
jle label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND v1>==v2, COND c
|
||||
\\\{
|
||||
cmp v1,v2
|
||||
jae label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND v1<==v2, COND c
|
||||
\\\{
|
||||
cmp v1,v2
|
||||
jbe label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND v1==v2, COND c
|
||||
\\\{
|
||||
cmp v1,v2
|
||||
je label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND v1<>v2, COND c
|
||||
\\\{
|
||||
cmp v1,v2
|
||||
jne label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND =signed v1>v2, COND c
|
||||
\\\{
|
||||
cmp v1,v2
|
||||
jg label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND =signed v1<v2, COND c
|
||||
\\\{
|
||||
cmp v1,v2
|
||||
jl label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND v1>v2, COND c
|
||||
\\\{
|
||||
cmp v1,v2
|
||||
ja label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND v1<v2, COND c
|
||||
\\\{
|
||||
cmp v1,v2
|
||||
jb label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND =ZERO?, COND c
|
||||
\\\{
|
||||
jz label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND =CARRY?, COND c
|
||||
\\\{
|
||||
jc label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND =OVERFLOW?, COND c
|
||||
\\\{
|
||||
jo label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND =SIGN?, COND c
|
||||
\\\{
|
||||
js label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND =PARITY?, COND c
|
||||
\\\{
|
||||
jp label
|
||||
define COND
|
||||
\\\}
|
||||
match =COND v, COND c
|
||||
\\\{
|
||||
if v eqtype 0
|
||||
if v
|
||||
jmp label
|
||||
end if
|
||||
else if v eqtype eax
|
||||
test v,v
|
||||
jnz label
|
||||
else
|
||||
cmp v,0
|
||||
jne label
|
||||
end if
|
||||
\\\}
|
||||
\\}
|
||||
\}
|
||||
}
|
||||
|
||||
define_JNCONDEXPR
|
||||
define_JCONDEXPR
|
||||
define_JNCONDEL
|
||||
define_JCONDEL
|
||||
68
toolchain/fasmw17332/INCLUDE/MACRO/IMPORT32.INC
Normal file
68
toolchain/fasmw17332/INCLUDE/MACRO/IMPORT32.INC
Normal file
@@ -0,0 +1,68 @@
|
||||
|
||||
; Macroinstructions for making import section
|
||||
|
||||
macro library [name,string]
|
||||
{ common
|
||||
import.data:
|
||||
forward
|
||||
local _label
|
||||
if defined name#.redundant
|
||||
if ~ name#.redundant
|
||||
dd RVA name#.lookup,0,0,RVA _label,RVA name#.address
|
||||
end if
|
||||
end if
|
||||
name#.referred = 1
|
||||
common
|
||||
dd 0,0,0,0,0
|
||||
forward
|
||||
if defined name#.redundant
|
||||
if ~ name#.redundant
|
||||
_label db string,0
|
||||
rb RVA $ and 1
|
||||
end if
|
||||
end if }
|
||||
|
||||
macro import name,[label,string]
|
||||
{ common
|
||||
rb (- rva $) and 3
|
||||
if defined name#.referred
|
||||
name#.lookup:
|
||||
forward
|
||||
if used label
|
||||
if string eqtype ''
|
||||
local _label
|
||||
dd RVA _label
|
||||
else
|
||||
dd 80000000h + string
|
||||
end if
|
||||
end if
|
||||
common
|
||||
if $ > name#.lookup
|
||||
name#.redundant = 0
|
||||
dd 0
|
||||
else
|
||||
name#.redundant = 1
|
||||
end if
|
||||
name#.address:
|
||||
forward
|
||||
if used label
|
||||
if string eqtype ''
|
||||
label dd RVA _label
|
||||
else
|
||||
label dd 80000000h + string
|
||||
end if
|
||||
end if
|
||||
common
|
||||
if ~ name#.redundant
|
||||
dd 0
|
||||
end if
|
||||
forward
|
||||
if used label & string eqtype ''
|
||||
_label dw 0
|
||||
db string,0
|
||||
rb RVA $ and 1
|
||||
end if
|
||||
common
|
||||
end if }
|
||||
|
||||
macro api [name] {}
|
||||
68
toolchain/fasmw17332/INCLUDE/MACRO/IMPORT64.INC
Normal file
68
toolchain/fasmw17332/INCLUDE/MACRO/IMPORT64.INC
Normal file
@@ -0,0 +1,68 @@
|
||||
|
||||
; Macroinstructions for making import section (64-bit)
|
||||
|
||||
macro library [name,string]
|
||||
{ common
|
||||
import.data:
|
||||
forward
|
||||
local _label
|
||||
if defined name#.redundant
|
||||
if ~ name#.redundant
|
||||
dd RVA name#.lookup,0,0,RVA _label,RVA name#.address
|
||||
end if
|
||||
end if
|
||||
name#.referred = 1
|
||||
common
|
||||
dd 0,0,0,0,0
|
||||
forward
|
||||
if defined name#.redundant
|
||||
if ~ name#.redundant
|
||||
_label db string,0
|
||||
rb RVA $ and 1
|
||||
end if
|
||||
end if }
|
||||
|
||||
macro import name,[label,string]
|
||||
{ common
|
||||
rb (- rva $) and 7
|
||||
if defined name#.referred
|
||||
name#.lookup:
|
||||
forward
|
||||
if used label
|
||||
if string eqtype ''
|
||||
local _label
|
||||
dq RVA _label
|
||||
else
|
||||
dq 8000000000000000h + string
|
||||
end if
|
||||
end if
|
||||
common
|
||||
if $ > name#.lookup
|
||||
name#.redundant = 0
|
||||
dq 0
|
||||
else
|
||||
name#.redundant = 1
|
||||
end if
|
||||
name#.address:
|
||||
forward
|
||||
if used label
|
||||
if string eqtype ''
|
||||
label dq RVA _label
|
||||
else
|
||||
label dq 8000000000000000h + string
|
||||
end if
|
||||
end if
|
||||
common
|
||||
if ~ name#.redundant
|
||||
dq 0
|
||||
end if
|
||||
forward
|
||||
if used label & string eqtype ''
|
||||
_label dw 0
|
||||
db string,0
|
||||
rb RVA $ and 1
|
||||
end if
|
||||
common
|
||||
end if }
|
||||
|
||||
macro api [name] {}
|
||||
66
toolchain/fasmw17332/INCLUDE/MACRO/MASM.INC
Normal file
66
toolchain/fasmw17332/INCLUDE/MACRO/MASM.INC
Normal file
@@ -0,0 +1,66 @@
|
||||
|
||||
; Simulate MASM's syntax
|
||||
|
||||
struc struct
|
||||
{ struct .
|
||||
name@struct equ . }
|
||||
|
||||
struc ends
|
||||
{ match =.,name@struct \{ ends \} }
|
||||
|
||||
struc proc [params]
|
||||
{ common define@proc .,<params>
|
||||
name@proc equ . }
|
||||
|
||||
struc endp
|
||||
{ match =.,name@proc \{ endp \} }
|
||||
|
||||
macro option setting
|
||||
{ match =prologue:macro, setting \{ prologue@proc equ macro \}
|
||||
match =epilogue:macro, setting \{ epilogue@proc equ macro \} }
|
||||
|
||||
macro none procname,flag,parmbytes,localbytes,reglist { }
|
||||
|
||||
macro assume params
|
||||
{
|
||||
local expr
|
||||
define expr params
|
||||
match reg:struct, expr
|
||||
\{
|
||||
match assumed, reg\#@assumed \\{ irp name, assumed \\\{ restore name \\\} \\}
|
||||
macro label . \\{ local def
|
||||
define def .
|
||||
match =reg =at label, def \\\{ define def \\\}
|
||||
match name at,def \\\{ def@assumed reg,name,label at
|
||||
define def \\\}
|
||||
match name,def \\\{ def@assumed reg,.,: \\\} \\}
|
||||
struc db [val] \\{ \common def@assumed reg,.,<db val> \\}
|
||||
struc dw [val] \\{ \common def@assumed reg,.,<dw val> \\}
|
||||
struc dp [val] \\{ \common def@assumed reg,.,<dp val> \\}
|
||||
struc dd [val] \\{ \common def@assumed reg,.,<dd val> \\}
|
||||
struc dt [val] \\{ \common def@assumed reg,.,<dt val> \\}
|
||||
struc dq [val] \\{ \common def@assumed reg,.,<dq val> \\}
|
||||
struc rb cnt \\{ def@assumed reg,.,rb cnt \\}
|
||||
struc rw cnt \\{ def@assumed reg,.,rw cnt \\}
|
||||
struc rp cnt \\{ def@assumed reg,.,rp cnt \\}
|
||||
struc rd cnt \\{ def@assumed reg,.,rd cnt \\}
|
||||
struc rt cnt \\{ def@assumed reg,.,rt cnt \\}
|
||||
struc rq cnt \\{ def@assumed reg,.,rq cnt \\}
|
||||
reg\#@assumed equ
|
||||
virtual at reg
|
||||
reg struct
|
||||
end virtual
|
||||
purge label
|
||||
restruc db,dw,dp,dd,dt,dq
|
||||
restruc rb,rw,rp,rd,rt,rq \} }
|
||||
|
||||
macro def@assumed reg,name,def
|
||||
{ match vars, reg#@assumed \{ reg#@assumed equ reg#@assumed, \}
|
||||
reg#@assumed equ reg#@assumed name
|
||||
local ..label
|
||||
name equ ..label
|
||||
..label def }
|
||||
|
||||
struc label type { label . type }
|
||||
|
||||
struc none { label . }
|
||||
301
toolchain/fasmw17332/INCLUDE/MACRO/PROC32.INC
Normal file
301
toolchain/fasmw17332/INCLUDE/MACRO/PROC32.INC
Normal file
@@ -0,0 +1,301 @@
|
||||
|
||||
; Macroinstructions for defining and calling procedures
|
||||
|
||||
macro stdcall proc,[arg] ; directly call STDCALL procedure
|
||||
{ common
|
||||
if ~ arg eq
|
||||
reverse
|
||||
pushd arg
|
||||
common
|
||||
end if
|
||||
call proc }
|
||||
|
||||
macro invoke proc,[arg] ; indirectly call STDCALL procedure
|
||||
{ common
|
||||
if ~ arg eq
|
||||
reverse
|
||||
pushd arg
|
||||
common
|
||||
end if
|
||||
call [proc] }
|
||||
|
||||
macro ccall proc,[arg] ; directly call CDECL procedure
|
||||
{ common
|
||||
size@ccall = 0
|
||||
if ~ arg eq
|
||||
reverse
|
||||
pushd arg
|
||||
size@ccall = size@ccall+4
|
||||
common
|
||||
end if
|
||||
call proc
|
||||
if size@ccall
|
||||
add esp,size@ccall
|
||||
end if }
|
||||
|
||||
macro cinvoke proc,[arg] ; indirectly call CDECL procedure
|
||||
{ common
|
||||
size@ccall = 0
|
||||
if ~ arg eq
|
||||
reverse
|
||||
pushd arg
|
||||
size@ccall = size@ccall+4
|
||||
common
|
||||
end if
|
||||
call [proc]
|
||||
if size@ccall
|
||||
add esp,size@ccall
|
||||
end if }
|
||||
|
||||
macro proc [args] ; define procedure
|
||||
{ common
|
||||
match name params, args>
|
||||
\{ define@proc name,<params \} }
|
||||
|
||||
prologue@proc equ prologuedef
|
||||
|
||||
macro prologuedef procname,flag,parmbytes,localbytes,reglist
|
||||
{ local loc
|
||||
loc = (localbytes+3) and (not 3)
|
||||
parmbase@proc equ ebp+8
|
||||
localbase@proc equ ebp-loc
|
||||
if parmbytes | localbytes
|
||||
push ebp
|
||||
mov ebp,esp
|
||||
if localbytes
|
||||
sub esp,loc
|
||||
end if
|
||||
end if
|
||||
irps reg, reglist \{ push reg \} }
|
||||
|
||||
epilogue@proc equ epiloguedef
|
||||
|
||||
macro epiloguedef procname,flag,parmbytes,localbytes,reglist
|
||||
{ irps reg, reglist \{ reverse pop reg \}
|
||||
if parmbytes | localbytes
|
||||
leave
|
||||
end if
|
||||
if flag and 10000b
|
||||
retn
|
||||
else
|
||||
retn parmbytes
|
||||
end if }
|
||||
|
||||
close@proc equ
|
||||
|
||||
macro define@proc name,statement
|
||||
{ local params,flag,regs,parmbytes,localbytes,current
|
||||
if used name
|
||||
name:
|
||||
match =stdcall args, statement \{ params equ args
|
||||
flag = 11b \}
|
||||
match =stdcall, statement \{ params equ
|
||||
flag = 11b \}
|
||||
match =c args, statement \{ params equ args
|
||||
flag = 10001b \}
|
||||
match =c, statement \{ params equ
|
||||
flag = 10001b \}
|
||||
match =params, params \{ params equ statement
|
||||
flag = 0 \}
|
||||
match =uses reglist=,args, params \{ regs equ reglist
|
||||
params equ args \}
|
||||
match =regs =uses reglist, regs params \{ regs equ reglist
|
||||
params equ \}
|
||||
match =regs, regs \{ regs equ \}
|
||||
match prologue:reglist, prologue@proc:<regs> \{ prologue name,flag,parmbytes,localbytes,reglist \}
|
||||
virtual at parmbase@proc
|
||||
match =,args, params \{ defargs@proc args \}
|
||||
match =args@proc args, args@proc params \{ defargs@proc args \}
|
||||
parmbytes = $-(parmbase@proc)
|
||||
end virtual
|
||||
name # % = parmbytes/4
|
||||
all@vars equ
|
||||
current = 0
|
||||
macro locals
|
||||
\{ virtual at localbase@proc+current
|
||||
macro label def \\{ match . type,def> \\\{ deflocal@proc .,label,<type \\\} \\}
|
||||
struc db [val] \\{ \common deflocal@proc .,db,val \\}
|
||||
struc du [val] \\{ \common deflocal@proc .,du,val \\}
|
||||
struc dw [val] \\{ \common deflocal@proc .,dw,val \\}
|
||||
struc dp [val] \\{ \common deflocal@proc .,dp,val \\}
|
||||
struc dd [val] \\{ \common deflocal@proc .,dd,val \\}
|
||||
struc dt [val] \\{ \common deflocal@proc .,dt,val \\}
|
||||
struc dq [val] \\{ \common deflocal@proc .,dq,val \\}
|
||||
struc rb cnt \\{ deflocal@proc .,rb cnt, \\}
|
||||
struc rw cnt \\{ deflocal@proc .,rw cnt, \\}
|
||||
struc rp cnt \\{ deflocal@proc .,rp cnt, \\}
|
||||
struc rd cnt \\{ deflocal@proc .,rd cnt, \\}
|
||||
struc rt cnt \\{ deflocal@proc .,rt cnt, \\}
|
||||
struc rq cnt \\{ deflocal@proc .,rq cnt, \\} \}
|
||||
macro endl
|
||||
\{ purge label
|
||||
restruc db,du,dw,dp,dd,dt,dq
|
||||
restruc rb,rw,rp,rd,rt,rq
|
||||
current = $-(localbase@proc)
|
||||
end virtual \}
|
||||
macro ret operand
|
||||
\{ match any, operand \\{ retn operand \\}
|
||||
match , operand \\{ match epilogue:reglist, epilogue@proc:<regs> \\\{ epilogue name,flag,parmbytes,localbytes,reglist \\\} \\} \}
|
||||
macro finish@proc
|
||||
\{ localbytes = current
|
||||
match close:reglist, close@proc:<regs> \\{ close name,flag,parmbytes,localbytes,reglist \\}
|
||||
end if \} }
|
||||
|
||||
macro defargs@proc [arg]
|
||||
{ common
|
||||
if ~ arg eq
|
||||
forward
|
||||
local ..arg,current@arg
|
||||
match argname:type, arg
|
||||
\{ current@arg equ argname
|
||||
label ..arg type
|
||||
argname equ ..arg
|
||||
if qqword eq type
|
||||
dd ?,?,?,?,?,?,?,?
|
||||
else if dqword eq type
|
||||
dd ?,?,?,?
|
||||
else if tbyte eq type
|
||||
dd ?,?,?
|
||||
else if qword eq type | pword eq type
|
||||
dd ?,?
|
||||
else
|
||||
dd ?
|
||||
end if \}
|
||||
match =current@arg,current@arg
|
||||
\{ current@arg equ arg
|
||||
arg equ ..arg
|
||||
..arg dd ? \}
|
||||
common
|
||||
args@proc equ current@arg
|
||||
forward
|
||||
restore current@arg
|
||||
common
|
||||
end if }
|
||||
|
||||
macro deflocal@proc name,def,[val] { name def val }
|
||||
|
||||
macro deflocal@proc name,def,[val]
|
||||
{ common
|
||||
match vars, all@vars \{ all@vars equ all@vars, \}
|
||||
all@vars equ all@vars name
|
||||
forward
|
||||
local ..var,..tmp
|
||||
..var def val
|
||||
match =?, val \{ ..tmp equ \}
|
||||
match any =?, val \{ ..tmp equ \}
|
||||
match any (=?), val \{ ..tmp equ \}
|
||||
match =label, def \{ ..tmp equ \}
|
||||
match tmp : value, ..tmp : val
|
||||
\{ tmp: end virtual
|
||||
initlocal@proc ..var,def value
|
||||
virtual at tmp\}
|
||||
common
|
||||
match first rest, ..var, \{ name equ first \} }
|
||||
|
||||
struc label type { label . type }
|
||||
|
||||
macro initlocal@proc name,def
|
||||
{ virtual at name
|
||||
def
|
||||
size@initlocal = $ - name
|
||||
end virtual
|
||||
position@initlocal = 0
|
||||
while size@initlocal > position@initlocal
|
||||
virtual at name
|
||||
def
|
||||
if size@initlocal - position@initlocal < 2
|
||||
current@initlocal = 1
|
||||
load byte@initlocal byte from name+position@initlocal
|
||||
else if size@initlocal - position@initlocal < 4
|
||||
current@initlocal = 2
|
||||
load word@initlocal word from name+position@initlocal
|
||||
else
|
||||
current@initlocal = 4
|
||||
load dword@initlocal dword from name+position@initlocal
|
||||
end if
|
||||
end virtual
|
||||
if current@initlocal = 1
|
||||
mov byte [name+position@initlocal],byte@initlocal
|
||||
else if current@initlocal = 2
|
||||
mov word [name+position@initlocal],word@initlocal
|
||||
else
|
||||
mov dword [name+position@initlocal],dword@initlocal
|
||||
end if
|
||||
position@initlocal = position@initlocal + current@initlocal
|
||||
end while }
|
||||
|
||||
macro endp
|
||||
{ purge ret,locals,endl
|
||||
finish@proc
|
||||
purge finish@proc
|
||||
restore regs@proc
|
||||
match all,args@proc \{ restore all \}
|
||||
restore args@proc
|
||||
match all,all@vars \{ restore all \} }
|
||||
|
||||
macro local [var]
|
||||
{ common
|
||||
locals
|
||||
forward done@local equ
|
||||
match varname[count]:vartype, var
|
||||
\{ match =BYTE, vartype \\{ varname rb count
|
||||
restore done@local \\}
|
||||
match =WORD, vartype \\{ varname rw count
|
||||
restore done@local \\}
|
||||
match =DWORD, vartype \\{ varname rd count
|
||||
restore done@local \\}
|
||||
match =PWORD, vartype \\{ varname rp count
|
||||
restore done@local \\}
|
||||
match =QWORD, vartype \\{ varname rq count
|
||||
restore done@local \\}
|
||||
match =TBYTE, vartype \\{ varname rt count
|
||||
restore done@local \\}
|
||||
match =DQWORD, vartype \\{ label varname dqword
|
||||
rq count*2
|
||||
restore done@local \\}
|
||||
match =QQWORD, vartype \\{ label varname qqword
|
||||
rq count*4
|
||||
restore done@local \\}
|
||||
match =XWORD, vartype \\{ label varname xword
|
||||
rq count*2
|
||||
restore done@local \\}
|
||||
match =YWORD, vartype \\{ label varname yword
|
||||
rq count*4
|
||||
restore done@local \\}
|
||||
match , done@local \\{ virtual
|
||||
varname vartype
|
||||
end virtual
|
||||
rb count*sizeof.\#vartype
|
||||
restore done@local \\} \}
|
||||
match :varname:vartype, done@local:var
|
||||
\{ match =BYTE, vartype \\{ varname db ?
|
||||
restore done@local \\}
|
||||
match =WORD, vartype \\{ varname dw ?
|
||||
restore done@local \\}
|
||||
match =DWORD, vartype \\{ varname dd ?
|
||||
restore done@local \\}
|
||||
match =PWORD, vartype \\{ varname dp ?
|
||||
restore done@local \\}
|
||||
match =QWORD, vartype \\{ varname dq ?
|
||||
restore done@local \\}
|
||||
match =TBYTE, vartype \\{ varname dt ?
|
||||
restore done@local \\}
|
||||
match =DQWORD, vartype \\{ label varname dqword
|
||||
dq ?,?
|
||||
restore done@local \\}
|
||||
match =QQWORD, vartype \\{ label varname qqword
|
||||
dq ?,?,?,?
|
||||
restore done@local \\}
|
||||
match =XWORD, vartype \\{ label varname xword
|
||||
dq ?,?
|
||||
restore done@local \\}
|
||||
match =YWORD, vartype \\{ label varname yword
|
||||
dq ?,?,?,?
|
||||
restore done@local \\}
|
||||
match , done@local \\{ varname vartype
|
||||
restore done@local \\} \}
|
||||
match ,done@local
|
||||
\{ var
|
||||
restore done@local \}
|
||||
common
|
||||
endl }
|
||||
618
toolchain/fasmw17332/INCLUDE/MACRO/PROC64.INC
Normal file
618
toolchain/fasmw17332/INCLUDE/MACRO/PROC64.INC
Normal file
@@ -0,0 +1,618 @@
|
||||
|
||||
; Macroinstructions for defining and calling procedures (x64 version)
|
||||
|
||||
macro invoke proc,[arg]
|
||||
{ common fastcall [proc],arg }
|
||||
|
||||
macro fastcall proc,[arg]
|
||||
{ common local stackspace,argscount,counter
|
||||
if argscount < 4
|
||||
stackspace = 4*8
|
||||
else if argscount and 1
|
||||
stackspace = (argscount+1)*8
|
||||
else
|
||||
stackspace = argscount*8
|
||||
end if
|
||||
counter = 0
|
||||
if stackspace
|
||||
if defined current@frame
|
||||
if current@frame<stackspace
|
||||
current@frame = stackspace
|
||||
end if
|
||||
else
|
||||
if stackspace
|
||||
sub rsp,stackspace
|
||||
end if
|
||||
end if
|
||||
end if
|
||||
forward
|
||||
counter = counter + 1
|
||||
define type@param
|
||||
define definition@param arg
|
||||
match =float value,definition@param
|
||||
\{ define definition@param value
|
||||
define type@param float \}
|
||||
match =addr value,definition@param
|
||||
\{ define definition@param value
|
||||
define type@param addr \}
|
||||
match any=,any,definition@param
|
||||
\{ \local ..string,..continue
|
||||
jmp ..continue
|
||||
align sizeof.TCHAR
|
||||
..string TCHAR definition@param,0
|
||||
..continue:
|
||||
define definition@param ..string
|
||||
define type@param addr \}
|
||||
match any,definition@param
|
||||
\{ match \`any,any
|
||||
\\{ \\local ..string,..continue
|
||||
jmp ..continue
|
||||
align sizeof.TCHAR
|
||||
..string TCHAR definition@param,0
|
||||
..continue:
|
||||
define definition@param ..string
|
||||
define type@param addr \\} \}
|
||||
match param,definition@param
|
||||
\{ local opcode,origin
|
||||
size@param = 0
|
||||
if param eqtype 0 | param eqtype 0f | type@param eq addr
|
||||
size@param = 8
|
||||
else if param eqtype byte 0 | param eqtype byte 0f
|
||||
match prefix value,definition@param
|
||||
\\{ if prefix eq qword
|
||||
size@param = 8
|
||||
else if prefix eq dword
|
||||
size@param = 4
|
||||
else if prefix eq word
|
||||
size@param = 2
|
||||
else if prefix eq byte
|
||||
size@param = 1
|
||||
end if \\}
|
||||
else if ~ param in <xmm0,xmm1,xmm2,xmm3,xmm4,xmm5,xmm6,xmm7,xmm8,xmm9,xmm10,xmm11,xmm12,xmm13,xmm14,xmm15>
|
||||
virtual
|
||||
origin = $
|
||||
inc param
|
||||
load opcode byte from origin
|
||||
if opcode = 67h | ( opcode > 40h & opcode < 48h )
|
||||
load opcode byte from origin+1
|
||||
end if
|
||||
if opcode and 0F8h = 48h
|
||||
size@param = 8
|
||||
else if opcode = 66h
|
||||
size@param = 2
|
||||
else if opcode = 0FFh
|
||||
size@param = 4
|
||||
else
|
||||
size@param = 1
|
||||
end if
|
||||
end virtual
|
||||
end if
|
||||
if counter = 1
|
||||
if type@param eq float
|
||||
if ~ param eq xmm0
|
||||
if size@param = 4
|
||||
if param eqtype byte 0 | param eqtype byte 0f
|
||||
mov eax,param
|
||||
movd xmm0,eax
|
||||
else
|
||||
movd xmm0,param
|
||||
end if
|
||||
else
|
||||
if param eqtype 0 | param eqtype 0f | param eqtype byte 0 | param eqtype byte 0f
|
||||
mov rax,param
|
||||
movq xmm0,rax
|
||||
else
|
||||
movq xmm0,param
|
||||
end if
|
||||
end if
|
||||
end if
|
||||
if vararg@fastcall & ~ param eq rcx
|
||||
movq rcx,xmm0
|
||||
end if
|
||||
else if type@param eq addr
|
||||
if ~ param eq rcx
|
||||
lea rcx,[param]
|
||||
end if
|
||||
else if size@param = 8
|
||||
if ~ param eq rcx
|
||||
mov rcx,param
|
||||
end if
|
||||
else if size@param = 4
|
||||
if ~ param eq ecx
|
||||
mov ecx,param
|
||||
end if
|
||||
else if size@param = 2
|
||||
if ~ param eq cx
|
||||
mov cx,param
|
||||
end if
|
||||
else if size@param = 1
|
||||
if ~ param eq cl
|
||||
mov cl,param
|
||||
end if
|
||||
end if
|
||||
else if counter = 2
|
||||
if type@param eq float
|
||||
if ~ param eq xmm1
|
||||
if size@param = 4
|
||||
if param eqtype byte 0 | param eqtype byte 0f
|
||||
mov eax,param
|
||||
movd xmm1,eax
|
||||
else
|
||||
movd xmm1,param
|
||||
end if
|
||||
else
|
||||
if param eqtype 0 | param eqtype 0f | param eqtype byte 0 | param eqtype byte 0f
|
||||
mov rax,param
|
||||
movq xmm1,rax
|
||||
else
|
||||
movq xmm1,param
|
||||
end if
|
||||
end if
|
||||
end if
|
||||
if vararg@fastcall & ~ param eq rdx
|
||||
movq rdx,xmm1
|
||||
end if
|
||||
else if type@param eq addr
|
||||
if ~ param eq rdx
|
||||
lea rdx,[param]
|
||||
end if
|
||||
else if size@param = 8
|
||||
if ~ param eq rdx
|
||||
mov rdx,param
|
||||
end if
|
||||
else if size@param = 4
|
||||
if ~ param eq edx
|
||||
mov edx,param
|
||||
end if
|
||||
else if size@param = 2
|
||||
if ~ param eq dx
|
||||
mov dx,param
|
||||
end if
|
||||
else if size@param = 1
|
||||
if ~ param eq dl
|
||||
mov dl,param
|
||||
end if
|
||||
end if
|
||||
else if counter = 3
|
||||
if type@param eq float
|
||||
if ~ param eq xmm2
|
||||
if size@param = 4
|
||||
if param eqtype byte 0 | param eqtype byte 0f
|
||||
mov eax,param
|
||||
movd xmm2,eax
|
||||
else
|
||||
movd xmm2,param
|
||||
end if
|
||||
else
|
||||
if param eqtype 0 | param eqtype 0f | param eqtype byte 0 | param eqtype byte 0f
|
||||
mov rax,param
|
||||
movq xmm2,rax
|
||||
else
|
||||
movq xmm2,param
|
||||
end if
|
||||
end if
|
||||
end if
|
||||
if vararg@fastcall & ~ param eq r8
|
||||
movq r8,xmm2
|
||||
end if
|
||||
else if type@param eq addr
|
||||
if ~ param eq r8
|
||||
lea r8,[param]
|
||||
end if
|
||||
else if size@param = 8
|
||||
if ~ param eq r8
|
||||
mov r8,param
|
||||
end if
|
||||
else if size@param = 4
|
||||
if ~ param eq r8d
|
||||
mov r8d,param
|
||||
end if
|
||||
else if size@param = 2
|
||||
if ~ param eq r8w
|
||||
mov r8w,param
|
||||
end if
|
||||
else if size@param = 1
|
||||
if ~ param eq r8b
|
||||
mov r8b,param
|
||||
end if
|
||||
end if
|
||||
else if counter = 4
|
||||
if type@param eq float
|
||||
if ~ param eq xmm3
|
||||
if size@param = 4
|
||||
if param eqtype byte 0 | param eqtype byte 0f
|
||||
mov eax,param
|
||||
movd xmm3,eax
|
||||
else
|
||||
movd xmm3,param
|
||||
end if
|
||||
else
|
||||
if param eqtype 0 | param eqtype 0f | param eqtype byte 0 | param eqtype byte 0f
|
||||
mov rax,param
|
||||
movq xmm3,rax
|
||||
else
|
||||
movq xmm3,param
|
||||
end if
|
||||
end if
|
||||
end if
|
||||
if vararg@fastcall & ~ param eq r9
|
||||
movq r9,xmm3
|
||||
end if
|
||||
else if type@param eq addr
|
||||
if ~ param eq r9
|
||||
lea r9,[param]
|
||||
end if
|
||||
else if size@param = 8
|
||||
if ~ param eq r9
|
||||
mov r9,param
|
||||
end if
|
||||
else if size@param = 4
|
||||
if ~ param eq r9d
|
||||
mov r9d,param
|
||||
end if
|
||||
else if size@param = 2
|
||||
if ~ param eq r9w
|
||||
mov r9w,param
|
||||
end if
|
||||
else if size@param = 1
|
||||
if ~ param eq r9b
|
||||
mov r9b,param
|
||||
end if
|
||||
end if
|
||||
else
|
||||
if type@param eq addr
|
||||
lea rax,[param]
|
||||
mov [rsp+(counter-1)*8],rax
|
||||
else if param eqtype [0] | param eqtype byte [0]
|
||||
if size@param = 8
|
||||
mov rax,param
|
||||
mov [rsp+(counter-1)*8],rax
|
||||
else if size@param = 4
|
||||
mov eax,param
|
||||
mov [rsp+(counter-1)*8],eax
|
||||
else if size@param = 2
|
||||
mov ax,param
|
||||
mov [rsp+(counter-1)*8],ax
|
||||
else
|
||||
mov al,param
|
||||
mov [rsp+(counter-1)*8],al
|
||||
end if
|
||||
else if size@param = 8
|
||||
virtual
|
||||
origin = $
|
||||
mov rax,param
|
||||
load opcode byte from origin+1
|
||||
end virtual
|
||||
if opcode = 0B8h
|
||||
mov rax,param
|
||||
mov [rsp+(counter-1)*8],rax
|
||||
else
|
||||
mov qword [rsp+(counter-1)*8],param
|
||||
end if
|
||||
else if param in <xmm0,xmm1,xmm2,xmm3,xmm4,xmm5,xmm6,xmm7,xmm8,xmm9,xmm10,xmm11,xmm12,xmm13,xmm14,xmm15>
|
||||
movq [rsp+(counter-1)*8],param
|
||||
else
|
||||
mov [rsp+(counter-1)*8],param
|
||||
end if
|
||||
end if \}
|
||||
common
|
||||
argscount = counter
|
||||
call proc
|
||||
if stackspace & ~defined current@frame
|
||||
add rsp,stackspace
|
||||
end if }
|
||||
|
||||
macro proc [args]
|
||||
{ common
|
||||
match name params, args>
|
||||
\{ define@proc name,<params \} }
|
||||
|
||||
prologue@proc equ prologuedef
|
||||
|
||||
macro prologuedef procname,flag,parmbytes,localbytes,reglist
|
||||
{ local loc,fill,counter
|
||||
loc = (localbytes+15) and (not 15)
|
||||
parmbase@proc equ rbp+16
|
||||
localbase@proc equ rbp-loc
|
||||
push rbp
|
||||
mov rbp,rsp
|
||||
if loc+fill
|
||||
sub rsp,loc+fill
|
||||
end if
|
||||
counter = 0
|
||||
irps reg, reglist \{ push reg
|
||||
counter = counter+1 \}
|
||||
fill = 8*(counter and 1) }
|
||||
|
||||
epilogue@proc equ epiloguedef
|
||||
|
||||
macro epiloguedef procname,flag,parmbytes,localbytes,reglist
|
||||
{ irps reg, reglist \{ reverse pop reg \}
|
||||
leave
|
||||
retn }
|
||||
|
||||
close@proc equ
|
||||
|
||||
macro define@proc name,statement
|
||||
{ local params,flag,regs,parmbytes,localbytes,current
|
||||
if used name
|
||||
name:
|
||||
match =stdcall args, statement \{ params equ args
|
||||
flag = 11b \}
|
||||
match =stdcall, statement \{ params equ
|
||||
flag = 11b \}
|
||||
match =c args, statement \{ params equ args
|
||||
flag = 10001b \}
|
||||
match =c, statement \{ params equ
|
||||
flag = 10001b \}
|
||||
match =params, params \{ params equ statement
|
||||
flag = 10000b \}
|
||||
match =uses reglist=,args, params \{ regs equ reglist
|
||||
params equ args \}
|
||||
match =regs =uses reglist, regs params \{ regs equ reglist
|
||||
params equ \}
|
||||
match =regs, regs \{ regs equ \}
|
||||
match prologue:reglist, prologue@proc:<regs> \{ prologue name,flag,parmbytes,localbytes,reglist \}
|
||||
virtual at parmbase@proc
|
||||
match =,args, params \{ defargs@proc args \}
|
||||
match =args@proc args, args@proc params \{ defargs@proc args \}
|
||||
parmbytes = $-(parmbase@proc)
|
||||
end virtual
|
||||
name # % = parmbytes/8
|
||||
all@vars equ
|
||||
current = 0
|
||||
macro locals
|
||||
\{ virtual at localbase@proc+current
|
||||
macro label def \\{ match . type,def> \\\{ deflocal@proc .,label,<type \\\} \\}
|
||||
struc db [val] \\{ \common deflocal@proc .,db,val \\}
|
||||
struc du [val] \\{ \common deflocal@proc .,du,val \\}
|
||||
struc dw [val] \\{ \common deflocal@proc .,dw,val \\}
|
||||
struc dp [val] \\{ \common deflocal@proc .,dp,val \\}
|
||||
struc dd [val] \\{ \common deflocal@proc .,dd,val \\}
|
||||
struc dt [val] \\{ \common deflocal@proc .,dt,val \\}
|
||||
struc dq [val] \\{ \common deflocal@proc .,dq,val \\}
|
||||
struc rb cnt \\{ deflocal@proc .,rb cnt, \\}
|
||||
struc rw cnt \\{ deflocal@proc .,rw cnt, \\}
|
||||
struc rp cnt \\{ deflocal@proc .,rp cnt, \\}
|
||||
struc rd cnt \\{ deflocal@proc .,rd cnt, \\}
|
||||
struc rt cnt \\{ deflocal@proc .,rt cnt, \\}
|
||||
struc rq cnt \\{ deflocal@proc .,rq cnt, \\} \}
|
||||
macro endl
|
||||
\{ purge label
|
||||
restruc db,du,dw,dp,dd,dt,dq
|
||||
restruc rb,rw,rp,rd,rt,rq
|
||||
current = $-(localbase@proc)
|
||||
end virtual \}
|
||||
macro ret operand
|
||||
\{ match any, operand \\{ retn operand \\}
|
||||
match , operand \\{ match epilogue:reglist, epilogue@proc:<regs> \\\{ epilogue name,flag,parmbytes,localbytes,reglist \\\} \\} \}
|
||||
macro finish@proc
|
||||
\{ localbytes = current
|
||||
match close:reglist, close@proc:<regs> \\{ close name,flag,parmbytes,localbytes,reglist \\}
|
||||
end if \} }
|
||||
|
||||
macro defargs@proc [arg]
|
||||
{ common
|
||||
if ~ arg eq
|
||||
forward
|
||||
local ..arg,current@arg
|
||||
match argname:type, arg
|
||||
\{ current@arg equ argname
|
||||
label ..arg type
|
||||
argname equ ..arg
|
||||
if qqword eq type
|
||||
dq ?,?,?,?
|
||||
else if dqword eq type
|
||||
dq ?,?
|
||||
else if tbyte eq type
|
||||
dq ?,?
|
||||
else
|
||||
dq ?
|
||||
end if \}
|
||||
match =current@arg,current@arg
|
||||
\{ current@arg equ arg
|
||||
arg equ ..arg
|
||||
..arg dq ? \}
|
||||
common
|
||||
args@proc equ current@arg
|
||||
forward
|
||||
restore current@arg
|
||||
common
|
||||
end if }
|
||||
|
||||
macro deflocal@proc name,def,[val] { name def val }
|
||||
|
||||
macro deflocal@proc name,def,[val]
|
||||
{ common
|
||||
match vars, all@vars \{ all@vars equ all@vars, \}
|
||||
all@vars equ all@vars name
|
||||
forward
|
||||
local ..var,..tmp
|
||||
..var def val
|
||||
match =?, val \{ ..tmp equ \}
|
||||
match any =?, val \{ ..tmp equ \}
|
||||
match any (=?), val \{ ..tmp equ \}
|
||||
match =label, def \{ ..tmp equ \}
|
||||
match tmp : value, ..tmp : val
|
||||
\{ tmp: end virtual
|
||||
initlocal@proc ..var,def value
|
||||
virtual at tmp\}
|
||||
common
|
||||
match first rest, ..var, \{ name equ first \} }
|
||||
|
||||
struc label type { label . type }
|
||||
|
||||
macro initlocal@proc name,def
|
||||
{ virtual at name
|
||||
def
|
||||
size@initlocal = $ - name
|
||||
end virtual
|
||||
position@initlocal = 0
|
||||
while size@initlocal > position@initlocal
|
||||
virtual at name
|
||||
def
|
||||
if size@initlocal - position@initlocal < 2
|
||||
current@initlocal = 1
|
||||
load byte@initlocal byte from name+position@initlocal
|
||||
else if size@initlocal - position@initlocal < 4
|
||||
current@initlocal = 2
|
||||
load word@initlocal word from name+position@initlocal
|
||||
else if size@initlocal - position@initlocal < 8
|
||||
current@initlocal = 4
|
||||
load dword@initlocal dword from name+position@initlocal
|
||||
else
|
||||
load qword@initlocal qword from name+position@initlocal
|
||||
if ( qword@initlocal > 0 & qword@initlocal < 80000000h ) | ( qword@initlocal < 0 & qword@initlocal >= -80000000h )
|
||||
current@initlocal = 8
|
||||
else
|
||||
current@initlocal = 4
|
||||
dword@initlocal = qword@initlocal and 0FFFFFFFFh
|
||||
end if
|
||||
end if
|
||||
end virtual
|
||||
if current@initlocal = 1
|
||||
mov byte [name+position@initlocal],byte@initlocal
|
||||
else if current@initlocal = 2
|
||||
mov word [name+position@initlocal],word@initlocal
|
||||
else if current@initlocal = 4
|
||||
mov dword [name+position@initlocal],dword@initlocal
|
||||
else
|
||||
mov qword [name+position@initlocal],qword@initlocal
|
||||
end if
|
||||
position@initlocal = position@initlocal + current@initlocal
|
||||
end while }
|
||||
|
||||
macro endp
|
||||
{ purge ret,locals,endl
|
||||
finish@proc
|
||||
purge finish@proc
|
||||
restore regs@proc
|
||||
match all,args@proc \{ restore all \}
|
||||
restore args@proc
|
||||
match all,all@vars \{ restore all \} }
|
||||
|
||||
macro local [var]
|
||||
{ common
|
||||
locals
|
||||
forward done@local equ
|
||||
match varname[count]:vartype, var
|
||||
\{ match =BYTE, vartype \\{ varname rb count
|
||||
restore done@local \\}
|
||||
match =WORD, vartype \\{ varname rw count
|
||||
restore done@local \\}
|
||||
match =DWORD, vartype \\{ varname rd count
|
||||
restore done@local \\}
|
||||
match =PWORD, vartype \\{ varname rp count
|
||||
restore done@local \\}
|
||||
match =QWORD, vartype \\{ varname rq count
|
||||
restore done@local \\}
|
||||
match =TBYTE, vartype \\{ varname rt count
|
||||
restore done@local \\}
|
||||
match =DQWORD, vartype \\{ label varname dqword
|
||||
rq count*2
|
||||
restore done@local \\}
|
||||
match =QQWORD, vartype \\{ label varname qqword
|
||||
rq count*4
|
||||
restore done@local \\}
|
||||
match =XWORD, vartype \\{ label varname xword
|
||||
rq count*2
|
||||
restore done@local \\}
|
||||
match =YWORD, vartype \\{ label varname yword
|
||||
rq count*4
|
||||
restore done@local \\}
|
||||
match , done@local \\{ virtual
|
||||
varname vartype
|
||||
end virtual
|
||||
rb count*sizeof.\#vartype
|
||||
restore done@local \\} \}
|
||||
match :varname:vartype, done@local:var
|
||||
\{ match =BYTE, vartype \\{ varname db ?
|
||||
restore done@local \\}
|
||||
match =WORD, vartype \\{ varname dw ?
|
||||
restore done@local \\}
|
||||
match =DWORD, vartype \\{ varname dd ?
|
||||
restore done@local \\}
|
||||
match =PWORD, vartype \\{ varname dp ?
|
||||
restore done@local \\}
|
||||
match =QWORD, vartype \\{ varname dq ?
|
||||
restore done@local \\}
|
||||
match =TBYTE, vartype \\{ varname dt ?
|
||||
restore done@local \\}
|
||||
match =DQWORD, vartype \\{ label varname dqword
|
||||
dq ?,?
|
||||
restore done@local \\}
|
||||
match =QQWORD, vartype \\{ label varname qqword
|
||||
dq ?,?,?,?
|
||||
restore done@local \\}
|
||||
match =XWORD, vartype \\{ label varname xword
|
||||
dq ?,?
|
||||
restore done@local \\}
|
||||
match =YWORD, vartype \\{ label varname yword
|
||||
dq ?,?,?,?
|
||||
restore done@local \\}
|
||||
match , done@local \\{ varname vartype
|
||||
restore done@local \\} \}
|
||||
match ,done@local
|
||||
\{ var
|
||||
restore done@local \}
|
||||
common
|
||||
endl }
|
||||
|
||||
macro frame
|
||||
{ local size,current
|
||||
if size
|
||||
sub rsp,size
|
||||
end if
|
||||
current = 0
|
||||
current@frame equ current
|
||||
size@frame equ size }
|
||||
|
||||
macro endf
|
||||
{ size@frame = current@frame
|
||||
if size@frame
|
||||
add rsp,size@frame
|
||||
end if
|
||||
restore size@frame,current@frame }
|
||||
|
||||
macro static_rsp_prologue procname,flag,parmbytes,localbytes,reglist
|
||||
{ local counter,loc,frame,current
|
||||
counter = 0
|
||||
irps reg, reglist \{ push reg
|
||||
counter = counter+1 \}
|
||||
loc = (localbytes+7) and (not 7)
|
||||
if frame & (counter+loc shr 3+1) and 1
|
||||
loc = loc + 8
|
||||
end if
|
||||
framebytes@proc equ frame+loc
|
||||
if framebytes@proc
|
||||
sub rsp,framebytes@proc
|
||||
end if
|
||||
localbase@proc equ rsp+frame
|
||||
regsbase@proc equ rsp+frame+loc
|
||||
parmbase@proc equ rsp+frame+loc+counter*8+8
|
||||
current = 0
|
||||
current@frame equ current
|
||||
size@frame equ frame }
|
||||
|
||||
macro static_rsp_epilogue procname,flag,parmbytes,localbytes,reglist
|
||||
{ if framebytes@proc
|
||||
add rsp,framebytes@proc
|
||||
end if
|
||||
irps reg, reglist \{ reverse pop reg \}
|
||||
retn }
|
||||
|
||||
macro static_rsp_close procname,flag,parmbytes,localbytes,reglist
|
||||
{ size@frame = current@frame
|
||||
restore size@frame,current@frame }
|
||||
|
||||
stdcall fix fastcall
|
||||
|
||||
macro cinvoke proc,[arg]
|
||||
{ common ccall [proc],arg }
|
||||
|
||||
macro ccall proc,[arg]
|
||||
{ common vararg@fastcall = 1
|
||||
fastcall proc,arg
|
||||
vararg@fastcall = 0 }
|
||||
|
||||
vararg@fastcall = 0
|
||||
334
toolchain/fasmw17332/INCLUDE/MACRO/RESOURCE.INC
Normal file
334
toolchain/fasmw17332/INCLUDE/MACRO/RESOURCE.INC
Normal file
@@ -0,0 +1,334 @@
|
||||
|
||||
; Macroinstructions for making resource section
|
||||
|
||||
macro directory [type,label]
|
||||
{ common
|
||||
local max,count
|
||||
count = 0
|
||||
max = 0
|
||||
forward
|
||||
count = count + 1
|
||||
if type > max
|
||||
max = type
|
||||
end if
|
||||
common
|
||||
root@resource dd 0,%t,0,count shl 16
|
||||
repeat max
|
||||
forward
|
||||
if % = type
|
||||
dd type,80000000h+label-root@resource
|
||||
end if
|
||||
common
|
||||
end repeat }
|
||||
|
||||
macro resource dir,[id,lang,label]
|
||||
{ common
|
||||
dir:
|
||||
local min,max,count,current
|
||||
forward
|
||||
min = id
|
||||
max = id
|
||||
common
|
||||
count = 0
|
||||
forward
|
||||
count = count + 1
|
||||
if id < min
|
||||
min = id
|
||||
else if id > max
|
||||
max = id
|
||||
end if
|
||||
common
|
||||
dd 0,%t,0,count shl 16
|
||||
repeat max-min+1
|
||||
current = $
|
||||
forward
|
||||
if min+%-1 = id
|
||||
if current = $
|
||||
dd id,80000000h+label#.directory-root@resource
|
||||
end if
|
||||
end if
|
||||
common
|
||||
end repeat
|
||||
repeat max-min+1
|
||||
current = $
|
||||
forward
|
||||
if min+%-1 = id
|
||||
if current = $
|
||||
label#.directory dd 0,%t,0,10000h,lang,label-root@resource
|
||||
count = 1
|
||||
else
|
||||
dd lang,label-root@resource
|
||||
count = count + 1
|
||||
end if
|
||||
end if
|
||||
label#.resid = id
|
||||
common
|
||||
local x,y,z,v1,v2
|
||||
if count > 1
|
||||
store word count at current+0Eh
|
||||
x = count shr 1
|
||||
while x > 0
|
||||
y = x
|
||||
while y < count
|
||||
z = y
|
||||
while z-x >= 0
|
||||
load v1 dword from current+10h+z*8
|
||||
load v2 dword from current+10h+(z-x)*8
|
||||
if v1<v2
|
||||
store dword v1 at current+10h+(z-x)*8
|
||||
store dword v2 at current+10h+z*8
|
||||
load v1 dword from current+10h+z*8+4
|
||||
load v2 dword from current+10h+(z-x)*8+4
|
||||
store dword v1 at current+10h+(z-x)*8+4
|
||||
store dword v2 at current+10h+z*8+4
|
||||
else
|
||||
break
|
||||
end if
|
||||
z = z-x
|
||||
end while
|
||||
y = y+1
|
||||
end while
|
||||
x = x shr 1
|
||||
end while
|
||||
end if
|
||||
end repeat }
|
||||
|
||||
macro bitmap label,bitmap_file
|
||||
{ local data,size
|
||||
label dd RVA data,size,0,0
|
||||
data file bitmap_file:0Eh
|
||||
size = $ - data
|
||||
align 4 }
|
||||
|
||||
macro icon group,[label,icon_file]
|
||||
{ common local count
|
||||
count = 0
|
||||
forward local data,size,position
|
||||
label dd RVA data,size,0,0
|
||||
virtual at 0
|
||||
file icon_file:6,16
|
||||
load size dword from 8
|
||||
load position dword from 12
|
||||
end virtual
|
||||
data file icon_file:position,size
|
||||
count = count+1
|
||||
common local header
|
||||
align 4
|
||||
group dd RVA header,6+count*14,0,0
|
||||
header dw 0,1,count
|
||||
forward
|
||||
file icon_file:6,12
|
||||
dw label#.resid
|
||||
common
|
||||
align 4 }
|
||||
|
||||
macro cursor group,[label,cursor_file]
|
||||
{ common local count
|
||||
count = 0
|
||||
forward local data,width,height,size,position
|
||||
label dd RVA data,size+4,0,0
|
||||
virtual at 0
|
||||
file cursor_file:6,16
|
||||
load width byte from 0
|
||||
load height byte from 1
|
||||
load size dword from 8
|
||||
load position dword from 12
|
||||
end virtual
|
||||
data file cursor_file:10,4
|
||||
file cursor_file:position,size
|
||||
count = count+1
|
||||
common local header
|
||||
align 4
|
||||
group dd RVA header,6+count*14,0,0
|
||||
header dw 0,2,count
|
||||
forward
|
||||
dw width,height,1,0
|
||||
dd size+4
|
||||
dw label#.resid
|
||||
common
|
||||
align 4 }
|
||||
|
||||
macro menu label
|
||||
{ local data,size
|
||||
label dd RVA data,size,0,0
|
||||
data dw 1,4,0,0
|
||||
menu_size equ size = $ - data
|
||||
menu_level = 1 }
|
||||
|
||||
macro menuitem string,id,resinfo,status,type
|
||||
{ dd MFT_STRING or type+0,status+0,id
|
||||
dw resinfo+0
|
||||
du string,0
|
||||
align 4
|
||||
if ~ resinfo eq
|
||||
if resinfo and MFR_END
|
||||
menu_level = menu_level - 1
|
||||
end if
|
||||
if resinfo and MFR_POPUP
|
||||
menu_level = menu_level + 1
|
||||
dd 0
|
||||
end if
|
||||
end if
|
||||
if menu_level = 0
|
||||
menu_size
|
||||
end if }
|
||||
|
||||
macro menuseparator resinfo
|
||||
{ dd MFT_SEPARATOR,0,0
|
||||
dw resinfo+0,0
|
||||
if ~ resinfo eq
|
||||
if resinfo and MFR_END
|
||||
menu_level = menu_level - 1
|
||||
end if
|
||||
end if
|
||||
if menu_level = 0
|
||||
menu_size
|
||||
end if }
|
||||
|
||||
macro dialog label,title,x,y,cx,cy,style,exstyle,menu,fontname,fontsize
|
||||
{ local data,size,items
|
||||
label dd RVA data,size,0,0
|
||||
data dd style or DS_SETFONT,exstyle +0
|
||||
dw items,x,y,cx,cy
|
||||
if menu+0 <> 0
|
||||
dw 0FFFFh
|
||||
end if
|
||||
du menu+0,0,title,0
|
||||
if fontname eq
|
||||
du 8,'MS Sans Serif',0
|
||||
else
|
||||
du fontsize+0,fontname,0
|
||||
end if
|
||||
align 4
|
||||
dialog_size equ size = $ - data
|
||||
dialog_items equ items = dialog_items_counter
|
||||
dialog_items_counter = 0 }
|
||||
|
||||
macro dialogitem class,title,id,x,y,cx,cy,style,exstyle
|
||||
{ dd style or WS_CHILD,exstyle +0
|
||||
dw x,y,cx,cy,id
|
||||
if class eq 'BUTTON'
|
||||
dw 0FFFFh,80h
|
||||
else if class eq 'EDIT'
|
||||
dw 0FFFFh,81h
|
||||
else if class eq 'STATIC'
|
||||
dw 0FFFFh,82h
|
||||
else if class eq 'LISTBOX'
|
||||
dw 0FFFFh,83h
|
||||
else if class eq 'SCROLLBAR'
|
||||
dw 0FFFFh,84h
|
||||
else if class eq 'COMBOBOX'
|
||||
dw 0FFFFh,85h
|
||||
else
|
||||
du class,0
|
||||
end if
|
||||
if title eqtype 0
|
||||
dw 0FFFFh,title
|
||||
else
|
||||
du title,0
|
||||
end if
|
||||
dw 0
|
||||
align 4
|
||||
dialog_items_counter = dialog_items_counter + 1 }
|
||||
|
||||
macro enddialog
|
||||
{ dialog_items
|
||||
dialog_size }
|
||||
|
||||
macro accelerator label,[fvirt,key,cmd]
|
||||
{ common
|
||||
local data,size
|
||||
label dd RVA data,size,0,0
|
||||
data:
|
||||
accel_count = 0
|
||||
forward
|
||||
accel_count = accel_count + 1
|
||||
common
|
||||
size = accel_count * 8
|
||||
forward
|
||||
accel_count = accel_count - 1
|
||||
if accel_count = 0
|
||||
dw fvirt or 80h,key
|
||||
else
|
||||
dw fvirt,key
|
||||
end if
|
||||
dd cmd }
|
||||
|
||||
macro versioninfo label,fileos,filetype,filesubtype,lang,cp,[name,value]
|
||||
{ common
|
||||
local data,size,vivalue,visize
|
||||
label dd RVA data,size,0,0
|
||||
data dw size,visize,0
|
||||
du 'VS_VERSION_INFO',0,0
|
||||
vivalue dd 0FEEF04BDh,00010000h
|
||||
local version,count,shift,char,filever,productver
|
||||
filever = 0
|
||||
productver = 0
|
||||
forward
|
||||
if name eq 'FileVersion' | name eq 'ProductVersion'
|
||||
virtual at 0
|
||||
db value
|
||||
count = $
|
||||
version = 0
|
||||
shift = 16
|
||||
repeat count
|
||||
load char from %-1
|
||||
if char='.'
|
||||
if shift mod 32
|
||||
shift = shift-16
|
||||
else
|
||||
shift = shift+32+16
|
||||
end if
|
||||
else
|
||||
version = (version and not (0FFFFh shl shift)) or ((version shr shift and 0FFFFh)*10+char-'0') shl shift
|
||||
end if
|
||||
end repeat
|
||||
end virtual
|
||||
if name eq 'FileVersion'
|
||||
filever = version
|
||||
else if name eq 'ProductVersion'
|
||||
productver = version
|
||||
end if
|
||||
end if
|
||||
common
|
||||
dq filever,productver
|
||||
dd 0,0,fileos,filetype+0,filesubtype+0,0,0
|
||||
visize = $ - vivalue
|
||||
local sfi_data,sfi_size
|
||||
sfi_data dd sfi_size
|
||||
du 1,'StringFileInfo',0
|
||||
local str_data,str_size
|
||||
str_data dd str_size
|
||||
du 1,'040904E4',0
|
||||
forward
|
||||
local vs_data,vs_size,value_data,value_size
|
||||
align 4
|
||||
vs_data dw vs_size,value_size/2
|
||||
du 1,name,0
|
||||
align 4
|
||||
value_data du value,0
|
||||
value_size = $ - value_data
|
||||
vs_size = $ - vs_data
|
||||
common
|
||||
align 4
|
||||
str_size = $ - str_data
|
||||
sfi_size = $ - sfi_data
|
||||
local vfi_data,vfi_size,var_data,var_size
|
||||
vfi_data dd vfi_size
|
||||
du 1,'VarFileInfo',0,0
|
||||
var_data dw var_size,4
|
||||
du 0,'Translation',0,0
|
||||
dw lang,cp+0
|
||||
var_size = $ - var_data
|
||||
vfi_size = $ - vfi_data
|
||||
size = $ - data }
|
||||
|
||||
macro resdata label
|
||||
{ local data,size
|
||||
label dd RVA data,size,0,0
|
||||
data = $
|
||||
ressize equ size = $ - data }
|
||||
|
||||
macro endres
|
||||
{ ressize
|
||||
align 4 }
|
||||
221
toolchain/fasmw17332/INCLUDE/MACRO/STRUCT.INC
Normal file
221
toolchain/fasmw17332/INCLUDE/MACRO/STRUCT.INC
Normal file
@@ -0,0 +1,221 @@
|
||||
|
||||
; Macroinstructions for defining data structures
|
||||
|
||||
macro struct name
|
||||
{ virtual at 0
|
||||
define @struct
|
||||
field@struct equ name
|
||||
match child parent, name \{ restore field@struct
|
||||
field@struct equ child,fields@\#parent \}
|
||||
sub@struct equ
|
||||
struc db [val] \{ \common define field@struct .,db,<val> \}
|
||||
struc dw [val] \{ \common define field@struct .,dw,<val> \}
|
||||
struc du [val] \{ \common define field@struct .,du,<val> \}
|
||||
struc dd [val] \{ \common define field@struct .,dd,<val> \}
|
||||
struc dp [val] \{ \common define field@struct .,dp,<val> \}
|
||||
struc dq [val] \{ \common define field@struct .,dq,<val> \}
|
||||
struc dt [val] \{ \common define field@struct .,dt,<val> \}
|
||||
struc rb count \{ define field@struct .,db,count dup (?) \}
|
||||
struc rw count \{ define field@struct .,dw,count dup (?) \}
|
||||
struc rd count \{ define field@struct .,dd,count dup (?) \}
|
||||
struc rp count \{ define field@struct .,dp,count dup (?) \}
|
||||
struc rq count \{ define field@struct .,dq,count dup (?) \}
|
||||
struc rt count \{ define field@struct .,dt,count dup (?) \}
|
||||
macro db [val] \{ \common \local anonymous
|
||||
define field@struct anonymous,db,<val> \}
|
||||
macro dw [val] \{ \common \local anonymous
|
||||
define field@struct anonymous,dw,<val> \}
|
||||
macro du [val] \{ \common \local anonymous
|
||||
define field@struct anonymous,du,<val> \}
|
||||
macro dd [val] \{ \common \local anonymous
|
||||
define field@struct anonymous,dd,<val> \}
|
||||
macro dp [val] \{ \common \local anonymous
|
||||
define field@struct anonymous,dp,<val> \}
|
||||
macro dq [val] \{ \common \local anonymous
|
||||
define field@struct anonymous,dq,<val> \}
|
||||
macro dt [val] \{ \common \local anonymous
|
||||
define field@struct anonymous,dt,<val> \}
|
||||
macro rb count \{ \local anonymous
|
||||
define field@struct anonymous,db,count dup (?) \}
|
||||
macro rw count \{ \local anonymous
|
||||
define field@struct anonymous,dw,count dup (?) \}
|
||||
macro rd count \{ \local anonymous
|
||||
define field@struct anonymous,dd,count dup (?) \}
|
||||
macro rp count \{ \local anonymous
|
||||
define field@struct anonymous,dp,count dup (?) \}
|
||||
macro rq count \{ \local anonymous
|
||||
define field@struct anonymous,dq,count dup (?) \}
|
||||
macro rt count \{ \local anonymous
|
||||
define field@struct anonymous,dt,count dup (?) \}
|
||||
macro union \{ field@struct equ ,union,<
|
||||
sub@struct equ union \}
|
||||
macro struct \{ field@struct equ ,substruct,<
|
||||
sub@struct equ substruct \} }
|
||||
|
||||
macro ends
|
||||
{ match , sub@struct \{ restruc db,dw,du,dd,dp,dq,dt
|
||||
restruc rb,rw,rd,rp,rq,rt
|
||||
purge db,dw,du,dd,dp,dq,dt
|
||||
purge rb,rw,rd,rp,rq,rt
|
||||
purge union,struct
|
||||
irpv fields,field@struct \\{ restore field@struct
|
||||
\\common define fields@struct fields \\}
|
||||
match name tail,fields@struct, \\{ if $
|
||||
display 'Error: definition of ',\\`name,' contains illegal instructions.',0Dh,0Ah
|
||||
err
|
||||
end if \\}
|
||||
match name=,fields,fields@struct \\{ restore @struct
|
||||
make@struct name,fields
|
||||
define fields@\\#name fields \\}
|
||||
end virtual \}
|
||||
match any, sub@struct \{ tmp@struct equ field@struct
|
||||
restore field@struct
|
||||
field@struct equ tmp@struct> \}
|
||||
restore sub@struct }
|
||||
|
||||
macro make@struct name,[field,type,def]
|
||||
{ common
|
||||
local define
|
||||
define equ name
|
||||
forward
|
||||
local sub
|
||||
match , field \{ make@substruct type,name,sub def
|
||||
define equ define,.,sub, \}
|
||||
match any, field \{ define equ define,.#field,type,<def> \}
|
||||
common
|
||||
match fields, define \{ define@struct fields \} }
|
||||
|
||||
macro define@struct name,[field,type,def]
|
||||
{ common
|
||||
virtual
|
||||
db `name
|
||||
load initial@struct byte from 0
|
||||
if initial@struct = '.'
|
||||
display 'Error: name of structure should not begin with a dot.',0Dh,0Ah
|
||||
err
|
||||
end if
|
||||
end virtual
|
||||
local list
|
||||
list equ
|
||||
forward
|
||||
if ~ field eq .
|
||||
name#field type def
|
||||
sizeof.#name#field = $ - name#field
|
||||
else
|
||||
label name#.#type
|
||||
rb sizeof.#type
|
||||
end if
|
||||
local value
|
||||
match any, list \{ list equ list, \}
|
||||
list equ list <value>
|
||||
common
|
||||
sizeof.#name = $
|
||||
restruc name
|
||||
match values, list \{
|
||||
struc name value \\{ \\local \\..base
|
||||
match , @struct \\\{ define field@struct .,name,<values> \\\}
|
||||
match no, @struct \\\{ label \\..base
|
||||
forward
|
||||
match , value \\\\{ field type def \\\\}
|
||||
match any, value \\\\{ field type value
|
||||
if ~ field eq .
|
||||
rb sizeof.#name#field - ($-field)
|
||||
end if \\\\}
|
||||
common label . at \\..base \\\}
|
||||
\\}
|
||||
macro name value \\{
|
||||
match , @struct \\\{ \\\local anonymous
|
||||
define field@struct anonymous,name,<values> \\\}
|
||||
match no, @struct \\\{
|
||||
forward
|
||||
match , value \\\\{ type def \\\\}
|
||||
match any, value \\\\{ \\\\local ..field
|
||||
..field = $
|
||||
type value
|
||||
if ~ field eq .
|
||||
rb sizeof.#name#field - ($-..field)
|
||||
end if \\\\}
|
||||
common \\\} \\} \} }
|
||||
|
||||
macro enable@substruct
|
||||
{ macro make@substruct substruct,parent,name,[field,type,def]
|
||||
\{ \common
|
||||
\local define
|
||||
define equ parent,name
|
||||
\forward
|
||||
\local sub
|
||||
match , field \\{ match any, type \\\{ enable@substruct
|
||||
make@substruct type,parent,sub def
|
||||
purge make@substruct
|
||||
define equ define,.,sub, \\\} \\}
|
||||
match any, field \\{ define equ define,.\#field,type,<def> \\}
|
||||
\common
|
||||
match fields, define \\{ define@\#substruct fields \\} \} }
|
||||
|
||||
enable@substruct
|
||||
|
||||
macro define@union parent,name,[field,type,def]
|
||||
{ common
|
||||
virtual at parent#.#name
|
||||
forward
|
||||
if ~ field eq .
|
||||
virtual at parent#.#name
|
||||
parent#field type def
|
||||
sizeof.#parent#field = $ - parent#field
|
||||
end virtual
|
||||
if sizeof.#parent#field > $ - parent#.#name
|
||||
rb sizeof.#parent#field - ($ - parent#.#name)
|
||||
end if
|
||||
else
|
||||
virtual at parent#.#name
|
||||
label parent#.#type
|
||||
type def
|
||||
end virtual
|
||||
label name#.#type at parent#.#name
|
||||
if sizeof.#type > $ - parent#.#name
|
||||
rb sizeof.#type - ($ - parent#.#name)
|
||||
end if
|
||||
end if
|
||||
common
|
||||
sizeof.#name = $ - parent#.#name
|
||||
end virtual
|
||||
struc name [value] \{ \common
|
||||
label .\#name
|
||||
last@union equ
|
||||
forward
|
||||
match any, last@union \\{ virtual at .\#name
|
||||
field type def
|
||||
end virtual \\}
|
||||
match , last@union \\{ match , value \\\{ field type def \\\}
|
||||
match any, value \\\{ field type value \\\} \\}
|
||||
last@union equ field
|
||||
common rb sizeof.#name - ($ - .\#name) \}
|
||||
macro name [value] \{ \common \local ..anonymous
|
||||
..anonymous name value \} }
|
||||
|
||||
macro define@substruct parent,name,[field,type,def]
|
||||
{ common
|
||||
virtual at parent#.#name
|
||||
forward
|
||||
local value
|
||||
if ~ field eq .
|
||||
parent#field type def
|
||||
sizeof.#parent#field = $ - parent#field
|
||||
else
|
||||
label parent#.#type
|
||||
rb sizeof.#type
|
||||
end if
|
||||
common
|
||||
sizeof.#name = $ - parent#.#name
|
||||
end virtual
|
||||
struc name value \{
|
||||
label .\#name
|
||||
forward
|
||||
match , value \\{ field type def \\}
|
||||
match any, value \\{ field type value
|
||||
if ~ field eq .
|
||||
rb sizeof.#parent#field - ($-field)
|
||||
end if \\}
|
||||
common \}
|
||||
macro name value \{ \local ..anonymous
|
||||
..anonymous name \} }
|
||||
0
toolchain/fasmw17332/INCLUDE/MACRO/proc64.bin
Normal file
0
toolchain/fasmw17332/INCLUDE/MACRO/proc64.bin
Normal file
340
toolchain/fasmw17332/INCLUDE/PCOUNT/ADVAPI32.INC
Normal file
340
toolchain/fasmw17332/INCLUDE/PCOUNT/ADVAPI32.INC
Normal file
@@ -0,0 +1,340 @@
|
||||
|
||||
; ADVAPI32 API calls parameters' count
|
||||
|
||||
AbortSystemShutdown% = 1
|
||||
AccessCheck% = 8
|
||||
AccessCheckAndAuditAlarm% = 11
|
||||
AccessCheckByType% = 11
|
||||
AccessCheckByTypeAndAuditAlarm% = 16
|
||||
AccessCheckByTypeResultList% = 11
|
||||
AccessCheckByTypeResultListAndAuditAlarm% = 16
|
||||
AddAccessAllowedAce% = 4
|
||||
AddAccessAllowedAceEx% = 5
|
||||
AddAccessAllowedObjectAce% = 7
|
||||
AddAccessDeniedAce% = 4
|
||||
AddAccessDeniedAceEx% = 5
|
||||
AddAccessDeniedObjectAce% = 7
|
||||
AddAce% = 5
|
||||
AddAuditAccessAce% = 6
|
||||
AddAuditAccessAceEx% = 7
|
||||
AddAuditAccessObjectAce% = 9
|
||||
AdjustTokenGroups% = 6
|
||||
AdjustTokenPrivileges% = 6
|
||||
AllocateAndInitializeSid% = 11
|
||||
AllocateLocallyUniqueId% = 1
|
||||
AreAllAccessesGranted% = 2
|
||||
AreAnyAccessesGranted% = 2
|
||||
BackupEventLog% = 2
|
||||
BuildExplicitAccessWithName% = 5
|
||||
BuildImpersonateExplicitAccessWithName% = 6
|
||||
BuildImpersonateTrustee% = 2
|
||||
BuildSecurityDescriptor% = 9
|
||||
BuildTrusteeWithName% = 2
|
||||
BuildTrusteeWithSid% = 2
|
||||
CancelOverlappedAccess% = 1
|
||||
ChangeServiceConfig2% = 3
|
||||
ChangeServiceConfig% = 11
|
||||
ClearEventLog% = 2
|
||||
CloseEventLog% = 1
|
||||
CloseRaw% = 1
|
||||
CloseServiceHandle% = 1
|
||||
ControlService% = 3
|
||||
ConvertAccessToSecurityDescriptor% = 5
|
||||
ConvertSecurityDescriptorToAccess% = 7
|
||||
ConvertSecurityDescriptorToAccessNamed% = 7
|
||||
ConvertToAutoInheritPrivateObjectSecurity% = 6
|
||||
CopySid% = 3
|
||||
CreatePrivateObjectSecurity% = 6
|
||||
CreatePrivateObjectSecurityEx% = 8
|
||||
CreateProcessAsUser% = 11
|
||||
CreateRestrictedToken% = 9
|
||||
CreateService% = 13
|
||||
CryptAcquireContext% = 5
|
||||
CryptContextAddRef% = 3
|
||||
CryptCreateHash% = 5
|
||||
CryptDecrypt% = 6
|
||||
CryptDeriveKey% = 5
|
||||
CryptDestroyHash% = 1
|
||||
CryptDestroyKey% = 1
|
||||
CryptDuplicateHash% = 4
|
||||
CryptDuplicateKey% = 4
|
||||
CryptEncrypt% = 7
|
||||
CryptEnumProviderTypes% = 6
|
||||
CryptEnumProviders% = 6
|
||||
CryptExportKey% = 6
|
||||
CryptGenKey% = 4
|
||||
CryptGenRandom% = 3
|
||||
CryptGetDefaultProvider% = 5
|
||||
CryptGetHashParam% = 5
|
||||
CryptGetKeyParam% = 5
|
||||
CryptGetProvParam% = 5
|
||||
CryptGetUserKey% = 3
|
||||
CryptHashData% = 4
|
||||
CryptHashSessionKey% = 3
|
||||
CryptImportKey% = 6
|
||||
CryptReleaseContext% = 2
|
||||
CryptSetHashParam% = 4
|
||||
CryptSetKeyParam% = 4
|
||||
CryptSetProvParam% = 4
|
||||
CryptSetProvider% = 2
|
||||
CryptSetProviderEx% = 4
|
||||
CryptSignHash% = 6
|
||||
CryptVerifySignature% = 6
|
||||
DecryptFile% = 2
|
||||
DeleteAce% = 2
|
||||
DeleteService% = 1
|
||||
DeregisterEventSource% = 1
|
||||
DestroyPrivateObjectSecurity% = 1
|
||||
DuplicateToken% = 3
|
||||
DuplicateTokenEx% = 6
|
||||
ElfBackupEventLogFile% = 2
|
||||
ElfChangeNotify% = 2
|
||||
ElfClearEventLogFile% = 2
|
||||
ElfCloseEventLog% = 1
|
||||
ElfDeregisterEventSource% = 1
|
||||
ElfNumberOfRecords% = 2
|
||||
ElfOldestRecord% = 2
|
||||
ElfOpenBackupEventLog% = 3
|
||||
ElfOpenEventLog% = 3
|
||||
ElfReadEventLog% = 7
|
||||
ElfRegisterEventSource% = 3
|
||||
ElfReportEvent% = 12
|
||||
EncryptFile% = 1
|
||||
EnumDependentServices% = 6
|
||||
EnumServicesStatus% = 8
|
||||
EqualPrefixSid% = 2
|
||||
EqualSid% = 2
|
||||
FindFirstFreeAce% = 2
|
||||
FreeSid% = 1
|
||||
GetAccessPermissionsForObject% = 9
|
||||
GetAce% = 3
|
||||
GetAclInformation% = 4
|
||||
GetAuditedPermissionsFromAcl% = 4
|
||||
GetCurrentHwProfile% = 1
|
||||
GetEffectiveRightsFromAcl% = 3
|
||||
GetExplicitEntriesFromAcl% = 3
|
||||
GetFileSecurity% = 5
|
||||
GetKernelObjectSecurity% = 5
|
||||
GetLengthSid% = 1
|
||||
GetMultipleTrustee% = 1
|
||||
GetMultipleTrusteeOperation% = 1
|
||||
GetNamedSecurityInfo% = 8
|
||||
GetNamedSecurityInfoEx% = 9
|
||||
GetNumberOfEventLogRecords% = 2
|
||||
GetOldestEventLogRecord% = 2
|
||||
GetOverlappedAccessResults% = 4
|
||||
GetPrivateObjectSecurity% = 5
|
||||
GetSecurityDescriptorControl% = 3
|
||||
GetSecurityDescriptorDacl% = 4
|
||||
GetSecurityDescriptorGroup% = 3
|
||||
GetSecurityDescriptorLength% = 1
|
||||
GetSecurityDescriptorOwner% = 3
|
||||
GetSecurityDescriptorSacl% = 4
|
||||
GetSecurityInfo% = 8
|
||||
GetSecurityInfoEx% = 9
|
||||
GetServiceDisplayName% = 4
|
||||
GetServiceKeyName% = 4
|
||||
GetSidLengthRequired% = 1
|
||||
GetSidSubAuthority% = 2
|
||||
GetSidSubAuthorityCount% = 1
|
||||
GetTokenInformation% = 5
|
||||
GetTrusteeName% = 1
|
||||
GetTrusteeType% = 1
|
||||
GetUserName% = 2
|
||||
I_ScSetServiceBits% = 5
|
||||
ImpersonateLoggedOnUser% = 1
|
||||
ImpersonateNamedPipeClient% = 1
|
||||
ImpersonateSelf% = 1
|
||||
InitializeAcl% = 3
|
||||
InitializeSecurityDescriptor% = 2
|
||||
InitializeSid% = 3
|
||||
InitiateSystemShutdown% = 5
|
||||
IsTextUnicode% = 3
|
||||
IsTokenRestricted% = 1
|
||||
IsValidAcl% = 1
|
||||
IsValidSecurityDescriptor% = 1
|
||||
IsValidSid% = 1
|
||||
LockServiceDatabase% = 1
|
||||
LogonUser% = 6
|
||||
LookupAccountName% = 7
|
||||
LookupAccountSid% = 7
|
||||
LookupPrivilegeDisplayName% = 5
|
||||
LookupPrivilegeName% = 4
|
||||
LookupPrivilegeValue% = 3
|
||||
LookupSecurityDescriptorParts% = 7
|
||||
LsaAddAccountRights% = 4
|
||||
LsaAddPrivilegesToAccount% = 2
|
||||
LsaClearAuditLog% = 1
|
||||
LsaClose% = 1
|
||||
LsaCreateAccount% = 4
|
||||
LsaCreateSecret% = 4
|
||||
LsaCreateTrustedDomain% = 4
|
||||
LsaCreateTrustedDomainEx% = 5
|
||||
LsaDelete% = 1
|
||||
LsaDeleteTrustedDomain% = 2
|
||||
LsaEnumerateAccountRights% = 4
|
||||
LsaEnumerateAccounts% = 5
|
||||
LsaEnumerateAccountsWithUserRight% = 4
|
||||
LsaEnumeratePrivileges% = 5
|
||||
LsaEnumeratePrivilegesOfAccount% = 2
|
||||
LsaEnumerateTrustedDomains% = 5
|
||||
LsaEnumerateTrustedDomainsEx% = 6
|
||||
LsaFreeMemory% = 1
|
||||
LsaGetQuotasForAccount% = 2
|
||||
LsaGetSystemAccessAccount% = 2
|
||||
LsaGetUserName% = 2
|
||||
LsaICLookupNames% = 7
|
||||
LsaICLookupSids% = 7
|
||||
LsaIGetTrustedDomainAuthInfoBlobs% = 4
|
||||
LsaISetTrustedDomainAuthInfoBlobs% = 4
|
||||
LsaLookupNames% = 5
|
||||
LsaLookupPrivilegeDisplayName% = 4
|
||||
LsaLookupPrivilegeName% = 3
|
||||
LsaLookupPrivilegeValue% = 3
|
||||
LsaLookupSids% = 5
|
||||
LsaNtStatusToWinError% = 1
|
||||
LsaOpenAccount% = 4
|
||||
LsaOpenPolicy% = 4
|
||||
LsaOpenSecret% = 4
|
||||
LsaOpenTrustedDomain% = 4
|
||||
LsaQueryDomainInformationPolicy% = 3
|
||||
LsaQueryInfoTrustedDomain% = 3
|
||||
LsaQueryInformationPolicy% = 3
|
||||
LsaQueryLocalInformationPolicy% = 3
|
||||
LsaQuerySecret% = 5
|
||||
LsaQuerySecurityObject% = 3
|
||||
LsaQueryTrustedDomainInfo% = 4
|
||||
LsaQueryTrustedDomainInfoByName% = 4
|
||||
LsaRemoveAccountRights% = 5
|
||||
LsaRemovePrivilegesFromAccount% = 3
|
||||
LsaRetrievePrivateData% = 3
|
||||
LsaSetDomainInformationPolicy% = 3
|
||||
LsaSetInformationPolicy% = 3
|
||||
LsaSetInformationTrustedDomain% = 3
|
||||
LsaSetLocalInformationPolicy% = 3
|
||||
LsaSetQuotasForAccount% = 2
|
||||
LsaSetSecret% = 3
|
||||
LsaSetSecurityObject% = 3
|
||||
LsaSetSystemAccessAccount% = 2
|
||||
LsaSetTrustedDomainInfoByName% = 4
|
||||
LsaSetTrustedDomainInformation% = 4
|
||||
LsaStorePrivateData% = 3
|
||||
MakeAbsoluteSD% = 11
|
||||
MakeSelfRelativeSD% = 3
|
||||
MapGenericMask% = 2
|
||||
NotifyBootConfigStatus% = 1
|
||||
NotifyChangeEventLog% = 2
|
||||
ObjectCloseAuditAlarm% = 3
|
||||
ObjectDeleteAuditAlarm% = 3
|
||||
ObjectOpenAuditAlarm% = 12
|
||||
ObjectPrivilegeAuditAlarm% = 6
|
||||
OpenBackupEventLog% = 2
|
||||
OpenEventLog% = 2
|
||||
OpenProcessToken% = 3
|
||||
OpenRaw% = 3
|
||||
OpenSCManager% = 3
|
||||
OpenService% = 3
|
||||
OpenThreadToken% = 4
|
||||
PrivilegeCheck% = 3
|
||||
PrivilegedServiceAuditAlarm% = 5
|
||||
QueryRecoveryAgents% = 3
|
||||
QueryServiceConfig2% = 5
|
||||
QueryServiceConfig% = 4
|
||||
QueryServiceLockStatus% = 4
|
||||
QueryServiceObjectSecurity% = 5
|
||||
QueryServiceStatus% = 2
|
||||
QueryWindows31FilesMigration% = 1
|
||||
ReadEventLog% = 7
|
||||
ReadRaw% = 3
|
||||
RegCloseKey% = 1
|
||||
RegConnectRegistry% = 3
|
||||
RegCreateKey% = 3
|
||||
RegCreateKeyEx% = 9
|
||||
RegDeleteKey% = 2
|
||||
RegDeleteValue% = 2
|
||||
RegEnumKey% = 4
|
||||
RegEnumKeyEx% = 8
|
||||
RegEnumValue% = 8
|
||||
RegFlushKey% = 1
|
||||
RegGetKeySecurity% = 4
|
||||
RegLoadKey% = 3
|
||||
RegNotifyChangeKeyValue% = 5
|
||||
RegOpenKey% = 3
|
||||
RegOpenKeyEx% = 5
|
||||
RegOverridePredefKey% = 2
|
||||
RegQueryInfoKey% = 12
|
||||
RegQueryMultipleValues% = 5
|
||||
RegQueryValue% = 4
|
||||
RegQueryValueEx% = 6
|
||||
RegReplaceKey% = 4
|
||||
RegRestoreKey% = 3
|
||||
RegSaveKey% = 3
|
||||
RegSetKeySecurity% = 3
|
||||
RegSetValue% = 5
|
||||
RegSetValueEx% = 6
|
||||
RegUnLoadKey% = 2
|
||||
RegisterEventSource% = 2
|
||||
RegisterServiceCtrlHandler% = 2
|
||||
ReportEvent% = 9
|
||||
RevertToSelf% = 0
|
||||
SetAclInformation% = 4
|
||||
SetEntriesInAccessList% = 6
|
||||
SetEntriesInAcl% = 4
|
||||
SetEntriesInAuditList% = 6
|
||||
SetFileSecurity% = 3
|
||||
SetKernelObjectSecurity% = 3
|
||||
SetNamedSecurityInfo% = 7
|
||||
SetNamedSecurityInfoEx% = 9
|
||||
SetPrivateObjectSecurity% = 5
|
||||
SetPrivateObjectSecurityEx% = 6
|
||||
SetSecurityDescriptorControl% = 3
|
||||
SetSecurityDescriptorDacl% = 4
|
||||
SetSecurityDescriptorGroup% = 3
|
||||
SetSecurityDescriptorOwner% = 3
|
||||
SetSecurityDescriptorSacl% = 4
|
||||
SetSecurityInfo% = 7
|
||||
SetSecurityInfoEx% = 9
|
||||
SetServiceBits% = 4
|
||||
SetServiceObjectSecurity% = 3
|
||||
SetServiceStatus% = 2
|
||||
SetThreadToken% = 2
|
||||
SetTokenInformation% = 4
|
||||
StartService% = 3
|
||||
StartServiceCtrlDispatcher% = 1
|
||||
SynchronizeWindows31FilesAndWindowsNTRegistry% = 4
|
||||
SystemFunction001% = 3
|
||||
SystemFunction002% = 3
|
||||
SystemFunction003% = 2
|
||||
SystemFunction004% = 3
|
||||
SystemFunction005% = 3
|
||||
SystemFunction006% = 2
|
||||
SystemFunction007% = 2
|
||||
SystemFunction008% = 3
|
||||
SystemFunction009% = 3
|
||||
SystemFunction010% = 3
|
||||
SystemFunction011% = 3
|
||||
SystemFunction012% = 3
|
||||
SystemFunction013% = 3
|
||||
SystemFunction014% = 3
|
||||
SystemFunction015% = 3
|
||||
SystemFunction016% = 3
|
||||
SystemFunction017% = 3
|
||||
SystemFunction018% = 3
|
||||
SystemFunction019% = 3
|
||||
SystemFunction020% = 3
|
||||
SystemFunction021% = 3
|
||||
SystemFunction022% = 3
|
||||
SystemFunction023% = 3
|
||||
SystemFunction024% = 3
|
||||
SystemFunction025% = 3
|
||||
SystemFunction026% = 3
|
||||
SystemFunction027% = 3
|
||||
SystemFunction028% = 2
|
||||
SystemFunction029% = 2
|
||||
SystemFunction030% = 2
|
||||
SystemFunction031% = 2
|
||||
SystemFunction032% = 2
|
||||
SystemFunction033% = 2
|
||||
TrusteeAccessToObject% = 6
|
||||
UnlockServiceDatabase% = 1
|
||||
WriteRaw% = 3
|
||||
69
toolchain/fasmw17332/INCLUDE/PCOUNT/COMCTL32.INC
Normal file
69
toolchain/fasmw17332/INCLUDE/PCOUNT/COMCTL32.INC
Normal file
@@ -0,0 +1,69 @@
|
||||
|
||||
; COMCTL32 API calls parameters' count
|
||||
|
||||
CreateMappedBitmap% = 5
|
||||
CreatePropertySheetPage% = 1
|
||||
CreateStatusWindow% = 4
|
||||
CreateToolbar% = 8
|
||||
CreateToolbarEx% = 13
|
||||
CreateUpDownControl% = 12
|
||||
DestroyPropertySheetPage% = 1
|
||||
DrawInsert% = 3
|
||||
DrawStatusText% = 4
|
||||
FlatSB_EnableScrollBar% = 3
|
||||
FlatSB_GetScrollInfo% = 3
|
||||
FlatSB_GetScrollPos% = 2
|
||||
FlatSB_GetScrollProp% = 3
|
||||
FlatSB_GetScrollRange% = 4
|
||||
FlatSB_SetScrollInfo% = 4
|
||||
FlatSB_SetScrollPos% = 4
|
||||
FlatSB_SetScrollProp% = 4
|
||||
FlatSB_SetScrollRange% = 5
|
||||
FlatSB_ShowScrollBar% = 3
|
||||
GetEffectiveClientRect% = 3
|
||||
ImageList_Add% = 3
|
||||
ImageList_AddIcon% = 2
|
||||
ImageList_AddMasked% = 3
|
||||
ImageList_BeginDrag% = 4
|
||||
ImageList_Copy% = 5
|
||||
ImageList_Create% = 5
|
||||
ImageList_Destroy% = 1
|
||||
ImageList_DragEnter% = 3
|
||||
ImageList_DragLeave% = 1
|
||||
ImageList_DragMove% = 2
|
||||
ImageList_DragShowNolock% = 1
|
||||
ImageList_Draw% = 6
|
||||
ImageList_DrawEx% = 10
|
||||
ImageList_DrawIndirect% = 1
|
||||
ImageList_Duplicate% = 1
|
||||
ImageList_EndDrag% = 0
|
||||
ImageList_GetBkColor% = 1
|
||||
ImageList_GetDragImage% = 2
|
||||
ImageList_GetIcon% = 3
|
||||
ImageList_GetIconSize% = 3
|
||||
ImageList_GetImageCount% = 1
|
||||
ImageList_GetImageInfo% = 3
|
||||
ImageList_GetImageRect% = 3
|
||||
ImageList_LoadImage% = 7
|
||||
ImageList_Merge% = 6
|
||||
ImageList_Read% = 1
|
||||
ImageList_Remove% = 2
|
||||
ImageList_Replace% = 4
|
||||
ImageList_ReplaceIcon% = 3
|
||||
ImageList_SetBkColor% = 2
|
||||
ImageList_SetDragCursorImage% = 4
|
||||
ImageList_SetFilter% = 3
|
||||
ImageList_SetIconSize% = 3
|
||||
ImageList_SetImageCount% = 2
|
||||
ImageList_SetOverlayImage% = 3
|
||||
ImageList_Write% = 2
|
||||
InitCommonControls% = 0
|
||||
InitCommonControlsEx% = 1
|
||||
InitializeFlatSB% = 1
|
||||
LBItemFromPt% = 4
|
||||
MakeDragList% = 1
|
||||
MenuHelp% = 7
|
||||
PropertySheet% = 1
|
||||
ShowHideMenuCtl% = 3
|
||||
UninitializeFlatSB% = 1
|
||||
_TrackMouseEvent% = 1
|
||||
18
toolchain/fasmw17332/INCLUDE/PCOUNT/COMDLG32.INC
Normal file
18
toolchain/fasmw17332/INCLUDE/PCOUNT/COMDLG32.INC
Normal file
@@ -0,0 +1,18 @@
|
||||
|
||||
; COMDLG32 API calls parameters' count
|
||||
|
||||
ChooseColor% = 1
|
||||
ChooseFont% = 1
|
||||
CommDlgExtendedError% = 0
|
||||
FindText% = 1
|
||||
FormatCharDlgProc% = 4
|
||||
GetFileTitle% = 3
|
||||
GetOpenFileName% = 1
|
||||
GetSaveFileName% = 1
|
||||
LoadAlterBitmap% = 3
|
||||
PageSetupDlg% = 1
|
||||
PrintDlg% = 1
|
||||
ReplaceText% = 1
|
||||
WantArrows% = 4
|
||||
dwLBSubclass% = 4
|
||||
dwOKSubclass% = 4
|
||||
319
toolchain/fasmw17332/INCLUDE/PCOUNT/GDI32.INC
Normal file
319
toolchain/fasmw17332/INCLUDE/PCOUNT/GDI32.INC
Normal file
@@ -0,0 +1,319 @@
|
||||
|
||||
; GDI32 API calls parameters' count
|
||||
|
||||
AbortDoc% = 1
|
||||
AbortPath% = 1
|
||||
AddFontMemResourceEx% = 4
|
||||
AddFontResource% = 1
|
||||
AddFontResourceEx% = 3
|
||||
AngleArc% = 6
|
||||
AnimatePalette% = 4
|
||||
Arc% = 9
|
||||
ArcTo% = 9
|
||||
BeginPath% = 1
|
||||
BitBlt% = 9
|
||||
CancelDC% = 1
|
||||
CheckColorsInGamut% = 4
|
||||
ChoosePixelFormat% = 2
|
||||
Chord% = 9
|
||||
CloseEnhMetaFile% = 1
|
||||
CloseFigure% = 1
|
||||
CloseMetaFile% = 1
|
||||
ColorCorrectPalette% = 4
|
||||
ColorMatchToTarget% = 3
|
||||
CombineRgn% = 4
|
||||
CombineTransform% = 3
|
||||
CopyEnhMetaFile% = 2
|
||||
CopyMetaFile% = 2
|
||||
CreateBitmap% = 5
|
||||
CreateBitmapIndirect% = 1
|
||||
CreateBrushIndirect% = 1
|
||||
CreateColorSpace% = 1
|
||||
CreateCompatibleBitmap% = 3
|
||||
CreateCompatibleDC% = 1
|
||||
CreateDC% = 4
|
||||
CreateDIBPatternBrush% = 2
|
||||
CreateDIBPatternBrushPt% = 2
|
||||
CreateDIBSection% = 6
|
||||
CreateDIBitmap% = 6
|
||||
CreateDiscardableBitmap% = 3
|
||||
CreateEllipticRgn% = 4
|
||||
CreateEllipticRgnIndirect% = 1
|
||||
CreateEnhMetaFile% = 4
|
||||
CreateFont% = 14
|
||||
CreateFontIndirect% = 1
|
||||
CreateFontIndirectEx% = 1
|
||||
CreateHalftonePalette% = 1
|
||||
CreateHatchBrush% = 2
|
||||
CreateIC% = 4
|
||||
CreateMetaFile% = 1
|
||||
CreatePalette% = 1
|
||||
CreatePatternBrush% = 1
|
||||
CreatePen% = 3
|
||||
CreatePenIndirect% = 1
|
||||
CreatePolyPolygonRgn% = 4
|
||||
CreatePolygonRgn% = 3
|
||||
CreateRectRgn% = 4
|
||||
CreateRectRgnIndirect% = 1
|
||||
CreateRoundRectRgn% = 6
|
||||
CreateScalableFontResource% = 4
|
||||
CreateSolidBrush% = 1
|
||||
DPtoLP% = 3
|
||||
DeleteColorSpace% = 1
|
||||
DeleteDC% = 1
|
||||
DeleteEnhMetaFile% = 1
|
||||
DeleteMetaFile% = 1
|
||||
DeleteObject% = 1
|
||||
DescribePixelFormat% = 4
|
||||
DeviceCapabilitiesEx% = 6
|
||||
DrawEscape% = 4
|
||||
Ellipse% = 5
|
||||
EnableEUDC% = 1
|
||||
EndDoc% = 1
|
||||
EndPage% = 1
|
||||
EndPath% = 1
|
||||
EnumEnhMetaFile% = 5
|
||||
EnumFontFamilies% = 4
|
||||
EnumFontFamiliesEx% = 5
|
||||
EnumFonts% = 4
|
||||
EnumICMProfiles% = 3
|
||||
EnumMetaFile% = 4
|
||||
EnumObjects% = 4
|
||||
EqualRgn% = 2
|
||||
Escape% = 5
|
||||
ExcludeClipRect% = 5
|
||||
ExtCreatePen% = 5
|
||||
ExtCreateRegion% = 3
|
||||
ExtEscape% = 6
|
||||
ExtFloodFill% = 5
|
||||
ExtSelectClipRgn% = 3
|
||||
ExtTextOut% = 8
|
||||
FillPath% = 1
|
||||
FillRgn% = 3
|
||||
FixBrushOrgEx% = 4
|
||||
FlattenPath% = 1
|
||||
FloodFill% = 4
|
||||
FrameRgn% = 5
|
||||
GdiComment% = 3
|
||||
GdiDeleteSpoolFileHandle% = 1
|
||||
GdiEndDocEMF% = 1
|
||||
GdiEndPageEMF% = 2
|
||||
GdiFlush% = 0
|
||||
GdiGetBatchLimit% = 0
|
||||
GdiGetDC% = 1
|
||||
GdiGetDevmodeForPage% = 4
|
||||
GdiGetPageCount% = 1
|
||||
GdiGetPageHandle% = 3
|
||||
GdiGetSpoolFileHandle% = 3
|
||||
GdiPlayDCScript% = 6
|
||||
GdiPlayEMF% = 5
|
||||
GdiPlayJournal% = 5
|
||||
GdiPlayPageEMF% = 4
|
||||
GdiPlayPrivatePageEMF% = 3
|
||||
GdiPlayScript% = 7
|
||||
GdiResetDCEMF% = 2
|
||||
GdiSetBatchLimit% = 1
|
||||
GdiStartDocEMF% = 2
|
||||
GdiStartPageEMF% = 1
|
||||
GetArcDirection% = 1
|
||||
GetAspectRatioFilterEx% = 2
|
||||
GetBitmapBits% = 3
|
||||
GetBitmapDimensionEx% = 2
|
||||
GetBkColor% = 1
|
||||
GetBkMode% = 1
|
||||
GetBoundsRect% = 3
|
||||
GetBrushOrgEx% = 2
|
||||
GetCharABCWidths% = 4
|
||||
GetCharABCWidthsFloat% = 4
|
||||
GetCharABCWidthsI% = 5
|
||||
GetCharWidth32% = 4
|
||||
GetCharWidth% = 4
|
||||
GetCharWidthFloat% = 4
|
||||
GetCharWidthI% = 5
|
||||
GetCharacterPlacement% = 6
|
||||
GetClipBox% = 2
|
||||
GetClipRgn% = 2
|
||||
GetColorAdjustment% = 2
|
||||
GetColorSpace% = 1
|
||||
GetCurrentObject% = 2
|
||||
GetCurrentPositionEx% = 2
|
||||
GetDCBrushColor% = 1
|
||||
GetDCOrgEx% = 2
|
||||
GetDCPenColor% = 1
|
||||
GetDIBColorTable% = 4
|
||||
GetDIBits% = 7
|
||||
GetDeviceCaps% = 2
|
||||
GetDeviceGammaRamp% = 2
|
||||
GetEnhMetaFile% = 1
|
||||
GetEnhMetaFileBits% = 3
|
||||
GetEnhMetaFileDescription% = 3
|
||||
GetEnhMetaFileHeader% = 3
|
||||
GetEnhMetaFilePaletteEntries% = 3
|
||||
GetEnhMetaFilePixelFormat% = 3
|
||||
GetFontAssocStatus% = 1
|
||||
GetFontData% = 5
|
||||
GetFontLanguageInfo% = 1
|
||||
GetFontUnicodeRanges% = 2
|
||||
GetGlyphIndices% = 5
|
||||
GetGlyphOutline% = 7
|
||||
GetGraphicsMode% = 1
|
||||
GetICMProfile% = 3
|
||||
GetKerningPairs% = 3
|
||||
GetLogColorSpace% = 3
|
||||
GetMapMode% = 1
|
||||
GetMetaFile% = 1
|
||||
GetMetaFileBitsEx% = 3
|
||||
GetMetaRgn% = 2
|
||||
GetMiterLimit% = 2
|
||||
GetNearestColor% = 2
|
||||
GetNearestPaletteIndex% = 2
|
||||
GetObject% = 3
|
||||
GetObjectType% = 1
|
||||
GetOutlineTextMetrics% = 3
|
||||
GetPaletteEntries% = 4
|
||||
GetPath% = 4
|
||||
GetPixel% = 3
|
||||
GetPixelFormat% = 1
|
||||
GetPolyFillMode% = 1
|
||||
GetROP2% = 1
|
||||
GetRandomRgn% = 3
|
||||
GetRasterizerCaps% = 2
|
||||
GetRegionData% = 3
|
||||
GetRelAbs% = 2
|
||||
GetRgnBox% = 2
|
||||
GetStockObject% = 1
|
||||
GetStretchBltMode% = 1
|
||||
GetSystemPaletteEntries% = 4
|
||||
GetSystemPaletteUse% = 1
|
||||
GetTextAlign% = 1
|
||||
GetTextCharacterExtra% = 1
|
||||
GetTextCharset% = 1
|
||||
GetTextCharsetInfo% = 3
|
||||
GetTextColor% = 1
|
||||
GetTextExtentExPoint% = 7
|
||||
GetTextExtentExPointI% = 7
|
||||
GetTextExtentPoint32% = 4
|
||||
GetTextExtentPoint% = 4
|
||||
GetTextExtentPointI% = 4
|
||||
GetTextFace% = 3
|
||||
GetTextMetrics% = 2
|
||||
GetViewportExtEx% = 2
|
||||
GetViewportOrgEx% = 2
|
||||
GetWinMetaFileBits% = 5
|
||||
GetWindowExtEx% = 2
|
||||
GetWindowOrgEx% = 2
|
||||
GetWorldTransform% = 2
|
||||
IntersectClipRect% = 5
|
||||
InvertRgn% = 2
|
||||
LPtoDP% = 3
|
||||
LineDD% = 6
|
||||
LineTo% = 3
|
||||
MaskBlt% = 12
|
||||
ModifyWorldTransform% = 3
|
||||
MoveToEx% = 4
|
||||
OffsetClipRgn% = 3
|
||||
OffsetRgn% = 3
|
||||
OffsetViewportOrgEx% = 4
|
||||
OffsetWindowOrgEx% = 4
|
||||
PaintRgn% = 2
|
||||
PatBlt% = 6
|
||||
PathToRegion% = 1
|
||||
Pie% = 9
|
||||
PlayEnhMetaFile% = 3
|
||||
PlayEnhMetaFileRecord% = 4
|
||||
PlayMetaFile% = 2
|
||||
PlayMetaFileRecord% = 4
|
||||
PlgBlt% = 10
|
||||
PolyBezier% = 3
|
||||
PolyBezierTo% = 3
|
||||
PolyDraw% = 4
|
||||
PolyPatBlt% = 5
|
||||
PolyPolygon% = 4
|
||||
PolyPolyline% = 4
|
||||
PolyTextOut% = 3
|
||||
Polygon% = 3
|
||||
Polyline% = 3
|
||||
PolylineTo% = 3
|
||||
PtInRegion% = 3
|
||||
PtVisible% = 3
|
||||
RealizePalette% = 1
|
||||
RectInRegion% = 2
|
||||
RectVisible% = 2
|
||||
Rectangle% = 5
|
||||
RemoveFontMemResourceEx% = 1
|
||||
RemoveFontResource% = 1
|
||||
RemoveFontResourceEx% = 3
|
||||
ResetDC% = 2
|
||||
ResizePalette% = 2
|
||||
RestoreDC% = 2
|
||||
RoundRect% = 7
|
||||
SaveDC% = 1
|
||||
ScaleViewportExtEx% = 6
|
||||
ScaleWindowExtEx% = 6
|
||||
SelectBrushLocal% = 2
|
||||
SelectClipPath% = 2
|
||||
SelectClipRgn% = 2
|
||||
SelectFontLocal% = 2
|
||||
SelectObject% = 2
|
||||
SelectPalette% = 3
|
||||
SetAbortProc% = 2
|
||||
SetArcDirection% = 2
|
||||
SetBitmapBits% = 3
|
||||
SetBitmapDimensionEx% = 4
|
||||
SetBkColor% = 2
|
||||
SetBkMode% = 2
|
||||
SetBoundsRect% = 3
|
||||
SetBrushOrgEx% = 4
|
||||
SetColorAdjustment% = 2
|
||||
SetColorSpace% = 2
|
||||
SetDCBrushColor% = 2
|
||||
SetDCPenColor% = 2
|
||||
SetDIBColorTable% = 4
|
||||
SetDIBits% = 7
|
||||
SetDIBitsToDevice% = 12
|
||||
SetDeviceGammaRamp% = 2
|
||||
SetEnhMetaFileBits% = 2
|
||||
SetFontEnumeration% = 1
|
||||
SetGraphicsMode% = 2
|
||||
SetICMMode% = 2
|
||||
SetICMProfile% = 2
|
||||
SetMagicColors% = 3
|
||||
SetMapMode% = 2
|
||||
SetMapperFlags% = 2
|
||||
SetMetaFileBitsEx% = 2
|
||||
SetMetaRgn% = 1
|
||||
SetMiterLimit% = 3
|
||||
SetPaletteEntries% = 4
|
||||
SetPixel% = 4
|
||||
SetPixelFormat% = 3
|
||||
SetPixelV% = 4
|
||||
SetPolyFillMode% = 2
|
||||
SetROP2% = 2
|
||||
SetRectRgn% = 5
|
||||
SetRelAbs% = 2
|
||||
SetStretchBltMode% = 2
|
||||
SetSystemPaletteUse% = 2
|
||||
SetTextAlign% = 2
|
||||
SetTextCharacterExtra% = 2
|
||||
SetTextColor% = 2
|
||||
SetTextJustification% = 3
|
||||
SetViewportExtEx% = 4
|
||||
SetViewportOrgEx% = 4
|
||||
SetWinMetaFileBits% = 4
|
||||
SetWindowExtEx% = 4
|
||||
SetWindowOrgEx% = 4
|
||||
SetWorldTransform% = 2
|
||||
StartDoc% = 2
|
||||
StartPage% = 1
|
||||
StretchBlt% = 11
|
||||
StretchDIBits% = 13
|
||||
StrokeAndFillPath% = 1
|
||||
StrokePath% = 1
|
||||
SwapBuffers% = 1
|
||||
TextOut% = 5
|
||||
TranslateCharsetInfo% = 3
|
||||
UnrealizeObject% = 1
|
||||
UpdateColors% = 1
|
||||
UpdateICMRegKey% = 4
|
||||
WidenPath% = 1
|
||||
gdiPlaySpoolStream% = 6
|
||||
557
toolchain/fasmw17332/INCLUDE/PCOUNT/KERNEL32.INC
Normal file
557
toolchain/fasmw17332/INCLUDE/PCOUNT/KERNEL32.INC
Normal file
@@ -0,0 +1,557 @@
|
||||
|
||||
; KERNEL32 API calls parameters' count
|
||||
|
||||
AddAtom% = 1
|
||||
AddConsoleAlias% = 3
|
||||
AllocConsole% = 0
|
||||
AreFileApisANSI% = 0
|
||||
AssignProcessToJobObject% = 2
|
||||
BackupRead% = 7
|
||||
BackupSeek% = 6
|
||||
BackupWrite% = 7
|
||||
BaseAttachCompleteThunk% = 0
|
||||
Beep% = 2
|
||||
BeginUpdateResource% = 2
|
||||
BuildCommDCB% = 2
|
||||
BuildCommDCBAndTimeouts% = 3
|
||||
CallNamedPipe% = 7
|
||||
CancelIo% = 1
|
||||
CancelWaitableTimer% = 1
|
||||
ClearCommBreak% = 1
|
||||
ClearCommError% = 3
|
||||
CloseConsoleHandle% = 1
|
||||
CloseHandle% = 1
|
||||
CloseProfileUserMapping% = 0
|
||||
CmdBatNotification% = 1
|
||||
CommConfigDialog% = 3
|
||||
CompareFileTime% = 2
|
||||
CompareString% = 6
|
||||
ConnectNamedPipe% = 2
|
||||
ConsoleMenuControl% = 3
|
||||
ContinueDebugEvent% = 3
|
||||
ConvertDefaultLocale% = 1
|
||||
ConvertThreadToFiber% = 1
|
||||
CopyFile% = 3
|
||||
CopyFileEx% = 6
|
||||
CreateConsoleScreenBuffer% = 5
|
||||
CreateDirectory% = 2
|
||||
CreateDirectoryEx% = 3
|
||||
CreateEvent% = 4
|
||||
CreateFiber% = 3
|
||||
CreateFile% = 7
|
||||
CreateFileMapping% = 6
|
||||
CreateHardLink% = 3
|
||||
CreateIoCompletionPort% = 4
|
||||
CreateJobObject% = 2
|
||||
CreateMailslot% = 4
|
||||
CreateMutex% = 3
|
||||
CreateNamedPipe% = 8
|
||||
CreatePipe% = 4
|
||||
CreateProcess% = 10
|
||||
CreateRemoteThread% = 7
|
||||
CreateSemaphore% = 4
|
||||
CreateTapePartition% = 4
|
||||
CreateThread% = 6
|
||||
CreateToolhelp32Snapshot% = 2
|
||||
CreateVirtualBuffer% = 3
|
||||
CreateWaitableTimer% = 3
|
||||
DebugActiveProcess% = 1
|
||||
DebugBreak% = 0
|
||||
DefineDosDevice% = 3
|
||||
DeleteAtom% = 1
|
||||
DeleteCriticalSection% = 1
|
||||
DeleteFiber% = 1
|
||||
DeleteFile% = 1
|
||||
DeviceIoControl% = 8
|
||||
DisableThreadLibraryCalls% = 1
|
||||
DisconnectNamedPipe% = 1
|
||||
DosDateTimeToFileTime% = 3
|
||||
DuplicateConsoleHandle% = 4
|
||||
DuplicateHandle% = 7
|
||||
EndUpdateResource% = 2
|
||||
EnterCriticalSection% = 1
|
||||
EnumCalendarInfo% = 4
|
||||
EnumCalendarInfoEx% = 4
|
||||
EnumDateFormats% = 3
|
||||
EnumDateFormatsEx% = 3
|
||||
EnumResourceLanguages% = 5
|
||||
EnumResourceNames% = 4
|
||||
EnumResourceTypes% = 3
|
||||
EnumSystemCodePages% = 2
|
||||
EnumSystemLocales% = 2
|
||||
EnumTimeFormats% = 3
|
||||
EraseTape% = 3
|
||||
EscapeCommFunction% = 2
|
||||
ExitProcess% = 1
|
||||
ExitThread% = 1
|
||||
ExitVDM% = 2
|
||||
ExpandEnvironmentStrings% = 3
|
||||
ExpungeConsoleCommandHistory% = 1
|
||||
ExtendVirtualBuffer% = 2
|
||||
FatalAppExit% = 2
|
||||
FatalExit% = 1
|
||||
FileTimeToDosDateTime% = 3
|
||||
FileTimeToLocalFileTime% = 2
|
||||
FileTimeToSystemTime% = 2
|
||||
FillConsoleOutputAttribute% = 5
|
||||
FillConsoleOutputCharacter% = 5
|
||||
FindAtom% = 1
|
||||
FindClose% = 1
|
||||
FindCloseChangeNotification% = 1
|
||||
FindFirstChangeNotification% = 3
|
||||
FindFirstFile% = 2
|
||||
FindFirstFileEx% = 6
|
||||
FindNextChangeNotification% = 1
|
||||
FindNextFile% = 2
|
||||
FindResource% = 3
|
||||
FindResourceEx% = 4
|
||||
FlushConsoleInputBuffer% = 1
|
||||
FlushFileBuffers% = 1
|
||||
FlushInstructionCache% = 3
|
||||
FlushViewOfFile% = 2
|
||||
FoldString% = 5
|
||||
FormatMessage% = 7
|
||||
FreeConsole% = 0
|
||||
FreeEnvironmentStrings% = 1
|
||||
FreeLibrary% = 1
|
||||
FreeLibraryAndExitThread% = 2
|
||||
FreeResource% = 1
|
||||
FreeVirtualBuffer% = 1
|
||||
GenerateConsoleCtrlEvent% = 2
|
||||
GetACP% = 0
|
||||
GetAtomName% = 3
|
||||
GetBinaryType% = 2
|
||||
GetCPInfo% = 2
|
||||
GetCPInfoEx% = 3
|
||||
GetCommConfig% = 3
|
||||
GetCommMask% = 2
|
||||
GetCommModemStatus% = 2
|
||||
GetCommProperties% = 2
|
||||
GetCommState% = 2
|
||||
GetCommTimeouts% = 2
|
||||
GetCommandLine% = 0
|
||||
GetCompressedFileSize% = 2
|
||||
GetComputerName% = 2
|
||||
GetConsoleAlias% = 4
|
||||
GetConsoleAliasExes% = 2
|
||||
GetConsoleAliasExesLength% = 0
|
||||
GetConsoleAliases% = 3
|
||||
GetConsoleAliasesLength% = 1
|
||||
GetConsoleCP% = 0
|
||||
GetConsoleCommandHistory% = 3
|
||||
GetConsoleCommandHistoryLength% = 1
|
||||
GetConsoleCursorInfo% = 2
|
||||
GetConsoleDisplayMode% = 1
|
||||
GetConsoleFontInfo% = 4
|
||||
GetConsoleFontSize% = 2
|
||||
GetConsoleHardwareState% = 3
|
||||
GetConsoleInputExeName% = 2
|
||||
GetConsoleInputWaitHandle% = 0
|
||||
GetConsoleKeyboardLayoutName% = 1
|
||||
GetConsoleMode% = 2
|
||||
GetConsoleOutputCP% = 0
|
||||
GetConsoleScreenBufferInfo% = 2
|
||||
GetConsoleTitle% = 2
|
||||
GetConsoleWindow% = 0
|
||||
GetCurrencyFormat% = 6
|
||||
GetCurrentConsoleFont% = 3
|
||||
GetCurrentDirectory% = 2
|
||||
GetCurrentProcess% = 0
|
||||
GetCurrentProcessId% = 0
|
||||
GetCurrentThread% = 0
|
||||
GetCurrentThreadId% = 0
|
||||
GetDateFormat% = 6
|
||||
GetDefaultCommConfig% = 3
|
||||
GetDevicePowerState% = 1
|
||||
GetDiskFreeSpace% = 5
|
||||
GetDiskFreeSpaceEx% = 4
|
||||
GetDriveType% = 1
|
||||
GetEnvironmentStrings% = 0
|
||||
GetEnvironmentVariable% = 3
|
||||
GetExitCodeProcess% = 2
|
||||
GetExitCodeThread% = 2
|
||||
GetFileAttributes% = 1
|
||||
GetFileAttributesEx% = 3
|
||||
GetFileInformationByHandle% = 2
|
||||
GetFileSize% = 2
|
||||
GetFileTime% = 4
|
||||
GetFileType% = 1
|
||||
GetFullPathName% = 4
|
||||
GetHandleInformation% = 2
|
||||
GetLargestConsoleWindowSize% = 1
|
||||
GetLastError% = 0
|
||||
GetLocalTime% = 1
|
||||
GetLocaleInfo% = 4
|
||||
GetLogicalDriveStrings% = 2
|
||||
GetLogicalDrives% = 0
|
||||
GetLongPathName% = 3
|
||||
GetMailslotInfo% = 5
|
||||
GetModuleFileName% = 3
|
||||
GetModuleHandle% = 1
|
||||
GetNamedPipeHandleState% = 7
|
||||
GetNamedPipeInfo% = 5
|
||||
GetNextVDMCommand% = 1
|
||||
GetNumberFormat% = 6
|
||||
GetNumberOfConsoleFonts% = 0
|
||||
GetNumberOfConsoleInputEvents% = 2
|
||||
GetNumberOfConsoleMouseButtons% = 1
|
||||
GetOEMCP% = 0
|
||||
GetOverlappedResult% = 4
|
||||
GetPriorityClass% = 1
|
||||
GetPrivateProfileInt% = 4
|
||||
GetPrivateProfileSection% = 4
|
||||
GetPrivateProfileSectionNames% = 3
|
||||
GetPrivateProfileString% = 6
|
||||
GetPrivateProfileStruct% = 5
|
||||
GetProcAddress% = 2
|
||||
GetProcessAffinityMask% = 3
|
||||
GetProcessHeap% = 0
|
||||
GetProcessHeaps% = 2
|
||||
GetProcessPriorityBoost% = 2
|
||||
GetProcessShutdownParameters% = 2
|
||||
GetProcessTimes% = 5
|
||||
GetProcessVersion% = 1
|
||||
GetProcessWorkingSetSize% = 3
|
||||
GetProfileInt% = 3
|
||||
GetProfileSection% = 3
|
||||
GetProfileString% = 5
|
||||
GetQueuedCompletionStatus% = 5
|
||||
GetShortPathName% = 3
|
||||
GetStartupInfo% = 1
|
||||
GetStdHandle% = 1
|
||||
GetStringType% = 5
|
||||
GetStringTypeEx% = 5
|
||||
GetSystemDefaultLCID% = 0
|
||||
GetSystemDefaultLangID% = 0
|
||||
GetSystemDirectory% = 2
|
||||
GetSystemInfo% = 1
|
||||
GetSystemPowerStatus% = 1
|
||||
GetSystemTime% = 1
|
||||
GetSystemTimeAdjustment% = 3
|
||||
GetSystemTimeAsFileTime% = 1
|
||||
GetTapeParameters% = 4
|
||||
GetTapePosition% = 5
|
||||
GetTapeStatus% = 1
|
||||
GetTempFileName% = 4
|
||||
GetTempPath% = 2
|
||||
GetThreadContext% = 2
|
||||
GetThreadLocale% = 0
|
||||
GetThreadPriority% = 1
|
||||
GetThreadPriorityBoost% = 2
|
||||
GetThreadSelectorEntry% = 3
|
||||
GetThreadTimes% = 5
|
||||
GetTickCount% = 0
|
||||
GetTimeFormat% = 6
|
||||
GetTimeZoneInformation% = 1
|
||||
GetUserDefaultLCID% = 0
|
||||
GetUserDefaultLangID% = 0
|
||||
GetVDMCurrentDirectories% = 2
|
||||
GetVersion% = 0
|
||||
GetVersionEx% = 1
|
||||
GetVolumeInformation% = 8
|
||||
GetWindowsDirectory% = 2
|
||||
GlobalAddAtom% = 1
|
||||
GlobalAlloc% = 2
|
||||
GlobalCompact% = 1
|
||||
GlobalDeleteAtom% = 1
|
||||
GlobalFindAtom% = 1
|
||||
GlobalFix% = 1
|
||||
GlobalFlags% = 1
|
||||
GlobalFree% = 1
|
||||
GlobalGetAtomName% = 3
|
||||
GlobalHandle% = 1
|
||||
GlobalLock% = 1
|
||||
GlobalMemoryStatus% = 1
|
||||
GlobalMemoryStatusVlm% = 1
|
||||
GlobalReAlloc% = 3
|
||||
GlobalSize% = 1
|
||||
GlobalUnWire% = 1
|
||||
GlobalUnfix% = 1
|
||||
GlobalUnlock% = 1
|
||||
GlobalWire% = 1
|
||||
Heap32First% = 3
|
||||
Heap32ListFirst% = 2
|
||||
Heap32ListNext% = 2
|
||||
Heap32Next% = 1
|
||||
HeapAlloc% = 3
|
||||
HeapCompact% = 2
|
||||
HeapCreate% = 3
|
||||
HeapDestroy% = 1
|
||||
HeapExtend% = 4
|
||||
HeapFree% = 3
|
||||
HeapLock% = 1
|
||||
HeapReAlloc% = 4
|
||||
HeapSize% = 3
|
||||
HeapSummary% = 3
|
||||
HeapUnlock% = 1
|
||||
HeapUsage% = 5
|
||||
HeapValidate% = 3
|
||||
HeapWalk% = 2
|
||||
InitAtomTable% = 1
|
||||
InitializeCriticalSection% = 1
|
||||
InitializeCriticalSectionAndSpinCount% = 2
|
||||
InterlockedCompareExchange% = 3
|
||||
InterlockedDecrement% = 1
|
||||
InterlockedExchange% = 2
|
||||
InterlockedExchangeAdd% = 2
|
||||
InterlockedIncrement% = 1
|
||||
InvalidateConsoleDIBits% = 2
|
||||
IsBadCodePtr% = 1
|
||||
IsBadHugeReadPtr% = 2
|
||||
IsBadHugeWritePtr% = 2
|
||||
IsBadReadPtr% = 2
|
||||
IsBadStringPtr% = 2
|
||||
IsBadWritePtr% = 2
|
||||
IsDBCSLeadByte% = 1
|
||||
IsDBCSLeadByteEx% = 2
|
||||
IsDebuggerPresent% = 0
|
||||
IsProcessorFeaturePresent% = 1
|
||||
IsValidCodePage% = 1
|
||||
IsValidLocale% = 2
|
||||
LCMapString% = 6
|
||||
LeaveCriticalSection% = 1
|
||||
LoadLibrary% = 1
|
||||
LoadLibraryEx% = 3
|
||||
LoadModule% = 2
|
||||
LoadResource% = 2
|
||||
LocalAlloc% = 2
|
||||
LocalCompact% = 1
|
||||
LocalFileTimeToFileTime% = 2
|
||||
LocalFlags% = 1
|
||||
LocalFree% = 1
|
||||
LocalHandle% = 1
|
||||
LocalLock% = 1
|
||||
LocalReAlloc% = 3
|
||||
LocalShrink% = 2
|
||||
LocalSize% = 1
|
||||
LocalUnlock% = 1
|
||||
LockFile% = 5
|
||||
LockFileEx% = 6
|
||||
LockResource% = 1
|
||||
MapViewOfFile% = 5
|
||||
MapViewOfFileEx% = 6
|
||||
MapViewOfFileVlm% = 7
|
||||
Module32First% = 2
|
||||
Module32Next% = 2
|
||||
MoveFile% = 2
|
||||
MoveFileEx% = 3
|
||||
MoveFileWithProgress% = 5
|
||||
MulDiv% = 3
|
||||
MultiByteToWideChar% = 6
|
||||
OpenEvent% = 3
|
||||
OpenFile% = 3
|
||||
OpenFileMapping% = 3
|
||||
OpenJobObject% = 3
|
||||
OpenMutex% = 3
|
||||
OpenProcess% = 3
|
||||
OpenProfileUserMapping% = 0
|
||||
OpenSemaphore% = 3
|
||||
OpenWaitableTimer% = 3
|
||||
OutputDebugString% = 1
|
||||
PeekConsoleInput% = 4
|
||||
PeekNamedPipe% = 6
|
||||
PostQueuedCompletionStatus% = 4
|
||||
PrepareTape% = 3
|
||||
Process32First% = 2
|
||||
Process32Next% = 2
|
||||
PulseEvent% = 1
|
||||
PurgeComm% = 2
|
||||
QueryDosDevice% = 3
|
||||
QueryInformationJobObject% = 5
|
||||
QueryPerformanceCounter% = 1
|
||||
QueryPerformanceFrequency% = 1
|
||||
QueryWin31IniFilesMappedToRegistry% = 4
|
||||
QueueUserAPC% = 3
|
||||
RaiseException% = 4
|
||||
ReadConsole% = 5
|
||||
ReadConsoleInput% = 4
|
||||
ReadConsoleInputEx% = 5
|
||||
ReadConsoleOutput% = 5
|
||||
ReadConsoleOutputAttribute% = 5
|
||||
ReadConsoleOutputCharacter% = 5
|
||||
ReadFile% = 5
|
||||
ReadFileEx% = 5
|
||||
ReadFileScatter% = 5
|
||||
ReadFileVlm% = 5
|
||||
ReadProcessMemory% = 5
|
||||
ReadProcessMemoryVlm% = 5
|
||||
RegisterConsoleVDM% = 11
|
||||
RegisterWaitForInputIdle% = 1
|
||||
RegisterWowBaseHandlers% = 1
|
||||
RegisterWowExec% = 1
|
||||
ReleaseMutex% = 1
|
||||
ReleaseSemaphore% = 3
|
||||
RemoveDirectory% = 1
|
||||
RequestWakeupLatency% = 1
|
||||
ResetEvent% = 1
|
||||
ResumeThread% = 1
|
||||
RtlFillMemory% = 3
|
||||
RtlMoveMemory% = 3
|
||||
RtlUnwind% = 4
|
||||
RtlZeroMemory% = 2
|
||||
ScrollConsoleScreenBuffer% = 5
|
||||
SearchPath% = 6
|
||||
SetCommBreak% = 1
|
||||
SetCommConfig% = 3
|
||||
SetCommMask% = 2
|
||||
SetCommState% = 2
|
||||
SetCommTimeouts% = 2
|
||||
SetComputerName% = 1
|
||||
SetConsoleActiveScreenBuffer% = 1
|
||||
SetConsoleCP% = 1
|
||||
SetConsoleCommandHistoryMode% = 1
|
||||
SetConsoleCtrlHandler% = 2
|
||||
SetConsoleCursor% = 2
|
||||
SetConsoleCursorInfo% = 2
|
||||
SetConsoleCursorPosition% = 2
|
||||
SetConsoleDisplayMode% = 3
|
||||
SetConsoleFont% = 2
|
||||
SetConsoleHardwareState% = 3
|
||||
SetConsoleIcon% = 1
|
||||
SetConsoleInputExeName% = 1
|
||||
SetConsoleKeyShortcuts% = 4
|
||||
SetConsoleMaximumWindowSize% = 2
|
||||
SetConsoleMenuClose% = 1
|
||||
SetConsoleMode% = 2
|
||||
SetConsoleNumberOfCommands% = 2
|
||||
SetConsoleOutputCP% = 1
|
||||
SetConsolePalette% = 3
|
||||
SetConsoleScreenBufferSize% = 2
|
||||
SetConsoleTextAttribute% = 2
|
||||
SetConsoleTitle% = 1
|
||||
SetConsoleWindowInfo% = 3
|
||||
SetCriticalSectionSpinCount% = 2
|
||||
SetCurrentDirectory% = 1
|
||||
SetDefaultCommConfig% = 3
|
||||
SetEndOfFile% = 1
|
||||
SetEnvironmentVariable% = 2
|
||||
SetErrorMode% = 1
|
||||
SetEvent% = 1
|
||||
SetFileApisToANSI% = 0
|
||||
SetFileApisToOEM% = 0
|
||||
SetFileAttributes% = 2
|
||||
SetFilePointer% = 4
|
||||
SetFileTime% = 4
|
||||
SetHandleCount% = 1
|
||||
SetHandleInformation% = 3
|
||||
SetInformationJobObject% = 4
|
||||
SetLastConsoleEventActive% = 0
|
||||
SetLastError% = 1
|
||||
SetLocalTime% = 1
|
||||
SetLocaleInfo% = 3
|
||||
SetMailslotInfo% = 2
|
||||
SetNamedPipeHandleState% = 4
|
||||
SetPriorityClass% = 2
|
||||
SetProcessAffinityMask% = 2
|
||||
SetProcessPriorityBoost% = 2
|
||||
SetProcessShutdownParameters% = 2
|
||||
SetProcessWorkingSetSize% = 3
|
||||
SetStdHandle% = 2
|
||||
SetSystemPowerState% = 2
|
||||
SetSystemTime% = 1
|
||||
SetSystemTimeAdjustment% = 2
|
||||
SetTapeParameters% = 3
|
||||
SetTapePosition% = 6
|
||||
SetThreadAffinityMask% = 2
|
||||
SetThreadContext% = 2
|
||||
SetThreadExecutionState% = 1
|
||||
SetThreadIdealProcessor% = 2
|
||||
SetThreadLocale% = 1
|
||||
SetThreadPriority% = 2
|
||||
SetThreadPriorityBoost% = 2
|
||||
SetTimeZoneInformation% = 1
|
||||
SetUnhandledExceptionFilter% = 1
|
||||
SetVDMCurrentDirectories% = 2
|
||||
SetVolumeLabel% = 2
|
||||
SetWaitableTimer% = 6
|
||||
SetupComm% = 3
|
||||
ShowConsoleCursor% = 2
|
||||
SignalObjectAndWait% = 4
|
||||
SizeofResource% = 2
|
||||
Sleep% = 1
|
||||
SleepEx% = 2
|
||||
SuspendThread% = 1
|
||||
SwitchToFiber% = 1
|
||||
SwitchToThread% = 0
|
||||
SystemTimeToFileTime% = 2
|
||||
SystemTimeToTzSpecificLocalTime% = 3
|
||||
TerminateJobObject% = 2
|
||||
TerminateProcess% = 2
|
||||
TerminateThread% = 2
|
||||
Thread32First% = 2
|
||||
Thread32Next% = 2
|
||||
TlsAlloc% = 0
|
||||
TlsFree% = 1
|
||||
TlsGetValue% = 1
|
||||
TlsSetValue% = 2
|
||||
Toolhelp32ReadProcessMemory% = 5
|
||||
TransactNamedPipe% = 7
|
||||
TransmitCommChar% = 2
|
||||
TrimVirtualBuffer% = 1
|
||||
TryEnterCriticalSection% = 1
|
||||
UnhandledExceptionFilter% = 1
|
||||
UnlockFile% = 5
|
||||
UnlockFileEx% = 5
|
||||
UnmapViewOfFile% = 1
|
||||
UnmapViewOfFileVlm% = 1
|
||||
UpdateResource% = 6
|
||||
VDMConsoleOperation% = 2
|
||||
VDMOperationStarted% = 1
|
||||
VerLanguageName% = 3
|
||||
VerifyConsoleIoHandle% = 1
|
||||
VirtualAlloc% = 4
|
||||
VirtualAllocEx% = 5
|
||||
VirtualAllocVlm% = 6
|
||||
VirtualBufferExceptionHandler% = 3
|
||||
VirtualFree% = 3
|
||||
VirtualFreeEx% = 4
|
||||
VirtualFreeVlm% = 5
|
||||
VirtualLock% = 2
|
||||
VirtualProtect% = 4
|
||||
VirtualProtectEx% = 5
|
||||
VirtualProtectVlm% = 6
|
||||
VirtualQuery% = 3
|
||||
VirtualQueryEx% = 4
|
||||
VirtualQueryVlm% = 4
|
||||
VirtualUnlock% = 2
|
||||
WaitCommEvent% = 3
|
||||
WaitForDebugEvent% = 2
|
||||
WaitForMultipleObjects% = 4
|
||||
WaitForMultipleObjectsEx% = 5
|
||||
WaitForSingleObject% = 2
|
||||
WaitForSingleObjectEx% = 3
|
||||
WaitNamedPipe% = 2
|
||||
WideCharToMultiByte% = 8
|
||||
WinExec% = 2
|
||||
WriteConsole% = 5
|
||||
WriteConsoleInput% = 4
|
||||
WriteConsoleInputVDM% = 4
|
||||
WriteConsoleOutput% = 5
|
||||
WriteConsoleOutputAttribute% = 5
|
||||
WriteConsoleOutputCharacter% = 5
|
||||
WriteFile% = 5
|
||||
WriteFileEx% = 5
|
||||
WriteFileGather% = 5
|
||||
WriteFileVlm% = 5
|
||||
WritePrivateProfileSection% = 3
|
||||
WritePrivateProfileString% = 4
|
||||
WritePrivateProfileStruct% = 5
|
||||
WriteProcessMemory% = 5
|
||||
WriteProcessMemoryVlm% = 5
|
||||
WriteProfileSection% = 2
|
||||
WriteProfileString% = 3
|
||||
WriteTapemark% = 4
|
||||
_hread% = 3
|
||||
_hwrite% = 3
|
||||
_lclose% = 1
|
||||
_lcreat% = 2
|
||||
_llseek% = 3
|
||||
_lopen% = 2
|
||||
_lread% = 3
|
||||
_lwrite% = 3
|
||||
lstrcat% = 2
|
||||
lstrcmp% = 2
|
||||
lstrcmpi% = 2
|
||||
lstrcpy% = 2
|
||||
lstrcpyn% = 3
|
||||
lstrlen% = 1
|
||||
73
toolchain/fasmw17332/INCLUDE/PCOUNT/SHELL32.INC
Normal file
73
toolchain/fasmw17332/INCLUDE/PCOUNT/SHELL32.INC
Normal file
@@ -0,0 +1,73 @@
|
||||
|
||||
; SHELL32 API calls parameters' count
|
||||
|
||||
CheckEscapes% = 2
|
||||
DoEnvironmentSubst% = 2
|
||||
DragAcceptFiles% = 2
|
||||
DragFinish% = 1
|
||||
DragQueryFile% = 4
|
||||
DragQueryPoint% = 2
|
||||
DuplicateIcon% = 2
|
||||
ExtractAssociatedIcon% = 3
|
||||
ExtractAssociatedIconEx% = 4
|
||||
ExtractIcon% = 3
|
||||
ExtractIconEx% = 5
|
||||
ExtractIconResInfo% = 5
|
||||
FindExeDlgProc% = 4
|
||||
FindExecutable% = 3
|
||||
FreeIconList% = 2
|
||||
InternalExtractIconList% = 3
|
||||
RealShellExecute% = 10
|
||||
RealShellExecuteEx% = 11
|
||||
RegenerateUserEnvironment% = 2
|
||||
SHAddToRecentDocs% = 2
|
||||
SHAppBarMessage% = 2
|
||||
SHBrowseForFolder% = 1
|
||||
SHChangeNotify% = 4
|
||||
SHEmptyRecycleBin% = 3
|
||||
SHFileOperation% = 1
|
||||
SHFormatDrive% = 4
|
||||
SHFreeNameMappings% = 1
|
||||
SHGetDataFromIDList% = 5
|
||||
SHGetDesktopFolder% = 1
|
||||
SHGetDiskFreeSpace% = 4
|
||||
SHGetFileInfo% = 5
|
||||
SHGetInstanceExplorer% = 1
|
||||
SHGetMalloc% = 1
|
||||
SHGetNewLinkInfo% = 5
|
||||
SHGetPathFromIDList% = 2
|
||||
SHGetSettings% = 2
|
||||
SHGetSpecialFolderLocation% = 3
|
||||
SHGetSpecialFolderPath% = 4
|
||||
SHInvokePrinterCommand% = 5
|
||||
SHLoadInProc% = 1
|
||||
SHQueryRecycleBin% = 2
|
||||
SHUpdateRecycleBinIcon% = 0
|
||||
SheChangeDir% = 1
|
||||
SheChangeDirEx% = 1
|
||||
SheFullPath% = 3
|
||||
SheGetCurDrive% = 0
|
||||
SheGetDir% = 2
|
||||
SheRemoveQuotes% = 1
|
||||
SheSetCurDrive% = 1
|
||||
SheShortenPath% = 2
|
||||
ShellAbout% = 4
|
||||
ShellExecute% = 6
|
||||
ShellExecuteEx% = 1
|
||||
ShellHookProc% = 3
|
||||
Shell_NotifyIcon% = 2
|
||||
StrChr% = 2
|
||||
StrChrI% = 2
|
||||
StrCmpN% = 3
|
||||
StrCmpNI% = 3
|
||||
StrCpyN% = 3
|
||||
StrNCmp% = 3
|
||||
StrNCmpI% = 3
|
||||
StrNCpy% = 3
|
||||
StrRChr% = 3
|
||||
StrRChrI% = 3
|
||||
StrRStr% = 3
|
||||
StrRStrI% = 3
|
||||
StrStr% = 2
|
||||
StrStrI% = 2
|
||||
WOWShellExecute% = 7
|
||||
477
toolchain/fasmw17332/INCLUDE/PCOUNT/USER32.INC
Normal file
477
toolchain/fasmw17332/INCLUDE/PCOUNT/USER32.INC
Normal file
@@ -0,0 +1,477 @@
|
||||
|
||||
; USER32 API calls parameters' count
|
||||
|
||||
ActivateKeyboardLayout% = 2
|
||||
AdjustWindowRect% = 3
|
||||
AdjustWindowRectEx% = 4
|
||||
AnimateWindow% = 3
|
||||
AnyPopup% = 0
|
||||
AppendMenu% = 4
|
||||
ArrangeIconicWindows% = 1
|
||||
AttachThreadInput% = 3
|
||||
BeginDeferWindowPos% = 1
|
||||
BeginPaint% = 2
|
||||
BlockInput% = 1
|
||||
BringWindowToTop% = 1
|
||||
BroadcastSystemMessage% = 5
|
||||
CallMsgFilter% = 2
|
||||
CallNextHookEx% = 4
|
||||
CallWindowProc% = 5
|
||||
CascadeChildWindows% = 2
|
||||
CascadeWindows% = 5
|
||||
ChangeClipboardChain% = 2
|
||||
ChangeDisplaySettings% = 2
|
||||
ChangeDisplaySettingsEx% = 5
|
||||
ChangeMenu% = 5
|
||||
CharLower% = 1
|
||||
CharLowerBuff% = 2
|
||||
CharNext% = 1
|
||||
CharNextEx% = 3
|
||||
CharPrev% = 2
|
||||
CharPrevEx% = 4
|
||||
CharToOem% = 2
|
||||
CharToOemBuff% = 3
|
||||
CharUpper% = 1
|
||||
CharUpperBuff% = 2
|
||||
CheckDlgButton% = 3
|
||||
CheckMenuItem% = 3
|
||||
CheckMenuRadioItem% = 5
|
||||
CheckRadioButton% = 4
|
||||
ChildWindowFromPoint% = 3
|
||||
ChildWindowFromPointEx% = 4
|
||||
ClientToScreen% = 2
|
||||
ClipCursor% = 1
|
||||
CloseClipboard% = 0
|
||||
CloseDesktop% = 1
|
||||
CloseWindow% = 1
|
||||
CloseWindowStation% = 1
|
||||
CopyAcceleratorTable% = 3
|
||||
CopyIcon% = 1
|
||||
CopyImage% = 5
|
||||
CopyRect% = 2
|
||||
CountClipboardFormats% = 0
|
||||
CreateAcceleratorTable% = 2
|
||||
CreateCaret% = 4
|
||||
CreateCursor% = 7
|
||||
CreateDesktop% = 6
|
||||
CreateDialogIndirectParam% = 5
|
||||
CreateDialogParam% = 5
|
||||
CreateIcon% = 7
|
||||
CreateIconFromResource% = 4
|
||||
CreateIconFromResourceEx% = 7
|
||||
CreateIconIndirect% = 1
|
||||
CreateMDIWindow% = 10
|
||||
CreateMenu% = 0
|
||||
CreatePopupMenu% = 0
|
||||
CreateWindowEx% = 12
|
||||
CreateWindowStation% = 4
|
||||
DdeAbandonTransaction% = 3
|
||||
DdeAccessData% = 2
|
||||
DdeAddData% = 4
|
||||
DdeClientTransaction% = 8
|
||||
DdeCmpStringHandles% = 2
|
||||
DdeConnect% = 4
|
||||
DdeConnectList% = 5
|
||||
DdeCreateDataHandle% = 7
|
||||
DdeCreateStringHandle% = 3
|
||||
DdeDisconnect% = 1
|
||||
DdeDisconnectList% = 1
|
||||
DdeEnableCallback% = 3
|
||||
DdeFreeDataHandle% = 1
|
||||
DdeFreeStringHandle% = 2
|
||||
DdeGetData% = 4
|
||||
DdeGetLastError% = 1
|
||||
DdeGetQualityOfService% = 3
|
||||
DdeImpersonateClient% = 1
|
||||
DdeInitialize% = 4
|
||||
DdeKeepStringHandle% = 2
|
||||
DdeNameService% = 4
|
||||
DdePostAdvise% = 3
|
||||
DdeQueryConvInfo% = 3
|
||||
DdeQueryNextServer% = 2
|
||||
DdeQueryString% = 5
|
||||
DdeReconnect% = 1
|
||||
DdeSetQualityOfService% = 3
|
||||
DdeSetUserHandle% = 3
|
||||
DdeUnaccessData% = 1
|
||||
DdeUninitialize% = 1
|
||||
DefDlgProc% = 4
|
||||
DefFrameProc% = 5
|
||||
DefMDIChildProc% = 4
|
||||
DefWindowProc% = 4
|
||||
DeferWindowPos% = 8
|
||||
DeleteMenu% = 3
|
||||
DestroyAcceleratorTable% = 1
|
||||
DestroyCaret% = 0
|
||||
DestroyCursor% = 1
|
||||
DestroyIcon% = 1
|
||||
DestroyMenu% = 1
|
||||
DestroyWindow% = 1
|
||||
DialogBoxIndirectParam% = 5
|
||||
DialogBoxParam% = 5
|
||||
DispatchMessage% = 1
|
||||
DlgDirList% = 5
|
||||
DlgDirListComboBox% = 5
|
||||
DlgDirSelectComboBoxEx% = 4
|
||||
DlgDirSelectEx% = 4
|
||||
DragDetect% = 3
|
||||
DragObject% = 5
|
||||
DrawAnimatedRects% = 4
|
||||
DrawCaption% = 4
|
||||
DrawEdge% = 4
|
||||
DrawFocusRect% = 2
|
||||
DrawFrame% = 4
|
||||
DrawFrameControl% = 4
|
||||
DrawIcon% = 4
|
||||
DrawIconEx% = 9
|
||||
DrawMenuBar% = 1
|
||||
DrawState% = 10
|
||||
DrawText% = 5
|
||||
DrawTextEx% = 6
|
||||
EditWndProc% = 4
|
||||
EmptyClipboard% = 0
|
||||
EnableMenuItem% = 3
|
||||
EnableScrollBar% = 3
|
||||
EnableWindow% = 2
|
||||
EndDeferWindowPos% = 1
|
||||
EndDialog% = 2
|
||||
EndMenu% = 0
|
||||
EndPaint% = 2
|
||||
EnumChildWindows% = 3
|
||||
EnumClipboardFormats% = 1
|
||||
EnumDesktopWindows% = 3
|
||||
EnumDesktops% = 3
|
||||
EnumDisplayMonitors% = 4
|
||||
EnumDisplaySettings% = 3
|
||||
EnumDisplaySettingsEx% = 4
|
||||
EnumProps% = 2
|
||||
EnumPropsEx% = 3
|
||||
EnumThreadWindows% = 3
|
||||
EnumWindowStations% = 2
|
||||
EnumWindows% = 2
|
||||
EqualRect% = 2
|
||||
ExcludeUpdateRgn% = 2
|
||||
ExitWindowsEx% = 2
|
||||
FillRect% = 3
|
||||
FindWindow% = 2
|
||||
FindWindowEx% = 4
|
||||
FlashWindow% = 2
|
||||
FrameRect% = 3
|
||||
FreeDDElParam% = 2
|
||||
GetActiveWindow% = 0
|
||||
GetAltTabInfo% = 5
|
||||
GetAncestor% = 2
|
||||
GetAsyncKeyState% = 1
|
||||
GetCapture% = 0
|
||||
GetCaretBlinkTime% = 0
|
||||
GetCaretPos% = 1
|
||||
GetClassInfo% = 3
|
||||
GetClassInfoEx% = 3
|
||||
GetClassLong% = 2
|
||||
GetClassName% = 3
|
||||
GetClassWord% = 2
|
||||
GetClientRect% = 2
|
||||
GetClipCursor% = 1
|
||||
GetClipboardData% = 1
|
||||
GetClipboardFormatName% = 3
|
||||
GetClipboardSequenceNumber% = 0
|
||||
GetClipboardViewer% = 0
|
||||
GetComboBoxInfo% = 2
|
||||
GetCursor% = 0
|
||||
GetCursorInfo% = 1
|
||||
GetCursorPos% = 1
|
||||
GetDC% = 1
|
||||
GetDCEx% = 3
|
||||
GetDesktopWindow% = 0
|
||||
GetDialogBaseUnits% = 0
|
||||
GetDlgCtrlID% = 1
|
||||
GetDlgItem% = 2
|
||||
GetDlgItemInt% = 4
|
||||
GetDlgItemText% = 4
|
||||
GetDoubleClickTime% = 0
|
||||
GetFocus% = 0
|
||||
GetForegroundWindow% = 0
|
||||
GetGUIThreadInfo% = 2
|
||||
GetGuiResources% = 2
|
||||
GetIconInfo% = 2
|
||||
GetInputDesktop% = 0
|
||||
GetInputState% = 0
|
||||
GetKBCodePage% = 0
|
||||
GetKeyNameText% = 3
|
||||
GetKeyState% = 1
|
||||
GetKeyboardLayout% = 1
|
||||
GetKeyboardLayoutList% = 2
|
||||
GetKeyboardLayoutName% = 1
|
||||
GetKeyboardState% = 1
|
||||
GetKeyboardType% = 1
|
||||
GetLastActivePopup% = 1
|
||||
GetLastInputInfo% = 1
|
||||
GetListBoxInfo% = 1
|
||||
GetMenu% = 1
|
||||
GetMenuBarInfo% = 4
|
||||
GetMenuCheckMarkDimensions% = 0
|
||||
GetMenuContextHelpId% = 1
|
||||
GetMenuDefaultItem% = 3
|
||||
GetMenuInfo% = 2
|
||||
GetMenuItemCount% = 1
|
||||
GetMenuItemID% = 2
|
||||
GetMenuItemInfo% = 4
|
||||
GetMenuItemRect% = 4
|
||||
GetMenuState% = 3
|
||||
GetMenuString% = 5
|
||||
GetMessage% = 4
|
||||
GetMessageExtraInfo% = 0
|
||||
GetMessagePos% = 0
|
||||
GetMessageTime% = 0
|
||||
GetMonitorInfo% = 2
|
||||
GetMouseMovePoints% = 5
|
||||
GetNextDlgGroupItem% = 3
|
||||
GetNextDlgTabItem% = 3
|
||||
GetOpenClipboardWindow% = 0
|
||||
GetParent% = 1
|
||||
GetPriorityClipboardFormat% = 2
|
||||
GetProcessWindowStation% = 0
|
||||
GetProp% = 2
|
||||
GetQueueStatus% = 1
|
||||
GetScrollBarInfo% = 3
|
||||
GetScrollInfo% = 3
|
||||
GetScrollPos% = 2
|
||||
GetScrollRange% = 4
|
||||
GetShellWindow% = 0
|
||||
GetSubMenu% = 2
|
||||
GetSysColor% = 1
|
||||
GetSysColorBrush% = 1
|
||||
GetSystemMenu% = 2
|
||||
GetSystemMetrics% = 1
|
||||
GetTabbedTextExtent% = 5
|
||||
GetThreadDesktop% = 1
|
||||
GetTitleBarInfo% = 2
|
||||
GetTopWindow% = 1
|
||||
GetUpdateRect% = 3
|
||||
GetUpdateRgn% = 3
|
||||
GetUserObjectInformation% = 5
|
||||
GetUserObjectSecurity% = 5
|
||||
GetWindow% = 2
|
||||
GetWindowContextHelpId% = 1
|
||||
GetWindowDC% = 1
|
||||
GetWindowInfo% = 2
|
||||
GetWindowLong% = 2
|
||||
GetWindowModuleFileName% = 3
|
||||
GetWindowPlacement% = 2
|
||||
GetWindowRect% = 2
|
||||
GetWindowRgn% = 2
|
||||
GetWindowText% = 3
|
||||
GetWindowTextLength% = 1
|
||||
GetWindowThreadProcessId% = 2
|
||||
GetWindowWord% = 2
|
||||
GrayString% = 9
|
||||
HideCaret% = 1
|
||||
HiliteMenuItem% = 4
|
||||
IMPGetIME% = 2
|
||||
IMPQueryIME% = 1
|
||||
IMPSetIME% = 2
|
||||
ImpersonateDdeClientWindow% = 2
|
||||
InSendMessage% = 0
|
||||
InSendMessageEx% = 1
|
||||
InflateRect% = 3
|
||||
InsertMenu% = 5
|
||||
InsertMenuItem% = 4
|
||||
IntersectRect% = 3
|
||||
InvalidateRect% = 3
|
||||
InvalidateRgn% = 3
|
||||
InvertRect% = 2
|
||||
IsCharAlpha% = 1
|
||||
IsCharAlphaNumeric% = 1
|
||||
IsCharLower% = 1
|
||||
IsCharUpper% = 1
|
||||
IsChild% = 2
|
||||
IsClipboardFormatAvailable% = 1
|
||||
IsDialogMessage% = 2
|
||||
IsDlgButtonChecked% = 2
|
||||
IsIconic% = 1
|
||||
IsMenu% = 1
|
||||
IsRectEmpty% = 1
|
||||
IsWindow% = 1
|
||||
IsWindowEnabled% = 1
|
||||
IsWindowUnicode% = 1
|
||||
IsWindowVisible% = 1
|
||||
IsZoomed% = 1
|
||||
KillSystemTimer% = 2
|
||||
KillTimer% = 2
|
||||
LoadAccelerators% = 2
|
||||
LoadBitmap% = 2
|
||||
LoadCursor% = 2
|
||||
LoadCursorFromFile% = 1
|
||||
LoadIcon% = 2
|
||||
LoadImage% = 6
|
||||
LoadKeyboardLayout% = 2
|
||||
LoadMenu% = 2
|
||||
LoadMenuIndirect% = 1
|
||||
LoadString% = 4
|
||||
LockWindowUpdate% = 1
|
||||
LockWorkStation% = 0
|
||||
LookupIconIdFromDirectory% = 2
|
||||
LookupIconIdFromDirectoryEx% = 5
|
||||
MapDialogRect% = 2
|
||||
MapVirtualKey% = 2
|
||||
MapVirtualKeyEx% = 3
|
||||
MapWindowPoints% = 4
|
||||
MenuItemFromPoint% = 4
|
||||
MessageBeep% = 1
|
||||
MessageBox% = 4
|
||||
MessageBoxEx% = 5
|
||||
MessageBoxIndirect% = 1
|
||||
ModifyMenu% = 5
|
||||
MonitorFromPoint% = 3
|
||||
MonitorFromRect% = 2
|
||||
MonitorFromWindow% = 2
|
||||
MoveWindow% = 6
|
||||
MsgWaitForMultipleObjects% = 5
|
||||
MsgWaitForMultipleObjectsEx% = 5
|
||||
NotifyWinEvent% = 4
|
||||
OemKeyScan% = 1
|
||||
OemToChar% = 2
|
||||
OemToCharBuff% = 3
|
||||
OffsetRect% = 3
|
||||
OpenClipboard% = 1
|
||||
OpenDesktop% = 4
|
||||
OpenIcon% = 1
|
||||
OpenInputDesktop% = 3
|
||||
OpenWindowStation% = 3
|
||||
PackDDElParam% = 3
|
||||
PaintDesktop% = 1
|
||||
PeekMessage% = 5
|
||||
PostMessage% = 4
|
||||
PostQuitMessage% = 1
|
||||
PostThreadMessage% = 4
|
||||
PtInRect% = 3
|
||||
RealChildWindowFromPoint% = 3
|
||||
RealGetWindowClass% = 3
|
||||
RedrawWindow% = 4
|
||||
RegisterClass% = 1
|
||||
RegisterClassEx% = 1
|
||||
RegisterClipboardFormat% = 1
|
||||
RegisterDeviceNotification% = 3
|
||||
RegisterHotKey% = 4
|
||||
RegisterWindowMessage% = 1
|
||||
ReleaseCapture% = 0
|
||||
ReleaseDC% = 2
|
||||
RemoveMenu% = 3
|
||||
RemoveProp% = 2
|
||||
ReplyMessage% = 1
|
||||
ReuseDDElParam% = 5
|
||||
ScreenToClient% = 2
|
||||
ScrollChildren% = 3
|
||||
ScrollDC% = 7
|
||||
ScrollWindow% = 5
|
||||
ScrollWindowEx% = 8
|
||||
SendDlgItemMessage% = 5
|
||||
SendIMEMessageEx% = 2
|
||||
SendInput% = 3
|
||||
SendMessage% = 4
|
||||
SendMessageCallback% = 6
|
||||
SendMessageTimeout% = 7
|
||||
SendNotifyMessage% = 4
|
||||
SetActiveWindow% = 1
|
||||
SetCapture% = 1
|
||||
SetCaretBlinkTime% = 1
|
||||
SetCaretPos% = 2
|
||||
SetClassLong% = 3
|
||||
SetClassWord% = 3
|
||||
SetClipboardData% = 2
|
||||
SetClipboardViewer% = 1
|
||||
SetCursor% = 1
|
||||
SetCursorPos% = 2
|
||||
SetDebugErrorLevel% = 1
|
||||
SetDeskWallpaper% = 1
|
||||
SetDlgItemInt% = 4
|
||||
SetDlgItemText% = 3
|
||||
SetDoubleClickTime% = 1
|
||||
SetFocus% = 1
|
||||
SetForegroundWindow% = 1
|
||||
SetKeyboardState% = 1
|
||||
SetLastErrorEx% = 2
|
||||
SetMenu% = 2
|
||||
SetMenuContextHelpId% = 2
|
||||
SetMenuDefaultItem% = 3
|
||||
SetMenuInfo% = 2
|
||||
SetMenuItemBitmaps% = 5
|
||||
SetMenuItemInfo% = 4
|
||||
SetMessageExtraInfo% = 1
|
||||
SetMessageQueue% = 1
|
||||
SetParent% = 2
|
||||
SetProcessWindowStation% = 1
|
||||
SetProp% = 3
|
||||
SetRect% = 5
|
||||
SetRectEmpty% = 1
|
||||
SetScrollInfo% = 4
|
||||
SetScrollPos% = 4
|
||||
SetScrollRange% = 5
|
||||
SetShellWindow% = 1
|
||||
SetSysColors% = 3
|
||||
SetSystemCursor% = 2
|
||||
SetSystemMenu% = 2
|
||||
SetSystemTimer% = 4
|
||||
SetThreadDesktop% = 1
|
||||
SetTimer% = 4
|
||||
SetUserObjectInformation% = 4
|
||||
SetUserObjectSecurity% = 3
|
||||
SetWinEventHook% = 7
|
||||
SetWindowContextHelpId% = 2
|
||||
SetWindowLong% = 3
|
||||
SetWindowPlacement% = 2
|
||||
SetWindowPos% = 7
|
||||
SetWindowRgn% = 3
|
||||
SetWindowText% = 2
|
||||
SetWindowWord% = 3
|
||||
SetWindowsHook% = 2
|
||||
SetWindowsHookEx% = 4
|
||||
ShowCaret% = 1
|
||||
ShowCursor% = 1
|
||||
ShowOwnedPopups% = 2
|
||||
ShowScrollBar% = 3
|
||||
ShowWindow% = 2
|
||||
ShowWindowAsync% = 2
|
||||
SubtractRect% = 3
|
||||
SwapMouseButton% = 1
|
||||
SwitchDesktop% = 1
|
||||
SystemParametersInfo% = 4
|
||||
TabbedTextOut% = 8
|
||||
TileChildWindows% = 2
|
||||
TileWindows% = 5
|
||||
ToAscii% = 5
|
||||
ToAsciiEx% = 6
|
||||
ToUnicode% = 6
|
||||
ToUnicodeEx% = 7
|
||||
TrackMouseEvent% = 1
|
||||
TrackPopupMenu% = 7
|
||||
TrackPopupMenuEx% = 6
|
||||
TranslateAccelerator% = 3
|
||||
TranslateMDISysAccel% = 2
|
||||
TranslateMessage% = 1
|
||||
UnhookWinEvent% = 1
|
||||
UnhookWindowsHook% = 2
|
||||
UnhookWindowsHookEx% = 1
|
||||
UnionRect% = 3
|
||||
UnloadKeyboardLayout% = 1
|
||||
UnpackDDElParam% = 4
|
||||
UnregisterClass% = 2
|
||||
UnregisterDeviceNotification% = 1
|
||||
UnregisterHotKey% = 2
|
||||
UpdateWindow% = 1
|
||||
UserHandleGrantAccess% = 2
|
||||
ValidateRect% = 2
|
||||
ValidateRgn% = 2
|
||||
VkKeyScan% = 1
|
||||
VkKeyScanEx% = 2
|
||||
WINNLSEnableIME% = 2
|
||||
WINNLSGetEnableStatus% = 1
|
||||
WINNLSGetIMEHotkey% = 1
|
||||
WaitForInputIdle% = 2
|
||||
WaitMessage% = 0
|
||||
WinHelp% = 4
|
||||
WindowFromDC% = 1
|
||||
WindowFromPoint% = 2
|
||||
keybd_event% = 4
|
||||
mouse_event% = 5
|
||||
wvsprintf% = 3
|
||||
70
toolchain/fasmw17332/INCLUDE/PCOUNT/WSOCK32.INC
Normal file
70
toolchain/fasmw17332/INCLUDE/PCOUNT/WSOCK32.INC
Normal file
@@ -0,0 +1,70 @@
|
||||
|
||||
; WSOCK32 API calls parameters' count
|
||||
|
||||
AcceptEx% = 8
|
||||
EnumProtocols% = 3
|
||||
GetAcceptExSockaddrs% = 8
|
||||
GetAddressByName% = 10
|
||||
GetNameByType% = 3
|
||||
GetService% = 7
|
||||
GetTypeByName% = 2
|
||||
MigrateWinsockConfiguration% = 3
|
||||
NPLoadNameSpaces% = 3
|
||||
SetService% = 6
|
||||
TransmitFile% = 7
|
||||
WEP% = 0
|
||||
WSAAsyncGetHostByAddr% = 7
|
||||
WSAAsyncGetHostByName% = 5
|
||||
WSAAsyncGetProtoByName% = 5
|
||||
WSAAsyncGetProtoByNumber% = 5
|
||||
WSAAsyncGetServByName% = 6
|
||||
WSAAsyncGetServByPort% = 6
|
||||
WSACancelAsyncRequest% = 4
|
||||
WSACancelBlockingCall% = 0
|
||||
WSACleanup% = 0
|
||||
WSAGetLastError% = 0
|
||||
WSAIsBlocking% = 0
|
||||
WSARecvEx% = 4
|
||||
WSASetBlockingHook% = 1
|
||||
WSASetLastError% = 1
|
||||
WSAStartup% = 2
|
||||
WSAUnhookBlockingHook% = 0
|
||||
__WSAFDIsSet% = 2
|
||||
accept% = 3
|
||||
bind% = 3
|
||||
closesocket% = 1
|
||||
connect% = 3
|
||||
dn_expand% = 5
|
||||
gethostbyaddr% = 3
|
||||
gethostbyname% = 1
|
||||
gethostname% = 2
|
||||
getnetbyname% = 1
|
||||
getpeername% = 3
|
||||
getprotobyname% = 1
|
||||
getprotobynumber% = 1
|
||||
getservbyname% = 2
|
||||
getservbyport% = 2
|
||||
getsockname% = 3
|
||||
getsockopt% = 5
|
||||
htonl% = 1
|
||||
htons% = 1
|
||||
inet_addr% = 1
|
||||
inet_network% = 1
|
||||
inet_ntoa% = 1
|
||||
ioctlsocket% = 3
|
||||
listen% = 2
|
||||
ntohl% = 1
|
||||
ntohs% = 1
|
||||
rcmd% = 6
|
||||
recv% = 4
|
||||
recvfrom% = 6
|
||||
rexec% = 6
|
||||
rresvport% = 1
|
||||
s_perror% = 2
|
||||
select% = 5
|
||||
send% = 4
|
||||
sendto% = 6
|
||||
sethostname% = 2
|
||||
setsockopt% = 5
|
||||
shutdown% = 2
|
||||
socket% = 3
|
||||
25
toolchain/fasmw17332/INCLUDE/WIN32A.INC
Normal file
25
toolchain/fasmw17332/INCLUDE/WIN32A.INC
Normal file
@@ -0,0 +1,25 @@
|
||||
|
||||
; Win32 programming headers (ASCII)
|
||||
|
||||
include 'macro/struct.inc'
|
||||
include 'macro/proc32.inc'
|
||||
include 'macro/com32.inc'
|
||||
include 'macro/import32.inc'
|
||||
include 'macro/export.inc'
|
||||
include 'macro/resource.inc'
|
||||
|
||||
struc TCHAR [val] { common match any, val \{ . db val \}
|
||||
match , val \{ . db ? \} }
|
||||
sizeof.TCHAR = 1
|
||||
|
||||
include 'equates/kernel32.inc'
|
||||
include 'equates/user32.inc'
|
||||
include 'equates/gdi32.inc'
|
||||
include 'equates/comctl32.inc'
|
||||
include 'equates/comdlg32.inc'
|
||||
include 'equates/shell32.inc'
|
||||
include 'equates/wsock32.inc'
|
||||
|
||||
macro api [name] { if used name
|
||||
label name dword at name#A
|
||||
end if }
|
||||
172
toolchain/fasmw17332/INCLUDE/WIN32AX.INC
Normal file
172
toolchain/fasmw17332/INCLUDE/WIN32AX.INC
Normal file
@@ -0,0 +1,172 @@
|
||||
|
||||
; Extended Win32 programming headers (ASCII)
|
||||
|
||||
include 'win32a.inc'
|
||||
|
||||
include 'macro/if.inc'
|
||||
|
||||
macro allow_nesting
|
||||
{ macro pushd value
|
||||
\{ match ,value \\{
|
||||
pushx equ \\}
|
||||
match =pushx =invoke proc,pushx value \\{
|
||||
allow_nesting
|
||||
invoke proc
|
||||
purge pushd,invoke,stdcall,cinvoke,ccall
|
||||
push eax
|
||||
pushx equ \\}
|
||||
match =pushx =stdcall proc,pushx value \\{
|
||||
allow_nesting
|
||||
stdcall proc
|
||||
purge pushd,invoke,stdcall,cinvoke,ccall
|
||||
push eax
|
||||
pushx equ \\}
|
||||
match =pushx =cinvoke proc,pushx value \\{
|
||||
allow_nesting
|
||||
cinvoke proc
|
||||
purge pushd,invoke,stdcall,cinvoke,ccall
|
||||
push eax
|
||||
pushx equ \\}
|
||||
match =pushx =ccall proc,pushx value \\{
|
||||
allow_nesting
|
||||
ccall proc
|
||||
purge pushd,invoke,stdcall,cinvoke,ccall
|
||||
push eax
|
||||
pushx equ \\}
|
||||
match =pushx,pushx \\{
|
||||
pushd <value>
|
||||
pushx equ \\}
|
||||
restore pushx \}
|
||||
macro invoke proc,[arg]
|
||||
\{ \reverse pushd <arg>
|
||||
\common call [proc] \}
|
||||
macro stdcall proc,[arg]
|
||||
\{ \reverse pushd <arg>
|
||||
\common call proc \}
|
||||
macro cinvoke proc,[arg]
|
||||
\{ \common \local size
|
||||
size = 0
|
||||
if ~ arg eq
|
||||
\reverse pushd <arg>
|
||||
size = size+4
|
||||
match =double any,arg \\{ size = size+4 \\}
|
||||
\common end if
|
||||
call [proc]
|
||||
if size
|
||||
add esp,size
|
||||
end if \}
|
||||
macro ccall proc,[arg]
|
||||
\{ \common \local size
|
||||
size = 0
|
||||
if ~ arg eq
|
||||
\reverse pushd <arg>
|
||||
size = size+4
|
||||
match =double any,arg \\{ size = size+4 \\}
|
||||
\common end if
|
||||
call proc
|
||||
if size
|
||||
add esp,size
|
||||
end if \} }
|
||||
|
||||
macro pushd value
|
||||
{ match first=,more, value \{ \local ..continue
|
||||
call ..continue
|
||||
db value,0
|
||||
..continue:
|
||||
pushd equ \}
|
||||
match pushd =addr var,pushd value \{ \local ..opcode,..address
|
||||
if +var relativeto 0 | +var relativeto $
|
||||
push var
|
||||
else
|
||||
lea edx,[var]
|
||||
push edx
|
||||
end if
|
||||
pushd equ \}
|
||||
match pushd =double [var],pushd value \{
|
||||
push dword [var+4]
|
||||
push dword [var]
|
||||
pushd equ \}
|
||||
match pushd =double =ptr var,pushd value \{
|
||||
push dword [var+4]
|
||||
push dword [var]
|
||||
pushd equ \}
|
||||
match pushd =double num,pushd value \{ \local ..high,..low
|
||||
virtual at 0
|
||||
dq num
|
||||
load ..low dword from 0
|
||||
load ..high dword from 4
|
||||
end virtual
|
||||
push ..high
|
||||
push ..low
|
||||
pushd equ \}
|
||||
match pushd,pushd \{ \local ..continue
|
||||
if value eqtype ''
|
||||
call ..continue
|
||||
db value,0
|
||||
..continue:
|
||||
else
|
||||
push value
|
||||
end if
|
||||
pushd equ \}
|
||||
restore pushd }
|
||||
|
||||
allow_nesting
|
||||
|
||||
macro import lib,[functions]
|
||||
{ common macro import_#lib \{ import lib,functions \} }
|
||||
|
||||
macro api [functions]
|
||||
{ common macro all_api \{ all_api
|
||||
api functions \} }
|
||||
macro all_api {}
|
||||
|
||||
include 'api/kernel32.inc'
|
||||
include 'api/user32.inc'
|
||||
include 'api/gdi32.inc'
|
||||
include 'api/advapi32.inc'
|
||||
include 'api/comctl32.inc'
|
||||
include 'api/comdlg32.inc'
|
||||
include 'api/shell32.inc'
|
||||
include 'api/wsock32.inc'
|
||||
|
||||
purge import,api
|
||||
|
||||
macro .data { section '.data' data readable writeable }
|
||||
|
||||
macro .code { section '.text' code readable executable }
|
||||
|
||||
macro .end label
|
||||
{
|
||||
entry label
|
||||
|
||||
section '.idata' import data readable writeable
|
||||
|
||||
library kernel32,'KERNEL32.DLL',\
|
||||
user32,'USER32.DLL',\
|
||||
gdi32,'GDI32.DLL',\
|
||||
advapi32,'ADVAPI32.DLL',\
|
||||
comctl32,'COMCTL32.DLL',\
|
||||
comdlg32,'COMDLG32.DLL',\
|
||||
shell32,'SHELL32.DLL',\
|
||||
wsock32,'WSOCK32.DLL'
|
||||
|
||||
import_kernel32
|
||||
import_user32
|
||||
import_gdi32
|
||||
import_advapi32
|
||||
import_comctl32
|
||||
import_comdlg32
|
||||
import_shell32
|
||||
import_wsock32
|
||||
|
||||
all_api
|
||||
}
|
||||
|
||||
virtual at 0
|
||||
xchg eax,eax
|
||||
detected_16bit = $-1
|
||||
end virtual
|
||||
|
||||
if detected_16bit
|
||||
format PE GUI 4.0
|
||||
end if
|
||||
199
toolchain/fasmw17332/INCLUDE/WIN32AXP.INC
Normal file
199
toolchain/fasmw17332/INCLUDE/WIN32AXP.INC
Normal file
@@ -0,0 +1,199 @@
|
||||
|
||||
; Extended Win32 programming headers with parameters count checking (ASCII)
|
||||
|
||||
include 'win32a.inc'
|
||||
|
||||
include 'macro/if.inc'
|
||||
|
||||
macro allow_nesting
|
||||
{ macro pushd value
|
||||
\{ match ,value \\{
|
||||
pushx equ \\}
|
||||
match =pushx =invoke proc,pushx value \\{
|
||||
allow_nesting
|
||||
invoke proc
|
||||
purge pushd,invoke,stdcall,cinvoke,ccall
|
||||
push eax
|
||||
pushx equ \\}
|
||||
match =pushx =stdcall proc,pushx value \\{
|
||||
allow_nesting
|
||||
stdcall proc
|
||||
purge pushd,invoke,stdcall,cinvoke,ccall
|
||||
push eax
|
||||
pushx equ \\}
|
||||
match =pushx =cinvoke proc,pushx value \\{
|
||||
allow_nesting
|
||||
cinvoke proc
|
||||
purge pushd,invoke,stdcall,cinvoke,ccall
|
||||
push eax
|
||||
pushx equ \\}
|
||||
match =pushx =ccall proc,pushx value \\{
|
||||
allow_nesting
|
||||
ccall proc
|
||||
purge pushd,invoke,stdcall,cinvoke,ccall
|
||||
push eax
|
||||
pushx equ \\}
|
||||
match =pushx,pushx \\{
|
||||
pushd <value>
|
||||
pushx equ \\}
|
||||
restore pushx \}
|
||||
macro invoke proc,[arg]
|
||||
\{ \common count@stdcall = 0
|
||||
if ~ arg eq
|
||||
\forward count@stdcall = count@stdcall+1
|
||||
match =double value, arg \\{ count@stdcall = count@stdcall+1 \\}
|
||||
\common end if
|
||||
if proc eqtype 0 & defined proc \# % & count@stdcall <> proc \# %
|
||||
display "Error: invalid count of parameters for ",\`proc,".",0Dh,0Ah
|
||||
assert 0
|
||||
end if
|
||||
\reverse pushd <arg>
|
||||
\common call [proc] \}
|
||||
macro stdcall proc,[arg]
|
||||
\{ \common count@stdcall = 0
|
||||
if ~ arg eq
|
||||
\forward count@stdcall = count@stdcall+1
|
||||
match =double value, arg \\{ count@stdcall = count@stdcall+1 \\}
|
||||
\common end if
|
||||
if proc eqtype 0 & defined proc \# % & count@stdcall <> proc \# %
|
||||
display "Error: invalid count of parameters for ",\`proc,".",0Dh,0Ah
|
||||
assert 0
|
||||
end if
|
||||
\reverse pushd <arg>
|
||||
\common call proc \}
|
||||
macro cinvoke proc,[arg]
|
||||
\{ \common \local size
|
||||
size = 0
|
||||
if ~ arg eq
|
||||
\reverse pushd <arg>
|
||||
size = size+4
|
||||
match =double any,arg \\{ size = size+4 \\}
|
||||
\common end if
|
||||
call [proc]
|
||||
if size
|
||||
add esp,size
|
||||
end if \}
|
||||
macro ccall proc,[arg]
|
||||
\{ \common \local size
|
||||
size = 0
|
||||
if ~ arg eq
|
||||
\reverse pushd <arg>
|
||||
size = size+4
|
||||
match =double any,arg \\{ size = size+4 \\}
|
||||
\common end if
|
||||
call proc
|
||||
if size
|
||||
add esp,size
|
||||
end if \} }
|
||||
|
||||
macro pushd value
|
||||
{ match first=,more, value \{ \local ..continue
|
||||
call ..continue
|
||||
db value,0
|
||||
..continue:
|
||||
pushd equ \}
|
||||
match pushd =addr var,pushd value \{ \local ..opcode,..address
|
||||
if +var relativeto 0 | +var relativeto $
|
||||
push var
|
||||
else
|
||||
lea edx,[var]
|
||||
push edx
|
||||
end if
|
||||
pushd equ \}
|
||||
match pushd =double [var],pushd value \{
|
||||
push dword [var+4]
|
||||
push dword [var]
|
||||
pushd equ \}
|
||||
match pushd =double =ptr var,pushd value \{
|
||||
push dword [var+4]
|
||||
push dword [var]
|
||||
pushd equ \}
|
||||
match pushd =double num,pushd value \{ \local ..high,..low
|
||||
virtual at 0
|
||||
dq num
|
||||
load ..low dword from 0
|
||||
load ..high dword from 4
|
||||
end virtual
|
||||
push ..high
|
||||
push ..low
|
||||
pushd equ \}
|
||||
match pushd,pushd \{ \local ..continue
|
||||
if value eqtype ''
|
||||
call ..continue
|
||||
db value,0
|
||||
..continue:
|
||||
else
|
||||
push value
|
||||
end if
|
||||
pushd equ \}
|
||||
restore pushd }
|
||||
|
||||
allow_nesting
|
||||
|
||||
include 'pcount/kernel32.inc'
|
||||
include 'pcount/user32.inc'
|
||||
include 'pcount/gdi32.inc'
|
||||
include 'pcount/advapi32.inc'
|
||||
include 'pcount/comctl32.inc'
|
||||
include 'pcount/comdlg32.inc'
|
||||
include 'pcount/shell32.inc'
|
||||
include 'pcount/wsock32.inc'
|
||||
|
||||
macro import lib,[functions]
|
||||
{ common macro import_#lib \{ import lib,functions \} }
|
||||
|
||||
macro api [functions]
|
||||
{ common macro all_api \{ all_api
|
||||
api functions \} }
|
||||
macro all_api {}
|
||||
|
||||
include 'api/kernel32.inc'
|
||||
include 'api/user32.inc'
|
||||
include 'api/gdi32.inc'
|
||||
include 'api/advapi32.inc'
|
||||
include 'api/comctl32.inc'
|
||||
include 'api/comdlg32.inc'
|
||||
include 'api/shell32.inc'
|
||||
include 'api/wsock32.inc'
|
||||
|
||||
purge import,api
|
||||
|
||||
macro .data { section '.data' data readable writeable }
|
||||
|
||||
macro .code { section '.text' code readable executable }
|
||||
|
||||
macro .end label
|
||||
{
|
||||
entry label
|
||||
|
||||
section '.idata' import data readable writeable
|
||||
|
||||
library kernel32,'KERNEL32.DLL',\
|
||||
user32,'USER32.DLL',\
|
||||
gdi32,'GDI32.DLL',\
|
||||
advapi32,'ADVAPI32.DLL',\
|
||||
comctl32,'COMCTL32.DLL',\
|
||||
comdlg32,'COMDLG32.DLL',\
|
||||
shell32,'SHELL32.DLL',\
|
||||
wsock32,'WSOCK32.DLL'
|
||||
|
||||
import_kernel32
|
||||
import_user32
|
||||
import_gdi32
|
||||
import_advapi32
|
||||
import_comctl32
|
||||
import_comdlg32
|
||||
import_shell32
|
||||
import_wsock32
|
||||
|
||||
all_api
|
||||
}
|
||||
|
||||
virtual at 0
|
||||
xchg eax,eax
|
||||
detected_16bit = $-1
|
||||
end virtual
|
||||
|
||||
if detected_16bit
|
||||
format PE GUI 4.0
|
||||
end if
|
||||
25
toolchain/fasmw17332/INCLUDE/WIN32W.INC
Normal file
25
toolchain/fasmw17332/INCLUDE/WIN32W.INC
Normal file
@@ -0,0 +1,25 @@
|
||||
|
||||
; Win32 programming headers (WideChar)
|
||||
|
||||
include 'macro/struct.inc'
|
||||
include 'macro/proc32.inc'
|
||||
include 'macro/com32.inc'
|
||||
include 'macro/import32.inc'
|
||||
include 'macro/export.inc'
|
||||
include 'macro/resource.inc'
|
||||
|
||||
struc TCHAR [val] { common match any, val \{ . du val \}
|
||||
match , val \{ . du ? \} }
|
||||
sizeof.TCHAR = 2
|
||||
|
||||
include 'equates/kernel32.inc'
|
||||
include 'equates/user32.inc'
|
||||
include 'equates/gdi32.inc'
|
||||
include 'equates/comctl32.inc'
|
||||
include 'equates/comdlg32.inc'
|
||||
include 'equates/shell32.inc'
|
||||
include 'equates/wsock32.inc'
|
||||
|
||||
macro api [name] { if used name
|
||||
label name dword at name#W
|
||||
end if }
|
||||
188
toolchain/fasmw17332/INCLUDE/WIN32WX.INC
Normal file
188
toolchain/fasmw17332/INCLUDE/WIN32WX.INC
Normal file
@@ -0,0 +1,188 @@
|
||||
|
||||
; Extended Win32 programming headers (WideChar)
|
||||
|
||||
include 'win32w.inc'
|
||||
|
||||
include 'macro/if.inc'
|
||||
|
||||
macro allow_nesting
|
||||
{ macro pushd value
|
||||
\{ match ,value \\{
|
||||
pushx equ \\}
|
||||
match =pushx =invoke proc,pushx value \\{
|
||||
allow_nesting
|
||||
invoke proc
|
||||
purge pushd,invoke,stdcall,cinvoke,ccall
|
||||
push eax
|
||||
pushx equ \\}
|
||||
match =pushx =stdcall proc,pushx value \\{
|
||||
allow_nesting
|
||||
stdcall proc
|
||||
purge pushd,invoke,stdcall,cinvoke,ccall
|
||||
push eax
|
||||
pushx equ \\}
|
||||
match =pushx =cinvoke proc,pushx value \\{
|
||||
allow_nesting
|
||||
cinvoke proc
|
||||
purge pushd,invoke,stdcall,cinvoke,ccall
|
||||
push eax
|
||||
pushx equ \\}
|
||||
match =pushx =ccall proc,pushx value \\{
|
||||
allow_nesting
|
||||
ccall proc
|
||||
purge pushd,invoke,stdcall,cinvoke,ccall
|
||||
push eax
|
||||
pushx equ \\}
|
||||
match =pushx,pushx \\{
|
||||
pushd <value>
|
||||
pushx equ \\}
|
||||
restore pushx \}
|
||||
macro invoke proc,[arg]
|
||||
\{ \reverse pushd <arg>
|
||||
\common call [proc] \}
|
||||
macro stdcall proc,[arg]
|
||||
\{ \reverse pushd <arg>
|
||||
\common call proc \}
|
||||
macro cinvoke proc,[arg]
|
||||
\{ \common \local size
|
||||
size = 0
|
||||
if ~ arg eq
|
||||
\reverse pushd <arg>
|
||||
size = size+4
|
||||
match =double any,arg \\{ size = size+4 \\}
|
||||
\common end if
|
||||
call [proc]
|
||||
if size
|
||||
add esp,size
|
||||
end if \}
|
||||
macro ccall proc,[arg]
|
||||
\{ \common \local size
|
||||
size = 0
|
||||
if ~ arg eq
|
||||
\reverse pushd <arg>
|
||||
size = size+4
|
||||
match =double any,arg \\{ size = size+4 \\}
|
||||
\common end if
|
||||
call proc
|
||||
if size
|
||||
add esp,size
|
||||
end if \} }
|
||||
|
||||
macro pushd value
|
||||
{ match first=,more, value \{ \local ..alignment,..continue
|
||||
if sizeof.TCHAR > 1
|
||||
local ..alignment
|
||||
virtual at $+5
|
||||
align sizeof.TCHAR
|
||||
..alignment = $-$$
|
||||
end virtual
|
||||
times ..alignment nop
|
||||
end if
|
||||
call ..continue
|
||||
du value,0
|
||||
..continue:
|
||||
pushd equ \}
|
||||
match pushd =addr var,pushd value \{ \local ..opcode,..address
|
||||
if +var relativeto 0 | +var relativeto $
|
||||
push var
|
||||
else
|
||||
lea edx,[var]
|
||||
push edx
|
||||
end if
|
||||
pushd equ \}
|
||||
match pushd =double [var],pushd value \{
|
||||
push dword [var+4]
|
||||
push dword [var]
|
||||
pushd equ \}
|
||||
match pushd =double =ptr var,pushd value \{
|
||||
push dword [var+4]
|
||||
push dword [var]
|
||||
pushd equ \}
|
||||
match pushd =double num,pushd value \{ \local ..high,..low
|
||||
virtual at 0
|
||||
dq num
|
||||
load ..low dword from 0
|
||||
load ..high dword from 4
|
||||
end virtual
|
||||
push ..high
|
||||
push ..low
|
||||
pushd equ \}
|
||||
match pushd,pushd \{ \local ..continue
|
||||
if value eqtype ''
|
||||
if sizeof.TCHAR > 1
|
||||
local ..alignment
|
||||
virtual at $+5
|
||||
align sizeof.TCHAR
|
||||
..alignment = $-$$
|
||||
end virtual
|
||||
times ..alignment nop
|
||||
end if
|
||||
call ..continue
|
||||
du value,0
|
||||
..continue:
|
||||
else
|
||||
push value
|
||||
end if
|
||||
pushd equ \}
|
||||
restore pushd }
|
||||
|
||||
allow_nesting
|
||||
|
||||
macro import lib,[functions]
|
||||
{ common macro import_#lib \{ import lib,functions \} }
|
||||
|
||||
macro api [functions]
|
||||
{ common macro all_api \{ all_api
|
||||
api functions \} }
|
||||
macro all_api {}
|
||||
|
||||
include 'api/kernel32.inc'
|
||||
include 'api/user32.inc'
|
||||
include 'api/gdi32.inc'
|
||||
include 'api/advapi32.inc'
|
||||
include 'api/comctl32.inc'
|
||||
include 'api/comdlg32.inc'
|
||||
include 'api/shell32.inc'
|
||||
include 'api/wsock32.inc'
|
||||
|
||||
purge import,api
|
||||
|
||||
macro .data { section '.data' data readable writeable }
|
||||
|
||||
macro .code { section '.text' code readable executable }
|
||||
|
||||
macro .end label
|
||||
{
|
||||
entry label
|
||||
|
||||
section '.idata' import data readable writeable
|
||||
|
||||
library kernel32,'KERNEL32.DLL',\
|
||||
user32,'USER32.DLL',\
|
||||
gdi32,'GDI32.DLL',\
|
||||
advapi32,'ADVAPI32.DLL',\
|
||||
comctl32,'COMCTL32.DLL',\
|
||||
comdlg32,'COMDLG32.DLL',\
|
||||
shell32,'SHELL32.DLL',\
|
||||
wsock32,'WSOCK32.DLL'
|
||||
|
||||
import_kernel32
|
||||
import_user32
|
||||
import_gdi32
|
||||
import_advapi32
|
||||
import_comctl32
|
||||
import_comdlg32
|
||||
import_shell32
|
||||
import_wsock32
|
||||
|
||||
all_api
|
||||
}
|
||||
|
||||
virtual at 0
|
||||
xchg eax,eax
|
||||
detected_16bit = $-1
|
||||
end virtual
|
||||
|
||||
if detected_16bit
|
||||
format PE GUI 4.0
|
||||
end if
|
||||
201
toolchain/fasmw17332/INCLUDE/WIN32WXP.INC
Normal file
201
toolchain/fasmw17332/INCLUDE/WIN32WXP.INC
Normal file
@@ -0,0 +1,201 @@
|
||||
|
||||
; Extended Win32 programming headers with parameters count checking (WideChar)
|
||||
|
||||
include 'win32w.inc'
|
||||
|
||||
include 'macro/if.inc'
|
||||
|
||||
macro allow_nesting
|
||||
{ macro pushd value
|
||||
\{ match ,value \\{
|
||||
pushx equ \\}
|
||||
match =pushx =invoke proc,pushx value \\{
|
||||
allow_nesting
|
||||
invoke proc
|
||||
purge pushd,invoke,stdcall,cinvoke,ccall
|
||||
push eax
|
||||
pushx equ \\}
|
||||
match =pushx =stdcall proc,pushx value \\{
|
||||
allow_nesting
|
||||
stdcall proc
|
||||
purge pushd,invoke,stdcall,cinvoke,ccall
|
||||
push eax
|
||||
pushx equ \\}
|
||||
match =pushx =cinvoke proc,pushx value \\{
|
||||
allow_nesting
|
||||
cinvoke proc
|
||||
purge pushd,invoke,stdcall,cinvoke,ccall
|
||||
push eax
|
||||
pushx equ \\}
|
||||
match =pushx =ccall proc,pushx value \\{
|
||||
allow_nesting
|
||||
ccall proc
|
||||
purge pushd,invoke,stdcall,cinvoke,ccall
|
||||
push eax
|
||||
pushx equ \\}
|
||||
match =pushx,pushx \\{
|
||||
pushd <value>
|
||||
pushx equ \\}
|
||||
restore pushx \}
|
||||
macro invoke proc,[arg]
|
||||
\{ \common count@stdcall = 0
|
||||
if ~ arg eq
|
||||
\forward count@stdcall = count@stdcall+1
|
||||
match =double value, arg \\{ count@stdcall = count@stdcall+1 \\}
|
||||
\common end if
|
||||
if proc eqtype 0 & defined proc \# % & count@stdcall <> proc \# %
|
||||
display "Error: invalid count of parameters for ",\`proc,".",0Dh,0Ah
|
||||
assert 0
|
||||
end if
|
||||
\reverse pushd <arg>
|
||||
\common call [proc] \}
|
||||
macro stdcall proc,[arg]
|
||||
\{ \common count@stdcall = 0
|
||||
if ~ arg eq
|
||||
\forward count@stdcall = count@stdcall+1
|
||||
match =double value, arg \\{ count@stdcall = count@stdcall+1 \\}
|
||||
\common end if
|
||||
if proc eqtype 0 & defined proc \# % & count@stdcall <> proc \# %
|
||||
display "Error: invalid count of parameters for ",\`proc,".",0Dh,0Ah
|
||||
assert 0
|
||||
end if
|
||||
\reverse pushd <arg>
|
||||
\common call proc \}
|
||||
macro cinvoke proc,[arg]
|
||||
\{ \common \local size
|
||||
size = 0
|
||||
if ~ arg eq
|
||||
\reverse pushd <arg>
|
||||
size = size+4
|
||||
match =double any,arg \\{ size = size+4 \\}
|
||||
\common end if
|
||||
call [proc]
|
||||
if size
|
||||
add esp,size
|
||||
end if \}
|
||||
macro ccall proc,[arg]
|
||||
\{ \common \local size
|
||||
size = 0
|
||||
if ~ arg eq
|
||||
\reverse pushd <arg>
|
||||
size = size+4
|
||||
match =double any,arg \\{ size = size+4 \\}
|
||||
\common end if
|
||||
call proc
|
||||
if size
|
||||
add esp,size
|
||||
end if \} }
|
||||
|
||||
macro pushd value
|
||||
{ match first=,more, value \{ \local ..continue
|
||||
times 1 - (rva $ and 1) nop
|
||||
call ..continue
|
||||
du value,0
|
||||
..continue:
|
||||
pushd equ \}
|
||||
match pushd =addr var,pushd value \{ \local ..opcode,..address
|
||||
if +var relativeto 0 | +var relativeto $
|
||||
push var
|
||||
else
|
||||
lea edx,[var]
|
||||
push edx
|
||||
end if
|
||||
pushd equ \}
|
||||
match pushd =double [var],pushd value \{
|
||||
push dword [var+4]
|
||||
push dword [var]
|
||||
pushd equ \}
|
||||
match pushd =double =ptr var,pushd value \{
|
||||
push dword [var+4]
|
||||
push dword [var]
|
||||
pushd equ \}
|
||||
match pushd =double num,pushd value \{ \local ..high,..low
|
||||
virtual at 0
|
||||
dq num
|
||||
load ..low dword from 0
|
||||
load ..high dword from 4
|
||||
end virtual
|
||||
push ..high
|
||||
push ..low
|
||||
pushd equ \}
|
||||
match pushd,pushd \{ \local ..continue
|
||||
if value eqtype ''
|
||||
times 1 - (rva $ and 1) nop
|
||||
call ..continue
|
||||
du value,0
|
||||
..continue:
|
||||
else
|
||||
push value
|
||||
end if
|
||||
pushd equ \}
|
||||
restore pushd }
|
||||
|
||||
allow_nesting
|
||||
|
||||
include 'pcount/kernel32.inc'
|
||||
include 'pcount/user32.inc'
|
||||
include 'pcount/gdi32.inc'
|
||||
include 'pcount/advapi32.inc'
|
||||
include 'pcount/comctl32.inc'
|
||||
include 'pcount/comdlg32.inc'
|
||||
include 'pcount/shell32.inc'
|
||||
include 'pcount/wsock32.inc'
|
||||
|
||||
macro import lib,[functions]
|
||||
{ common macro import_#lib \{ import lib,functions \} }
|
||||
|
||||
macro api [functions]
|
||||
{ common macro all_api \{ all_api
|
||||
api functions \} }
|
||||
macro all_api {}
|
||||
|
||||
include 'api/kernel32.inc'
|
||||
include 'api/user32.inc'
|
||||
include 'api/gdi32.inc'
|
||||
include 'api/advapi32.inc'
|
||||
include 'api/comctl32.inc'
|
||||
include 'api/comdlg32.inc'
|
||||
include 'api/shell32.inc'
|
||||
include 'api/wsock32.inc'
|
||||
|
||||
purge import,api
|
||||
|
||||
macro .data { section '.data' data readable writeable }
|
||||
|
||||
macro .code { section '.text' code readable executable }
|
||||
|
||||
macro .end label
|
||||
{
|
||||
entry label
|
||||
|
||||
section '.idata' import data readable writeable
|
||||
|
||||
library kernel32,'KERNEL32.DLL',\
|
||||
user32,'USER32.DLL',\
|
||||
gdi32,'GDI32.DLL',\
|
||||
advapi32,'ADVAPI32.DLL',\
|
||||
comctl32,'COMCTL32.DLL',\
|
||||
comdlg32,'COMDLG32.DLL',\
|
||||
shell32,'SHELL32.DLL',\
|
||||
wsock32,'WSOCK32.DLL'
|
||||
|
||||
import_kernel32
|
||||
import_user32
|
||||
import_gdi32
|
||||
import_advapi32
|
||||
import_comctl32
|
||||
import_comdlg32
|
||||
import_shell32
|
||||
import_wsock32
|
||||
|
||||
all_api
|
||||
}
|
||||
|
||||
virtual at 0
|
||||
xchg eax,eax
|
||||
detected_16bit = $-1
|
||||
end virtual
|
||||
|
||||
if detected_16bit
|
||||
format PE GUI 4.0
|
||||
end if
|
||||
25
toolchain/fasmw17332/INCLUDE/WIN64A.INC
Normal file
25
toolchain/fasmw17332/INCLUDE/WIN64A.INC
Normal file
@@ -0,0 +1,25 @@
|
||||
|
||||
; Win64 programming headers (ASCII)
|
||||
|
||||
include 'macro/struct.inc'
|
||||
include 'macro/proc64.inc'
|
||||
include 'macro/com64.inc'
|
||||
include 'macro/import64.inc'
|
||||
include 'macro/export.inc'
|
||||
include 'macro/resource.inc'
|
||||
|
||||
struc TCHAR [val] { common match any, val \{ . db val \}
|
||||
match , val \{ . db ? \} }
|
||||
sizeof.TCHAR = 1
|
||||
|
||||
include 'equates/kernel64.inc'
|
||||
include 'equates/user64.inc'
|
||||
include 'equates/gdi64.inc'
|
||||
include 'equates/comctl64.inc'
|
||||
include 'equates/comdlg64.inc'
|
||||
include 'equates/shell64.inc'
|
||||
|
||||
macro api [name] { if used name
|
||||
label name qword at name#A
|
||||
end if }
|
||||
|
||||
205
toolchain/fasmw17332/INCLUDE/WIN64AX.INC
Normal file
205
toolchain/fasmw17332/INCLUDE/WIN64AX.INC
Normal file
@@ -0,0 +1,205 @@
|
||||
|
||||
; Extended Win64 programming headers (ASCII)
|
||||
|
||||
include 'win64a.inc'
|
||||
|
||||
include 'macro/if.inc'
|
||||
|
||||
macro allow_nesting
|
||||
{ macro invoke proc,[arg]
|
||||
\{ \common fastcall [proc],arg \}
|
||||
macro fastcall proc,[arg]
|
||||
\{ \common \local list,counter,flags,outer_frame,nested_frame,..close_nest
|
||||
match =current@frame,current@frame \\{
|
||||
frame
|
||||
define outer_frame \\}
|
||||
define counter
|
||||
define list
|
||||
flags = 0
|
||||
\forward \local param,nested,isfloat,..next
|
||||
match any,counter \\{ list equ list, \\}
|
||||
counter equ counter+1
|
||||
define param arg
|
||||
define nested
|
||||
isfloat = 0
|
||||
match =invoke statement,param \\{
|
||||
nested equ param
|
||||
define param \\}
|
||||
match =fastcall statement,param \\{
|
||||
nested equ param
|
||||
define param \\}
|
||||
match =float =invoke statement,param \\{
|
||||
define nested invoke statement
|
||||
define param
|
||||
isfloat = 1 \\}
|
||||
match =float =fastcall statement,param \\{
|
||||
define nested fastcall statement
|
||||
define param
|
||||
isfloat = 1 \\}
|
||||
match statement,nested \\{
|
||||
match =nested_frame,nested_frame \\\{
|
||||
frame
|
||||
define nested_frame \\\}
|
||||
allow_nesting
|
||||
statement
|
||||
purge invoke_fastcall
|
||||
if counter > 4
|
||||
if isfloat
|
||||
movq [rsp+size@frame+(counter-1)*8],xmm0
|
||||
else
|
||||
mov [rsp+size@frame+(counter-1)*8],rax
|
||||
end if
|
||||
else
|
||||
flags = flags or 1 shl (counter-1)
|
||||
if isfloat
|
||||
flags = flags or 1 shl (4+counter-1)
|
||||
end if
|
||||
if ..close_nest > ..next
|
||||
if float
|
||||
movq [rsp+size@frame+(counter-1)*8],xmm0
|
||||
else
|
||||
mov [rsp+size@frame+(counter-1)*8],rax
|
||||
end if
|
||||
else
|
||||
flags = flags or 1 shl (8+counter-1)
|
||||
end if
|
||||
end if
|
||||
..next: \\}
|
||||
list equ list <param>
|
||||
\common ..close_nest:
|
||||
match ,nested_frame \\{ endf \\}
|
||||
if flags and 1
|
||||
if flags and 1 shl 4
|
||||
if ~ flags and 1 shl 8
|
||||
movq xmm0,[rsp]
|
||||
end if
|
||||
else
|
||||
if flags and 1 shl 8
|
||||
mov rcx,rax
|
||||
else
|
||||
mov rcx,[rsp]
|
||||
end if
|
||||
end if
|
||||
end if
|
||||
if flags and 1 shl 1
|
||||
if flags and 1 shl (4+1)
|
||||
if flags and 1 shl (8+1)
|
||||
movq xmm1,xmm0
|
||||
else
|
||||
movq xmm1,[rsp+8]
|
||||
end if
|
||||
else
|
||||
if flags and 1 shl (8+1)
|
||||
mov rdx,rax
|
||||
else
|
||||
mov rdx,[rsp+8]
|
||||
end if
|
||||
end if
|
||||
end if
|
||||
if flags and 1 shl 2
|
||||
if flags and 1 shl (4+2)
|
||||
if flags and 1 shl (8+2)
|
||||
movq xmm2,xmm0
|
||||
else
|
||||
movq xmm2,[rsp+2*8]
|
||||
end if
|
||||
else
|
||||
if flags and 1 shl (8+2)
|
||||
mov r8,rax
|
||||
else
|
||||
mov r8,[rsp+2*8]
|
||||
end if
|
||||
end if
|
||||
end if
|
||||
if flags and 1 shl 3
|
||||
if flags and 1 shl (4+3)
|
||||
if flags and 1 shl (8+3)
|
||||
movq xmm3,xmm0
|
||||
else
|
||||
movq xmm3,[rsp+3*8]
|
||||
end if
|
||||
else
|
||||
if flags and 1 shl (8+3)
|
||||
mov r9,rax
|
||||
else
|
||||
mov r9,[rsp+3*8]
|
||||
end if
|
||||
end if
|
||||
end if
|
||||
match args,list \\{ fastcall proc,args \\}
|
||||
match ,list \\{ fastcall proc \\}
|
||||
match ,outer_frame \\{ endf \\} \} }
|
||||
|
||||
allow_nesting
|
||||
|
||||
macro import lib,[functions]
|
||||
{ common macro import_#lib \{ import lib,functions \} }
|
||||
|
||||
macro api [functions]
|
||||
{ common macro all_api \{ all_api
|
||||
api functions \} }
|
||||
macro all_api {}
|
||||
|
||||
include 'api/kernel32.inc'
|
||||
include 'api/user32.inc'
|
||||
include 'api/gdi32.inc'
|
||||
include 'api/advapi32.inc'
|
||||
include 'api/comctl32.inc'
|
||||
include 'api/comdlg32.inc'
|
||||
include 'api/shell32.inc'
|
||||
include 'api/wsock32.inc'
|
||||
|
||||
purge import,api
|
||||
|
||||
macro .data { section '.data' data readable writeable }
|
||||
|
||||
macro .code {
|
||||
section '.text' code readable executable
|
||||
entry $
|
||||
sub rsp,8
|
||||
local main,code
|
||||
entry equ main
|
||||
if main <> code
|
||||
jmp main
|
||||
end if
|
||||
code: }
|
||||
|
||||
macro .end value
|
||||
{
|
||||
label entry at value
|
||||
|
||||
section '.idata' import data readable writeable
|
||||
|
||||
library kernel32,'KERNEL32.DLL',\
|
||||
user32,'USER32.DLL',\
|
||||
gdi32,'GDI32.DLL',\
|
||||
advapi32,'ADVAPI32.DLL',\
|
||||
comctl32,'COMCTL32.DLL',\
|
||||
comdlg32,'COMDLG32.DLL',\
|
||||
shell32,'SHELL32.DLL',\
|
||||
wsock32,'WSOCK32.DLL'
|
||||
|
||||
import_kernel32
|
||||
import_user32
|
||||
import_gdi32
|
||||
import_advapi32
|
||||
import_comctl32
|
||||
import_comdlg32
|
||||
import_shell32
|
||||
import_wsock32
|
||||
|
||||
all_api
|
||||
}
|
||||
|
||||
virtual at 0
|
||||
inc ax
|
||||
if $=1
|
||||
detected_16bit = 1
|
||||
else
|
||||
detected_16bit = 0
|
||||
end if
|
||||
end virtual
|
||||
|
||||
if detected_16bit
|
||||
format PE64 GUI 5.0
|
||||
end if
|
||||
221
toolchain/fasmw17332/INCLUDE/WIN64AXP.INC
Normal file
221
toolchain/fasmw17332/INCLUDE/WIN64AXP.INC
Normal file
@@ -0,0 +1,221 @@
|
||||
|
||||
; Extended Win64 programming headers with parameters count checking (ASCII)
|
||||
|
||||
include 'win64a.inc'
|
||||
|
||||
include 'macro/if.inc'
|
||||
|
||||
macro allow_nesting
|
||||
{ macro invoke proc,[arg]
|
||||
\{ \common fastcall [proc],arg \}
|
||||
macro fastcall proc,[arg]
|
||||
\{ \common \local list,counter,flags,outer_frame,nested_frame,..close_nest
|
||||
match =current@frame,current@frame \\{
|
||||
frame
|
||||
define outer_frame \\}
|
||||
define counter
|
||||
define list
|
||||
flags = 0
|
||||
\forward \local param,nested,isfloat,..next
|
||||
match any,counter \\{ list equ list, \\}
|
||||
counter equ counter+1
|
||||
define param arg
|
||||
define nested
|
||||
isfloat = 0
|
||||
match =invoke statement,param \\{
|
||||
nested equ param
|
||||
define param \\}
|
||||
match =fastcall statement,param \\{
|
||||
nested equ param
|
||||
define param \\}
|
||||
match =float =invoke statement,param \\{
|
||||
define nested invoke statement
|
||||
define param
|
||||
isfloat = 1 \\}
|
||||
match =float =fastcall statement,param \\{
|
||||
define nested fastcall statement
|
||||
define param
|
||||
isfloat = 1 \\}
|
||||
match statement,nested \\{
|
||||
match =nested_frame,nested_frame \\\{
|
||||
frame
|
||||
define nested_frame \\\}
|
||||
allow_nesting
|
||||
statement
|
||||
purge invoke_fastcall
|
||||
if counter > 4
|
||||
if isfloat
|
||||
movq [rsp+size@frame+(counter-1)*8],xmm0
|
||||
else
|
||||
mov [rsp+size@frame+(counter-1)*8],rax
|
||||
end if
|
||||
else
|
||||
flags = flags or 1 shl (counter-1)
|
||||
if isfloat
|
||||
flags = flags or 1 shl (4+counter-1)
|
||||
end if
|
||||
if ..close_nest > ..next
|
||||
if float
|
||||
movq [rsp+size@frame+(counter-1)*8],xmm0
|
||||
else
|
||||
mov [rsp+size@frame+(counter-1)*8],rax
|
||||
end if
|
||||
else
|
||||
flags = flags or 1 shl (8+counter-1)
|
||||
end if
|
||||
end if
|
||||
..next: \\}
|
||||
match any,param \\{ list equ list <param> \\}
|
||||
\common ..close_nest:
|
||||
match ,nested_frame \\{ endf \\}
|
||||
if flags and 1
|
||||
if flags and 1 shl 4
|
||||
if ~ flags and 1 shl 8
|
||||
movq xmm0,[rsp]
|
||||
end if
|
||||
else
|
||||
if flags and 1 shl 8
|
||||
mov rcx,rax
|
||||
else
|
||||
mov rcx,[rsp]
|
||||
end if
|
||||
end if
|
||||
end if
|
||||
if flags and 1 shl 1
|
||||
if flags and 1 shl (4+1)
|
||||
if flags and 1 shl (8+1)
|
||||
movq xmm1,xmm0
|
||||
else
|
||||
movq xmm1,[rsp+8]
|
||||
end if
|
||||
else
|
||||
if flags and 1 shl (8+1)
|
||||
mov rdx,rax
|
||||
else
|
||||
mov rdx,[rsp+8]
|
||||
end if
|
||||
end if
|
||||
end if
|
||||
if flags and 1 shl 2
|
||||
if flags and 1 shl (4+2)
|
||||
if flags and 1 shl (8+2)
|
||||
movq xmm2,xmm0
|
||||
else
|
||||
movq xmm2,[rsp+2*8]
|
||||
end if
|
||||
else
|
||||
if flags and 1 shl (8+2)
|
||||
mov r8,rax
|
||||
else
|
||||
mov r8,[rsp+2*8]
|
||||
end if
|
||||
end if
|
||||
end if
|
||||
if flags and 1 shl 3
|
||||
if flags and 1 shl (4+3)
|
||||
if flags and 1 shl (8+3)
|
||||
movq xmm3,xmm0
|
||||
else
|
||||
movq xmm3,[rsp+3*8]
|
||||
end if
|
||||
else
|
||||
if flags and 1 shl (8+3)
|
||||
mov r9,rax
|
||||
else
|
||||
mov r9,[rsp+3*8]
|
||||
end if
|
||||
end if
|
||||
end if
|
||||
match args,list \\{ fastcall proc,args \\}
|
||||
match ,list \\{ fastcall proc
|
||||
define counter 0 \\}
|
||||
match ,outer_frame \\{ endf \\}
|
||||
proc@paramcheck equ proc
|
||||
match [name],proc \\{ define proc@paramcheck name \\}
|
||||
match name,proc@paramcheck \\{ if name eqtype 0 & defined name \\# % & counter <> name \\# %
|
||||
display "Error: invalid count of parameters for ",\\`name,".",0Dh,0Ah
|
||||
assert 0
|
||||
end if \\} \} }
|
||||
|
||||
allow_nesting
|
||||
|
||||
include 'pcount/kernel32.inc'
|
||||
include 'pcount/user32.inc'
|
||||
include 'pcount/gdi32.inc'
|
||||
include 'pcount/advapi32.inc'
|
||||
include 'pcount/comctl32.inc'
|
||||
include 'pcount/comdlg32.inc'
|
||||
include 'pcount/shell32.inc'
|
||||
include 'pcount/wsock32.inc'
|
||||
|
||||
macro import lib,[functions]
|
||||
{ common macro import_#lib \{ import lib,functions \} }
|
||||
|
||||
macro api [functions]
|
||||
{ common macro all_api \{ all_api
|
||||
api functions \} }
|
||||
macro all_api {}
|
||||
|
||||
include 'api/kernel32.inc'
|
||||
include 'api/user32.inc'
|
||||
include 'api/gdi32.inc'
|
||||
include 'api/advapi32.inc'
|
||||
include 'api/comctl32.inc'
|
||||
include 'api/comdlg32.inc'
|
||||
include 'api/shell32.inc'
|
||||
include 'api/wsock32.inc'
|
||||
|
||||
purge import,api
|
||||
|
||||
macro .data { section '.data' data readable writeable }
|
||||
|
||||
macro .code {
|
||||
section '.text' code readable executable
|
||||
entry $
|
||||
sub rsp,8
|
||||
local main,code
|
||||
entry equ main
|
||||
if main <> code
|
||||
jmp main
|
||||
end if
|
||||
code: }
|
||||
|
||||
macro .end value
|
||||
{
|
||||
label entry at value
|
||||
|
||||
section '.idata' import data readable writeable
|
||||
|
||||
library kernel32,'KERNEL32.DLL',\
|
||||
user32,'USER32.DLL',\
|
||||
gdi32,'GDI32.DLL',\
|
||||
advapi32,'ADVAPI32.DLL',\
|
||||
comctl32,'COMCTL32.DLL',\
|
||||
comdlg32,'COMDLG32.DLL',\
|
||||
shell32,'SHELL32.DLL',\
|
||||
wsock32,'WSOCK32.DLL'
|
||||
|
||||
import_kernel32
|
||||
import_user32
|
||||
import_gdi32
|
||||
import_advapi32
|
||||
import_comctl32
|
||||
import_comdlg32
|
||||
import_shell32
|
||||
import_wsock32
|
||||
|
||||
all_api
|
||||
}
|
||||
|
||||
virtual at 0
|
||||
inc ax
|
||||
if $=1
|
||||
detected_16bit = 1
|
||||
else
|
||||
detected_16bit = 0
|
||||
end if
|
||||
end virtual
|
||||
|
||||
if detected_16bit
|
||||
format PE64 GUI 5.0
|
||||
end if
|
||||
24
toolchain/fasmw17332/INCLUDE/WIN64W.INC
Normal file
24
toolchain/fasmw17332/INCLUDE/WIN64W.INC
Normal file
@@ -0,0 +1,24 @@
|
||||
|
||||
; Win64 programming headers (WideChar)
|
||||
|
||||
include 'macro/struct.inc'
|
||||
include 'macro/proc64.inc'
|
||||
include 'macro/com64.inc'
|
||||
include 'macro/import64.inc'
|
||||
include 'macro/export.inc'
|
||||
include 'macro/resource.inc'
|
||||
|
||||
struc TCHAR [val] { common match any, val \{ . du val \}
|
||||
match , val \{ . du ? \} }
|
||||
sizeof.TCHAR = 2
|
||||
|
||||
include 'equates/kernel64.inc'
|
||||
include 'equates/user64.inc'
|
||||
include 'equates/gdi64.inc'
|
||||
include 'equates/comctl64.inc'
|
||||
include 'equates/comdlg64.inc'
|
||||
include 'equates/shell64.inc'
|
||||
|
||||
macro api [name] { if used name
|
||||
label name qword at name#W
|
||||
end if }
|
||||
204
toolchain/fasmw17332/INCLUDE/WIN64WX.INC
Normal file
204
toolchain/fasmw17332/INCLUDE/WIN64WX.INC
Normal file
@@ -0,0 +1,204 @@
|
||||
|
||||
; Extended Win64 programming headers (WideChar)
|
||||
|
||||
include 'win64w.inc'
|
||||
|
||||
include 'macro/if.inc'
|
||||
|
||||
macro allow_nesting
|
||||
{ macro invoke proc,[arg]
|
||||
\{ \common fastcall [proc],arg \}
|
||||
macro fastcall proc,[arg]
|
||||
\{ \common \local list,counter,flags,outer_frame,nested_frame,..close_nest
|
||||
match =current@frame,current@frame \\{
|
||||
frame
|
||||
define outer_frame \\}
|
||||
define counter
|
||||
define list
|
||||
flags = 0
|
||||
\forward \local param,nested,isfloat,..next
|
||||
match any,counter \\{ list equ list, \\}
|
||||
counter equ counter+1
|
||||
define param arg
|
||||
define nested
|
||||
isfloat = 0
|
||||
match =invoke statement,param \\{
|
||||
nested equ param
|
||||
define param \\}
|
||||
match =fastcall statement,param \\{
|
||||
nested equ param
|
||||
define param \\}
|
||||
match =float =invoke statement,param \\{
|
||||
define nested invoke statement
|
||||
define param
|
||||
isfloat = 1 \\}
|
||||
match =float =fastcall statement,param \\{
|
||||
define nested fastcall statement
|
||||
define param
|
||||
isfloat = 1 \\}
|
||||
match statement,nested \\{
|
||||
match =nested_frame,nested_frame \\\{
|
||||
frame
|
||||
define nested_frame \\\}
|
||||
allow_nesting
|
||||
statement
|
||||
purge invoke_fastcall
|
||||
if counter > 4
|
||||
if isfloat
|
||||
movq [rsp+size@frame+(counter-1)*8],xmm0
|
||||
else
|
||||
mov [rsp+size@frame+(counter-1)*8],rax
|
||||
end if
|
||||
else
|
||||
flags = flags or 1 shl (counter-1)
|
||||
if isfloat
|
||||
flags = flags or 1 shl (4+counter-1)
|
||||
end if
|
||||
if ..close_nest > ..next
|
||||
if float
|
||||
movq [rsp+size@frame+(counter-1)*8],xmm0
|
||||
else
|
||||
mov [rsp+size@frame+(counter-1)*8],rax
|
||||
end if
|
||||
else
|
||||
flags = flags or 1 shl (8+counter-1)
|
||||
end if
|
||||
end if
|
||||
..next: \\}
|
||||
list equ list <param>
|
||||
\common ..close_nest:
|
||||
match ,nested_frame \\{ endf \\}
|
||||
if flags and 1
|
||||
if flags and 1 shl 4
|
||||
if ~ flags and 1 shl 8
|
||||
movq xmm0,[rsp]
|
||||
end if
|
||||
else
|
||||
if flags and 1 shl 8
|
||||
mov rcx,rax
|
||||
else
|
||||
mov rcx,[rsp]
|
||||
end if
|
||||
end if
|
||||
end if
|
||||
if flags and 1 shl 1
|
||||
if flags and 1 shl (4+1)
|
||||
if flags and 1 shl (8+1)
|
||||
movq xmm1,xmm0
|
||||
else
|
||||
movq xmm1,[rsp+8]
|
||||
end if
|
||||
else
|
||||
if flags and 1 shl (8+1)
|
||||
mov rdx,rax
|
||||
else
|
||||
mov rdx,[rsp+8]
|
||||
end if
|
||||
end if
|
||||
end if
|
||||
if flags and 1 shl 2
|
||||
if flags and 1 shl (4+2)
|
||||
if flags and 1 shl (8+2)
|
||||
movq xmm2,xmm0
|
||||
else
|
||||
movq xmm2,[rsp+2*8]
|
||||
end if
|
||||
else
|
||||
if flags and 1 shl (8+2)
|
||||
mov r8,rax
|
||||
else
|
||||
mov r8,[rsp+2*8]
|
||||
end if
|
||||
end if
|
||||
end if
|
||||
if flags and 1 shl 3
|
||||
if flags and 1 shl (4+3)
|
||||
if flags and 1 shl (8+3)
|
||||
movq xmm3,xmm0
|
||||
else
|
||||
movq xmm3,[rsp+3*8]
|
||||
end if
|
||||
else
|
||||
if flags and 1 shl (8+3)
|
||||
mov r9,rax
|
||||
else
|
||||
mov r9,[rsp+3*8]
|
||||
end if
|
||||
end if
|
||||
end if
|
||||
match args,list \\{ fastcall proc,args \\}
|
||||
match ,list \\{ fastcall proc \\}
|
||||
match ,outer_frame \\{ endf \\} \} }
|
||||
|
||||
allow_nesting
|
||||
|
||||
macro import lib,[functions]
|
||||
{ common macro import_#lib \{ import lib,functions \} }
|
||||
|
||||
macro api [functions]
|
||||
{ common macro all_api \{ all_api
|
||||
api functions \} }
|
||||
macro all_api {}
|
||||
|
||||
include 'api/kernel32.inc'
|
||||
include 'api/user32.inc'
|
||||
include 'api/gdi32.inc'
|
||||
include 'api/advapi32.inc'
|
||||
include 'api/comctl32.inc'
|
||||
include 'api/comdlg32.inc'
|
||||
include 'api/shell32.inc'
|
||||
include 'api/wsock32.inc'
|
||||
|
||||
purge import,api
|
||||
|
||||
macro .data { section '.data' data readable writeable }
|
||||
macro .code {
|
||||
section '.text' code readable executable
|
||||
entry $
|
||||
sub rsp,8
|
||||
local main,code
|
||||
entry equ main
|
||||
if main <> code
|
||||
jmp main
|
||||
end if
|
||||
code: }
|
||||
|
||||
macro .end value
|
||||
{
|
||||
label entry at value
|
||||
|
||||
section '.idata' import data readable writeable
|
||||
|
||||
library kernel32,'KERNEL32.DLL',\
|
||||
user32,'USER32.DLL',\
|
||||
gdi32,'GDI32.DLL',\
|
||||
advapi32,'ADVAPI32.DLL',\
|
||||
comctl32,'COMCTL32.DLL',\
|
||||
comdlg32,'COMDLG32.DLL',\
|
||||
shell32,'SHELL32.DLL',\
|
||||
wsock32,'WSOCK32.DLL'
|
||||
|
||||
import_kernel32
|
||||
import_user32
|
||||
import_gdi32
|
||||
import_advapi32
|
||||
import_comctl32
|
||||
import_comdlg32
|
||||
import_shell32
|
||||
import_wsock32
|
||||
|
||||
all_api
|
||||
}
|
||||
|
||||
virtual at 0
|
||||
inc ax
|
||||
if $=1
|
||||
detected_16bit = 1
|
||||
else
|
||||
detected_16bit = 0
|
||||
end if
|
||||
end virtual
|
||||
|
||||
if detected_16bit
|
||||
format PE64 GUI 5.0
|
||||
end if
|
||||
221
toolchain/fasmw17332/INCLUDE/WIN64WXP.INC
Normal file
221
toolchain/fasmw17332/INCLUDE/WIN64WXP.INC
Normal file
@@ -0,0 +1,221 @@
|
||||
|
||||
; Extended Win64 programming headers with parameters count checking (WideChar)
|
||||
|
||||
include 'win64w.inc'
|
||||
|
||||
include 'macro/if.inc'
|
||||
|
||||
macro allow_nesting
|
||||
{ macro invoke proc,[arg]
|
||||
\{ \common fastcall [proc],arg \}
|
||||
macro fastcall proc,[arg]
|
||||
\{ \common \local list,counter,flags,outer_frame,nested_frame,..close_nest
|
||||
match =current@frame,current@frame \\{
|
||||
frame
|
||||
define outer_frame \\}
|
||||
define counter
|
||||
define list
|
||||
flags = 0
|
||||
\forward \local param,nested,isfloat,..next
|
||||
match any,counter \\{ list equ list, \\}
|
||||
counter equ counter+1
|
||||
define param arg
|
||||
define nested
|
||||
isfloat = 0
|
||||
match =invoke statement,param \\{
|
||||
nested equ param
|
||||
define param \\}
|
||||
match =fastcall statement,param \\{
|
||||
nested equ param
|
||||
define param \\}
|
||||
match =float =invoke statement,param \\{
|
||||
define nested invoke statement
|
||||
define param
|
||||
isfloat = 1 \\}
|
||||
match =float =fastcall statement,param \\{
|
||||
define nested fastcall statement
|
||||
define param
|
||||
isfloat = 1 \\}
|
||||
match statement,nested \\{
|
||||
match =nested_frame,nested_frame \\\{
|
||||
frame
|
||||
define nested_frame \\\}
|
||||
allow_nesting
|
||||
statement
|
||||
purge invoke_fastcall
|
||||
if counter > 4
|
||||
if isfloat
|
||||
movq [rsp+size@frame+(counter-1)*8],xmm0
|
||||
else
|
||||
mov [rsp+size@frame+(counter-1)*8],rax
|
||||
end if
|
||||
else
|
||||
flags = flags or 1 shl (counter-1)
|
||||
if isfloat
|
||||
flags = flags or 1 shl (4+counter-1)
|
||||
end if
|
||||
if ..close_nest > ..next
|
||||
if float
|
||||
movq [rsp+size@frame+(counter-1)*8],xmm0
|
||||
else
|
||||
mov [rsp+size@frame+(counter-1)*8],rax
|
||||
end if
|
||||
else
|
||||
flags = flags or 1 shl (8+counter-1)
|
||||
end if
|
||||
end if
|
||||
..next: \\}
|
||||
match any,param \\{ list equ list <param> \\}
|
||||
\common ..close_nest:
|
||||
match ,nested_frame \\{ endf \\}
|
||||
if flags and 1
|
||||
if flags and 1 shl 4
|
||||
if ~ flags and 1 shl 8
|
||||
movq xmm0,[rsp]
|
||||
end if
|
||||
else
|
||||
if flags and 1 shl 8
|
||||
mov rcx,rax
|
||||
else
|
||||
mov rcx,[rsp]
|
||||
end if
|
||||
end if
|
||||
end if
|
||||
if flags and 1 shl 1
|
||||
if flags and 1 shl (4+1)
|
||||
if flags and 1 shl (8+1)
|
||||
movq xmm1,xmm0
|
||||
else
|
||||
movq xmm1,[rsp+8]
|
||||
end if
|
||||
else
|
||||
if flags and 1 shl (8+1)
|
||||
mov rdx,rax
|
||||
else
|
||||
mov rdx,[rsp+8]
|
||||
end if
|
||||
end if
|
||||
end if
|
||||
if flags and 1 shl 2
|
||||
if flags and 1 shl (4+2)
|
||||
if flags and 1 shl (8+2)
|
||||
movq xmm2,xmm0
|
||||
else
|
||||
movq xmm2,[rsp+2*8]
|
||||
end if
|
||||
else
|
||||
if flags and 1 shl (8+2)
|
||||
mov r8,rax
|
||||
else
|
||||
mov r8,[rsp+2*8]
|
||||
end if
|
||||
end if
|
||||
end if
|
||||
if flags and 1 shl 3
|
||||
if flags and 1 shl (4+3)
|
||||
if flags and 1 shl (8+3)
|
||||
movq xmm3,xmm0
|
||||
else
|
||||
movq xmm3,[rsp+3*8]
|
||||
end if
|
||||
else
|
||||
if flags and 1 shl (8+3)
|
||||
mov r9,rax
|
||||
else
|
||||
mov r9,[rsp+3*8]
|
||||
end if
|
||||
end if
|
||||
end if
|
||||
match args,list \\{ fastcall proc,args \\}
|
||||
match ,list \\{ fastcall proc
|
||||
define counter 0 \\}
|
||||
match ,outer_frame \\{ endf \\}
|
||||
proc@paramcheck equ proc
|
||||
match [name],proc \\{ define proc@paramcheck name \\}
|
||||
match name,proc@paramcheck \\{ if name eqtype 0 & defined name \\# % & counter <> name \\# %
|
||||
display "Error: invalid count of parameters for ",\\`name,".",0Dh,0Ah
|
||||
assert 0
|
||||
end if \\} \} }
|
||||
|
||||
allow_nesting
|
||||
|
||||
include 'pcount/kernel32.inc'
|
||||
include 'pcount/user32.inc'
|
||||
include 'pcount/gdi32.inc'
|
||||
include 'pcount/advapi32.inc'
|
||||
include 'pcount/comctl32.inc'
|
||||
include 'pcount/comdlg32.inc'
|
||||
include 'pcount/shell32.inc'
|
||||
include 'pcount/wsock32.inc'
|
||||
|
||||
macro import lib,[functions]
|
||||
{ common macro import_#lib \{ import lib,functions \} }
|
||||
|
||||
macro api [functions]
|
||||
{ common macro all_api \{ all_api
|
||||
api functions \} }
|
||||
macro all_api {}
|
||||
|
||||
include 'api/kernel32.inc'
|
||||
include 'api/user32.inc'
|
||||
include 'api/gdi32.inc'
|
||||
include 'api/advapi32.inc'
|
||||
include 'api/comctl32.inc'
|
||||
include 'api/comdlg32.inc'
|
||||
include 'api/shell32.inc'
|
||||
include 'api/wsock32.inc'
|
||||
|
||||
purge import,api
|
||||
|
||||
macro .data { section '.data' data readable writeable }
|
||||
|
||||
macro .code {
|
||||
section '.text' code readable executable
|
||||
entry $
|
||||
sub rsp,8
|
||||
local main,code
|
||||
entry equ main
|
||||
if main <> code
|
||||
jmp main
|
||||
end if
|
||||
code: }
|
||||
|
||||
macro .end value
|
||||
{
|
||||
label entry at value
|
||||
|
||||
section '.idata' import data readable writeable
|
||||
|
||||
library kernel32,'KERNEL32.DLL',\
|
||||
user32,'USER32.DLL',\
|
||||
gdi32,'GDI32.DLL',\
|
||||
advapi32,'ADVAPI32.DLL',\
|
||||
comctl32,'COMCTL32.DLL',\
|
||||
comdlg32,'COMDLG32.DLL',\
|
||||
shell32,'SHELL32.DLL',\
|
||||
wsock32,'WSOCK32.DLL'
|
||||
|
||||
import_kernel32
|
||||
import_user32
|
||||
import_gdi32
|
||||
import_advapi32
|
||||
import_comctl32
|
||||
import_comdlg32
|
||||
import_shell32
|
||||
import_wsock32
|
||||
|
||||
all_api
|
||||
}
|
||||
|
||||
virtual at 0
|
||||
inc ax
|
||||
if $=1
|
||||
detected_16bit = 1
|
||||
else
|
||||
detected_16bit = 0
|
||||
end if
|
||||
end virtual
|
||||
|
||||
if detected_16bit
|
||||
format PE64 GUI 5.0
|
||||
end if
|
||||
37
toolchain/fasmw17332/LICENSE.TXT
Normal file
37
toolchain/fasmw17332/LICENSE.TXT
Normal file
@@ -0,0 +1,37 @@
|
||||
|
||||
flat assembler version 1.73
|
||||
Copyright (c) 1999-2024, Tomasz Grysztar.
|
||||
All rights reserved.
|
||||
|
||||
This program is free for commercial and non-commercial use as long as
|
||||
the following conditions are adhered to.
|
||||
|
||||
Copyright remains Tomasz Grysztar, and as such any Copyright notices
|
||||
in the code are not to be removed.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
||||
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
||||
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
|
||||
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
The licence and distribution terms for any publically available
|
||||
version or derivative of this code cannot be changed. i.e. this code
|
||||
cannot simply be copied and put under another distribution licence
|
||||
(including the GNU Public Licence).
|
||||
2235
toolchain/fasmw17332/SOURCE/ASSEMBLE.INC
Normal file
2235
toolchain/fasmw17332/SOURCE/ASSEMBLE.INC
Normal file
File diff suppressed because it is too large
Load Diff
3425
toolchain/fasmw17332/SOURCE/AVX.INC
Normal file
3425
toolchain/fasmw17332/SOURCE/AVX.INC
Normal file
File diff suppressed because it is too large
Load Diff
108
toolchain/fasmw17332/SOURCE/DOS/DPMI.INC
Normal file
108
toolchain/fasmw17332/SOURCE/DOS/DPMI.INC
Normal file
@@ -0,0 +1,108 @@
|
||||
|
||||
; flat assembler interface for DOS
|
||||
; Copyright (c) 1999-2022, Tomasz Grysztar.
|
||||
; All rights reserved.
|
||||
|
||||
init_dpmi_memory:
|
||||
mov ax,500h ; get free memory information
|
||||
mov edi,[buffer_address]
|
||||
int 31h
|
||||
mov ebx,[edi]
|
||||
allocate_dpmi_memory:
|
||||
mov edx,[memory_setting]
|
||||
shl edx,10
|
||||
jz dpmi_memory_size_ok
|
||||
cmp ebx,edx
|
||||
jbe dpmi_memory_size_ok
|
||||
mov ebx,edx
|
||||
dpmi_memory_size_ok:
|
||||
mov [memory_end],ebx
|
||||
mov ecx,ebx
|
||||
shr ebx,16
|
||||
mov ax,501h
|
||||
int 31h
|
||||
jnc dpmi_memory_ok
|
||||
mov ebx,[memory_end]
|
||||
shr ebx,1
|
||||
cmp ebx,4000h
|
||||
jb out_of_memory
|
||||
jmp allocate_dpmi_memory
|
||||
dpmi_memory_ok:
|
||||
shl ebx,16
|
||||
mov bx,cx
|
||||
sub ebx,[program_base]
|
||||
jc out_of_memory
|
||||
mov [memory_start],ebx
|
||||
add [memory_end],ebx
|
||||
mov ax,100h ; get free conventional memory size
|
||||
mov bx,-1
|
||||
int 31h
|
||||
movzx ecx,bx
|
||||
shl ecx,4
|
||||
jecxz no_conventional_memory
|
||||
mov ax,100h ; allocate all conventional memory
|
||||
int 31h
|
||||
movzx edi,ax
|
||||
shl edi,4
|
||||
sub edi,[program_base]
|
||||
jc no_conventional_memory
|
||||
mov [additional_memory],edi
|
||||
mov [additional_memory_end],edi
|
||||
add [additional_memory_end],ecx
|
||||
mov eax,[memory_end]
|
||||
sub eax,[memory_start]
|
||||
shr eax,2
|
||||
cmp eax,ecx
|
||||
ja no_conventional_memory
|
||||
ret
|
||||
no_conventional_memory:
|
||||
mov eax,[memory_end]
|
||||
mov ebx,[memory_start]
|
||||
sub eax,ebx
|
||||
shr eax,2
|
||||
mov [additional_memory],ebx
|
||||
add ebx,eax
|
||||
mov [additional_memory_end],ebx
|
||||
mov [memory_start],ebx
|
||||
ret
|
||||
|
||||
dpmi_dos_int:
|
||||
mov [real_mode_segment],main
|
||||
simulate_real_mode:
|
||||
push 0 ; SS:SP (DPMI will allocate stack)
|
||||
push 0 ; CS:IP (ignored)
|
||||
push 0
|
||||
push [real_mode_segment] ; DS
|
||||
push [real_mode_segment] ; ES
|
||||
stc
|
||||
pushfw
|
||||
push eax
|
||||
push ecx
|
||||
push edx
|
||||
push ebx
|
||||
push 0
|
||||
push ebp
|
||||
push esi
|
||||
push edi
|
||||
mov ax,300h
|
||||
mov bx,21h
|
||||
xor cx,cx
|
||||
mov edi,esp
|
||||
push es ss
|
||||
pop es
|
||||
int 31h
|
||||
pop es
|
||||
mov edi,[esp]
|
||||
mov esi,[esp+4]
|
||||
mov ebp,[esp+8]
|
||||
mov ebx,[esp+10h]
|
||||
mov edx,[esp+14h]
|
||||
mov ecx,[esp+18h]
|
||||
mov ah,[esp+20h]
|
||||
sahf
|
||||
mov eax,[esp+1Ch]
|
||||
lea esp,[esp+32h]
|
||||
ret
|
||||
dpmi_dos_int_with_buffer:
|
||||
mov [real_mode_segment],buffer
|
||||
jmp simulate_real_mode
|
||||
435
toolchain/fasmw17332/SOURCE/DOS/FASM.ASM
Normal file
435
toolchain/fasmw17332/SOURCE/DOS/FASM.ASM
Normal file
@@ -0,0 +1,435 @@
|
||||
|
||||
; flat assembler interface for DOS
|
||||
; Copyright (c) 1999-2022, Tomasz Grysztar.
|
||||
; All rights reserved.
|
||||
|
||||
format MZ
|
||||
heap 0
|
||||
stack 8000h
|
||||
entry main:start
|
||||
|
||||
include 'modes.inc'
|
||||
|
||||
segment main use16
|
||||
|
||||
start:
|
||||
|
||||
mov ax,ds
|
||||
mov dx,[2Ch]
|
||||
push cs cs
|
||||
pop ds es
|
||||
mov [psp_segment],ax
|
||||
mov [environment_segment],dx
|
||||
|
||||
mov dx,_logo
|
||||
mov ah,9
|
||||
int 21h
|
||||
|
||||
cld
|
||||
|
||||
call go32
|
||||
use32
|
||||
|
||||
call get_params
|
||||
jc information
|
||||
|
||||
call init_memory
|
||||
|
||||
mov esi,_memory_prefix
|
||||
call display_string
|
||||
mov eax,[memory_end]
|
||||
sub eax,[memory_start]
|
||||
add eax,[additional_memory_end]
|
||||
sub eax,[additional_memory]
|
||||
shr eax,10
|
||||
call display_number
|
||||
mov esi,_memory_suffix
|
||||
call display_string
|
||||
|
||||
xor ah,ah
|
||||
int 1Ah
|
||||
mov ax,cx
|
||||
shl eax,16
|
||||
mov ax,dx
|
||||
mov [start_time],eax
|
||||
|
||||
cmp [mode],dpmi
|
||||
je compile
|
||||
jmp main+(first_segment shr 4):first_gate-first_segment
|
||||
|
||||
compile:
|
||||
and [preprocessing_done],0
|
||||
call preprocessor
|
||||
or [preprocessing_done],-1
|
||||
call parser
|
||||
call assembler
|
||||
call formatter
|
||||
|
||||
finish:
|
||||
call display_user_messages
|
||||
movzx eax,[current_pass]
|
||||
inc eax
|
||||
call display_number
|
||||
mov esi,_passes_suffix
|
||||
call display_string
|
||||
xor ah,ah
|
||||
int 1Ah
|
||||
mov ax,cx
|
||||
shl eax,16
|
||||
mov ax,dx
|
||||
sub eax,[start_time]
|
||||
mov ebx,100
|
||||
mul ebx
|
||||
mov ebx,182
|
||||
div ebx
|
||||
or eax,eax
|
||||
jz display_bytes_count
|
||||
xor edx,edx
|
||||
mov ebx,10
|
||||
div ebx
|
||||
push edx
|
||||
call display_number
|
||||
mov ah,2
|
||||
mov dl,'.'
|
||||
int 21h
|
||||
pop eax
|
||||
call display_number
|
||||
mov esi,_seconds_suffix
|
||||
call display_string
|
||||
display_bytes_count:
|
||||
mov eax,[written_size]
|
||||
call display_number
|
||||
mov esi,_bytes_suffix
|
||||
call display_string
|
||||
xor al,al
|
||||
jmp exit_program
|
||||
|
||||
information:
|
||||
mov esi,_usage
|
||||
call display_string
|
||||
mov al,1
|
||||
jmp exit_program
|
||||
|
||||
get_params:
|
||||
mov [input_file],0
|
||||
mov [output_file],0
|
||||
mov [symbols_file],0
|
||||
mov [memory_setting],0
|
||||
mov [passes_limit],100
|
||||
mov [definitions_pointer],predefinitions
|
||||
push ds
|
||||
mov ds,[psp_segment]
|
||||
mov esi,81h
|
||||
mov edi,params
|
||||
find_param:
|
||||
lodsb
|
||||
cmp al,20h
|
||||
je find_param
|
||||
cmp al,'-'
|
||||
je option_param
|
||||
cmp al,0Dh
|
||||
je all_params
|
||||
or al,al
|
||||
jz all_params
|
||||
cmp [es:input_file],0
|
||||
jne get_output_file
|
||||
mov [es:input_file],edi
|
||||
jmp process_param
|
||||
get_output_file:
|
||||
cmp [es:output_file],0
|
||||
jne bad_params
|
||||
mov [es:output_file],edi
|
||||
process_param:
|
||||
cmp al,22h
|
||||
je string_param
|
||||
copy_param:
|
||||
stosb
|
||||
lodsb
|
||||
cmp al,20h
|
||||
je param_end
|
||||
cmp al,0Dh
|
||||
je param_end
|
||||
or al,al
|
||||
jz param_end
|
||||
jmp copy_param
|
||||
string_param:
|
||||
lodsb
|
||||
cmp al,22h
|
||||
je string_param_end
|
||||
cmp al,0Dh
|
||||
je param_end
|
||||
or al,al
|
||||
jz param_end
|
||||
stosb
|
||||
jmp string_param
|
||||
option_param:
|
||||
lodsb
|
||||
cmp al,'m'
|
||||
je memory_option
|
||||
cmp al,'M'
|
||||
je memory_option
|
||||
cmp al,'p'
|
||||
je passes_option
|
||||
cmp al,'P'
|
||||
je passes_option
|
||||
cmp al,'d'
|
||||
je definition_option
|
||||
cmp al,'D'
|
||||
je definition_option
|
||||
cmp al,'s'
|
||||
je symbols_option
|
||||
cmp al,'S'
|
||||
je symbols_option
|
||||
invalid_option:
|
||||
pop ds
|
||||
stc
|
||||
ret
|
||||
get_option_value:
|
||||
xor eax,eax
|
||||
mov edx,eax
|
||||
get_option_digit:
|
||||
lodsb
|
||||
cmp al,20h
|
||||
je option_value_ok
|
||||
cmp al,0Dh
|
||||
je option_value_ok
|
||||
or al,al
|
||||
jz option_value_ok
|
||||
sub al,30h
|
||||
jc bad_params_value
|
||||
cmp al,9
|
||||
ja bad_params_value
|
||||
imul edx,10
|
||||
jo bad_params_value
|
||||
add edx,eax
|
||||
jc bad_params_value
|
||||
jmp get_option_digit
|
||||
option_value_ok:
|
||||
dec esi
|
||||
clc
|
||||
ret
|
||||
bad_params_value:
|
||||
stc
|
||||
ret
|
||||
memory_option:
|
||||
lodsb
|
||||
cmp al,20h
|
||||
je memory_option
|
||||
cmp al,0Dh
|
||||
je invalid_option
|
||||
or al,al
|
||||
jz invalid_option
|
||||
dec esi
|
||||
call get_option_value
|
||||
jc invalid_option
|
||||
or edx,edx
|
||||
jz invalid_option
|
||||
cmp edx,1 shl (32-10)
|
||||
jae invalid_option
|
||||
mov [es:memory_setting],edx
|
||||
jmp find_param
|
||||
passes_option:
|
||||
lodsb
|
||||
cmp al,20h
|
||||
je passes_option
|
||||
cmp al,0Dh
|
||||
je invalid_option
|
||||
or al,al
|
||||
jz invalid_option
|
||||
dec esi
|
||||
call get_option_value
|
||||
jc bad_params
|
||||
or edx,edx
|
||||
jz invalid_option
|
||||
cmp edx,10000h
|
||||
ja invalid_option
|
||||
mov [es:passes_limit],dx
|
||||
jmp find_param
|
||||
definition_option:
|
||||
lodsb
|
||||
cmp al,20h
|
||||
je definition_option
|
||||
cmp al,0Dh
|
||||
je bad_params
|
||||
or al,al
|
||||
jz bad_params
|
||||
dec esi
|
||||
push edi
|
||||
mov edi,[es:definitions_pointer]
|
||||
call convert_definition_option
|
||||
mov [es:definitions_pointer],edi
|
||||
pop edi
|
||||
jc invalid_option
|
||||
jmp find_param
|
||||
symbols_option:
|
||||
mov [es:symbols_file],edi
|
||||
find_symbols_file_name:
|
||||
lodsb
|
||||
cmp al,20h
|
||||
jne process_param
|
||||
jmp find_symbols_file_name
|
||||
param_end:
|
||||
dec esi
|
||||
string_param_end:
|
||||
xor al,al
|
||||
stosb
|
||||
jmp find_param
|
||||
all_params:
|
||||
xor al,al
|
||||
stosb
|
||||
pop ds
|
||||
cmp [input_file],0
|
||||
je no_input_file
|
||||
mov eax,[definitions_pointer]
|
||||
mov byte [eax],0
|
||||
mov [initial_definitions],predefinitions
|
||||
clc
|
||||
ret
|
||||
bad_params:
|
||||
pop ds
|
||||
no_input_file:
|
||||
stc
|
||||
ret
|
||||
convert_definition_option:
|
||||
mov ecx,edi
|
||||
xor al,al
|
||||
stosb
|
||||
copy_definition_name:
|
||||
lodsb
|
||||
cmp al,'='
|
||||
je copy_definition_value
|
||||
cmp al,20h
|
||||
je bad_definition_option
|
||||
cmp al,0Dh
|
||||
je bad_definition_option
|
||||
or al,al
|
||||
jz bad_definition_option
|
||||
stosb
|
||||
inc byte [es:ecx]
|
||||
jnz copy_definition_name
|
||||
bad_definition_option:
|
||||
stc
|
||||
ret
|
||||
copy_definition_value:
|
||||
lodsb
|
||||
cmp al,20h
|
||||
je definition_value_end
|
||||
cmp al,0Dh
|
||||
je definition_value_end
|
||||
or al,al
|
||||
jz definition_value_end
|
||||
cmp al,'\'
|
||||
jne definition_value_character
|
||||
cmp byte [esi],20h
|
||||
jne definition_value_character
|
||||
lodsb
|
||||
definition_value_character:
|
||||
stosb
|
||||
jmp copy_definition_value
|
||||
definition_value_end:
|
||||
dec esi
|
||||
xor al,al
|
||||
stosb
|
||||
clc
|
||||
ret
|
||||
|
||||
include '..\version.inc'
|
||||
|
||||
_logo db 'flat assembler version ',VERSION_STRING,24h
|
||||
_copyright db 'Copyright (c) 1999-2022, Tomasz Grysztar',0Dh,0Ah,0
|
||||
|
||||
_usage db 0Dh,0Ah
|
||||
db 'usage: fasm <source> [output]',0Dh,0Ah
|
||||
db 'optional settings:',0Dh,0Ah
|
||||
db ' -m <limit> set the limit in kilobytes for the available memory',0Dh,0Ah
|
||||
db ' -p <limit> set the maximum allowed number of passes',0Dh,0Ah
|
||||
db ' -d <name>=<value> define symbolic variable',0Dh,0Ah
|
||||
db ' -s <file> dump symbolic information for debugging',0Dh,0Ah
|
||||
db 0
|
||||
_memory_prefix db ' (',0
|
||||
_memory_suffix db ' kilobytes memory)',0Dh,0Ah,0
|
||||
_passes_suffix db ' passes, ',0
|
||||
_seconds_suffix db ' seconds, ',0
|
||||
_bytes_suffix db ' bytes.',0Dh,0Ah,0
|
||||
|
||||
error_prefix db 'error: ',0
|
||||
error_suffix db '.'
|
||||
cr_lf db 0Dh,0Ah,0
|
||||
line_number_start db ' [',0
|
||||
line_data_start db ':',0Dh,0Ah,0
|
||||
preprocessed_instruction_prefix db 'processed: ',0
|
||||
|
||||
include 'dpmi.inc'
|
||||
|
||||
align 16
|
||||
first_segment:
|
||||
|
||||
include '..\preproce.inc'
|
||||
include '..\parser.inc'
|
||||
include '..\exprpars.inc'
|
||||
|
||||
align 16
|
||||
second_segment:
|
||||
|
||||
include '..\exprcalc.inc'
|
||||
include '..\errors.inc'
|
||||
include '..\symbdump.inc'
|
||||
|
||||
include 'system.inc'
|
||||
|
||||
first_gate:
|
||||
and [preprocessing_done],0
|
||||
call preprocessor
|
||||
or [preprocessing_done],-1
|
||||
call parser
|
||||
jmp main+(second_segment shr 4):second_gate-second_segment
|
||||
first_segment_top = $ - first_segment
|
||||
|
||||
include '..\assemble.inc'
|
||||
include '..\formats.inc'
|
||||
include '..\x86_64.inc'
|
||||
include '..\avx.inc'
|
||||
|
||||
second_gate:
|
||||
call assembler
|
||||
call formatter
|
||||
jmp main:finish
|
||||
|
||||
second_segment_top = $ - second_segment
|
||||
|
||||
if first_segment_top>=10000h | second_segment_top>=10000h
|
||||
if UNREAL_ENABLED>0
|
||||
UNREAL_ENABLED = -1
|
||||
else
|
||||
UNREAL_ENABLED = 0
|
||||
end if
|
||||
else
|
||||
if UNREAL_ENABLED<0
|
||||
UNREAL_ENABLED = -1
|
||||
else
|
||||
UNREAL_ENABLED = 1
|
||||
end if
|
||||
end if
|
||||
|
||||
include '..\tables.inc'
|
||||
include '..\messages.inc'
|
||||
|
||||
align 4
|
||||
|
||||
include '..\variable.inc'
|
||||
|
||||
memory_setting dd ?
|
||||
start_time dd ?
|
||||
definitions_pointer dd ?
|
||||
params rb 100h
|
||||
predefinitions rb 100h
|
||||
|
||||
mode dw ?
|
||||
real_mode_segment dw ?
|
||||
displayed_count dd ?
|
||||
last_displayed rb 2
|
||||
preprocessing_done db ?
|
||||
|
||||
segment buffer
|
||||
|
||||
rb 1000h
|
||||
539
toolchain/fasmw17332/SOURCE/DOS/MODES.INC
Normal file
539
toolchain/fasmw17332/SOURCE/DOS/MODES.INC
Normal file
@@ -0,0 +1,539 @@
|
||||
|
||||
; flat assembler interface for DOS
|
||||
; Copyright (c) 1999-2022, Tomasz Grysztar.
|
||||
; All rights reserved.
|
||||
|
||||
segment modes use16
|
||||
|
||||
real32:
|
||||
mov ax,7202h
|
||||
push ax
|
||||
popf
|
||||
pushf
|
||||
pop bx
|
||||
cmp ax,bx
|
||||
je processor_ok
|
||||
call init_error
|
||||
db 'required 80386 or better',24h
|
||||
processor_ok:
|
||||
mov eax,ds
|
||||
shl eax,4
|
||||
mov [program_base],eax
|
||||
mov eax,buffer
|
||||
shl eax,4
|
||||
sub eax,[program_base]
|
||||
mov [buffer_address],eax
|
||||
|
||||
if UNREAL_ENABLED>0
|
||||
|
||||
smsw ax
|
||||
test al,1
|
||||
jnz dpmi
|
||||
mov eax,cs ; calculate linear address of GDT
|
||||
shl eax,4
|
||||
or dword [cs:real32_GDT+10],eax
|
||||
or dword [cs:real16_GDT+10],eax
|
||||
add [cs:real32_GDT_address],eax
|
||||
add [cs:real16_GDT_address],eax
|
||||
cli
|
||||
lgdt [cs:real32_GDTR]
|
||||
mov eax,cr0
|
||||
or al,1
|
||||
mov cr0,eax
|
||||
jmp 1 shl 3:test_pm32
|
||||
no_rm32:
|
||||
sti
|
||||
jmp dpmi
|
||||
test_pm32:
|
||||
use32
|
||||
mov eax,cr0
|
||||
and al,not 1
|
||||
mov cr0,eax
|
||||
mov ebx,0FFFFh
|
||||
jmp modes:test_rm32
|
||||
test_rm32:
|
||||
inc ebx
|
||||
jz short no_rm32
|
||||
lgdt [cs:real16_GDTR]
|
||||
mov eax,cr0
|
||||
or al,1
|
||||
mov cr0,eax
|
||||
jmp 1 shl 3:test_pm16
|
||||
test_pm16:
|
||||
use16
|
||||
mov eax,cr0
|
||||
and al,not 1
|
||||
mov cr0,eax
|
||||
jmp modes:test_rm16
|
||||
test_rm16:
|
||||
sti
|
||||
mov bx,(400h+(100h*interrupt.size)) shr 4
|
||||
mov ah,48h
|
||||
int 21h
|
||||
jc not_enough_memory
|
||||
push ds es
|
||||
mov es,ax
|
||||
push cs
|
||||
pop ds
|
||||
movzx eax,ax
|
||||
shl eax,4
|
||||
mov [real32_IDT_base],eax
|
||||
mov dx,100h
|
||||
xor bx,bx
|
||||
mov di,400h
|
||||
init_interrupts:
|
||||
mov si,interrupt
|
||||
mov [si+interrupt.vector],bx
|
||||
mov word [es:bx],di
|
||||
mov word [es:bx+2],es
|
||||
mov cx,interrupt.size
|
||||
rep movsb
|
||||
add bx,4
|
||||
dec dx
|
||||
jnz init_interrupts
|
||||
pop es ds
|
||||
call modes:switch_real32
|
||||
use32
|
||||
mov [mode],real32
|
||||
retfw
|
||||
use16
|
||||
|
||||
switch_real32:
|
||||
pushfw
|
||||
push eax
|
||||
push word ds
|
||||
push word es
|
||||
push word fs
|
||||
push word gs
|
||||
cli
|
||||
mov eax,ss
|
||||
mov cr3,eax
|
||||
lgdt [cs:real32_GDTR]
|
||||
mov eax,cr0 ; switch to protected mode
|
||||
or al,1
|
||||
mov cr0,eax
|
||||
jmp 1 shl 3:pm32_start
|
||||
pm32_start:
|
||||
use32
|
||||
mov ax,2 shl 3 ; load 32-bit data descriptor
|
||||
mov ds,ax ; to all data segment registers
|
||||
mov es,ax
|
||||
mov fs,ax
|
||||
mov gs,ax
|
||||
mov ss,ax
|
||||
mov eax,cr0 ; switch back to real mode
|
||||
and al,not 1
|
||||
mov cr0,eax
|
||||
jmp modes:pm32_end
|
||||
pm32_end:
|
||||
mov eax,cr3
|
||||
mov ss,ax
|
||||
lidt [cs:real32_IDTR]
|
||||
pop word gs
|
||||
pop word fs
|
||||
pop word es
|
||||
pop word ds
|
||||
pop eax
|
||||
popfw
|
||||
retfw
|
||||
|
||||
switch_real16:
|
||||
pushfw
|
||||
push eax
|
||||
cli
|
||||
lgdt [cs:real16_GDTR]
|
||||
mov eax,cr0 ; switch to protected mode
|
||||
or al,1
|
||||
mov cr0,eax
|
||||
jmp 1 shl 3:pm16_start
|
||||
pm16_start:
|
||||
use16
|
||||
mov eax,cr0 ; switch back to real mode
|
||||
and al,not 1
|
||||
mov cr0,eax
|
||||
jmp modes:pm16_end
|
||||
pm16_end:
|
||||
lidt [cs:real16_IDTR]
|
||||
pop eax
|
||||
popfw
|
||||
retfd
|
||||
use32
|
||||
|
||||
interrupt:
|
||||
call modes:switch_real16
|
||||
use16
|
||||
movzx esp,sp
|
||||
push word [esp+4]
|
||||
push cs
|
||||
call .real16
|
||||
pushfw
|
||||
pop word [esp+4]
|
||||
call modes:switch_real32
|
||||
use32
|
||||
iretw
|
||||
.real16:
|
||||
use16
|
||||
push eax
|
||||
push ds
|
||||
xor ax,ax
|
||||
mov ds,ax
|
||||
mov eax,[word 0]
|
||||
label .vector word at $-2-interrupt
|
||||
pop ds
|
||||
xchg eax,[esp]
|
||||
retfw
|
||||
.size = $-interrupt
|
||||
|
||||
label real32_GDTR pword
|
||||
real32_GDT_limit dw 3*8-1 ; limit of GDT
|
||||
real32_GDT_address dd real32_GDT ; linear address of GDT
|
||||
real32_GDT rw 4 ; null descriptor
|
||||
dw 0FFFFh,0,9A00h,0CFh ; 32-bit code descriptor
|
||||
dw 0FFFFh,0,9200h,08Fh ; 4 GB data descriptor
|
||||
label real16_GDTR pword
|
||||
real16_GDT_limit dw 2*8-1 ; limit of GDT
|
||||
real16_GDT_address dd real16_GDT ; linear address of GDT
|
||||
real16_GDT rw 4 ; null descriptor
|
||||
dw 0FFFFh,0,9A00h,0 ; 16-bit code descriptor
|
||||
|
||||
label real32_IDTR pword
|
||||
real32_IDT_limit dw 3FFh
|
||||
real32_IDT_base dd ?
|
||||
label real16_IDTR pword
|
||||
real16_IDT_limit dw 3FFh
|
||||
real16_IDT_base dd 0
|
||||
|
||||
end if
|
||||
|
||||
dpmi:
|
||||
mov ax,1687h
|
||||
int 2Fh
|
||||
or ax,ax ; DPMI installed?
|
||||
jnz no_dpmi
|
||||
test bl,1 ; 32-bit programs supported?
|
||||
jz no_dpmi
|
||||
mov word [cs:mode_switch],di
|
||||
mov word [cs:mode_switch+2],es
|
||||
mov bx,si ; allocate memory for DPMI data
|
||||
mov ah,48h
|
||||
int 21h
|
||||
jc not_enough_memory
|
||||
mov ds,[environment_segment]
|
||||
mov es,ax
|
||||
mov ax,1
|
||||
call far [cs:mode_switch] ; switch to protected mode
|
||||
jc no_dpmi
|
||||
mov cx,1
|
||||
xor ax,ax
|
||||
int 31h ; allocate descriptor for code
|
||||
mov si,ax
|
||||
xor ax,ax
|
||||
int 31h ; allocate descriptor for data
|
||||
mov di,ax
|
||||
mov dx,cs
|
||||
lar cx,dx
|
||||
shr cx,8
|
||||
or cx,0C000h
|
||||
mov bx,si
|
||||
mov ax,9
|
||||
int 31h ; set code descriptor access rights
|
||||
mov dx,ds
|
||||
lar cx,dx
|
||||
shr cx,8
|
||||
or cx,0C000h
|
||||
mov bx,di
|
||||
int 31h ; set data descriptor access rights
|
||||
mov ecx,main
|
||||
shl ecx,4
|
||||
mov dx,cx
|
||||
shr ecx,16
|
||||
mov ax,7
|
||||
int 31h ; set data descriptor base address
|
||||
movzx ecx,word [esp+2]
|
||||
shl ecx,4
|
||||
mov dx,cx
|
||||
shr ecx,16
|
||||
mov bx,si
|
||||
int 31h ; set code descriptor base address
|
||||
mov cx,0FFFFh
|
||||
mov dx,0FFFFh
|
||||
mov ax,8 ; set segment limit to 4 GB
|
||||
int 31h
|
||||
mov bx,di
|
||||
int 31h
|
||||
mov ax,ds
|
||||
mov ds,di
|
||||
mov [psp_segment],es
|
||||
mov [environment_segment],ax
|
||||
mov es,di
|
||||
mov [mode],dpmi
|
||||
pop ebx
|
||||
movzx ebx,bx
|
||||
push esi
|
||||
push ebx
|
||||
retfd
|
||||
|
||||
init_error:
|
||||
push cs
|
||||
pop ds
|
||||
mov dx,init_error_prefix
|
||||
mov ah,9
|
||||
int 21h
|
||||
pop dx
|
||||
int 21h
|
||||
mov dx,init_error_suffix
|
||||
int 21h
|
||||
mov ax,04CFFh
|
||||
int 21h
|
||||
|
||||
init_error_prefix db 0Dh,0Ah,'error: ',24h
|
||||
init_error_suffix db '.',0Dh,0Ah,24h
|
||||
|
||||
mode_switch dd ?
|
||||
|
||||
not_enough_memory:
|
||||
call init_error
|
||||
db 'not enough conventional memory',24h
|
||||
|
||||
if UNREAL_ENABLED>0
|
||||
|
||||
no_dpmi:
|
||||
smsw ax
|
||||
test al,1
|
||||
jz no_real32
|
||||
call init_error
|
||||
db 'system is in protected mode without 32-bit DPMI services',24h
|
||||
no_real32:
|
||||
call init_error
|
||||
db 'processor is not able to enter 32-bit real mode',24h
|
||||
|
||||
else
|
||||
|
||||
no_dpmi:
|
||||
call init_error
|
||||
db 'no 32-bit DPMI services are available',24h
|
||||
|
||||
end if
|
||||
|
||||
use32
|
||||
|
||||
if UNREAL_ENABLED>0
|
||||
|
||||
init_real32_memory:
|
||||
mov ax,4300h ; check for XMS
|
||||
int 2Fh
|
||||
cmp al,80h ; XMS present?
|
||||
je xms_init
|
||||
mov ax,0E801h ; check for large free extended memory
|
||||
int 15h
|
||||
jnc large_raw_memory
|
||||
mov ah,88h ; how much extended memory free?
|
||||
int 15h
|
||||
or ax,ax
|
||||
jz no_extended_memory
|
||||
movzx eax,ax ; convert AX kilobytes to pointer
|
||||
shl eax,10
|
||||
jmp use_raw_memory
|
||||
large_raw_memory:
|
||||
movzx ecx,cx
|
||||
shl ecx,10
|
||||
movzx edx,dx
|
||||
shl edx,16
|
||||
mov eax,ecx
|
||||
add eax,edx
|
||||
use_raw_memory:
|
||||
add eax,100000h
|
||||
sub eax,[program_base]
|
||||
mov [memory_end],eax
|
||||
push ds
|
||||
push 0 ; DS := 0
|
||||
pop ds
|
||||
call enable_a20 ; enable A20
|
||||
call test_a20 ; is A20 enabled?
|
||||
jz a20_ok
|
||||
pop ds
|
||||
jmp no_extended_memory
|
||||
a20_ok:
|
||||
lds bx,dword [4*19h]
|
||||
mov eax,100000h ; initial free extended memory base
|
||||
cmp dword [bx+12h],'VDIS' ; VDISK memory allocation?
|
||||
jne short no_vdisk ; if present, get base of free memory
|
||||
mov eax,dword [bx+2Ch] ; get first free extended memory byte
|
||||
add eax,0Fh ; align on paragraph
|
||||
and eax,0FFFFF0h ; address is only 24bit
|
||||
no_vdisk:
|
||||
push 0FFFFh ; DS := FFFFh for ext mem addressing
|
||||
pop ds
|
||||
cmp dword [13h],'VDIS' ; VDISK memory allocation?
|
||||
jne short vdisk_ok ; if present, get base of free memory
|
||||
movzx ebx,word [2Eh] ; get first free kilobyte
|
||||
shl ebx,10
|
||||
cmp eax,ebx ; pick larger of 2 addresses
|
||||
ja short vdisk_ok
|
||||
mov eax,ebx
|
||||
vdisk_ok:
|
||||
pop ds
|
||||
sub eax,[program_base]
|
||||
mov [memory_start],eax
|
||||
mov edx,[memory_setting]
|
||||
shl edx,10
|
||||
jz extended_memory_ok
|
||||
mov eax,[memory_end]
|
||||
sub eax,[memory_start]
|
||||
sub eax,edx
|
||||
jbe extended_memory_ok
|
||||
sub [memory_end],eax
|
||||
jmp extended_memory_ok
|
||||
enable_a20:
|
||||
call test_a20 ; is A20 already enabled?
|
||||
jz a20_enabled ; if yes, done
|
||||
in al,92h ; PS/2 A20 enable
|
||||
or al,2
|
||||
out 92h,al
|
||||
call test_a20 ; is A20 enabled?
|
||||
jz a20_enabled ; if yes, done
|
||||
call kb_wait ; AT A20 enable
|
||||
jnz a20_enabled
|
||||
mov al,0D1h
|
||||
out 64h,al
|
||||
call kb_wait
|
||||
jnz a20_enabled
|
||||
mov al,0DFh
|
||||
out 60h,al
|
||||
call kb_wait
|
||||
a20_enabled:
|
||||
retn
|
||||
kb_wait: ; wait for safe to write to 8042
|
||||
xor cx,cx
|
||||
.loop:
|
||||
in al,64h ; read 8042 status
|
||||
test al,2 ; buffer full?
|
||||
loopnz .loop ; if yes, loop
|
||||
retn
|
||||
test_a20: ; test for enabled A20
|
||||
mov al,[0] ; get byte from 0:0
|
||||
mov ah,al ; preserve old byte
|
||||
not al ; modify byte
|
||||
xchg al,[100000h] ; put modified byte to 0FFFFh:10h
|
||||
cmp ah,[0] ; set zero if byte at 0:0 not modified
|
||||
mov [100000h],al ; restore byte at 0FFFFh:10h
|
||||
retn ; return, zero if A20 enabled
|
||||
xms_init:
|
||||
push es
|
||||
mov ax,4310h ; get XMS driver address
|
||||
int 2Fh
|
||||
mov word [cs:xms_proc],bx ; store XMS driver address
|
||||
mov word [cs:xms_proc+2],es
|
||||
pop es
|
||||
mov ah,3 ; enable A20
|
||||
call call_xms
|
||||
cmp ax,1 ; error enabling A20?
|
||||
jne no_extended_memory
|
||||
mov ah,88h ; get free extended memory size (XMS 3.0)
|
||||
xor bl,bl
|
||||
call call_xms
|
||||
or bl,bl
|
||||
jz xms_large_init
|
||||
mov ah,8 ; get free extended memory size
|
||||
xor bl,bl
|
||||
call call_xms
|
||||
or bl,bl
|
||||
jnz no_extended_memory
|
||||
mov dx,ax
|
||||
movzx eax,ax
|
||||
shl eax,10
|
||||
mov [memory_end],eax
|
||||
mov ah,9 ; allocate largest memory block
|
||||
xms_allocate:
|
||||
mov ecx,[memory_setting]
|
||||
shl ecx,10
|
||||
jz xms_size_ok
|
||||
cmp ecx,[memory_end]
|
||||
jae xms_size_ok
|
||||
mov [memory_end],ecx
|
||||
mov edx,[memory_setting]
|
||||
xms_size_ok:
|
||||
call call_xms
|
||||
mov [cs:xms_handle],dx
|
||||
cmp ax,1
|
||||
jne no_extended_memory
|
||||
mov ah,0Ch ; lock extended memory block
|
||||
call call_xms
|
||||
cmp ax,1
|
||||
jne no_extended_memory
|
||||
shl edx,16
|
||||
mov dx,bx
|
||||
sub edx,[program_base]
|
||||
mov [memory_start],edx ; store memory block address
|
||||
add [memory_end],edx
|
||||
jmp extended_memory_ok
|
||||
xms_large_init:
|
||||
mov edx,eax
|
||||
shl eax,10
|
||||
mov [memory_end],eax
|
||||
mov ah,89h ; allocate largest memory block (XMS 3.0)
|
||||
jmp xms_allocate
|
||||
call_xms:
|
||||
call modes:switch_real16
|
||||
use16
|
||||
call far dword [cs:xms_proc]
|
||||
call modes:switch_real32
|
||||
use32
|
||||
retn
|
||||
no_extended_memory:
|
||||
xor eax,eax
|
||||
mov [memory_start],eax
|
||||
extended_memory_ok:
|
||||
mov ah,48h ; get free conventional memory size
|
||||
mov bx,-1
|
||||
int 21h
|
||||
movzx ecx,bx
|
||||
shl ecx,4
|
||||
mov ah,48h ; allocate all conventional memory
|
||||
int 21h
|
||||
movzx edi,ax
|
||||
shl edi,4
|
||||
sub edi,[program_base]
|
||||
mov [additional_memory],edi
|
||||
mov [additional_memory_end],edi
|
||||
add [additional_memory_end],ecx
|
||||
cmp [memory_start],0
|
||||
je only_conventional_memory
|
||||
mov eax,[memory_end]
|
||||
sub eax,[memory_start]
|
||||
shr eax,2
|
||||
cmp eax,ecx
|
||||
jbe real32_memory_ok
|
||||
mov eax,[memory_end]
|
||||
mov ebx,[memory_start]
|
||||
sub eax,ebx
|
||||
shr eax,2
|
||||
mov [additional_memory],ebx
|
||||
add ebx,eax
|
||||
mov [additional_memory_end],ebx
|
||||
mov [memory_start],ebx
|
||||
real32_memory_ok:
|
||||
retf
|
||||
only_conventional_memory:
|
||||
shr ecx,2 ; use part of conventional memory
|
||||
add edi,ecx ; as a substitute for extended memory
|
||||
mov [memory_start],edi
|
||||
xchg [additional_memory_end],edi
|
||||
mov [memory_end],edi
|
||||
retf
|
||||
|
||||
free_real32_memory:
|
||||
cmp [cs:xms_handle],0
|
||||
je no_xms
|
||||
mov ah,0Dh ; unlock extended memory block
|
||||
mov dx,[cs:xms_handle]
|
||||
call call_xms
|
||||
mov ah,0Ah ; free extended memory block
|
||||
call call_xms
|
||||
no_xms:
|
||||
retf
|
||||
|
||||
xms_proc dd ? ; XMS driver pointer
|
||||
xms_handle dw ? ; handle of XMS memory block
|
||||
|
||||
end if
|
||||
600
toolchain/fasmw17332/SOURCE/DOS/SYSTEM.INC
Normal file
600
toolchain/fasmw17332/SOURCE/DOS/SYSTEM.INC
Normal file
@@ -0,0 +1,600 @@
|
||||
|
||||
; flat assembler interface for DOS
|
||||
; Copyright (c) 1999-2022, Tomasz Grysztar.
|
||||
; All rights reserved.
|
||||
|
||||
go32:
|
||||
use16
|
||||
call modes:real32
|
||||
use32
|
||||
retw
|
||||
|
||||
program_base dd ?
|
||||
buffer_address dd ?
|
||||
psp_segment dw ?
|
||||
environment_segment dw ?
|
||||
|
||||
if UNREAL_ENABLED>0
|
||||
|
||||
init_memory:
|
||||
mov [stack_limit],0
|
||||
cmp [mode],dpmi
|
||||
je init_dpmi_memory
|
||||
call modes:init_real32_memory
|
||||
ret
|
||||
dos_int:
|
||||
cmp [mode],dpmi
|
||||
je dpmi_dos_int
|
||||
stc
|
||||
int 21h
|
||||
ret
|
||||
dos_int_with_buffer:
|
||||
cmp [mode],dpmi
|
||||
je dpmi_dos_int_with_buffer
|
||||
push ds buffer
|
||||
pop ds
|
||||
stc
|
||||
int 21h
|
||||
pop ds
|
||||
ret
|
||||
exit_program:
|
||||
cmp [mode],dpmi
|
||||
je exit_state_ok
|
||||
push eax
|
||||
call modes:free_real32_memory
|
||||
pop eax
|
||||
exit_state_ok:
|
||||
mov ah,4Ch
|
||||
int 21h
|
||||
|
||||
else
|
||||
|
||||
init_memory:
|
||||
mov [stack_limit],0
|
||||
jmp init_dpmi_memory
|
||||
dos_int:
|
||||
jmp dpmi_dos_int
|
||||
dos_int_with_buffer:
|
||||
jmp dpmi_dos_int_with_buffer
|
||||
exit_program:
|
||||
mov ah,4Ch
|
||||
int 21h
|
||||
|
||||
end if
|
||||
|
||||
get_environment_variable:
|
||||
mov ebx,esi
|
||||
push ds
|
||||
mov ds,[environment_segment]
|
||||
xor esi,esi
|
||||
compare_variable_names:
|
||||
mov edx,ebx
|
||||
compare_character:
|
||||
lodsb
|
||||
mov ah,[es:edx]
|
||||
inc edx
|
||||
cmp al,'='
|
||||
je end_of_variable_name
|
||||
or ah,ah
|
||||
jz next_variable
|
||||
sub ah,al
|
||||
jz compare_character
|
||||
cmp ah,20h
|
||||
jne next_variable
|
||||
cmp al,41h
|
||||
jb next_variable
|
||||
cmp al,5Ah
|
||||
jna compare_character
|
||||
next_variable:
|
||||
lodsb
|
||||
or al,al
|
||||
jnz next_variable
|
||||
cmp byte [esi],0
|
||||
jne compare_variable_names
|
||||
pop ds
|
||||
ret
|
||||
end_of_variable_name:
|
||||
or ah,ah
|
||||
jnz next_variable
|
||||
copy_variable_value:
|
||||
lodsb
|
||||
cmp edi,[es:memory_end]
|
||||
jae out_of_memory
|
||||
stosb
|
||||
or al,al
|
||||
jnz copy_variable_value
|
||||
dec edi
|
||||
pop ds
|
||||
ret
|
||||
|
||||
open:
|
||||
push esi edi
|
||||
call adapt_path
|
||||
mov ax,716Ch
|
||||
mov bx,100000b
|
||||
mov dx,1
|
||||
xor cx,cx
|
||||
xor si,si
|
||||
call dos_int_with_buffer
|
||||
jnc open_done
|
||||
cmp ax,7100h
|
||||
je old_open
|
||||
stc
|
||||
jmp open_done
|
||||
old_open:
|
||||
mov ax,3D00h
|
||||
xor dx,dx
|
||||
call dos_int_with_buffer
|
||||
open_done:
|
||||
mov bx,ax
|
||||
pop edi esi
|
||||
ret
|
||||
adapt_path:
|
||||
mov esi,edx
|
||||
mov edi,[buffer_address]
|
||||
copy_path:
|
||||
lodsb
|
||||
cmp al,'/'
|
||||
jne path_char_ok
|
||||
mov al,'\'
|
||||
path_char_ok:
|
||||
stosb
|
||||
or al,al
|
||||
jnz copy_path
|
||||
ret
|
||||
create:
|
||||
push esi edi
|
||||
call adapt_path
|
||||
mov ax,716Ch
|
||||
mov bx,100001b
|
||||
mov dx,10010b
|
||||
xor cx,cx
|
||||
xor si,si
|
||||
xor di,di
|
||||
call dos_int_with_buffer
|
||||
jnc create_done
|
||||
cmp ax,7100h
|
||||
je old_create
|
||||
stc
|
||||
jmp create_done
|
||||
old_create:
|
||||
mov ah,3Ch
|
||||
xor cx,cx
|
||||
xor dx,dx
|
||||
call dos_int_with_buffer
|
||||
create_done:
|
||||
mov bx,ax
|
||||
pop edi esi
|
||||
ret
|
||||
write:
|
||||
push edx esi edi ebp
|
||||
mov ebp,ecx
|
||||
mov esi,edx
|
||||
.loop:
|
||||
mov ecx,1000h
|
||||
sub ebp,1000h
|
||||
jnc .write
|
||||
add ebp,1000h
|
||||
mov ecx,ebp
|
||||
xor ebp,ebp
|
||||
.write:
|
||||
push ecx
|
||||
mov edi,[buffer_address]
|
||||
shr ecx,2
|
||||
rep movsd
|
||||
mov ecx,[esp]
|
||||
and ecx,11b
|
||||
rep movsb
|
||||
pop ecx
|
||||
mov ah,40h
|
||||
xor dx,dx
|
||||
call dos_int_with_buffer
|
||||
or ebp,ebp
|
||||
jnz .loop
|
||||
pop ebp edi esi edx
|
||||
ret
|
||||
read:
|
||||
push edx esi edi ebp
|
||||
mov ebp,ecx
|
||||
mov edi,edx
|
||||
.loop:
|
||||
mov ecx,1000h
|
||||
sub ebp,1000h
|
||||
jnc .read
|
||||
add ebp,1000h
|
||||
mov ecx,ebp
|
||||
xor ebp,ebp
|
||||
.read:
|
||||
push ecx
|
||||
mov ah,3Fh
|
||||
xor dx,dx
|
||||
call dos_int_with_buffer
|
||||
cmp ax,cx
|
||||
jne .eof
|
||||
mov esi,[buffer_address]
|
||||
mov ecx,[esp]
|
||||
shr ecx,2
|
||||
rep movsd
|
||||
pop ecx
|
||||
and ecx,11b
|
||||
rep movsb
|
||||
or ebp,ebp
|
||||
jnz .loop
|
||||
.exit:
|
||||
pop ebp edi esi edx
|
||||
ret
|
||||
.eof:
|
||||
pop ecx
|
||||
stc
|
||||
jmp .exit
|
||||
close:
|
||||
mov ah,3Eh
|
||||
int 21h
|
||||
ret
|
||||
lseek:
|
||||
mov ah,42h
|
||||
mov ecx,edx
|
||||
shr ecx,16
|
||||
int 21h
|
||||
pushf
|
||||
shl edx,16
|
||||
popf
|
||||
mov dx,ax
|
||||
mov eax,edx
|
||||
ret
|
||||
|
||||
display_string:
|
||||
lods byte [esi]
|
||||
or al,al
|
||||
jz string_end
|
||||
mov dl,al
|
||||
mov ah,2
|
||||
int 21h
|
||||
jmp display_string
|
||||
string_end:
|
||||
ret
|
||||
display_number:
|
||||
push ebx
|
||||
mov ecx,1000000000
|
||||
xor edx,edx
|
||||
xor bl,bl
|
||||
display_loop:
|
||||
div ecx
|
||||
push edx
|
||||
cmp ecx,1
|
||||
je display_digit
|
||||
or bl,bl
|
||||
jnz display_digit
|
||||
or al,al
|
||||
jz digit_ok
|
||||
not bl
|
||||
display_digit:
|
||||
mov dl,al
|
||||
add dl,30h
|
||||
mov ah,2
|
||||
int 21h
|
||||
digit_ok:
|
||||
mov eax,ecx
|
||||
xor edx,edx
|
||||
mov ecx,10
|
||||
div ecx
|
||||
mov ecx,eax
|
||||
pop eax
|
||||
or ecx,ecx
|
||||
jnz display_loop
|
||||
pop ebx
|
||||
ret
|
||||
|
||||
display_user_messages:
|
||||
mov [displayed_count],0
|
||||
call show_display_buffer
|
||||
cmp [displayed_count],1
|
||||
jb line_break_ok
|
||||
je make_line_break
|
||||
mov ax,word [last_displayed]
|
||||
cmp ax,0A0Dh
|
||||
je line_break_ok
|
||||
cmp ax,0D0Ah
|
||||
je line_break_ok
|
||||
make_line_break:
|
||||
mov ah,2
|
||||
mov dl,0Dh
|
||||
int 21h
|
||||
mov dl,0Ah
|
||||
int 21h
|
||||
line_break_ok:
|
||||
ret
|
||||
display_block:
|
||||
add [displayed_count],ecx
|
||||
cmp ecx,1
|
||||
ja take_last_two_characters
|
||||
jb display_character
|
||||
mov al,[last_displayed+1]
|
||||
mov ah,[esi]
|
||||
mov word [last_displayed],ax
|
||||
jmp display_character
|
||||
take_last_two_characters:
|
||||
mov ax,[esi+ecx-2]
|
||||
mov word [last_displayed],ax
|
||||
display_character:
|
||||
lods byte [esi]
|
||||
mov dl,al
|
||||
mov ah,2
|
||||
int 21h
|
||||
loopd display_character
|
||||
ret
|
||||
|
||||
fatal_error:
|
||||
mov esi,error_prefix
|
||||
call display_string
|
||||
pop esi
|
||||
call display_string
|
||||
mov esi,error_suffix
|
||||
call display_string
|
||||
mov al,0FFh
|
||||
jmp exit_program
|
||||
assembler_error:
|
||||
call display_user_messages
|
||||
mov ebx,[current_line]
|
||||
test ebx,ebx
|
||||
jz display_error_message
|
||||
pushd 0
|
||||
get_error_lines:
|
||||
mov eax,[ebx]
|
||||
cmp byte [eax],0
|
||||
je get_next_error_line
|
||||
push ebx
|
||||
test byte [ebx+7],80h
|
||||
jz display_error_line
|
||||
mov edx,ebx
|
||||
find_definition_origin:
|
||||
mov edx,[edx+12]
|
||||
test byte [edx+7],80h
|
||||
jnz find_definition_origin
|
||||
push edx
|
||||
get_next_error_line:
|
||||
mov ebx,[ebx+8]
|
||||
jmp get_error_lines
|
||||
display_error_line:
|
||||
mov esi,[ebx]
|
||||
call display_string
|
||||
mov esi,line_number_start
|
||||
call display_string
|
||||
mov eax,[ebx+4]
|
||||
and eax,7FFFFFFFh
|
||||
call display_number
|
||||
mov dl,']'
|
||||
mov ah,2
|
||||
int 21h
|
||||
pop esi
|
||||
cmp ebx,esi
|
||||
je line_number_ok
|
||||
mov dl,20h
|
||||
mov ah,2
|
||||
int 21h
|
||||
push esi
|
||||
mov esi,[esi]
|
||||
movzx ecx,byte [esi]
|
||||
inc esi
|
||||
call display_block
|
||||
mov esi,line_number_start
|
||||
call display_string
|
||||
pop esi
|
||||
mov eax,[esi+4]
|
||||
and eax,7FFFFFFFh
|
||||
call display_number
|
||||
mov dl,']'
|
||||
mov ah,2
|
||||
int 21h
|
||||
line_number_ok:
|
||||
mov esi,line_data_start
|
||||
call display_string
|
||||
mov esi,ebx
|
||||
mov edx,[esi]
|
||||
call open
|
||||
mov al,2
|
||||
xor edx,edx
|
||||
call lseek
|
||||
mov edx,[esi+8]
|
||||
sub eax,edx
|
||||
jz line_data_displayed
|
||||
mov [counter],eax
|
||||
xor al,al
|
||||
call lseek
|
||||
mov esi,[additional_memory]
|
||||
read_line_data:
|
||||
mov ecx,100h
|
||||
cmp ecx,[counter]
|
||||
jbe bytes_count_ok
|
||||
mov ecx,[counter]
|
||||
bytes_count_ok:
|
||||
sub [counter],ecx
|
||||
lea eax,[esi+ecx]
|
||||
cmp eax,[additional_memory_end]
|
||||
ja out_of_memory
|
||||
push ecx
|
||||
mov edx,esi
|
||||
call read
|
||||
pop ecx
|
||||
get_line_data:
|
||||
mov al,[esi]
|
||||
cmp al,0Ah
|
||||
je display_line_data
|
||||
cmp al,0Dh
|
||||
je display_line_data
|
||||
cmp al,1Ah
|
||||
je display_line_data
|
||||
or al,al
|
||||
jz display_line_data
|
||||
inc esi
|
||||
loop get_line_data
|
||||
cmp [counter],0
|
||||
ja read_line_data
|
||||
display_line_data:
|
||||
call close
|
||||
mov ecx,esi
|
||||
mov esi,[additional_memory]
|
||||
sub ecx,esi
|
||||
call display_block
|
||||
line_data_displayed:
|
||||
mov esi,cr_lf
|
||||
call display_string
|
||||
pop ebx
|
||||
or ebx,ebx
|
||||
jnz display_error_line
|
||||
cmp [preprocessing_done],0
|
||||
je display_error_message
|
||||
mov esi,preprocessed_instruction_prefix
|
||||
call display_string
|
||||
mov esi,[current_line]
|
||||
add esi,16
|
||||
mov edi,[additional_memory]
|
||||
xor dl,dl
|
||||
convert_instruction:
|
||||
lodsb
|
||||
cmp al,1Ah
|
||||
je copy_symbol
|
||||
cmp al,22h
|
||||
je copy_symbol
|
||||
cmp al,3Bh
|
||||
je instruction_converted
|
||||
stosb
|
||||
or al,al
|
||||
jz instruction_converted
|
||||
xor dl,dl
|
||||
jmp convert_instruction
|
||||
copy_symbol:
|
||||
or dl,dl
|
||||
jz space_ok
|
||||
mov byte [edi],20h
|
||||
inc edi
|
||||
space_ok:
|
||||
cmp al,22h
|
||||
je quoted
|
||||
lodsb
|
||||
movzx ecx,al
|
||||
rep movsb
|
||||
or dl,-1
|
||||
jmp convert_instruction
|
||||
quoted:
|
||||
mov al,27h
|
||||
stosb
|
||||
lodsd
|
||||
mov ecx,eax
|
||||
jecxz quoted_copied
|
||||
copy_quoted:
|
||||
lodsb
|
||||
stosb
|
||||
cmp al,27h
|
||||
jne quote_ok
|
||||
stosb
|
||||
quote_ok:
|
||||
loop copy_quoted
|
||||
quoted_copied:
|
||||
mov al,27h
|
||||
stosb
|
||||
or dl,-1
|
||||
jmp convert_instruction
|
||||
instruction_converted:
|
||||
xor al,al
|
||||
stosb
|
||||
mov esi,[additional_memory]
|
||||
call display_string
|
||||
mov esi,cr_lf
|
||||
call display_string
|
||||
display_error_message:
|
||||
mov esi,error_prefix
|
||||
call display_string
|
||||
pop esi
|
||||
call display_string
|
||||
mov esi,error_suffix
|
||||
call display_string
|
||||
mov al,2
|
||||
jmp exit_program
|
||||
|
||||
make_timestamp:
|
||||
mov ah,2Ah
|
||||
int 21h
|
||||
push dx cx
|
||||
movzx ecx,cx
|
||||
mov eax,ecx
|
||||
sub eax,1970
|
||||
mov ebx,365
|
||||
mul ebx
|
||||
mov ebp,eax
|
||||
mov eax,ecx
|
||||
sub eax,1969
|
||||
shr eax,2
|
||||
add ebp,eax
|
||||
mov eax,ecx
|
||||
sub eax,1901
|
||||
mov ebx,100
|
||||
div ebx
|
||||
sub ebp,eax
|
||||
mov eax,ecx
|
||||
xor edx,edx
|
||||
sub eax,1601
|
||||
mov ebx,400
|
||||
div ebx
|
||||
add ebp,eax
|
||||
movzx ecx,byte [esp+3]
|
||||
mov eax,ecx
|
||||
dec eax
|
||||
mov ebx,30
|
||||
mul ebx
|
||||
add ebp,eax
|
||||
cmp ecx,8
|
||||
jbe months_correction
|
||||
mov eax,ecx
|
||||
sub eax,7
|
||||
shr eax,1
|
||||
add ebp,eax
|
||||
mov ecx,8
|
||||
months_correction:
|
||||
mov eax,ecx
|
||||
shr eax,1
|
||||
add ebp,eax
|
||||
cmp ecx,2
|
||||
pop cx
|
||||
jbe day_correction_ok
|
||||
sub ebp,2
|
||||
test ecx,11b
|
||||
jnz day_correction_ok
|
||||
xor edx,edx
|
||||
mov eax,ecx
|
||||
mov ebx,100
|
||||
div ebx
|
||||
or edx,edx
|
||||
jnz day_correction
|
||||
mov eax,ecx
|
||||
mov ebx,400
|
||||
div ebx
|
||||
or edx,edx
|
||||
jnz day_correction_ok
|
||||
day_correction:
|
||||
inc ebp
|
||||
day_correction_ok:
|
||||
pop dx
|
||||
movzx eax,dl
|
||||
dec eax
|
||||
add eax,ebp
|
||||
mov ebx,24
|
||||
mul ebx
|
||||
push eax
|
||||
mov ah,2Ch
|
||||
int 21h
|
||||
pop eax
|
||||
push dx
|
||||
movzx ebx,ch
|
||||
add eax,ebx
|
||||
mov ebx,60
|
||||
mul ebx
|
||||
movzx ebx,cl
|
||||
add eax,ebx
|
||||
mov ebx,60
|
||||
mul ebx
|
||||
pop bx
|
||||
movzx ebx,bh
|
||||
add eax,ebx
|
||||
adc edx,0
|
||||
ret
|
||||
191
toolchain/fasmw17332/SOURCE/ERRORS.INC
Normal file
191
toolchain/fasmw17332/SOURCE/ERRORS.INC
Normal file
@@ -0,0 +1,191 @@
|
||||
|
||||
; flat assembler core
|
||||
; Copyright (c) 1999-2022, Tomasz Grysztar.
|
||||
; All rights reserved.
|
||||
|
||||
out_of_memory:
|
||||
push _out_of_memory
|
||||
jmp fatal_error
|
||||
stack_overflow:
|
||||
push _stack_overflow
|
||||
jmp fatal_error
|
||||
main_file_not_found:
|
||||
push _main_file_not_found
|
||||
jmp fatal_error
|
||||
write_failed:
|
||||
push _write_failed
|
||||
jmp fatal_error
|
||||
|
||||
code_cannot_be_generated:
|
||||
push _code_cannot_be_generated
|
||||
jmp general_error
|
||||
format_limitations_exceeded:
|
||||
push _format_limitations_exceeded
|
||||
jmp general_error
|
||||
invalid_definition:
|
||||
push _invalid_definition
|
||||
general_error:
|
||||
cmp [symbols_file],0
|
||||
je fatal_error
|
||||
call dump_preprocessed_source
|
||||
jmp fatal_error
|
||||
|
||||
file_not_found:
|
||||
push _file_not_found
|
||||
jmp error_with_source
|
||||
error_reading_file:
|
||||
push _error_reading_file
|
||||
jmp error_with_source
|
||||
invalid_file_format:
|
||||
push _invalid_file_format
|
||||
jmp error_with_source
|
||||
invalid_macro_arguments:
|
||||
push _invalid_macro_arguments
|
||||
jmp error_with_source
|
||||
incomplete_macro:
|
||||
push _incomplete_macro
|
||||
jmp error_with_source
|
||||
unexpected_characters:
|
||||
push _unexpected_characters
|
||||
jmp error_with_source
|
||||
invalid_argument:
|
||||
push _invalid_argument
|
||||
jmp error_with_source
|
||||
illegal_instruction:
|
||||
push _illegal_instruction
|
||||
jmp error_with_source
|
||||
invalid_operand:
|
||||
push _invalid_operand
|
||||
jmp error_with_source
|
||||
invalid_operand_size:
|
||||
push _invalid_operand_size
|
||||
jmp error_with_source
|
||||
operand_size_not_specified:
|
||||
push _operand_size_not_specified
|
||||
jmp error_with_source
|
||||
operand_sizes_do_not_match:
|
||||
push _operand_sizes_do_not_match
|
||||
jmp error_with_source
|
||||
invalid_address_size:
|
||||
push _invalid_address_size
|
||||
jmp error_with_source
|
||||
address_sizes_do_not_agree:
|
||||
push _address_sizes_do_not_agree
|
||||
jmp error_with_source
|
||||
disallowed_combination_of_registers:
|
||||
push _disallowed_combination_of_registers
|
||||
jmp error_with_source
|
||||
long_immediate_not_encodable:
|
||||
push _long_immediate_not_encodable
|
||||
jmp error_with_source
|
||||
relative_jump_out_of_range:
|
||||
push _relative_jump_out_of_range
|
||||
jmp error_with_source
|
||||
invalid_expression:
|
||||
push _invalid_expression
|
||||
jmp error_with_source
|
||||
invalid_address:
|
||||
push _invalid_address
|
||||
jmp error_with_source
|
||||
invalid_value:
|
||||
push _invalid_value
|
||||
jmp error_with_source
|
||||
value_out_of_range:
|
||||
push _value_out_of_range
|
||||
jmp error_with_source
|
||||
undefined_symbol:
|
||||
mov edi,message
|
||||
mov esi,_undefined_symbol
|
||||
call copy_asciiz
|
||||
push message
|
||||
cmp [error_info],0
|
||||
je error_with_source
|
||||
mov esi,[error_info]
|
||||
mov esi,[esi+24]
|
||||
or esi,esi
|
||||
jz error_with_source
|
||||
mov byte [edi-1],20h
|
||||
call write_quoted_symbol_name
|
||||
jmp error_with_source
|
||||
copy_asciiz:
|
||||
lods byte [esi]
|
||||
stos byte [edi]
|
||||
test al,al
|
||||
jnz copy_asciiz
|
||||
ret
|
||||
write_quoted_symbol_name:
|
||||
mov al,27h
|
||||
stosb
|
||||
movzx ecx,byte [esi-1]
|
||||
rep movs byte [edi],[esi]
|
||||
mov ax,27h
|
||||
stosw
|
||||
ret
|
||||
symbol_out_of_scope:
|
||||
mov edi,message
|
||||
mov esi,_symbol_out_of_scope_1
|
||||
call copy_asciiz
|
||||
cmp [error_info],0
|
||||
je finish_symbol_out_of_scope_message
|
||||
mov esi,[error_info]
|
||||
mov esi,[esi+24]
|
||||
or esi,esi
|
||||
jz finish_symbol_out_of_scope_message
|
||||
mov byte [edi-1],20h
|
||||
call write_quoted_symbol_name
|
||||
finish_symbol_out_of_scope_message:
|
||||
mov byte [edi-1],20h
|
||||
mov esi,_symbol_out_of_scope_2
|
||||
call copy_asciiz
|
||||
push message
|
||||
jmp error_with_source
|
||||
invalid_use_of_symbol:
|
||||
push _invalid_use_of_symbol
|
||||
jmp error_with_source
|
||||
name_too_long:
|
||||
push _name_too_long
|
||||
jmp error_with_source
|
||||
invalid_name:
|
||||
push _invalid_name
|
||||
jmp error_with_source
|
||||
reserved_word_used_as_symbol:
|
||||
push _reserved_word_used_as_symbol
|
||||
jmp error_with_source
|
||||
symbol_already_defined:
|
||||
push _symbol_already_defined
|
||||
jmp error_with_source
|
||||
missing_end_quote:
|
||||
push _missing_end_quote
|
||||
jmp error_with_source
|
||||
missing_end_directive:
|
||||
push _missing_end_directive
|
||||
jmp error_with_source
|
||||
unexpected_instruction:
|
||||
push _unexpected_instruction
|
||||
jmp error_with_source
|
||||
extra_characters_on_line:
|
||||
push _extra_characters_on_line
|
||||
jmp error_with_source
|
||||
section_not_aligned_enough:
|
||||
push _section_not_aligned_enough
|
||||
jmp error_with_source
|
||||
setting_already_specified:
|
||||
push _setting_already_specified
|
||||
jmp error_with_source
|
||||
data_already_defined:
|
||||
push _data_already_defined
|
||||
jmp error_with_source
|
||||
too_many_repeats:
|
||||
push _too_many_repeats
|
||||
jmp error_with_source
|
||||
assertion_failed:
|
||||
push _assertion_failed
|
||||
jmp error_with_source
|
||||
invoked_error:
|
||||
push _invoked_error
|
||||
error_with_source:
|
||||
cmp [symbols_file],0
|
||||
je assembler_error
|
||||
call dump_preprocessed_source
|
||||
call restore_preprocessed_source
|
||||
jmp assembler_error
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user