Yet Another RosAsm Symbol table problem
From: Randall Hyde (randyhyde_at_earthlink.net)
Date: 07/09/04
- Next message: Beth: "Re: ASM vs HLL : absurd war"
- Previous message: hutch--: "Re: Why RosAsm Breaks on a large number of symbols"
- Next in thread: Betov: "Re: Yet Another RosAsm Symbol table problem"
- Reply: Betov: "Re: Yet Another RosAsm Symbol table problem"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: Fri, 09 Jul 2004 03:20:50 GMT
In the last episode of our story, RosAsm, the "robust and mature"
assembler, had problems differentiating symbols. You'd put in two
different symbols and RosAsm would think they were the same.
Assuming, of course, that RosAsm didn't crash.
A few versions later, and now RosAsm begins to think that
a symbol is not defined when it most certainly is.
I wonder if the "fix" for this defect is going to return us to the
original problem?
Of course, Rene is going to start making claims like "this
isn't a real application" and "nobody uses labels like that."
So to preempt this B.S., I've take *Rene's* sample
"base3.exe" application (that ships with RosAsm) and
I've inserted a series of equates taken from the RosAsm
Win32 "equates.equ" file (with slight modifications, the
addition of a "_aaa" suffix on each symbol to avoid
symbol table clashes with the existing symbols) and,
voila, instant problem.
BTW, you can eliminate the "undefined symbol"
error message by arbitrarily deleting a bunch of the
equates in this file. Interesting, isn't it, how *deleting*
a bunch of symbols cures the "undefined symbol"
problem.
Cheers,
Randy Hyde
Here's the RosAsm source file:
____________________________________________________________________________
_______________
____________________________________________________________________________
_______________
; Base3.exe Example with Standard Menu and set of Macros.
;
; Hll Style version.
;
; This HLL version is the one I will continue to use in my Tuts and Demos.
It is somewhat less
; HLL like than Base4.exe and closer to the RosAsm basic rules. I.E.
Beginner friendly.
;
; // 'api' Macros of Base2.exe are stripped off: a Tasm like 'Call' instead
(works the same).
; // The default 'D' for local Labels is required to conform with the basic
syntax.
; // The 'Proc' Macros do not include the control for transmitted parameters
number.
____________________________________________________________________________
_______________
____________________________________________________________________________
_______________
; Some basic Macros:
[push | push #1 | #+1] [pop | pop #1 | #+1]
[mov | mov #1 #2 | #+2]
[inc | inc #1 | #+1] [dec | dec #1 | #+1]
[On | cmp #1 #3 | jn#2 o1> | #4>L | o1:]
[call | push #L>2 | call #1]
[move | push #2 | pop #1 | #+2]
[If | cmp #1 #3 | jn#2 I0>]
[.If | cmp #1 #3 | jn#2 I1>>]
[..If | cmp #1 #3 | jn#2 I2>>]
[...If | cmp #1 #3 | jn#2 I3>>]
[Else_if | jmp I5> | I0: | cmp #1 #3 | jn#2 I0>]
[.Else_if | jmp I6>> | I1: | cmp #1 #3 | jn#2 I1>>]
[..Else_if | jmp I7>> | I2: | cmp #1 #3 | jn#2 I2>>]
[...Else_if | jmp I8>> | I3: | cmp #1 #3 | jn#2 I3>>]
[Else | Jmp I5> | I0:]
[.Else | Jmp I6>> | I1:]
[..Else | Jmp I7>> | I2:]
[...Else | Jmp I8>> | I3:]
[End_if | I0: | I5:]
[.End_if | I1: | I6:]
[..End_if | I2: | I7:]
[...End_if | I3: | I8:]
; If_Or eax = 1, eax = 5, eax =122
[If_Or | cmp #1 #3 | j#2 O0> | #+3 | jmp I0> | O0:]
[.If_Or | cmp #1 #3 | j#2 O1> | #+3 | jmp I1> | O1:]
[..If_Or | cmp #1 #3 | j#2 O2> | #+3 | jmp I2> | O2:]
[...If_Or | cmp #1 #3 | j#2 O3> | #+3 | jmp I3> | O3:]
; If_And eax = 1, ebx = 5, ecx =122
[If_And | cmp #1 #3 | jn#2 I0> | #3]
[.If_And | cmp #1 #3 | jn#2 I1> | #3]
[..If_And | cmp #1 #3 | jn#2 I2> | #3]
[...If_And | cmp #1 #3 | jn#2 I3> | #3]
[While | W0: | cmp #1 #3 | jn#2 W9>]
[End_While | jmp W0< | W9:]
[.While | X0: | cmp #1 #3 | jn#2 X9>>]
[.End_While | jmp X0<< | X9:]
[Do | D0:]
[Loop_Until | cmp #1 #3 | jn#2 D0<]
[Do_Loop | Loop D0<]
[.Do | E0:]
[.Loop_Until | cmp #1 #3 | jn#2 E0<<] ; long
[.Do_Loop | Loop E0<]
____________________________________________________________________________
_____________
; Added Equates for a more HLL like style in comparison to Macros:
[= e < b > a =< be <= be => ae >= ae <> ne]
____________________________________________________________________________
_____________
____________________________________________________________________________
_____________
; Proc Macros and Equates. Internal storages are:
;
; &1 <<< Size of Argument(s) (for ending Ret n, in EndP). Set by Argument(s)
; &2 <<< Size of Local (for Stack Management). Set by Local
; &3 <<< What to pop before ret. Set by User.
[Proc | &1=0 | &2=0 | &3= | #1 | push ebp | mov ebp esp]
[Exit | jmp P9>>]
[Arguments | {#1 Arg#x} | #+1 | &1=SizeOf#x]
[Argument | {#1 Arg#x} | #+1 | &1=SizeOf#x]
[Local | {#1 Local#x} | #+1 | sub esp SizeOf#x | &2=SizeOf#x]
[StrucPtrs | {#3 ebp+#2+#F} | #+2]
[Structure | {#1 ebp-&2-4} | sub esp #2+4 | mov D$#1 esp | StrucPtrs
0-&2-#2-4 #L>3]
[Uses | push #1>L | &3=pop #L>1]
[EndP | P9: | &3 | mov esp ebp | pop ebp | ret &1]
; For pointing to transmitted parameters (upper "Arg#x" fall here):
[Arg1 ebp+8 Arg2 ebp+12 Arg3 ebp+16 Arg4 ebp+20 Arg5 ebp+24
Arg6 ebp+28 Arg7 ebp+32 Arg8 ebp+36 Arg9 ebp+40 Arg10 ebp+44]
; For pointing Local Stack declared data (upper "Local#x" fall here):
[Local1 ebp-4 Local2 ebp-8 Local3 ebp-12 Local4 ebp-16 Local5
ebp-20
Local6 ebp-24 Local7 ebp-28 Local8 ebp-32 Local9 ebp-36 Local10
ebp-40]
; To help preventing from stack sizes' mistakes (upper "SizeOf#x" fall
here):
[SizeOf1 4 SizeOf2 8 SizeOf3 12 SizeOf4 16 SizeOf5 20
SizeOf6 24 SizeOf7 28 SizeOf8 32 SizeOf9 36 SizeOf10 40]
_________________________________________________________________
[Argh: 'Aaarrrghhh!!!!....', 0 Whaoo: 'Whaaaaoooo!!!!....', 0]
[MessageBox | {&0: #2 0} | call 'USER32.MessageBoxA' &NULL &0 #1
&MB_SYSTEMMODAL__&MB_OK]
; ... to be called, for example, by:
;
; > MessageBox Whaoo 'Oh! No, please!!! not that again!...'
____________________________________________________________________________
_______________
; Data:
[FirstMessage: 0 #7] ; For
"GetMessage"
[WindowClass: ; Window
Class Structure
style: 3 lpfnWndProc: MainWindowProc cbClsExtra: 0 cbWndExtra: 0
hInstance: 0 hIcon: 0 hCursor: 0 hbrBackground: 6
lpszMenuName: 0 lpszClassName: WindowClassName]
[WindowHandle: 0 MenuHandle: 0]
[WindowClassName: B$ 'Anything' 0 WindowCaption: 'Base App' 0]
[WindowX: 50 WindowY: 50 WindowW: 650 WindowH: 450]
____________________________________________________________________________
_______________
Main:
call 'Kernel32.GetModuleHandleA' 0 | mov D$hInstance eax
call 'User32.LoadIconA' D$hInstance 1 | mov D$hIcon eax
call 'User32.LoadCursorA' 0 &IDC_ARROW | mov D$hCursor eax
call 'User32.RegisterClassA' WindowClass
call 'User32.LoadMenuA' D$hInstance M00_Menu | mov D$MenuHandle eax
call 'User32.CreateWindowExA' &WS_EX_CLIENTEDGE WindowClassName
WindowCaption,
&WS_OVERLAPPEDWINDOW__&WS_VISIBLE,
D$WindowX D$WindowY D$WindowW D$WindowH
0,
D$MenuHandle D$hInstance 0
mov D$WindowHandle eax
call 'User32.ShowWindow' D$WindowHandle &SW_SHOW
call 'User32.UpdateWindow' D$WindowHandle
jmp L1>
While eax <> 0
call 'User32.TranslateMessage' FirstMessage
call 'User32.DispatchMessageA' FirstMessage
L1: call 'USER32.GetMessageA' FirstMessage 0 0 0
End_While
call 'Kernel32.ExitProcess' &NULL
____________________________________________________________________________
_______________
; These menu equates are given by the menu editor ([ClipBoard]):
[M00_Menu 2000 M00_New 2001 M00_Open
2002
M00_Save 2003 M00_Save_As 2004 M00_Exit
2005
M00_Undo 2006 M00_Cut 2007 M00_Copy
2008
M00_Paste 2009 M00_Delete 2010
M00_Select_All 2011
M00_About 2012]
[A0_REG_aaa 010
A1_REG_aaa 011
A2_REG_aaa 012
A3_REG_aaa 013
A4_REG_aaa 014
A5_REG_aaa 015
AADBE_ADD_ENTRY_aaa 01
AADBE_DEL_ENTRY_aaa 02
AAL5_MODE_MESSAGE_aaa 01
AAL5_MODE_STREAMING_aaa 02
AAL5_SSCS_FRAME_RELAY_aaa 04
AAL5_SSCS_NULL_aaa 0
AAL5_SSCS_SSCOP_ASSURED_aaa 01
AAL5_SSCS_SSCOP_NON_ASSURED_aaa 02
AA_AUDIT_ALL_aaa 01
AA_A_ACL_aaa 08000
AA_A_ALL_aaa 0F00
AA_A_CREATE_aaa 02000
AA_A_DELETE_aaa 04000
AA_A_OPEN_aaa 01000
AA_A_OWNER_aaa 04
AA_A_WRITE_aaa 02000
AA_CLOSE_aaa 08
AA_F_ACL_aaa 0800
AA_F_ALL_aaa 0F00
AA_F_CREATE_aaa 0200
AA_F_DELETE_aaa 0400
AA_F_OPEN_aaa 0100
AA_F_WRITE_aaa 0200
AA_S_ACL_aaa 080
AA_S_ALL_aaa 0F0
AA_S_CREATE_aaa 020
AA_S_DELETE_aaa 040
AA_S_OPEN_aaa 010
AA_S_WRITE_aaa 020
ABE_BOTTOM_aaa 03
ABE_LEFT_aaa 0
ABE_RIGHT_aaa 02
ABE_TOP_aaa 01
ABL_5_WO_aaa 040
ABM_ACTIVATE_aaa 06
ABM_GETAUTOHIDEBAR_aaa 07
ABM_GETSTATE_aaa 04
ABM_GETTASKBARPOS_aaa 05
ABM_NEW_aaa 0
ABM_QUERYPOS_aaa 02
ABM_REMOVE_aaa 01
ABM_SETAUTOHIDEBAR_aaa 08
ABM_SETPOS_aaa 03
ABM_WINDOWPOSCHANGED_aaa 09
ABN_FULLSCREENAPP_aaa 02
ABN_POSCHANGED_aaa 01
ABN_STATECHANGE_aaa 0
ABN_WINDOWARRANGE_aaa 03
ABORTDOC_aaa 02
ABORTDOCC_aaa 02
ABORTDOCCONST_aaa 02
ABORT_XP_HEADER_OPERATION_aaa 0200000
ABOVE_NORMAL_PRIORITY_CLASS_aaa 08000
ABSOLUTE_aaa 01
ABS_ALWAYSONTOP_aaa 02
ABS_AUTOHIDE_aaa 01
AB_DT_CONTAINER_aaa 0100
AB_DT_OOUSER_aaa 0102
AB_DT_SEARCH_aaa 0200
AB_DT_TEMPLATE_aaa 0101
AB_FIND_ON_OPEN_aaa 010
AB_MODIFIABLE_aaa 04
AB_NOT_DEFAULT_aaa 020
AB_NO_DIALOG_aaa 01
AB_RECIPIENTS_aaa 01
AB_RESOLVE_aaa 020
AB_SELECTONLY_aaa 010
AB_SHOW_OTHERS_aaa 04
AB_SHOW_PHANTOMS_aaa 02
AB_SUBCONTAINERS_aaa 02
AB_UNMODIFIABLE_aaa 08
ACCESS_ACCESS_LIST_INFOLEVEL_aaa 03EC
ACCESS_ACCESS_LIST_PARMNUM_aaa 04
ACCESS_ALL_aaa 07F
ACCESS_ALLOWED_ACE_TYPE_aaa 0
ACCESS_ALLOWED_COMPOUND_ACE_TYPE_aaa 04
ACCESS_ALLOWED_OBJECT_ACE_TYPE_aaa 05
ACCESS_ATRIB_aaa 020
ACCESS_ATTR_INFOLEVEL_aaa 03EA
ACCESS_ATTR_PARMNUM_aaa 02
ACCESS_AUDIT_aaa 01
ACCESS_COUNT_INFOLEVEL_aaa 03EB
ACCESS_COUNT_PARMNUM_aaa 03
ACCESS_CREATE_aaa 04
ACCESS_DELETE_aaa 010
ACCESS_DENIED_ACE_TYPE_aaa 01
ACCESS_DENIED_OBJECT_ACE_TYPE_aaa 06
ACCESS_EXEC_aaa 08
ACCESS_FAIL_ACL_aaa 0800
ACCESS_FAIL_DELETE_aaa 0400
ACCESS_FAIL_MASK_aaa 0F00
ACCESS_FAIL_OPEN_aaa 0100
ACCESS_FAIL_SHIFT_aaa 04
ACCESS_FAIL_WRITE_aaa 0200
ACCESS_FILTERKEYS_aaa 02
ACCESS_FINDFIRST_aaa 080
ACCESS_GROUP_aaa 08000
ACCESS_MAX_LEVEL_aaa 04
ACCESS_MAX_MS_ACE_TYPE_aaa 08
ACCESS_MAX_MS_OBJECT_ACE_TYPE_aaa 08
ACCESS_MAX_MS_V2_ACE_TYPE_aaa 03
ACCESS_MAX_MS_V3_ACE_TYPE_aaa 04
ACCESS_MAX_MS_V4_ACE_TYPE_aaa 08
ACCESS_MIN_MS_ACE_TYPE_aaa 0
ACCESS_MIN_MS_OBJECT_ACE_TYPE_aaa 05
ACCESS_MODIFY_aaa 04
ACCESS_MOUSEKEYS_aaa 03
ACCESS_NONE_aaa 0
ACCESS_OBJECT_GUID_aaa 0
ACCESS_PERM_aaa 040
ACCESS_PROPERTY_GUID_aaa 02
ACCESS_PROPERTY_SET_GUID_aaa 01
ACCESS_READ_aaa 01
ACCESS_RESOURCE_NAME_INFOLEVEL_aaa 03E9
ACCESS_RESOURCE_NAME_PARMNUM_aaa 01
ACCESS_STICKYKEYS_aaa 01
ACCESS_SUCCESS_ACL_aaa 080
ACCESS_SUCCESS_DELETE_aaa 040
ACCESS_SUCCESS_MASK_aaa 0F0
ACCESS_SUCCESS_OPEN_aaa 010
ACCESS_SUCCESS_WRITE_aaa 020
ACCESS_SYSTEM_SECURITY_aaa 01000000
ACCESS_WRITE_aaa 02
ACC_ABSTRACT_aaa 0400
ACC_FINAL_aaa 010
ACC_INTERFACE_aaa 0200
ACC_NATIVE_aaa 0100
ACC_PRIVATE_aaa 02
ACC_PROTECTED_aaa 04
ACC_PUBLIC_aaa 01
ACC_STATIC_aaa 08
ACC_SUPER_aaa 020
ACC_SYNCH_aaa 020
ACC_THREADSAFE_aaa 040
ACC_TRANSIENT_aaa 080
ACC_VOLATILE_aaa 040
ACE_INHERITED_OBJECT_TYPE_PRESENT_aaa 02
ACE_OBJECT_TYPE_PRESENT_aaa 01
ACK_aaa 01
ACKNEG1_aaa 03
ACKNEG2_aaa 04
ACKPOS_aaa 02
ACKREQ_aaa 01
ACLREVISIONINFORMATION_aaa 01
ACLSIZEINFORMATION_aaa 02
ACL_REVISION_aaa 02
ACL_REVISION1_aaa 01
ACL_REVISION2_aaa 02
ACL_REVISION3_aaa 03
ACL_REVISION4_aaa 04
ACL_REVISION_DS_aaa 04
ACMDM_BASE_aaa 06000
ACMDM_DRIVER_ABOUT_aaa 06011
ACMDM_RESERVED_HIGH_aaa 06FFF
ACMDM_RESERVED_LOW_aaa 06000
ACMDM_USER_aaa 04000
ACMDRIVERDETAILS_COPYRIGHT_CHARS_aaa 050
ACMDRIVERDETAILS_FEATURES_CHARS_aaa 0200
ACMDRIVERDETAILS_LICENSING_CHARS_aaa 080
ACMDRIVERDETAILS_LONGNAME_CHARS_aaa 080
ACMDRIVERDETAILS_SHORTNAME_CHARS_aaa 020
ACMDRIVERDETAILS_SUPPORTF_ASYNC_aaa 010
ACMDRIVERDETAILS_SUPPORTF_CODEC_aaa 01
ACMDRIVERDETAILS_SUPPORTF_CONVERTER_aaa 02
ACMDRIVERDETAILS_SUPPORTF_DISABLED_aaa 080000000
ACMDRIVERDETAILS_SUPPORTF_FILTER_aaa 04
ACMDRIVERDETAILS_SUPPORTF_HARDWARE_aaa 08
ACMDRIVERDETAILS_SUPPORTF_LOCAL_aaa 040000000
ACMERR_BASE_aaa 0200
ACMERR_BUSY_aaa 0201
ACMERR_CANCELED_aaa 0203
ACMERR_NOTPOSSIBLE_aaa 0200
ACMERR_UNPREPARED_aaa 0202
ACMFILTERCHOOSE_STYLEF_CONTEXTHELP_aaa 080
ACMFILTERCHOOSE_STYLEF_ENABLEHOOK_aaa 08
ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATE_aaa 010
ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATEHANDLE_aaa 020
ACMFILTERCHOOSE_STYLEF_INITTOFILTERSTRUCT_aaa 040
ACMFILTERCHOOSE_STYLEF_SHOWHELP_aaa 04
ACMFILTERDETAILS_FILTER_CHARS_aaa 080
ACMFILTERTAGDETAILS_FILTERTAG_CHARS_aaa 030
ACMFORMATCHOOSE_STYLEF_CONTEXTHELP_aaa 080
ACMFORMATCHOOSE_STYLEF_ENABLEHOOK_aaa 08
ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATE_aaa 010
ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATEHANDLE_aaa 020
ACMFORMATCHOOSE_STYLEF_INITTOWFXSTRUCT_aaa 040
ACMFORMATCHOOSE_STYLEF_SHOWHELP_aaa 04
ACMFORMATDETAILS_FORMAT_CHARS_aaa 080
ACMFORMATTAGDETAILS_FORMATTAG_CHARS_aaa 030
ACMSTREAMHEADER_STATUSF_DONE_aaa 010000
ACMSTREAMHEADER_STATUSF_INQUEUE_aaa 0100000
ACMSTREAMHEADER_STATUSF_PREPARED_aaa 020000
ACM_DRIVERADDF_FUNCTION_aaa 03
ACM_DRIVERADDF_GLOBAL_aaa 08
ACM_DRIVERADDF_LOCAL_aaa 0
ACM_DRIVERADDF_NOTIFYHWND_aaa 04
ACM_DRIVERADDF_TYPEMASK_aaa 07
ACM_DRIVERENUMF_DISABLED_aaa 080000000
ACM_DRIVERENUMF_NOLOCAL_aaa 040000000
ACM_DRIVERPRIORITYF_ABLEMASK_aaa 03
ACM_DRIVERPRIORITYF_BEGIN_aaa 010000
ACM_DRIVERPRIORITYF_DEFERMASK_aaa 030000
ACM_DRIVERPRIORITYF_DISABLE_aaa 02
ACM_DRIVERPRIORITYF_ENABLE_aaa 01
ACM_DRIVERPRIORITYF_END_aaa 020000
ACM_FILTERDETAILSF_FILTER_aaa 01
ACM_FILTERDETAILSF_INDEX_aaa 0
ACM_FILTERDETAILSF_QUERYMASK_aaa 0F
ACM_FILTERENUMF_DWFILTERTAG_aaa 010000
ACM_FILTERTAGDETAILSF_FILTERTAG_aaa 01
ACM_FILTERTAGDETAILSF_INDEX_aaa 0
ACM_FILTERTAGDETAILSF_LARGESTSIZE_aaa 02
ACM_FILTERTAGDETAILSF_QUERYMASK_aaa 0F
ACM_FORMATDETAILSF_FORMAT_aaa 01
ACM_FORMATDETAILSF_INDEX_aaa 0
ACM_FORMATDETAILSF_QUERYMASK_aaa 0F
ACM_FORMATENUMF_CONVERT_aaa 0100000
ACM_FORMATENUMF_HARDWARE_aaa 0400000
ACM_FORMATENUMF_INPUT_aaa 0800000
ACM_FORMATENUMF_NCHANNELS_aaa 020000
ACM_FORMATENUMF_NSAMPLESPERSEC_aaa 040000
ACM_FORMATENUMF_OUTPUT_aaa 01000000
ACM_FORMATENUMF_SUGGEST_aaa 0200000
ACM_FORMATENUMF_WBITSPERSAMPLE_aaa 080000
ACM_FORMATENUMF_WFORMATTAG_aaa 010000
ACM_FORMATSUGGESTF_NCHANNELS_aaa 020000
ACM_FORMATSUGGESTF_NSAMPLESPERSEC_aaa 040000
ACM_FORMATSUGGESTF_TYPEMASK_aaa 0FF0000
ACM_FORMATSUGGESTF_WBITSPERSAMPLE_aaa 080000
ACM_FORMATSUGGESTF_WFORMATTAG_aaa 010000
ACM_FORMATTAGDETAILSF_FORMATTAG_aaa 01
ACM_FORMATTAGDETAILSF_INDEX_aaa 0
ACM_FORMATTAGDETAILSF_LARGESTSIZE_aaa 02
ACM_FORMATTAGDETAILSF_QUERYMASK_aaa 0F
ACM_METRIC_COUNT_CODECS_aaa 02
ACM_METRIC_COUNT_CONVERTERS_aaa 03
ACM_METRIC_COUNT_DISABLED_aaa 05
ACM_METRIC_COUNT_DRIVERS_aaa 01
ACM_METRIC_COUNT_FILTERS_aaa 04
ACM_METRIC_COUNT_HARDWARE_aaa 06
ACM_METRIC_COUNT_LOCAL_CODECS_aaa 015
ACM_METRIC_COUNT_LOCAL_CONVERTERS_aaa 016
ACM_METRIC_COUNT_LOCAL_DISABLED_aaa 018
ACM_METRIC_COUNT_LOCAL_DRIVERS_aaa 014
ACM_METRIC_COUNT_LOCAL_FILTERS_aaa 017
ACM_METRIC_DRIVER_PRIORITY_aaa 065
ACM_METRIC_DRIVER_SUPPORT_aaa 064
ACM_METRIC_HARDWARE_WAVE_INPUT_aaa 01E
ACM_METRIC_HARDWARE_WAVE_OUTPUT_aaa 01F
ACM_METRIC_MAX_SIZE_FILTER_aaa 033
ACM_METRIC_MAX_SIZE_FORMAT_aaa 032
ACM_MPEG_COPYRIGHT_aaa 02
ACM_MPEG_DUALCHANNEL_aaa 04
ACM_MPEG_ID_MPEG1_aaa 010
ACM_MPEG_JOINTSTEREO_aaa 02
ACM_MPEG_LAYER1_aaa 01
ACM_MPEG_LAYER2_aaa 02
ACM_MPEG_LAYER3_aaa 04
ACM_MPEG_ORIGINALHOME_aaa 04
ACM_MPEG_PRIVATEBIT_aaa 01
ACM_MPEG_PROTECTIONBIT_aaa 08
ACM_MPEG_SINGLECHANNEL_aaa 08
ACM_MPEG_STEREO_aaa 01
ACM_OPEN_aaa 0464
ACM_OPENA_aaa 0464
ACM_OPENW_aaa 0467
ACM_PLAY_aaa 0465
ACM_STOP_aaa 0466
ACM_STREAMCONVERTF_BLOCKALIGN_aaa 04
ACM_STREAMCONVERTF_END_aaa 020
ACM_STREAMCONVERTF_START_aaa 010
ACM_STREAMOPENF_ASYNC_aaa 02
ACM_STREAMOPENF_NONREALTIME_aaa 04
ACM_STREAMOPENF_QUERY_aaa 01
ACM_STREAMSIZEF_DESTINATION_aaa 01
ACM_STREAMSIZEF_QUERYMASK_aaa 0F
ACM_STREAMSIZEF_SOURCE_aaa 0
ACN_START_aaa 01
ACN_STOP_aaa 02
ACS_AUTOPLAY_aaa 04
ACS_CENTER_aaa 01
ACS_TIMER_aaa 08
ACS_TRANSPARENT_aaa 02
ACTFLG_ASSIGNED_aaa 010
ACTFLG_FORCEUPGRADE_aaa 04000
ACTFLG_MIGRATE_aaa 02000
ACTFLG_MINIMALINSTALLUI_aaa 08000
ACTFLG_ONDEMANDINSTALL_aaa 040
ACTFLG_ORPHAN_aaa 080
ACTFLG_ORPHANONPOLICYREMOVAL_aaa 0800
ACTFLG_PILOT_aaa 0200
ACTFLG_PUBLISHED_aaa 08
ACTFLG_RUNLOCALLY_aaa 01
ACTFLG_RUNONCE_aaa 02
ACTFLG_SYSTEMWIDE_aaa 04
ACTFLG_UNINSTALL_aaa 0100
ACTFLG_UNINSTALLONPOLICYREMOVAL_aaa 01000
ACTFLG_USERINSTALL_aaa 020
ACTION_ADMINUNLOCK_aaa 01
ACTION_LOCKOUT_aaa 0
ACTIVATE_ACTIVE_aaa 01
ACTIVATE_INPUTACTIVE_aaa 02
ACTIVATE_NOTACTIVE_aaa 0
ACTIVATE_NOTTOPMOST_aaa 0
ACTIVATE_TOPMOST_aaa 01
ACTIVEOBJECT_STRONG_aaa 0
ACTIVEOBJECT_WEAK_aaa 01
ACTRL_ACCESS_ALLOWED_aaa 01
ACTRL_ACCESS_DENIED_aaa 02
ACTRL_ACCESS_NO_OPTIONS_aaa 0
ACTRL_ACCESS_PROTECTED_aaa 01
ACTRL_ACCESS_SUPPORTS_OBJECT_ENTRIES_aaa 01
ACTRL_AUDIT_FAILURE_aaa 08
ACTRL_AUDIT_SUCCESS_aaa 04
ACTRL_CHANGE_ACCESS_aaa 020000000
ACTRL_CHANGE_OWNER_aaa 040000000
ACTRL_DELETE_aaa 08000000
ACTRL_DIR_CREATE_CHILD_aaa 04
ACTRL_DIR_CREATE_OBJECT_aaa 02
ACTRL_DIR_DELETE_CHILD_aaa 08
ACTRL_DIR_LIST_aaa 01
ACTRL_DIR_TRAVERSE_aaa 020
ACTRL_DS_CREATE_CHILD_aaa 01
ACTRL_DS_DELETE_CHILD_aaa 02
ACTRL_DS_DELETE_TREE_aaa 040
ACTRL_DS_LIST_aaa 04
ACTRL_DS_LIST_OBJECT_aaa 080
ACTRL_DS_OPEN_aaa 0
ACTRL_DS_READ_PROP_aaa 010
ACTRL_DS_SELF_aaa 08
ACTRL_DS_WRITE_PROP_aaa 020
ACTRL_FILE_APPEND_aaa 04
ACTRL_FILE_EXECUTE_aaa 020
ACTRL_FILE_READ_aaa 01
ACTRL_FILE_READ_ATTRIB_aaa 040
ACTRL_FILE_READ_PROP_aaa 08
ACTRL_FILE_WRITE_aaa 02
ACTRL_FILE_WRITE_ATTRIB_aaa 080
ACTRL_FILE_WRITE_PROP_aaa 010
ACTRL_KERNEL_ALERT_aaa 0400
ACTRL_KERNEL_CONTROL_aaa 0200
ACTRL_KERNEL_DIMPERSONATE_aaa 08000
ACTRL_KERNEL_DUP_HANDLE_aaa 020
ACTRL_KERNEL_GET_CONTEXT_aaa 0800
ACTRL_KERNEL_GET_INFO_aaa 0100
ACTRL_KERNEL_IMPERSONATE_aaa 04000
ACTRL_KERNEL_PROCESS_aaa 040
ACTRL_KERNEL_SET_CONTEXT_aaa 01000
ACTRL_KERNEL_SET_INFO_aaa 080
ACTRL_KERNEL_TERMINATE_aaa 01
ACTRL_KERNEL_THREAD_aaa 02
ACTRL_KERNEL_TOKEN_aaa 02000
ACTRL_KERNEL_VM_aaa 04
ACTRL_KERNEL_VM_READ_aaa 08
ACTRL_KERNEL_VM_WRITE_aaa 010
ACTRL_PERM_1_aaa 01
ACTRL_PERM_10_aaa 0200
ACTRL_PERM_11_aaa 0400
ACTRL_PERM_12_aaa 0800
ACTRL_PERM_13_aaa 01000
ACTRL_PERM_14_aaa 02000
ACTRL_PERM_15_aaa 04000
ACTRL_PERM_16_aaa 08000
ACTRL_PERM_17_aaa 010000
ACTRL_PERM_18_aaa 020000
ACTRL_PERM_19_aaa 040000
ACTRL_PERM_2_aaa 02
ACTRL_PERM_20_aaa 080000
ACTRL_PERM_3_aaa 04
ACTRL_PERM_4_aaa 08
ACTRL_PERM_5_aaa 010
ACTRL_PERM_6_aaa 020
ACTRL_PERM_7_aaa 040
ACTRL_PERM_8_aaa 080
ACTRL_PERM_9_aaa 0100
ACTRL_PRINT_JADMIN_aaa 010
ACTRL_PRINT_PADMIN_aaa 04
ACTRL_PRINT_PUSE_aaa 08
ACTRL_PRINT_SADMIN_aaa 01
ACTRL_PRINT_SLIST_aaa 02
ACTRL_READ_CONTROL_aaa 010000000
ACTRL_REG_CREATE_CHILD_aaa 04
ACTRL_REG_LINK_aaa 020
ACTRL_REG_LIST_aaa 08
ACTRL_REG_NOTIFY_aaa 010
ACTRL_REG_QUERY_aaa 01
ACTRL_REG_SET_aaa 02
ACTRL_RESERVED_aaa 0
ACTRL_STD_RIGHTS_ALL_aaa 0F8000000
ACTRL_SVC_GET_INFO_aaa 01
ACTRL_SVC_INTERROGATE_aaa 080
ACTRL_SVC_LIST_aaa 08
ACTRL_SVC_PAUSE_aaa 040
ACTRL_SVC_SET_INFO_aaa 02
ACTRL_SVC_START_aaa 010
ACTRL_SVC_STATUS_aaa 04
ACTRL_SVC_STOP_aaa 020
ACTRL_SVC_UCONTROL_aaa 0100
ACTRL_SYNCHRONIZE_aaa 080000000
ACTRL_SYSTEM_ACCESS_aaa 04000000
ACTRL_WIN_CLIPBRD_aaa 01
ACTRL_WIN_CREATE_aaa 04
ACTRL_WIN_EXIT_aaa 0100
ACTRL_WIN_GLOBAL_ATOMS_aaa 02
ACTRL_WIN_LIST_aaa 010
ACTRL_WIN_LIST_DESK_aaa 08
ACTRL_WIN_READ_ATTRIBS_aaa 020
ACTRL_WIN_SCREEN_aaa 080
ACTRL_WIN_WRITE_ATTRIBS_aaa 040
AC_DST_NO_ALPHA_aaa 020
AC_DST_NO_PREMULT_ALPHA_aaa 010
AC_LINE_BACKUP_POWER_aaa 02
AC_LINE_OFFLINE_aaa 0
AC_LINE_ONLINE_aaa 01
AC_LINE_UNKNOWN_aaa 0FF
AC_SRC_ALPHA_aaa 01
AC_SRC_NO_ALPHA_aaa 02
AC_SRC_NO_PREMULT_ALPHA_aaa 01
AC_SRC_OVER_aaa 0
ADAPTERTYPE_aaa 04
ADAPTER_COMMENT_LENGTH_aaa 020
ADDF_FUNC_aaa 0
ADDG_FUNC_aaa 020
ADDLV_FUNC_aaa 040
ADDL_FUNC_aaa 0
ADDPROP_AGENT_aaa 020
ADDPROP_ARRAY_aaa 010
ADDPROP_GROUPING_aaa 04
ADDPROP_GUID_aaa 02
ADDPROP_KEY_aaa 08
ADDPROP_NAME_aaa 044
ADDPROP_NAME2_aaa 084
ADDQV_FUNC_aaa 060
ADDQ_FUNC_aaa 020
ADDRESSBAND_aaa 02
ADDRESSTYPE_FLAGS_BIT_REVERSE_aaa 02
ADDRESSTYPE_FLAGS_NORMALIZE_aaa 01
ADDRESS_FLAGS_DST_GROUP_ADDR_aaa 08
ADDRESS_FLAGS_EXCLUDE_aaa 04
ADDRESS_FLAGS_GROUP_ADDR_aaa 08
ADDRESS_FLAGS_MATCH_BOTH_aaa 03
ADDRESS_FLAGS_MATCH_DST_aaa 01
ADDRESS_FLAGS_MATCH_SRC_aaa 02
ADDRESS_MASK_REPLY_aaa 012
ADDRESS_MASK_REQUEST_aaa 011
ADDRESS_ONE_aaa 08
ADDRESS_TAG_BIT_aaa 080000000
ADDRESS_TYPE_ANY_aaa 06
ADDRESS_TYPE_ANY_GROUP_aaa 07
ADDRESS_TYPE_ETHERNET_aaa 0
ADDRESS_TYPE_FDDI_aaa 04
ADDRESS_TYPE_FIND_HIGHEST_aaa 08
ADDRESS_TYPE_IP_aaa 01
ADDRESS_TYPE_IPX_aaa 02
ADDRESS_TYPE_LOCAL_ONLY_aaa 0A
ADDRESS_TYPE_TOKENRING_aaa 03
ADDRESS_TYPE_VINES_IP_aaa 09
ADDRESS_TYPE_XNS_aaa 05
ADDRMODE1616_aaa 0
ADDRMODE1632_aaa 01
ADDRMODEFLAT_aaa 03
ADDRMODEREAL_aaa 02
ADDR_ANY_aaa 0
ADDR_BROADCAST_aaa 0FFFFFFFF
ADDR_LOOPBACK_aaa 07F000001
ADDR_NONE_aaa 0FFFFFFFF
ADDS_FUNC_aaa 0
ADDT_FUNC_aaa 020
ADDUMP_aaa 08000
ADDURL_SILENT_aaa 01
ADMINDATA_MAX_NAME_LEN_aaa 0100
ADMIN_EXTENSIONAPIVERSION_aaa 0D
ADMIN_STATE_DISABLED_aaa 01
ADMIN_STATE_ENABLED_aaa 02
ADMIN_STATE_ENABLED_ONLY_FOR_NETBIOS_STATIC_ROUTING_aaa 03
ADMIN_STATE_ENABLED_ONLY_FOR_OPER_STATE_UP_aaa 04
ADM_CTRL_FAILED_aaa 03
ADN_DEL_IF_EMPTY_aaa 01
ADN_DONT_DEL_DIR_aaa 04
ADN_DONT_DEL_SUBDIRS_aaa 02
ADOMD_MAJOR_aaa 02
ADOMD_MINOR_aaa 06
ADOR_MAJOR_aaa 02
ADOR_MINOR_aaa 06
ADOX_MAJOR_aaa 02
ADOX_MINOR_aaa 06
ADO_MAJOR_aaa 02
ADO_MINOR_aaa 06
ADRPARM_HELP_CTX_aaa 0
ADSIPROP_ASYNCHRONOUS_aaa 0
ADSIPROP_ATTRIBTYPES_ONLY_aaa 04
ADSIPROP_CHASE_REFERRALS_aaa 09
ADSIPROP_DEREF_ALIASES_aaa 01
ADSIPROP_PAGED_TIME_LIMIT_aaa 08
ADSIPROP_PAGESIZE_aaa 07
ADSIPROP_SEARCH_SCOPE_aaa 05
ADSIPROP_SIZE_LIMIT_aaa 02
ADSIPROP_TIMEOUT_aaa 06
ADSIPROP_TIME_LIMIT_aaa 03
ADSI_DIALECT_LDAP_aaa 0
ADSI_DIALECT_SQL_aaa 01
ADSTOP_aaa 04000
ADS_ATTR_APPEND_aaa 03
ADS_ATTR_CLEAR_aaa 01
ADS_ATTR_DELETE_aaa 04
ADS_ATTR_UPDATE_aaa 02
ADS_EXT_INITCREDENTIALS_aaa 01
ADS_EXT_INITIALIZE_COMPLETE_aaa 02
ADS_EXT_MAXEXTDISPID_aaa 0FFFFFF
ADS_EXT_MINEXTDISPID_aaa 01
ADS_JOB_DELETED_aaa 0100
ADS_JOB_DELETING_aaa 04
ADS_JOB_ERROR_aaa 02
ADS_JOB_OFFLINE_aaa 020
ADS_JOB_PAPEROUT_aaa 040
ADS_JOB_PAUSED_aaa 01
ADS_JOB_PRINTED_aaa 080
ADS_JOB_PRINTING_aaa 010
ADS_JOB_SPOOLING_aaa 08
ADS_PRINTER_BUSY_aaa 0200
ADS_PRINTER_DOOR_OPEN_aaa 0400000
ADS_PRINTER_ERROR_aaa 03
ADS_PRINTER_INITIALIZING_aaa 08000
ADS_PRINTER_IO_ACTIVE_aaa 0100
ADS_PRINTER_MANUAL_FEED_aaa 06
ADS_PRINTER_NOT_AVAILABLE_aaa 01000
ADS_PRINTER_NO_TONER_aaa 040000
ADS_PRINTER_OFFLINE_aaa 08
ADS_PRINTER_OUTPUT_BIN_FULL_aaa 0800
ADS_PRINTER_OUT_OF_MEMORY_aaa 0200000
ADS_PRINTER_PAGE_PUNT_aaa 080000
ADS_PRINTER_PAPER_JAM_aaa 04
ADS_PRINTER_PAPER_OUT_aaa 05
ADS_PRINTER_PAPER_PROBLEM_aaa 07
ADS_PRINTER_PAUSED_aaa 01
ADS_PRINTER_PENDING_DELETION_aaa 02
ADS_PRINTER_POWER_SAVE_aaa 01000000
ADS_PRINTER_PRINTING_aaa 0400
ADS_PRINTER_PROCESSING_aaa 04000
ADS_PRINTER_SERVER_UNKNOWN_aaa 0800000
ADS_PRINTER_TONER_LOW_aaa 020000
ADS_PRINTER_USER_INTERVENTION_aaa 0100000
ADS_PRINTER_WAITING_aaa 02000
ADS_PRINTER_WARMING_UP_aaa 010000
ADS_SERVICE_AUTO_START_aaa 02
ADS_SERVICE_BOOT_START_aaa 0
ADS_SERVICE_CONTINUE_PENDING_aaa 05
ADS_SERVICE_DEMAND_START_aaa 03
ADS_SERVICE_DISABLED_aaa 04
ADS_SERVICE_ERROR_aaa 08
ADS_SERVICE_ERROR_CRITICAL_aaa 03
ADS_SERVICE_ERROR_IGNORE_aaa 0
ADS_SERVICE_ERROR_NORMAL_aaa 01
ADS_SERVICE_ERROR_SEVERE_aaa 02
ADS_SERVICE_FILE_SYSTEM_DRIVER_aaa 02
ADS_SERVICE_KERNEL_DRIVER_aaa 01
ADS_SERVICE_OWN_PROCESS_aaa 010
ADS_SERVICE_PAUSED_aaa 07
ADS_SERVICE_PAUSE_PENDING_aaa 06
ADS_SERVICE_RUNNING_aaa 04
ADS_SERVICE_SHARE_PROCESS_aaa 020
ADS_SERVICE_START_PENDING_aaa 02
ADS_SERVICE_STOPPED_aaa 01
ADS_SERVICE_STOP_PENDING_aaa 03
ADS_SERVICE_SYSTEM_START_aaa 01
ADVFCACHE_FORCEBUILTIN_aaa 010
ADVFCACHE_NOHANDLER_aaa 08
ADVFCACHE_ONSAVE_aaa 020
ADVF_DATAONSTOP_aaa 040
ADVF_NODATA_aaa 01
ADVF_ONLYONCE_aaa 04
ADVF_PRIMEFIRST_aaa 02
AD_APPLY_ALL_aaa 07
AD_APPLY_BUFFERED_REFRESH_aaa 010
AD_APPLY_COMPLETEREFRESH_aaa 020
AD_APPLY_DYNAMICREFRESH_aaa 020
AD_APPLY_FORCE_aaa 08
AD_APPLY_HTMLGEN_aaa 02
AD_APPLY_REFRESH_aaa 04
AD_APPLY_SAVE_aaa 01
AD_CLOCKWISE_aaa 02
AD_COUNTERCLOCKWISE_aaa 01
AD_FLAG_BREAK_BIT_aaa 01]
____________________________________________________________________________
_______________
Proc MainWindowProc:
Arguments @Adressee @Message @wParam @lParam
pushad
.If D@Message = &WM_CLOSE
call 'USER32.DestroyWindow' D@Adressee
.Else_If D@Message = &WM_DESTROY
call 'User32.PostQuitMessage' 0
.Else_If D@Message = &WM_COMMAND
If D@wParam = M00_Exit
call 'User32.SendMessageA' D@Adressee &WM_CLOSE 0 0
; Else_If D@wParam = M00_...
; ...
; Else_If D@wParam = M00_About
; ...
Else
MessageBox InfoTitle "
This file is not a Demo. It is a 'StartUp'
Base You can use to develop your own work. "
End_If
.Else
popad
call 'User32.DefWindowProcA' D@Adressee D@Message D@wParam
D@lParam
Exit
.End_If
popad | mov eax &FALSE
EndP
____________________________________________________________________________
__________
; little message routines for values tests (dWords only / text pointer) to
be called with:
; > Hexprint D$esi / showme esi+5, for example:
[InfoTitle: 'Application Base', 0]
[HexprintString: B$ ' h' 0
MessageTitle: 'HihoHiho' 0]
Proc HexPrnt:
Arguments @N
pushad
mov ebx D@N, ecx 8, edi HexPrintString | add edi 7
std
Do
mov al bl | and al 0F | add al '0'
On al > '9', add al 7
stosb | shr ebx 4
Do_Loop
cld
call 'USER32.MessageBoxA' 0 HexPrintString MessageTitle
&MB_OK__&MB_SYSTEMMODAL
popad
EndP
[Hexprint | call Hexprnt #1 | #+1]
Proc ShowYou:
Arguments @Pointer
pushad
call 'USER32.MessageBoxA' &NULL D@Pointer MessageTitle
&MB_SYSTEMMODAL__&MB_OK
popad
EndP
[Showme | push eax | lea eax D$#1 | call ShowYou eax | pop eax]
____________________________________________________________________________
___________
- Next message: Beth: "Re: ASM vs HLL : absurd war"
- Previous message: hutch--: "Re: Why RosAsm Breaks on a large number of symbols"
- Next in thread: Betov: "Re: Yet Another RosAsm Symbol table problem"
- Reply: Betov: "Re: Yet Another RosAsm Symbol table problem"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|
|