From: //o//annabee on 11 Sep 2007 00:55 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 11 Sep 2007 01:51 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 11 Sep 2007 01:58 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 11 Sep 2007 02:18 > > > [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 11 Sep 2007 02:27
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. |