From: //o//annabee on
P� Tue, 11 Sep 2007 04:05:47 +0100, skrev Frank Kotler
<fbkotler(a)verizon.net>:

> //\\o//\\annabee wrote:
>
> ...
>> ____________________________________________________________
>> [push | push #1 | #+1]
>> [call | push #L>2 | call #1]
>> [DialogTitle: "Minimum RosAsm" 0
>> Message: " --- Assembler Pure and Simple --- ", 0]
>> [MessageBox | #=4 | push #L>1 | call 'USER32.MessageBoxA']
>> [ExitProcess | Push 0 | call "KERNEL32.ExitProcess" ]
>> main:
>> push &MB_OK | push DialogTitle | push Message | push 0 | call
>> 'USER32.MessageBoxA'
>> push 0 | call "KERNEL32.ExitProcess"
>> ;;
>> The following are the same function calls using a selection of RosAsm
>> user defined macros. Type checking are not fully implemented
>> in the currect version of RosAsm, but He is working on it :)
>> ;;
>> MessageBox 0 Message DialogTitle &MB_OK
>> ExitProcess
>> ______________________________________________________________________________________
>> DING!
>
> There ya go!
>
> Whether this is "better" or not might be (who am I kidding - *will* be)
> a topic for debate. The fact that Hutch thinks that it doesn't contain
> all the code can be interpreted a couple ways. Big point in your favor,
> in my book!

Thank you Frank. But doing this in RosAsm, is such an insignificant little
job, that you should really send the "favor" somewhere else :)
All of this is just cut and paste work from various rosasm sources.

[push | push #1 | #+1]

isnt that cute?

multipush turns:

this:
push &MB_OK | push DialogTitle | push Message | push 0 | call
'USER32.MessageBoxA'

into this:

push &MB_OK DialogTitle Message 0 | call 'USER32.MessageBoxA'

and the call macro "Push from #Last > 2nd parameter"
[call | push #L>2 | call #1]

turns the above into

call 'USER32.MessageBoxA' 0 Message DialogTitle &MB_OK

to remove "user32" (for instance):
[MessageBoxA | call 'USER32.MessageBoxA' #1 #2 #2 #4]

MessageBoxA 0 Message DialogTitle &MB_OK

For many messageboxes, we need only the Message

[ShowMessage | call 'USER32.MessageBoxA' 0 #1 {'Warning', 0} 0]

->>>

ShowMessage {'I have to go to sleep now, goodnight', 0}



>
> Best,
> Frank

From: Evenbit on
On Sep 11, 12:55 am, //\\\\o//\\\\annabee <w...(a)w.w.w> wrote:
>
> Thank you Frank. But doing this in RosAsm, is such an insignificant little
> job, that you should really send the "favor" somewhere else :)
> All of this is just cut and paste work from various rosasm sources.
>
> [push | push #1 | #+1]
>
> isnt that cute?
>
> multipush turns:
>
> this:
> push &MB_OK | push DialogTitle | push Message | push 0 | call
> 'USER32.MessageBoxA'
>
> into this:
>
> push &MB_OK DialogTitle Message 0 | call 'USER32.MessageBoxA'
>
> and the call macro "Push from #Last > 2nd parameter"
> [call | push #L>2 | call #1]
>
> turns the above into
>
> call 'USER32.MessageBoxA' 0 Message DialogTitle &MB_OK
>
> to remove "user32" (for instance):
> [MessageBoxA | call 'USER32.MessageBoxA' #1 #2 #2 #4]
>
> MessageBoxA 0 Message DialogTitle &MB_OK
>
> For many messageboxes, we need only the Message
>
> [ShowMessage | call 'USER32.MessageBoxA' 0 #1 {'Warning', 0} 0]
>
> ->>>
>
> ShowMessage {'I have to go to sleep now, goodnight', 0}
>

[sarcasm]
That's the number one problem with RosAsm -- the user must actually
type-in the mnemonics "push" and "call" (or copy-n-paste them into
macros) to be able to execute system functions. A "real (tm)"
assembler would have features that allow the programmer to avoid using
any CPU instructions and still be able to compile a program.

program yesno;
#include( "w.hhf" )

begin yesno;
repeat
w.MessageBox( 0, "Is the world flat?", "Objectivity Lesson",
w.MB_YESNO );
until( eax = w.IDYES );
end yesno;

[/sarcasm]

Nathan.

From: Frank Kotler on
hutch-- wrote:

....
> Frank is not authorised to post my code,

DING! Game over.

Well, not really over, didn't begin. You refuse to play by Wannabee's
rules. Wannabee refuses to play by your rules. "No bird", as they say in
skeet shooting.

Best,
Frank


From: highdoe on

>
> > [push | push #1 | #+1]
>
> > isnt that cute?
>
> > push &MB_OK DialogTitle Message 0 | call 'USER32.MessageBoxA'
>
> > [call | push #L>2 | call #1]
>
> > call 'USER32.MessageBoxA' 0 Message DialogTitle &MB_OK
>
> > [MessageBoxA | call 'USER32.MessageBoxA' #1 #2 #2 #4]
>
> > MessageBoxA 0 Message DialogTitle &MB_OK
>
> > [ShowMessage | call 'USER32.MessageBoxA' 0 #1 {'Warning', 0} 0]
>
> > ShowMessage {'I have to go to sleep now, goodnight', 0}
>
> [sarcasm]
> That's the number one problem with RosAsm -- the user must actually
> type-in the mnemonics "push" and "call" (or copy-n-paste them into
> macros) to be able to execute system functions. A "real (tm)"
> assembler would have features that allow the programmer to avoid using
> any CPU instructions and still be able to compile a program.
>
> program yesno;
> #include( "w.hhf" )
>
> begin yesno;
> repeat
> w.MessageBox( 0, "Is the world flat?", "Objectivity Lesson",
> w.MB_YESNO );
> until( eax = w.IDYES );
> end yesno;
>
> [/sarcasm]
>
> Nathan.


[sarcasm]
What a marvelous assembler. The *real* true assembler.
With a neat syntax like that, why to bother with cmp, jmp, mov, lea
and registers.
[/sarcasm]

From: hutch-- on
Come on Wannabee, pull your pants back up and start eating that hat.
Herbert cannot save you no matter how much bullsh*t he tried to pass
at them.

> Not according to the answer Herbert got from Microsoft Germany you cant.

Poor Herbert has been ignored for YEARS by Microsoft because he was a
repeated nuisance. You would be far better to try and force Betov to
pay for ASM32 and then write a proper assembler rather than a broken
compiler.

No matter what though you still have to eat that hat and keep your
promise to the members of ALA.