From: Betov on
"Isaac Bosompem" <x86asm(a)gmail.com> ?crivait news:1142394914.080283.265440
@j52g2000cwj.googlegroups.com:

> congratulations Randall!
>
> I believe in abstraction.

Coherent.

:)

Betov.

< http://rosasm.org >




From: Frank Kotler on
o//annabee wrote:

....
> Hei! Is this sort of "before I have asked, you have answered trick?
> Will this run compile as win32 file? I check it out. Thanks.
>
>> global _start

Well, no. Windows isn't going to be happy with the int 80h's :)

With some modification - replace the I/O and the sys_exit...

The difficulty is with the dread word "linker"... I've done a few things
using Anthony Williams' Alink. Uses Nasm's "-f obj" output format. It
*can* be linked with "win32.lib", but if the API's are declared right,
you don't need it...

I'm not sure this is right...

; nasm -f obj hwcons.asm
; alink -oPE hwcons.obj

extern WriteFile
import WriteFile kernel32.dll

extern ExitProcess
import ExitProcess kernel32.dll

section _TEXT use32 class=CODE
...start

push dword 0
push dword num_chars
push dword MSGLEN
push dword msg
push dword -11 ; ??? - works IIRC
call [WriteFile]

exit_ok:
push dword 0
exit:
call [ExitProcess]

section _DATA use32 class=DATA
num_chars dd 0
msg db 'Hello, Console.', 13, 10
MSGLEN equ $ - msg
;--------------------

Another, more "modern" option would be to use "-f win32". Link with
polink, or... no, you wouldn't like that one :)

An option I think you'd like is to use "-f bin" mode and get your
executable directly - no linker. It involves include files - unless you
wanna spell out the whole thing like Herbert does. Too much cruft to
post. RosAsm has all this stuff built in ("Nice work, Guga!") , Nasm
doesn't. The only thing I've got using that is Numit_or's "shutdown",
with the "dos stub" altered to shut down, instead of claiming we need
Windows to do it! :)

I'll try to remember to tar that up - zip, I mean - and upload it. Too
tired right now - remind me. If you feel like joining a !Yahoo! group,

<http://groups.yahoo.com/group/win32-nasm-users>

There are a few demos of various kinds in the "files" section...

Later,
Frank
From: Betov on
o//annabee <fack(a)szmyggenpv.com> ?crivait news:op.s6gcjrnace7g4q(a)bonus:

> To tired to answer this now. But one immidiate thing that strikes me
> is that the new RosAsm macro declarations, the # is about as
> unreadable as the other assemblers. Macros are in general quite
> unreadable in my view. If they get complicated they are simply
> impossible.

:))

Read them again after some good sleep.

:))

The '#' stuff is nothing but very usual convention,
in the various Macros Systems. That is, you need some
char, to make the difference, say, between some '#If',
that belongs to the Macros System vocabulary, and some
'If', that can, as well, be a nested Macro Evocation,
belonging to the user's Macro.

Of course, the more powerfull, the more complicated to
use. But, on the other hand, as long as this kind of effort
is usually done "once for all", at this level of complexity,
this is no more a matter of "everyday usage macros System",
but a matter of collectively, and slowly, developped Macros.

You know, the "New Macros" Set has been started several
_months_ ago, and is still not finished. There is no hurry
with this. Are you sure, you could fully understand the
actual (or the new...) Macros Set for "Proc"? I am sure
not, because this was some long job to do.

When i say that the RosAsm Macros System is _easy_. I of
course mean, in the simple practical way, you do use it
yourself, for your everydays developments. But, of course,
developing a complete, and coherent set of default Macros
is another story...


Betov.

< http://rosasm.org >






From: Dragontamer on

o//annabee wrote:
> På Wed, 15 Mar 2006 04:55:14 +0100, skrev Isaac Bosompem
> <x86asm(a)gmail.com>:
>
> > I do think it is a very good idea to use a scripting language to code
> > game logic. It makes it easy to debug and maintain.
>
> The only scripting language for games should be assembly language. I think
> assembly language should be the scripting language for Visual Basic as
> well.
>
> I'd like to add a smiley, but I am serious.

Assembly don't got the dynamic capabilities of scripting languages.

Sure; you can do function pointers and stuff like that; but you can't
start up
co-processes or new threads that easily in comparison to say... Lua.

It is difficult to create a function during runtime as well with
assembly
without the use of an embedded interpreter/compiler. And heck; even
then, you wouldn't get the power of say Lisp where you can compile
code that would create more code for the macros during runtime; which
can write code that writes code that writes code.

This enables you to create code that otherwise cannot be written with
traditional macros.

And as a scripting language; there is 0 emphasis on speed. So half of
the instructions avaliable for assembly language would be a waste.

There is a heavy importance on a lack of logic errors and bugs, along
with very big integers in games... Sure; assembly can do 64-bit
arithmatic with some ease (but not as easily as Scheme, Python, Lua
which
automatically convert numbers to bignums whenever they are needed,
which
implies 0 overflow errors that you'd have to check otherwise in
Assembly or
really; most general languages today); but unlike Scheme, there is no
automatic capabilities to create the "Data pyramid" between rational
numbers, and real numbers, bignums (big integers), fixnums (32-bit
integers),
etc. etc.

Because of Scheme's data pyramid, this makes all rational computations
100% accurate. (3 / 2 * 2 == 3; not 2 in assembly)... I'm not sure of
Lua...
but there probably is similar capabilities. I know C++ can do it cause
of operator overloading and stuff... but probably not the data-pyramid.

(unless a "everything" class was made :) )

============================

As for the original comment... how Scripting languages make it easier
to
track bugs... that assumes you got the scripting language set up
correctly :)

There is a "critical mass" for games where a scripting language would
obviously
take longer than building the game itself. So don't use it, lol :)

--Dragontamer

From: Dragontamer on

Betov wrote:

> Dispiting the insane noises around, not having to care
> of the JMPs sizes generated by the Construct Macros is
> a major disadvantage.

What disadvantage would that be?

--Dragontamer