From: JGCASEY on

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
"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
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
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

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