From: JGCASEY on 30 Aug 2005 06:43 Betov wrote: > For each need, we simply _search_ inside "Win32.hlp", > for the function doing what we need. Then each Param > description says to us what to implement, and how. Part of the problem here is knowing what to look for and how to translate it into working code. For this you need examples starting with the goal, for example: A Simple Window. Then show how to find the APIs required and how to use the Param description to implement the goal. Now this may be easy but it is not what the Izcelion tutorials do. What I did today was carefully go through the Izcelion tutorial "A Simple Window" and I think I get the gist of what is involved. I then compared the MASM version with the FASM, GoASM and RosASM versions. All confusingly different although making the comparisons did to some extent separate the required from the quirks of each assembler syntax. Anyway I am getting closer to responding to your previous post: "As for the beginners tutorials, you have been pointed to many very good ones, and, if you fail to understand them, the only thing that would be interesting (not considering the analyse of your IQ... :) would be to hear you saying _what_ kind of explanations you had expect to find out of the zip, instead of the ones we provide." The first is they all assume a working knowledge of the assembler syntax, and that includes the high level stuff which is supposed to make them easy to read but in fact, for me, hides the detail. They are also long winded. As if talking a lot will somehow make it easier to understand. If I stick at this long enough to understand enough to explain it to someone else I shall try and write an example of the kind of tutorial I would have liked to have had as an API beginner. John.
From: Betov on 30 Aug 2005 07:21 "JGCASEY" <jgkjcasey(a)yahoo.com.au> ýcrivait news:1125398594.330134.134400 @g49g2000cwa.googlegroups.com: > The first is they all assume a working knowledge > of the assembler syntax, Many of them, yes... but you said that you _had_ that knowledge... > and that includes the > high level stuff which is supposed to make them > easy to read but in fact, for me, hides the detail. Depends which ones. Test Departement Tutorials, for example, are 100% true low level, do not make use of any macro, nor of any such "facilities", and comment _each_ Instruction in an exhaustive manner. > They are also long winded. As if talking a lot > will somehow make it easier to understand. This is a real problem. I could reformulate it in another way, that is that each beginner has his private way of thinking and learning, and, as we are unable to write one type of tutorial, for one type of beginner, we have no choice but to try to please "most", by providing a significative amount of BlaBla, that may, evidently, be of no use for such and such user... Considering the various points, we can resume them in 3 different main categories: * Using the Tool (the Assembler Syntax, IDE, and such) * Assembly (Mnemonics, Declarations, and such) * Api (with introduction examples) This is what i have tried to do (with poor success, if i rely on you... :) with my own Beginner's Tutorials, that are actually the 6 first Interactive Visual Tuts coming with RosAsm, where you have 4 Buttons saying: [Description] (of what the Demo does when executed) [Assembly] (explanation of a couple of Instruction per Tut) [Api] (same for a couple of Functions) [RosAsm Features] (just a couple of Tips&Tricks) When runing these small Tutorials from RosAsm [Help] Menu, you see 1) the Source of the Tutorial, 2) the Dialog showing the Source to be Executed ([File] / [Run], and 3) the Tutorial Dialog with the Informations to be read. It seems that, dispiting the impressive time i and James spent at writing these Tutorials, we have missed our goal, at least for you, but i still don't know, exactely, why and how... > If I stick at this long enough to understand > enough to explain it to someone else I shall > try and write an example of the kind of tutorial > I would have liked to have had as an API beginner. That would be a _very_ good thing... If you do it for a _decent_ Assembler (FASM, RosAsm of GoAsm). Betov. < http://rosasm.org >
From: f0dder on 30 Aug 2005 15:39 Herbert Kleebauer wrote: > All you need to do Win32 assembly programming is: > you must be a masochist > you need a disassembler > you need a few weeks free time to surf at MSDN.com All you need to do is learn 32bit assembly and learn the WIN32 API. Hardly rocket science. I don't see what's oh-so-difficult about all this, the only thing that was required was no-brain manual labour. Disassemblers weren't even needed, not even to infer the calling convention and register preservation rules (C++ compilers "assembly listing" switches come to mind). Pioneers? More like people with too much free time on their hands :)
From: f0dder on 30 Aug 2005 16:38 Betov wrote: >> For example, you want to write a simple text filter program which >> reads from stdin > > I have never heard of any "Standard In" in any actual OS. > >> and copies any printable ASCII character (0x20-0x7e) >> to stdout. > > I have never heard of any "Standard Out" in any actual OS. GetStdHandle(Parameters: nStdHandle) Specifies the standard device for which to return the handle. This parameter can be one of the following values. Value Meaning STD_INPUT_HANDLE Standard input handle STD_OUTPUT_HANDLE Standard output handle STD_ERROR_HANDLE Standard error handle ....unix has stdin,stderr,stdout as well. >> The program shall terminate when any key is pressed. >> As a 16 bit DOS program, this is done in a few lines of assembler >> code. Now show us an equivalent Win32 program. > > DOS is dead since ages. Agreed :)
From: JGCASEY on 30 Aug 2005 16:52
Betov wrote: > "JGCASEY" >> The first is they all assume a working knowledge >> of the assembler syntax, > > > Many of them, yes... but you said that you _had_ > that knowledge... Only the old syntax without the .Else_If stuff I see in your source code. Then there is the strange looking macros. Very little looks like the DOS code I used. But anyway the tutorials need to deal with an absolute beginner so a working knowledge of the assembler syntax is needed. This is best done, in my opinion, by introducing them in stages as needed to understand a particular program. >> and that includes the >> high level stuff which is supposed to make them >> easy to read but in fact, for me, hides the detail. > > > Depends which ones. Test Department Tutorials, for > example, are 100% true low level, do not make use > of any macro, nor of any such "facilities", and > comment _each_ Instruction in an exhaustive manner. > > >> They are also long winded. As if talking a lot >> will somehow make it easier to understand. > > > This is a real problem. I could reformulate it in > another way, that is that each beginner has his > private way of thinking and learning, and, as we > are unable to write one type of tutorial, for one > type of beginner, we have no choice but to try to > please "most", by providing a significative amount > of BlaBla, that may, evidently, be of no use for > such and such user... > > Considering the various points, we can resume them > in 3 different main categories: > > > * Using the Tool (the Assembler Syntax, IDE, and such) > > > * Assembly (Mnemonics, Declarations, and such) > > > * Api (with introduction examples) That appears to cover it. For an absolute beginner you would have to cover binary numbers perhaps? > This is what i have tried to do (with poor success, if > i rely on you... :) with my own Beginner's Tutorials, > that are actually the 6 first Interactive Visual Tuts > coming with RosAsm, where you have 4 Buttons saying: > > > [Description] (of what the Demo does when executed) > [Assembly] (explanation of a couple of Instruction per Tut) > [Api] (same for a couple of Functions) > [RosAsm Features] (just a couple of Tips&Tricks) > > > When running these small Tutorials from RosAsm [Help] > Menu, you see 1) the Source of the Tutorial, 2) the > Dialog showing the Source to be Executed ([File] / > [Run], and 3) the Tutorial Dialog with the Informations > to be read. Do you mean those funny little pop up window thingies IVTOOOBeginner_1? It would be nice to be able to print them out. I do like hardcopy. From your IDE Help menu I chose IVTOOOBeginner_1.exe to be greeted with a source file I couldn't read. Nothing like the DOS code? Except for the occasional move eax &FALSE. I assume & means address? > It seems that, dispiting the impressive time i and > James spent at writing these Tutorials, we have missed > our goal, at least for you, but i still don't know, > exactly, why and how... Maybe it's the IQ thing :) Perhaps DOS is for dummies so I found it easy to learn from a couple of assembler books? A low level OS for a low level brain :) I have just been looking at your RosAsm. I didn't realise you had a Wizard there to create a form template. I assume you than just add in code like you do for VB? Indeed you seem to have a lot of useful programming aids but I am not sure how i would use them. There are issues like, you have the means to load resources but I am not sure how you integrate this into a program. Things like an image, for example, in DOS the program would load it as a file into some allocated memory location. I would have my own display routines. To test a tutorial I guess you need to sit a complete beginner down and see where/if they are not sure what to do next or cannot follow the explanation. Thank you for your efforts in trying to work out my issues. I am not sure what to do about them. Regards, John |