Discussion:
Rapport from installation of Ubuntu 7.10 on amd64
(too old to reply)
//\\\\o//\\\\annabee <"Ubuntu for ever">
2008-01-31 17:20:55 UTC
Permalink
I finally got a successful DVD with Ubunty 7.10 (Gutzy)
and it found all my hardware, and is fast, and the graphic is _splended_
- very fast slick graphic, with full hardware acceleration enabled default.

(very funny with dragging the windows :D :D) (uses GNOME I belive)

After a small search, (enabling 5 checkboxes in /etc/apt/sources.list) I
now have VLC working, and can play my movies and MP3s just fine.

Wine is running allthough the results are not that good, but at least apps
run there.
- errors with Stretchblt, locating relative paths, icons draws, and
searching for files. (and windows style flags)

Otherwise it seem to work.

This version of Ubunty is simply the best OS I have ever seen.

"Flat endusers" can use this version of Linux and it is _much_ higher
quality works than win2000 and the reason I never saw this before is
simply that I never got as far as to see it. I spend hours to update
win2000 after a reinstall. I spent like 20 minutes on the coach with
linux, plus the 5 checkboxes. I did not need asking for any help.

I am such positivly surpriced at this first impressive results that I am
stunned. I bow to you UBUNTU guys. I never say an ugly word about GNU
Linux again.
This ubunty _will_ be the leader OS. If not at once, then very soon. That
is clear.
Nothing can beat "better" + "free" + more easy to install all at once.

I also checked out installing packages "by hand". That is very clever and
easy once
you done it a couple of times. And is then faster then the GUI way.

my hardware: amd64 single core 3700, 1 giga ram, geforce chipset, ati
radeon gt800 256m
I installed the 32bit version as the 64bit version did not seem to work on
my machine. (it could have been the image was bad).

Congratulations at the Ubuntu guys. I dont see any need for windows on
this AMD64 anymore.
Only drawback is I now have to start using NASM for coding. Looking
forward to the future of the 64bit ubuntu distro, that unfortunatly did
not boot here.

I see no longer any reason to use windows. They did it! When it works like
this on all hardware, the job is over. And MS will simply die.

Bye.
//\\\\o//\\\\annabee <"Ubuntu for ever">
2008-01-31 17:23:18 UTC
Permalink
På Thu, 31 Jan 2008 18:20:55 +0100, skrev //\\o//\\annabee <"Ubuntu for
Post by //\\\\o//\\\\annabee <"Ubuntu for ever">
I finally got a successful DVD with Ubunty 7.10 (Gutzy)
and it found all my hardware, and is fast, and the graphic is _splended_
- very fast slick graphic, with full hardware acceleration enabled default.
(very funny with dragging the windows :D :D) (uses GNOME I belive)
After a small search, (enabling 5 checkboxes in /etc/apt/sources.list) I
now have VLC working, and can play my movies and MP3s just fine.
Wine is running allthough the results are not that good, but at least
apps run there.
- errors with Stretchblt, locating relative paths, icons draws, and
searching for files. (and windows style flags)
Otherwise it seem to work.
This version of Ubunty is simply the best OS I have ever seen.
"Flat endusers" can use this version of Linux and it is _much_ higher
quality works than win2000 and the reason I never saw this before is
simply that I never got as far as to see it. I spend hours to update
win2000 after a reinstall. I spent like 20 minutes on the coach with
linux, plus the 5 checkboxes. I did not need asking for any help.
I am such positivly surpriced at this first impressive results that I am
stunned. I bow to you UBUNTU guys. I never say an ugly word about GNU
Linux again.
This ubunty _will_ be the leader OS. If not at once, then very soon.
That is clear.
Nothing can beat "better" + "free" + more easy to install all at once.
I also checked out installing packages "by hand". That is very clever
and easy once
you done it a couple of times. And is then faster then the GUI way.
my hardware: amd64 single core 3700, 1 giga ram, geforce chipset, ati
radeon gt800 256m
I installed the 32bit version as the 64bit version did not seem to work
on my machine. (it could have been the image was bad).
Congratulations at the Ubuntu guys. I dont see any need for windows on
this AMD64 anymore.
Only drawback is I now have to start using NASM for coding. Looking
forward to the future of the 64bit ubuntu distro, that unfortunatly did
not boot here.
I see no longer any reason to use windows. They did it! When it works
like this on all hardware, the job is over. And MS will simply die.
oh and I forgot... it found my flash and cellphone drives as well.
Post by //\\\\o//\\\\annabee <"Ubuntu for ever">
Bye.
Evenbit
2008-01-31 19:31:40 UTC
Permalink
Post by //\\\\o//\\\\annabee <"Ubuntu for ever">
I finally got a successful DVD with Ubunty 7.10 (Gutzy)
and it found all my hardware, and is fast, and the graphic is _splended_
- very fast slick graphic, with full hardware acceleration enabled default.
That's the Compiz-Fusion which beats the pants off of MS' AreoGlass.
Post by //\\\\o//\\\\annabee <"Ubuntu for ever">
Only drawback is I now have to start using NASM for coding.
HLA is available for L'unix. :)

Nathan.
//\\\\o//\\\\annabee <"Ubuntu for ever">
2008-01-31 20:49:15 UTC
Permalink
Post by Evenbit
Post by //\\\\o//\\\\annabee <"Ubuntu for ever">
I finally got a successful DVD with Ubunty 7.10 (Gutzy)
and it found all my hardware, and is fast, and the graphic is _splended_
- very fast slick graphic, with full hardware acceleration enabled default.
That's the Compiz-Fusion which beats the pants off of MS' AreoGlass.
I havent been able to install Vista. 500 giga space avail, but it insisted
on having 40gig on a spesific drive. So I didnt bother. An OS that stupid,
to let 500giga go undetected ...so utterly arrogant, it does not deserve
to be given a chance.

GNU Linux, now that the speed is instant for near everything, is, if you
put the flashy things aside, also a _much_ better os. It only requres 2g
+ a swap drive. And it understands both NTFS, and FAT drives, and several
others. So it is a POLITE os, because you can continue to use the other
drives and files without any work at all.

Linux also has more visibility. You get to feel in control. And it has
EOOOOOOOOOOOOOOOONS of ready to install apps and libraries.

I am _extremly_ impressed with it.
Post by Evenbit
Nathan.
Evenbit
2008-02-01 02:33:12 UTC
Permalink
Post by //\\\\o//\\\\annabee <"Ubuntu for ever">
Post by Evenbit
Post by //\\\\o//\\\\annabee <"Ubuntu for ever">
I finally got a successful DVD with Ubunty 7.10 (Gutzy)
and it found all my hardware, and is fast, and the graphic is _splended_
- very fast slick graphic, with full hardware acceleration enabled default.
That's the Compiz-Fusion which beats the pants off of MS' AreoGlass.
I havent been able to install Vista. 500 giga space avail, but it insisted
on having 40gig on a spesific drive. So I didnt bother. An OS that stupid,
to let 500giga go undetected ...so utterly arrogant, it does not deserve
to be given a chance.
I briefly tested Vista once and the only bad thing I could say about
it was the feeling that I was being "handled" by the OS. It felt like
"Clippy" was back to help me even when I wasn't asking for it.

Nathan.
//\\\\o//\\\\annabee
2008-02-01 05:55:12 UTC
Permalink
Post by Evenbit
I briefly tested Vista once and the only bad thing I could say about
it was the feeling that I was being "handled" by the OS. It felt like
"Clippy" was back to help me even when I wasn't asking for it.
Windows allways gave me this feeling.The reason I stuck with it was
because I had so much code written for it and that it seemed "fast"
compared to the Linux distros I tested. Now that is reversed, Linux is
gotten slick and smart and _much_ more efficient and has infinatly more
apps available. And come with a promise to allways remain free software.
30 minutes for a complete reinstall. No need to reinstall drivers, apps is
installed in clicktime.

Windows can never keep up with this.
Post by Evenbit
Nathan.
--
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
Robert Redelmeier
2008-02-02 04:42:32 UTC
Permalink
Post by Evenbit
I briefly tested Vista once and the only bad thing I could say about
it was the feeling that I was being "handled" by the OS. It felt
like "Clippy" was back to help me even when I wasn't asking for it.
Respectfully, just what do you think MS-Windows _is_?

MS=Win started as a Apple Mac clone to make computers more
attractive and accessible to untrained people. Anything to get
away from the forbidding MS-DOS prompt. At this, it succeeded
marvellously and built up PC volumes so that prices could drop.
Something Linux advocates such as myself need to keep in mind.

However, MS-Windows succeeded only by being an inflexible fixed
menuing system. It makes simple usage easy at the cost of added
complexity for more advanced usage. Worse, it does not provide
a clear learning path for programmers and more advanced users.
Eventually, you have to leave MS-Visual Basic behind.

X-Windows-System and IBM OS/2 might well host GUI apps to less
sophisticated users. But admin & programming tasks were left
on the CLI. MS-Windows did not, perhaps because their systems
always had heavy maintenence burdens. So it stranded a number
of advanced users who resist going back to square one (CLI).

-- Robert
Frank Kotler
2008-01-31 22:13:15 UTC
Permalink
//\\o//\\annabee wrote:

...
Post by //\\\\o//\\\\annabee <"Ubuntu for ever">
Only drawback is I now have to start using NASM for coding.
No, you could use Gas... :)

Seriously, as an "assembler", Nasm and the assembler in RosAsm do
exactly the same thing. I think the bulk of your pain is from missing
the IDE, not any shortcoming in Nasm, as an "assembler".

You'll need to build yourself *some* kind of an "environment" in which
to work (always). Okay, it won't be the fully integrated environment
that you know and love - at least, not at first... But you'll need
something (besides just Nasm... or an alternative), so you might as well
start looking for the "components" of what you'd like to be using.

You'll want an editor. I suppose you'll want a pointee-clickee one. I
can't help you there. Only thing I've used is "kwrite", and then only to
cut-and-paste code in and out of these posts - never tried actually
editing anything with it. There are lots of editors... mostly
open-source... mostly *not* in asm...

You'll want to look at Jeff Owens' AsmIde. I don't think you'll like it
- not much like RosAsm - but it may have parts you can use (either as
part of your not-yet-integrated development environment, or as code to
build something "better" on).

I use "mcedit" - part of the "midnight commander" package (dunno if this
is a clone of Norton Commander or Norton Commander is a clone of this).
I've noticed that recent versions of mcedit have Nasm-compatible syntax
highlighting (I'd turn it off, but I'm using an earlier version - some
people like it, I find it "distracting"... I'm tryin'a *think*, dammit!)
I'm not suggesting you'd like mcedit... just "what's possible" to work
with... No "right click navigation" that I'm aware of...

Debugger... in Nasm... Hmmm, I don't know what this thing "is", or where
I found it (the README appears to be in Chinese... I think). Outside of
a reference to "Copyleft", no real licensing info. I'm redistributing it...

http://mysite.verizon.net/fbkotler/debug-0.3.zip

I gotta look at that some more myself... looks interesting!

Another thing I've got, and never looked at, is a
"ide-nasm-0.0-39mdk.noarch.rpm". Written in, and requires, "GAMBAS" (VB
for Linux, I take it), which I've never been able to install (didn't try
too hard). I can make that available, if you want...

You recall that nasm-glade-demo that "AIR" ("AIRR"?) posted, some time
ago? I never got it to run. Apparently an editor, implemented as Nasm
and XML (???). Betov thought it looked interesting, as I recall. Never
heard much about it...

Good thing about Linux assembly - lots of room for improvement! (the bad
thing is that it's an oxymoron - Linux is portable, asm isn't - so if
it's asm, it's not "real Linux"... still works!)
Post by //\\\\o//\\\\annabee <"Ubuntu for ever">
Looking
forward to the future of the 64bit ubuntu distro, that unfortunatly did
not boot here.
That *is* unfortunate. Running a 32-bit OS on a 64-bit machine is...
almost like running dos! :) You're running in "castrated mode". I
understood that 64-bit Windows didn't really "work", I thought 64-bit
Linux did. Don't give up!
Post by //\\\\o//\\\\annabee <"Ubuntu for ever">
I see no longer any reason to use windows.
I occasionally "miss" Windows, in a sense, just to see "what's going
on". There's a message on the Nasm Forum... guy says a dialog-box is
behaving differently if coded in Nasm than it was with Masm. Right...
Nasm's generating the wrong "call" instruction... Obviously not a "Nasm
problem", but without 'doze running, I can't help him figure out what it
*is*. (likewise the MapAndLoad problem on the Yahoo nasm-win32-users
list...) Other than that, no...
Post by //\\\\o//\\\\annabee <"Ubuntu for ever">
They did it! When it works
like this on all hardware, the job is over. And MS will simply die.
Wishful thinking, I fear. But Vista(r), from what I hear, is a good
opportunity to say, "This time, you've gone too far!" No harm keeping a
positive attitude!

Best,
Frank
Evenbit
2008-02-01 02:53:33 UTC
Permalink
Post by Frank Kotler
...
Post by //\\\\o//\\\\annabee <"Ubuntu for ever">
Only drawback is I now have to start using NASM for coding.
No, you could use Gas... :)
Seriously, as an "assembler", Nasm and the assembler in RosAsm do
exactly the same thing. I think the bulk of your pain is from missing
the IDE, not any shortcoming in Nasm, as an "assembler".
Ah-ha! RosAsm causes pain!! :)
Post by Frank Kotler
You'll need to build yourself *some* kind of an "environment" in which
to work (always). Okay, it won't be the fully integrated environment
that you know and love - at least, not at first... But you'll need
something (besides just Nasm... or an alternative), so you might as well
start looking for the "components" of what you'd like to be using.
Just type "vi" and press ENTER. :)
Post by Frank Kotler
You'll want an editor. I suppose you'll want a pointee-clickee one. I
can't help you there. Only thing I've used is "kwrite", and then only to
cut-and-paste code in and out of these posts - never tried actually
editing anything with it. There are lots of editors... mostly
open-source... mostly *not* in asm...
He might try to see if this works in Wine:
http://www.flos-freeware.ch/notepad2.html

...or maybe download "gSciTE"

Seriously, a basic skill with "vi" or "nano" for quick edits from the
command line.
Post by Frank Kotler
You'll want to look at Jeff Owens' AsmIde. I don't think you'll like it
- not much like RosAsm - but it may have parts you can use (either as
part of your not-yet-integrated development environment, or as code to
build something "better" on).
FreeBasic works on Ubuntu. Might be useful for a quick prototype...
Post by Frank Kotler
You recall that nasm-glade-demo that "AIR" ("AIRR"?) posted, some time
ago? I never got it to run. Apparently an editor, implemented as Nasm
and XML (???). Betov thought it looked interesting, as I recall. Never
heard much about it...
Just the "beginings" of an editor. IIRC, the menu commands were not
actually coded.
Post by Frank Kotler
Post by //\\\\o//\\\\annabee <"Ubuntu for ever">
I see no longer any reason to use windows.
I see no longer any reason to use doors.

Nathan.
Herbert Kleebauer
2008-02-01 09:12:16 UTC
Permalink
Post by Evenbit
http://www.flos-freeware.ch/notepad2.html
And can you also use the notepad clone to surf in
the Internet like you can do with the original?

(Open the help window in notepad, right click on the on
the title bar and select "goto URL").
Robert Redelmeier
2008-02-01 20:24:42 UTC
Permalink
Post by Herbert Kleebauer
And can you also use the notepad clone to surf in
the Internet like you can do with the original?
Better: hit Alt-F2 anywhere when KDE is up and you get a
command line that accepts URLs. Also look into 'klipper'
[clipboard tool] which can make anything highlight-able
into a clickable link.

-- Robert
Evenbit
2008-02-01 02:26:07 UTC
Permalink
Post by //\\\\o//\\\\annabee <"Ubuntu for ever">
my hardware: amd64 single core 3700, 1 giga ram, geforce chipset, ati
radeon gt800 256m
Believe it or not, the Compiz graphic effects work on an old ATI
Radeon 9000 64MB.

Nathan.
Herbert Kleebauer
2008-02-01 09:08:09 UTC
Permalink
Post by //\\\\o//\\\\annabee <"Ubuntu for ever">
Only drawback is I now have to start using NASM for coding.
You don't have to use NASM for coding. In opposite to Windows,
Linux comes with a pre installed C compiler. Who would use a bike
if he get a Porsche for free. And if you really need to drive to
a location which can't be reached with the Porsche, then there
is always GAS in the trunk. And GAS has a much better syntax than
any of the existing Intel like assemblers.
Post by //\\\\o//\\\\annabee <"Ubuntu for ever">
I see no longer any reason to use windows.
Then put your eyeglasses on. You don't "use" the OS. The OS
is needed to execute your applications. So, which OS you use
depends for what OS the application you want to use is
written. And in most cases this is Windows.
//\\\\o//\\\\annabee <"Ubuntu for ever">
2008-02-01 11:18:10 UTC
Permalink
På Fri, 01 Feb 2008 10:08:09 +0100, skrev Herbert Kleebauer
Post by Herbert Kleebauer
Post by //\\\\o//\\\\annabee <"Ubuntu for ever">
Only drawback is I now have to start using NASM for coding.
You don't have to use NASM for coding. In opposite to Windows,
Linux comes with a pre installed C compiler. Who would use a bike
if he get a Porsche for free.
And if you really need to drive to
a location which can't be reached with the Porsche, then there
is always GAS in the trunk.
And GAS has a much better syntax than
any of the existing Intel like assemblers.
Useless for coding anything more then a routine now and then. Cannot code
a complete app in that thing. What you __confess__ to btw, when you say
you prefer C. Cannot become one with that syntax and be creative. You are
just provoking, because you know damn well that RosAsm is the only
assembler worthy coding apps with. :)
Post by Herbert Kleebauer
Post by //\\\\o//\\\\annabee <"Ubuntu for ever">
I see no longer any reason to use windows.
Then put your eyeglasses on. You don't "use" the OS. The OS
is needed to execute your applications. So, which OS you use
depends for what OS the application you want to use is
written. And in most cases this is Windows.
I use an OS for the fun of it, for reading documents, for experimenting
with technology and for learning, for watching movies, listening to music,
audio and video podcasts, and audiobooks. And for chatting and searching
the web. This is also what 90% of user do.

So they do not need windows anymore, either.

Because all of this is available for free in Linux, and the one disto I
have does this many times more efficient then windows. But it costs and
arm and a leg if you do it with windows. Ubuntu is free, and it promises
to remain free. And the speed it is evolving at is terrific. By the end of
this decade, even Bill Gates will prefer Linux.

:)
Spam Killer
2008-02-01 11:44:46 UTC
Permalink
Post by Herbert Kleebauer
You don't have to use NASM for coding. In opposite to Windows,
Linux comes with a pre installed C compiler. Who would use a bike
if he get a Porsche for free.
It is pretty obvious, that you come to this conclusion just because
you limit yourself to the use of windela only, and don't even look at
what is available for assembly.

Yes if everyone would *have to* use windela, they would use the
"Volkswagen" C (a much better comparison), and not the Ferrari
Assembly, or more likely would write their own Assemblers.

I don't know what IDEs are available for Linux, but in Windows those
who do use Assembly, either use RosAsm with its integrated IDE, or
RadAsm which is a great IDE configurable for all Assemblers around,
where you can add Menus, Dialog Boxes or any other Resource very
easily to your Assembly project, and nicely manage your source files.

If you'd bother to take a look at RadAsm, you would not make that
absurd statement again!

With such a Programming environment, who would use a Volkswagen when
he gets a Ferrari for free!
--
wfz
Herbert Kleebauer
2008-02-01 14:09:02 UTC
Permalink
Post by Spam Killer
If you'd bother to take a look at RadAsm, you would not make that
absurd statement again!
With such a Programming environment, who would use a Volkswagen when
he gets a Ferrari for free!
To say it with Betov's words: show me your applications written in assembly!
Spam Killer
2008-02-01 16:02:36 UTC
Permalink
Post by Herbert Kleebauer
To say it with Betov's words: show me your applications written in assembly!
Most are tailored for my personal use and wouldn't be useful for you,
but I can mail you (I don't have a web site) an example of a more
generally useful one, just yell!

Where are your applications written in C?
--
wfz
Herbert Kleebauer
2008-02-01 19:40:16 UTC
Permalink
Post by Spam Killer
Post by Herbert Kleebauer
To say it with Betov's words: show me your applications written in assembly!
Most are tailored for my personal use and wouldn't be useful for you,
but I can mail you (I don't have a web site) an example of a more
generally useful one, just yell!
I'm not interested in the code but only in the information
which type of application (and maybe it's size) you have
written in assembly. And I also would be interested whether
there is at all an application (beside self compiling assemblers)
which was written in assembly language in the last 10 years.
Post by Spam Killer
Where are your applications written in C?
I never wrote an application, neither in C nor assembly.
Spam Killer
2008-02-01 20:36:50 UTC
Permalink
Post by Herbert Kleebauer
I'm not interested in the code but only in the information
which type of application (and maybe it's size) you have
written in assembly.
My longest is an ATARI 800XL emulator. It's overall size is 248,220
bytes, but I "incbin", a complete disk image of an Atari, which is
133,120 bytes, and also "incbin" an image of the Atari Memory, which
makes for another 65536 bytes, so this has to be extracted from the
overall size to get the length of the pure code. The object file to
handle the 6502 Instructions is 14,274 bytes, the module that handles
the interrupts is 12,127 bytes, and the module for the Video emulation
is 1,475 bytes.
Post by Herbert Kleebauer
And I also would be interested whether
there is at all an application (beside self compiling assemblers)
which was written in assembly language in the last 10 years.
If you do take a look at RadAsm, download the ResEd package too. It is
written in Assembly Language, and I'm pretty sure if you look around
at Programmers Heaven or some similar sites you will find many apps
written in Assembly.
Post by Herbert Kleebauer
Post by Spam Killer
Where are your applications written in C?
I never wrote an application, neither in C nor assembly.
That doesn't seem to be the best foundation to tell newbies, that
nobody uses Assembly Language to write Applications. :-)
--
wfz
Betov
2008-02-02 08:18:23 UTC
Permalink
Post by Herbert Kleebauer
I never wrote an application, neither in C nor assembly.
Arghhhh!!!... Ghhhhh!!!... Hhhhh!!!...


Betov.

< http://rosasm.org >
Herbert Kleebauer
2008-02-02 14:56:51 UTC
Permalink
Post by Betov
Post by Herbert Kleebauer
I never wrote an application, neither in C nor assembly.
Arghhhh!!!... Ghhhhh!!!... Hhhhh!!!...
What's the problem? Yes, I never wrote any application in
any language, but looked at different languages and did some
experiments with them. And I think this qualifies me more to
say which language is a proper tool for a given task than
you. Yes, you have written "tons of lines of code", but all in the
in the same language and you refuse to even look at some
alternative languages (or are you already recoding Rosasm
with GCC?).
Ros
2008-02-03 07:54:47 UTC
Permalink
Post by Herbert Kleebauer
Post by Betov
Post by Herbert Kleebauer
I never wrote an application, neither in C nor assembly.
Arghhhh!!!... Ghhhhh!!!... Hhhhh!!!...
What's the problem? Yes, I never wrote any application in
any language, but looked at different languages and did some
experiments with them. And I think this qualifies me more to
say which language is a proper tool for a given task than
you. Yes, you have written "tons of lines of code", but all in the
in the same language and you refuse to even look at some
alternative languages (or are you already recoding Rosasm
with GCC?).
but seems many fail to understand that
+ in the assembly language (that language that exist 1-1 function from the
sybols in the paper to cpu instructions) should have to use indentation and
more
instruction for line
and for doing this the apparance of instructions have to be like "a=b"
"a^=b" concise

+ the use of assembly language + indentation has many applications
for example input output functions, drivers, math functions and where
there is the need of
speed

+ probabily that concise assembly language is 100 time easy and
powerfull of the assembly language that you all write down

than for the rest i agree: for now nobody invent a "scalare" language
so we have to choiche the best of all language we know
in my case it is that modify assembly and the
part that has subject like "struct, operator, classes" of C++
Saluti
Terence
2008-02-11 02:53:55 UTC
Permalink
Post by Betov
Post by Herbert Kleebauer
I never wrote an application, neither in C nor assembly.
Arghhhh!!!... Ghhhhh!!!... Hhhhh!!!...
Betov.
Hey! Herbert writes some GOOD applications, just that are not in "our"
assembly languages, but his own!

He treats all registers AX,BX.CX.DX,SI,DI,etc as r0 up to r7, I think,
in sequence, plus sp, gs and fs and segment registers as s1,s2,s3. He
uses flat architecture and 32-bit mode.

All transfers are 'move.s source, destination',
Where all operand sizes "s" are defined as .b, .w, .d postfixes on the
command instruction.
All branches are "b condition label",
- you get the idea - there are VERY FEW mnemonics to learn.
NOT easy to read but it seems to work for him!

(I had to write a translator since I understand ASM better).
//\\\\o//\\\\annabee
2008-02-08 04:17:27 UTC
Permalink
På Fri, 01 Feb 2008 12:44:46 +0100, skrev Spam Killer
<***@spamtrap.com>:

just a minor spelling error spam...
Post by Spam Killer
I don't know what IDEs are available for Linux, but in Windows those
who do use Assembly, either use RosAsm with its integrated IDE, or
RadAsm which is a OUTDEgreatED IDE configurable for all Assemblers
around,
Otherwise I agree.
:)


--
Greg
2008-02-01 15:59:15 UTC
Permalink
i also got a free copy of Ubuntu 7 , i have not installed it though, i
am still looking for a good virtual software so that i can have
windows and linux on one machine sooner
//\\\\o//\\\\annabee
2008-02-01 18:27:47 UTC
Permalink
Post by Greg
i also got a free copy of Ubuntu 7 , i have not installed it though, i
am still looking for a good virtual software so that i can have
windows and linux on one machine sooner
Linux will gently install beside windows, using GruB. And it is smart
enough to be able to
even resize a partition to fit itself on your PC.
--
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
Esra Sdrawkcab
2008-02-02 08:43:20 UTC
Permalink
Post by Greg
i also got a free copy of Ubuntu 7 , i have not installed it though, i
am still looking for a good virtual software so that i can have
windows and linux on one machine sooner
Well there's at least 4 such free ones. Bochs, QEMU, VMware player, MS
VPC. Give 'em a try. Ob argument: I quite like the Microsoft Virtual PC.
Betov
2008-02-02 08:32:38 UTC
Permalink
//\\\\o//\\\\annabee <"Ubuntu for ever"> écrivait news:op.t5s047e2nghux9
Post by //\\\\o//\\\\annabee <"Ubuntu for ever">
I finally got a successful DVD with Ubunty 7.10 (Gutzy)
??? Why not earlier ???

:))

Well, i am not yet fully sure that Linux will kick MicroSoft
out. I have decided to wait one year to make sure of not
working, one another time, for absolutely nothing (nothing
anyway, because nobody will ever admit any fact, but, at least,
i would like it to exist for our unsignificant minority...).

If Ubuntu is on the road of success, I estimate it should be
around 5% of the market-share around the end of this year.

Last news from France: A main socialist leader (Le Maire de
Paris), just signed up an agreement with MicroSoft, while
the french police is switching entirely to Ubuntu - 70,000
units -)... :]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]


Betov.

< http://rosasm.org >
//\\\\o//\\\\annabee
2008-02-02 09:58:11 UTC
Permalink
Post by Betov
//\\\\o//\\\\annabee <"Ubuntu for ever"> écrivait news:op.t5s047e2nghux9
Post by //\\\\o//\\\\annabee <"Ubuntu for ever">
I finally got a successful DVD with Ubunty 7.10 (Gutzy)
??? Why not earlier ???
:))
Because I was not really optimistic about the result so I did not try
harder.
I just now tried installing it on my other box, and that did not work at
all.
It works without a hick on the amd64, 4 days I belive, and not as much as
one problem.

(yes one, the flashplayer refused to find Opera, but works with firefox).

(good to see you back btw).
Post by Betov
Well, i am not yet fully sure that Linux will kick MicroSoft
out. I have decided to wait one year to make sure of not
working, one another time, for absolutely nothing (nothing
anyway, because nobody will ever admit any fact, but, at least,
i would like it to exist for our unsignificant minority...).
If Ubuntu is on the road of success, I estimate it should be
around 5% of the market-share around the end of this year.
I hear more and more about it.
How do you measure marked share for a free OS?

( Browsing from Ubuntu, is for some reason faster from my point.
I allways had many hangtimes (waittimes) with the windows browser
when I loaded a page, but now it rushes through like a warm knife in butter
).
Post by Betov
Last news from France: A main socialist leader (Le Maire de
Paris), just signed up an agreement with MicroSoft, while
the french police is switching entirely to Ubuntu - 70,000
units -)... :]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
It feels like the Truman show.
Post by Betov
Betov.
< http://rosasm.org >
--
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
Betov
2008-02-02 10:29:52 UTC
Permalink
Post by //\\\\o//\\\\annabee
How do you measure marked share for a free OS?
"They" provide statistics based on the numbers of hits recorded
on some Web Pages, and can see which OS the readers use. Utterly
biaized, of course, but comparing with on same base, will give
a proportional idea about the progression. The generaly given
proportion is around 1% actually (on desktops - the states'
admistrations, and servers being another story -).

Right now, seing the MicroSoft panick state (so absurd attempt of
buying Yahoo! in hope of resisting to the Google and to the Open
Sources progresses), i tend to be a bit more optimist.


Betov.

< http://rosasm.org >
//\\\\o//\\\\annabee
2008-02-02 10:51:10 UTC
Permalink
Post by Betov
Post by //\\\\o//\\\\annabee
How do you measure marked share for a free OS?
"They" provide statistics based on the numbers of hits recorded
on some Web Pages, and can see which OS the readers use. Utterly
biaized, of course, but comparing with on same base, will give
a proportional idea about the progression. The generaly given
proportion is around 1% actually (on desktops - the states'
admistrations, and servers being another story -).
Right now, seing the MicroSoft panick state (so absurd attempt of
buying Yahoo! in hope of resisting to the Google and to the Open
Sources progresses), i tend to be a bit more optimist.
Some guy on radio indicated he belived it was more a sign of Microsoft
reconfiguring more towards a mediacorportation, and that they are not as
conserned with the OS side of things anymore. What do you think?
Post by Betov
Betov.
< http://rosasm.org >
--
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
Betov
2008-02-02 11:39:36 UTC
Permalink
Post by //\\\\o//\\\\annabee
Post by Betov
Right now, seing the MicroSoft panick state (so absurd attempt of
buying Yahoo! in hope of resisting to the Google and to the Open
Sources progresses), i tend to be a bit more optimist.
Some guy on radio indicated he belived it was more a sign of Microsoft
reconfiguring more towards a mediacorportation, and that they are not
as conserned with the OS side of things anymore. What do you think?
Saying that "they are no more concerned with the OS side" is saying
that they know that the game is over.

Strategicaly, the only thing they could do about "mediacorportation"
would be to buy Google. Unfortunately for them, this does not seem
a possible thing.

Trying to buy Yahoo! is just as stupid as what they did recently,
when selling a Linux (Suse) to Renault (the french cars), (as a
result of their agreement with Novell), or giving away Windows to
some african country (after corruption) to prevent Mandriva from
taking a school contract, and so on. Two dead horses cnnot make
a winner.

I think that the real problem comes with the oncoming of low-cost
PCs: Under 300 Euros, it is evidently no more possible to deliver
a 100 Euros OS, and giving it for free, just to keep a vanishing
market place, will never do, IMO.

Now, are they in a position that could make them a mediacorp? Given
their terrific reputation, i suppose not. I may be wrong, there,
(people are so passive...), but, anyway, this area is already taken
by many actors, who do not wish to get under their control.

When retiring, recently, Billy the Shark was as fully right as he
was, when he said "The GPL is anti-american".

:)

Betov.

< http://rosasm.org >
Herbert Kleebauer
2008-02-02 14:55:55 UTC
Permalink
Post by Betov
Saying that "they are no more concerned with the OS side" is saying
that they know that the game is over.
Yes, over and won. Not over and lost.
Post by Betov
Strategicaly, the only thing they could do about "mediacorportation"
would be to buy Google. Unfortunately for them, this does not seem
a possible thing.
Google will go the same way as Netscape went when Microsoft decides
to enter the arena. Everything Google owns becomes worthless every
few years (the computer hardware and the collected information). The
only long-term value is then name "Google". But I think the name
"Microsoft" isn't worth less.
Post by Betov
I think that the real problem comes with the oncoming of low-cost
PCs: Under 300 Euros, it is evidently no more possible to deliver
a 100 Euros OS, and giving it for free, just to keep a vanishing
market place, will never do, IMO.
There are also cars for under 10000 Euros but most people buy
one for over 30000 even if they have to do this on credit. And
nobody want's to tell others that he just bought a poor man's
computer with a free OS. You only get what you pay for and if it
doesn't cost anything, it isn't worth anything. And as long as
this opinion doesn't change, there is no problem for MS, Apple
or Rolex.
Betov
2008-02-02 19:40:41 UTC
Permalink
Post by Herbert Kleebauer
There are also cars for under 10000 Euros but most people buy
one for over 30000 even if they have to do this on credit. And
nobody want's to tell others that he just bought a poor man's
computer with a free OS. You only get what you pay for and if it
doesn't cost anything, it isn't worth anything. And as long as
this opinion doesn't change, there is no problem for MS, Apple
or Rolex.
Maybe. Time will tell... The reason why I wait one more year.


Betov.

< http://rosasm.org >
//\\\\o//\\\\annabee
2008-02-02 20:06:33 UTC
Permalink
Post by Herbert Kleebauer
Post by Betov
Saying that "they are no more concerned with the OS side" is saying
that they know that the game is over.
Yes, over and won. Not over and lost.
Post by Betov
Strategicaly, the only thing they could do about "mediacorportation"
would be to buy Google. Unfortunately for them, this does not seem
a possible thing.
Google will go the same way as Netscape went when Microsoft decides
to enter the arena. Everything Google owns becomes worthless every
few years (the computer hardware and the collected information). The
only long-term value is then name "Google". But I think the name
"Microsoft" isn't worth less.
Post by Betov
I think that the real problem comes with the oncoming of low-cost
PCs: Under 300 Euros, it is evidently no more possible to deliver
a 100 Euros OS, and giving it for free, just to keep a vanishing
market place, will never do, IMO.
There are also cars for under 10000 Euros but most people buy
one for over 30000 even if they have to do this on credit. And
nobody want's to tell others that he just bought a poor man's
computer with a free OS. You only get what you pay for and if it
doesn't cost anything, it isn't worth anything. And as long as
this opinion doesn't change, there is no problem for MS, Apple
or Rolex.
To some extent you may be right here, as seen from the consumer side. But
seen from the development side, the issue is completely reversed, A free
library has immense value. Next is of course that once the better OS is
free, then ppl will demand what is best. (not what is more expensive).
Rolex dont sell only because it is expensive, neither does Porsche or
Mercedes-Benz. They sell also because of quality (or perceived quality)
and certainly because of beauty. Allways when you have higher quality, and
a unique product you can sell it at a high price. But you cannot sell shit
that is not unique at a high price. You are incorrect if you think the OS
war is won, by microsoft. MS is a commersial big company, which means,
even it is rich it is very woundrable to competition, because it has
shareholders to keep happy. Linux now (or soon) have the better product at
a price noone can match. If captalism works, this is the certain death of
commersial consumer OS, espesially when the quality is as low as the MS
os, whos "quality" only holds true for propaganda, but that in reality is
a undecent hack, and contain millions of line of code to make you
physically sick. An OS that is as safe as commiting suiside. And Os that
spy on the customer. An OS that cost more after the initial purchace. An
OS that was never out of Beta. An OS that is utterly insecure and that a
hacker can defeat in 5 minutes after it is fully patched, by sending you
an email, and that has more security updates than you can count or control
in a lifetime. Vista has been broken many times allready. This is a LOW
quality os. It is also inefficient, and duck stupid in usage. You have to
work hard to make something as bad as this OS. So to compare it to
highquality consumer products is absurd. Windows is an _extremly_ low
quality product.
--
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
santosh
2008-02-08 01:57:17 UTC
Permalink
//\\\\o//\\\\annabee wrote:

As for Vista what I find particularly galling is the unholy combination
of outrageous demands on the hardware and the user's pocket and /very/
poor overall quality of the OS. Even XP is miles better. MS' users (of
whom I count myself out) should boycott Vista and stay put with XP,
forcing MS to extend the latter's life or come with a better product
(doubtful).
//\\\\o//\\\\annabee
2008-02-08 04:03:11 UTC
Permalink
Post by santosh
As for Vista what I find particularly galling is the unholy combination
of outrageous demands on the hardware and the user's pocket and /very/
poor overall quality of the OS. Even XP is miles better. MS' users (of
whom I count myself out) should boycott Vista and stay put with XP,
forcing MS to extend the latter's life or come with a better product
(doubtful).
Agreed.

But yesterday I experienced one very sad issue with Ubuntu. I was renaming
a directoy containing 6 giga of data, when the directory just disappeared.
It was a directory on a NTFS drive. This was, to say the least,
discouraging.
(I searched around for the file, by several methods, but the entire
directory was just gone - any advice is appreciated)

Now I will be very afraid of using Linux. (Espesially with a NTFS drive).
This is extremly sad, because I found that Linux is otherwise very
satisfying.

For instance, it seems Linux is even able to perform copies of large
files, much faster then windows NT. I also now have gotten several
interessting games to run with it, and I really like the way it works
otherwise. I will notify the GNU Linux / Ubuntu team about this instance,
but I find it hard to belive they havent seen this bug before. Editing
filenames with the Ubuntu "explorer" cannot be that uncommon ?

I do not even know what I did wrong. When I edit a filename I use a
combination of mouse and keyboard, and since I was working with several
files, I was working kind of fast. Maybe I mistyped, whatever I did, the
entire directory suddenly just was gone.

--
Frank Kotler
2008-02-08 04:59:09 UTC
Permalink
//\\o//\\annabee wrote:

...
Post by //\\\\o//\\\\annabee
But yesterday I experienced one very sad issue with Ubuntu. I was
renaming a directoy containing 6 giga of data, when the directory just
disappeared. It was a directory on a NTFS drive. This was, to say the
least, discouraging.
Bummer! The version I'm using treats NTFS partitions as readonly, so
writing to 'em is relatively "new", and could be buggy, still.
Post by //\\\\o//\\\\annabee
(I searched around for the file, by several methods, but the entire
directory was just gone - any advice is appreciated)
Unlikely the data is actually "gone", but if you can't access it, it
might as well be. I suppose you know (everybody using Linux is supposed
to "just know" certain things) that a file - including directories -
beginning with a '.' is considered "hidden". An "explorer" may or may
not show 'em - should be configurable. "ls" won't show "hidden" files
unless the "-a" switch is given. That's about the only "hint" I can
think of...

...
Post by //\\\\o//\\\\annabee
I do not even know what I did wrong. When I edit a filename I use a
combination of mouse and keyboard, and since I was working with several
files, I was working kind of fast. Maybe I mistyped, whatever I did,
the entire directory suddenly just was gone.
Sounds similar to the way I told Linux "yes, I'm sure" I wanted to
format the wrong damn partition. (but the whole partition was only 4
Gigs). Unix "gives you enough rope to shoot yourself in the foot", so
typos can do a *lot* of damage! "rm * .o" vs "rm *.o", for example. (a
good argument for "monofile", perhaps :)

Unless it *is* a bug, you probably moved it *somewhere* - possibly
collapsing an entire subdirectory into a single file. One place I've
accidentally moved files/directories to is "/". (also "~", if that isn't
where you intended it to go) Keep looking, you may be able to recover
it. Good luck!

Best,
Frank
//\\\\o//\\\\annabee
2008-02-08 06:55:19 UTC
Permalink
På Fri, 08 Feb 2008 05:59:09 +0100, skrev Frank Kotler
Post by Frank Kotler
...
Post by //\\\\o//\\\\annabee
But yesterday I experienced one very sad issue with Ubuntu. I was
renaming a directoy containing 6 giga of data, when the directory just
disappeared. It was a directory on a NTFS drive. This was, to say the
least, discouraging.
Bummer! The version I'm using treats NTFS partitions as readonly, so
writing to 'em is relatively "new", and could be buggy, still.
Post by //\\\\o//\\\\annabee
(I searched around for the file, by several methods, but the entire
directory was just gone - any advice is appreciated)
Unlikely the data is actually "gone", but if you can't access it, it
might as well be. I suppose you know (everybody using Linux is supposed
to "just know" certain things) that a file - including directories -
beginning with a '.' is considered "hidden". An "explorer" may or may
not show 'em - should be configurable. "ls" won't show "hidden" files
unless the "-a" switch is given. That's about the only "hint" I can
think of...
...
Post by //\\\\o//\\\\annabee
I do not even know what I did wrong. When I edit a filename I use a
combination of mouse and keyboard, and since I was working with
several files, I was working kind of fast. Maybe I mistyped, whatever
I did, the entire directory suddenly just was gone.
Sounds similar to the way I told Linux "yes, I'm sure" I wanted to
format the wrong damn partition. (but the whole partition was only 4
Gigs). Unix "gives you enough rope to shoot yourself in the foot", so
typos can do a *lot* of damage! "rm * .o" vs "rm *.o", for example. (a
good argument for "monofile", perhaps :)
Unless it *is* a bug, you probably moved it *somewhere* - possibly
collapsing an entire subdirectory into a single file. One place I've
accidentally moved files/directories to is "/". (also "~", if that isn't
where you intended it to go) Keep looking, you may be able to recover
it. Good luck!
Thanks. I will keep looking, I searched for files > 1giga, to see if it
was listed, but no luck so far. I keep in mind to not work directly with
NTFS from the linux side.


It surprices me why not Windows and Linux could share this information
amoung themselfes. Having two diffrent OS work well for all the data in
the harddrive seem to me just a good thing... Would speak well of them
both, imo... As it now is, Linux have an advantage here, and sooner or
later will turn it into a significant advantage, an ultimate weapon
even... a peacemaker... Microsoft doesnt seem to realize that Linux is
making them shoot themselfes in the foot. MicroSoft are simply commiting
long term suiside with holding back information. The IQ level at redmond
must be very low I gather. It is sad. Windows giving away their advantage
as easy as that?

I figure M$ has only one chance now. They MUST become Free Software. Its
either that or a slow and ardeous death. Dont they see this?? Why are they
not realizing this _obvious_ fact???? It has been painfully obvious for
_years_ I wish I could go there and lecture their teams. I would fucking
give them a earwarming lesson they would not easily forget.

an OS is NESSESARY INFRASTRUCTURE. Nothing else then this. You cannot tax
the infrastructure. In order todo that you need to be the only supplier,
and noone will accept that in the long run. Laws have been established in
past times to avoid such things. Evidently, nomatter the advantage M$ now
has (which is allready threatened) sooner or later they _will_ loose this
fight, and the only way to come out on top, is to release all the
sourcecode, under a free licence, and then they can still earn money by
supplying _NOVEL_ software onto this infrastructure, while helping forming
it, (AND having free hands and WILLING hands to help out) instead of
having to end up write software also for all the competing plattforms.
Because noone will want an OS that costs an arm and a leg, and suck as
much as windows. I have no real problems with windows, other than it is an
insecure closed plattform. Insecurity and closed source, goes hand in
hand. Fewer eyes to see, and only the crackers have the real knowledge and
time to keep up with finding those insequrities.

When will Redmond start to wake up? Dont they realize how extremly
woundrable they are? Once the alternative OSes truely exists, and can take
over all the burden, M6 will drop on wallstreet like a stone, and it will
be over in a matter of weeks or months. They be carrying out furniture
from the buildings. They got to remake the licences into Free Software
now, or good help you Redmond. Else You wount survive this! Because in the
long run, we will not accept anything but complete visibility of our so
important infrastructure. This is about Trust, and nobody can trust an
infrastructure that isnt 100% visible. Ordinary people also evolve, they
pick up the pieces eventually, and they will understand this simple
equation finally. You have no choise other then to comply. Comply with the
Free software foundation or DIE!

Comply or die, Redmond.
Post by Frank Kotler
Best,
Frank
--
santosh
2008-02-08 10:12:44 UTC
Permalink
På Fri, 08 Feb 2008 02:57:17 +0100, skrev santosh
Post by santosh
As for Vista what I find particularly galling is the unholy
combination of outrageous demands on the hardware and the user's
pocket and /very/ poor overall quality of the OS. Even XP is miles
better. MS' users (of whom I count myself out) should boycott Vista
and stay put with XP, forcing MS to extend the latter's life or come
with a better product (doubtful).
Agreed.
But yesterday I experienced one very sad issue with Ubuntu. I was
renaming a directoy containing 6 giga of data, when the directory just
disappeared. It was a directory on a NTFS drive. This was, to say the
least, discouraging.
(I searched around for the file, by several methods, but the entire
directory was just gone - any advice is appreciated)
Now I will be very afraid of using Linux. (Espesially with a NTFS
drive). This is extremly sad, because I found that Linux is otherwise
very satisfying.
If I use NTFS, I use Windows.
Only Windows knows all the secrets of MS's proprietary NTFS.
Using NTFS from Linux, especially in r/w mode is dangerous.

Why don't boot into Windows and let it run "chkdsk". It might reclaim
the lost directory structure. Also why don't you download a NTFS repair
program from the Net and run it. Be sure to get a well known one to
avoid viruses and trojan horses.

<snip>
//\\\\o//\\\\annabee
2008-02-08 12:15:15 UTC
Permalink
Post by santosh
På Fri, 08 Feb 2008 02:57:17 +0100, skrev santosh
Post by santosh
As for Vista what I find particularly galling is the unholy
combination of outrageous demands on the hardware and the user's
pocket and /very/ poor overall quality of the OS. Even XP is miles
better. MS' users (of whom I count myself out) should boycott Vista
and stay put with XP, forcing MS to extend the latter's life or come
with a better product (doubtful).
Agreed.
But yesterday I experienced one very sad issue with Ubuntu. I was
renaming a directoy containing 6 giga of data, when the directory just
disappeared. It was a directory on a NTFS drive. This was, to say the
least, discouraging.
(I searched around for the file, by several methods, but the entire
directory was just gone - any advice is appreciated)
Now I will be very afraid of using Linux. (Espesially with a NTFS
drive). This is extremly sad, because I found that Linux is otherwise
very satisfying.
If I use NTFS, I use Windows.
Only Windows knows all the secrets of MS's proprietary NTFS.
Does Linux offer some tools for converting the NTFS system?
I havent found any yet. I dont need Windows for those files anymore.
Linux will anyway be my prefered media plattform of choise for the
forseeable future.
It is now simply working too good to let it slip.
I can not imagine to want to go back unless some serious issues arise.

mayby I should mount some partition, and copy the content over to a "real"
Linux parition. What is considered the best of those other formats?
Post by santosh
Using NTFS from Linux, especially in r/w mode is dangerous.
It has been working well for a week before this happend.

And I got no warnings about NTFS.
The rest of Linux is also working very well upto this point. Only minor
forgiveable
glitches. I have learned a few commands even... NASM is also installed, and
a range of other apps, just that I have reservations about starting with
NASM until I
get the 64bit linux working. I may even end up starting with a hexeditor
this time.
Post by santosh
Why don't boot into Windows and let it run "chkdsk". It might reclaim
the lost directory structure.
First I like to try other things, but havent yet had time.
Post by santosh
Also why don't you download a NTFS repair
program from the Net and run it. Be sure to get a well known one to
avoid viruses and trojan horses.
I have but not yet tested it. Thanks.
Post by santosh
<snip>
--
Herbert Kleebauer
2008-02-08 13:22:03 UTC
Permalink
Post by //\\\\o//\\\\annabee
I have learned a few commands even...
The most important command is: "mc"
Post by //\\\\o//\\\\annabee
I may even end up starting with a hexeditor this time.
Yes, much easier than in Windows, nearly as simple as in DOS com files:



;===========================================================================
seg32
@=$08048000
code_offset=@@
code_addr:
;--------------------------- ELF header -----------------------------------
dc.l $464c457f,$00010101,0,0,$00030002,1,main,$34,0,0,$00200034,2,0
dc.l 1,code_offset,code_addr,code_addr,code_filez,code_memsz,5,4096
dc.l 1,data_offset,data_addr,data_addr,data_filez,data_memsz,6,4096
;--------------------------- code ------------------------------------------

main: move.l #1,r3 ; stdout
move.l #text1,r2
move.l #text1_l,r1
move.l #4,r0 ; write
trap #$80
move.l #1,r3 ; return code
move.l #1,r0 ; exit
trap #$80

;--------------------------- constant data ---------------------------------
text1: dc.b 10,10,"hello world",10,10
text1_l=@-text1
;---------------------------------------------------------------------------
code_filez=@@-code_offset
code_memsz= @-code_addr
even 4
@=(@+4095)/4096*4096+(@@\4096)
data_offset=@@
data_addr:
;--------------------------- initialized data ------------------------------

;--------------------------- uninitialized data ----------------------------

;---------------------------------------------------------------------------
data_filez=@@-data_offset
data_memsz= @-data_addr
;===========================================================================







And the listing for your hex editor:

;===========================================================================
seg32
@=$08048000
code_offset=@@
code_addr:
;--------------------------- ELF header -----------------------------------
00000000: 08048000: 464c457f 00010101
00000008: 08048008: 00000000 00000000
00000010: 08048010: 00030002 00000001
00000018: 08048018: 08048074 00000034
00000020: 08048020: 00000000 00000000
00000028: 08048028: 00200034 00000002
00000030: 08048030: 00000000 dc.l $464c457f,$00010101,0,0,$00030002,1,main,$34,0,0,$00200034,2,0
00000034: 08048034: 00000001 00000000
0000003c: 0804803c: 08048000 08048000
00000044: 08048044: 000000a5 000000a5
0000004c: 0804804c: 00000005 00001000 dc.l 1,code_offset,code_addr,code_addr,code_filez,code_memsz,5,4096
00000054: 08048054: 00000001 000000a8
0000005c: 0804805c: 080490a8 080490a8
00000064: 08048064: 00000000 00000000
0000006c: 0804806c: 00000006 00001000 dc.l 1,data_offset,data_addr,data_addr,data_filez,data_memsz,6,4096
;--------------------------- code ------------------------------------------

00000074: 08048074: bb 00000001 main: move.l #1,r3 ; stdout
00000079: 08048079: b9 08048096 move.l #text1,r2
0000007e: 0804807e: ba 0000000f move.l #text1_l,r1
00000083: 08048083: b8 00000004 move.l #4,r0 ; write
00000088: 08048088: cd 80 trap #$80
0000008a: 0804808a: bb 00000001 move.l #1,r3 ; return code
0000008f: 0804808f: b8 00000001 move.l #1,r0 ; exit
00000094: 08048094: cd 80 trap #$80

;--------------------------- constant data ---------------------------------
00000096: 08048096: 0a 0a 68 65 6c 6c
0000009c: 0804809c: 6f 20 77 6f 72 6c
000000a2: 080480a2: 64 0a 0a text1: dc.b 10,10,"hello world",10,10
text1_l=@-text1
;---------------------------------------------------------------------------

code_filez=@@-code_offset
code_memsz= @-code_addr
000000a5: 080480a5: 00 00 00 even 4
@=(@+4095)/4096*4096+(@@\4096)
data_offset=@@
data_addr:

;--------------------------- initialized data ------------------------------


;--------------------------- uninitialized data ----------------------------


;---------------------------------------------------------------------------

data_filez=@@-data_offset
data_memsz= @-data_addr

;===========================================================================


code_offset.... 00000000 code_addr...... 08048000 main........... 08048074
text1.......... 08048096 text1_l........ 0000000f code_filez..... 000000a5
code_memsz..... 000000a5 data_offset.... 000000a8 data_addr...... 080490a8
data_filez..... 00000000 data_memsz..... 00000000
//\\\\o//\\\\annabee
2008-02-08 16:05:45 UTC
Permalink
På Fri, 08 Feb 2008 14:22:03 +0100, skrev Herbert Kleebauer
Post by Herbert Kleebauer
Post by //\\\\o//\\\\annabee
I have learned a few commands even...
The most important command is: "mc"
Post by //\\\\o//\\\\annabee
I may even end up starting with a hexeditor this time.
I will give your code a test tomorrow.
I am now happily "OutThere" :)
Post by Herbert Kleebauer
;===========================================================================
seg32
@=$08048000
;--------------------------- ELF header
-----------------------------------
dc.l
$464c457f,$00010101,0,0,$00030002,1,main,$34,0,0,$00200034,2,0
dc.l
1,code_offset,code_addr,code_addr,code_filez,code_memsz,5,4096
dc.l
1,data_offset,data_addr,data_addr,data_filez,data_memsz,6,4096
;--------------------------- code
------------------------------------------
main: move.l #1,r3 ; stdout
move.l #text1,r2
move.l #text1_l,r1
move.l #4,r0 ; write
trap #$80
move.l #1,r3 ; return code
move.l #1,r0 ; exit
trap #$80
;--------------------------- constant data
---------------------------------
text1: dc.b 10,10,"hello world",10,10
;---------------------------------------------------------------------------
even 4
@=(@+4095)/4096*4096+(@@\4096)
;--------------------------- initialized data
------------------------------
;--------------------------- uninitialized data
----------------------------
;---------------------------------------------------------------------------
;===========================================================================
;===========================================================================
seg32
@=$08048000
;--------------------------- ELF
header -----------------------------------
00000000: 08048000: 464c457f 00010101
00000008: 08048008: 00000000 00000000
00000010: 08048010: 00030002 00000001
00000018: 08048018: 08048074 00000034
00000020: 08048020: 00000000 00000000
00000028: 08048028: 00200034 00000002
00000030: 08048030: 00000000 dc.l
$464c457f,$00010101,0,0,$00030002,1,main,$34,0,0,$00200034,2,0
00000034: 08048034: 00000001 00000000
0000003c: 0804803c: 08048000 08048000
00000044: 08048044: 000000a5 000000a5
0000004c: 0804804c: 00000005 00001000 dc.l
1,code_offset,code_addr,code_addr,code_filez,code_memsz,5,4096
00000054: 08048054: 00000001 000000a8
0000005c: 0804805c: 080490a8 080490a8
00000064: 08048064: 00000000 00000000
0000006c: 0804806c: 00000006 00001000 dc.l
1,data_offset,data_addr,data_addr,data_filez,data_memsz,6,4096
;---------------------------
code ------------------------------------------
00000074: 08048074: bb 00000001 main: move.l #1,r3
; stdout
00000079: 08048079: b9 08048096 move.l #text1,r2
0000007e: 0804807e: ba 0000000f move.l #text1_l,r1
00000083: 08048083: b8 00000004 move.l #4,r0
; write
00000088: 08048088: cd 80 trap #$80
0000008a: 0804808a: bb 00000001 move.l #1,r3
; return code
0000008f: 0804808f: b8 00000001 move.l #1,r0
; exit
00000094: 08048094: cd 80 trap #$80
;---------------------------
constant data ---------------------------------
00000096: 08048096: 0a 0a 68 65 6c 6c
0000009c: 0804809c: 6f 20 77 6f 72 6c
000000a2: 080480a2: 64 0a 0a text1: dc.b 10,10,"hello world",10,10
;---------------------------------------------------------------------------
000000a5: 080480a5: 00 00 00 even 4
@=(@+4095)/4096*4096+(@@\4096)
;---------------------------
initialized data ------------------------------
;---------------------------
uninitialized data ----------------------------
;---------------------------------------------------------------------------
;===========================================================================
code_offset.... 00000000 code_addr...... 08048000 main........... 08048074
text1.......... 08048096 text1_l........ 0000000f code_filez..... 000000a5
code_memsz..... 000000a5 data_offset.... 000000a8 data_addr...... 080490a8
data_filez..... 00000000 data_memsz..... 00000000
--
Copying files on UBUNTU is much faster then on WinNT/2000
//\\\\o//\\\\annabee
2008-02-11 09:08:45 UTC
Permalink
Post by Herbert Kleebauer
Post by //\\\\o//\\\\annabee
I have learned a few commands even...
The most important command is: "mc"
I have tried installing it.
But I get some error : 111 connection refused on port 4001
(Have tried without firewall, and with a firewall rule).
Its a new error, that also comes with other installs now,
that did not exist previously....
Post by Herbert Kleebauer
Post by //\\\\o//\\\\annabee
I may even end up starting with a hexeditor this time.
Yes, much easier than in Windows, nearly as simple as in DOS com files=
;=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
Post by Herbert Kleebauer
seg32
@=3D$08048000
;--------------------------- ELF header =
-----------------------------------
dc.l =
$464c457f,$00010101,0,0,$00030002,1,main,$34,0,0,$00200034,2,0
dc.l =
1,code_offset,code_addr,code_addr,code_filez,code_memsz,5,4096
dc.l =
1,data_offset,data_addr,data_addr,data_filez,data_memsz,6,4096
;--------------------------- code =
------------------------------------------
main: move.l #1,r3 ; stdout
move.l #text1,r2
move.l #text1_l,r1
move.l #4,r0 ; write
trap #$80
move.l #1,r3 ; return code
move.l #1,r0 ; exit
trap #$80
;--------------------------- constant data =
---------------------------------
text1: dc.b 10,10,"hello world",10,10
;---------------------------------------------------------------------=
------
Post by Herbert Kleebauer
even 4
@=3D(@+4095)/4096*4096+(@@\4096)
;--------------------------- initialized data =
------------------------------
;--------------------------- uninitialized data =
----------------------------
;---------------------------------------------------------------------=
------
Post by Herbert Kleebauer
;=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
Post by Herbert Kleebauer
;=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Post by Herbert Kleebauer
seg32
@=3D$08048000
;--------------------------- E=
LF =
Post by Herbert Kleebauer
header -----------------------------------
00000000: 08048000: 464c457f 00010101
00000008: 08048008: 00000000 00000000
00000010: 08048010: 00030002 00000001
00000018: 08048018: 08048074 00000034
00000020: 08048020: 00000000 00000000
00000028: 08048028: 00200034 00000002
00000030: 08048030: 00000000 dc.l =
$464c457f,$00010101,0,0,$00030002,1,main,$34,0,0,$00200034,2,0
00000034: 08048034: 00000001 00000000
0000003c: 0804803c: 08048000 08048000
00000044: 08048044: 000000a5 000000a5
0000004c: 0804804c: 00000005 00001000 dc.l =
1,code_offset,code_addr,code_addr,code_filez,code_memsz,5,4096
00000054: 08048054: 00000001 000000a8
0000005c: 0804805c: 080490a8 080490a8
00000064: 08048064: 00000000 00000000
0000006c: 0804806c: 00000006 00001000 dc.l =
1,data_offset,data_addr,data_addr,data_filez,data_memsz,6,4096
;--------------------------- =
code ------------------------------------------
00000074: 08048074: bb 00000001 main: move.l #1,r3 =
=
Post by Herbert Kleebauer
; stdout
00000079: 08048079: b9 08048096 move.l #text1,r2
0000007e: 0804807e: ba 0000000f move.l #text1_l,r1
00000083: 08048083: b8 00000004 move.l #4,r0 =
=
Post by Herbert Kleebauer
; write
00000088: 08048088: cd 80 trap #$80
0000008a: 0804808a: bb 00000001 move.l #1,r3 =
=
Post by Herbert Kleebauer
; return code
0000008f: 0804808f: b8 00000001 move.l #1,r0 =
=
Post by Herbert Kleebauer
; exit
00000094: 08048094: cd 80 trap #$80
;--------------------------- =
constant data ---------------------------------
00000096: 08048096: 0a 0a 68 65 6c 6c
0000009c: 0804809c: 6f 20 77 6f 72 6c
000000a2: 080480a2: 64 0a 0a text1: dc.b 10,10,"hello =
world",10,10
;-----------------------------=
----------------------------------------------
fset
ddr
Post by Herbert Kleebauer
000000a5: 080480a5: 00 00 00 even 4
@=3D(@+4095)/4096*4096=
;--------------------------- =
initialized data ------------------------------
;--------------------------- =
uninitialized data ----------------------------
;------------------------------=
---------------------------------------------
fset
ddr
Post by Herbert Kleebauer
;=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Post by Herbert Kleebauer
code_offset.... 00000000 code_addr...... 08048000 main.......... =
08048074
text1.......... 08048096 text1_l........ 0000000f code_filez..... =
=
Post by Herbert Kleebauer
000000a5
code_memsz..... 000000a5 data_offset.... 000000a8 data_addr...... =
=
Post by Herbert Kleebauer
080490a8
data_filez..... 00000000 data_memsz..... 00000000
Herbert Kleebauer
2008-02-11 10:45:50 UTC
Permalink
Post by //\\\\o//\\\\annabee
Post by Herbert Kleebauer
Post by //\\\\o//\\\\annabee
I have learned a few commands even...
The most important command is: "mc"
I have tried installing it.
But I get some error : 111 connection refused on port 4001
(Have tried without firewall, and with a firewall rule).
Its a new error, that also comes with other installs now,
that did not exist previously....
Back to DOS 6.22 + NC !
//\\\\o//\\\\annabee
2008-02-11 12:08:12 UTC
Permalink
Post by Herbert Kleebauer
Post by //\\\\o//\\\\annabee
Post by Herbert Kleebauer
Post by //\\\\o//\\\\annabee
I have learned a few commands even...
The most important command is: "mc"
I have tried installing it.
But I get some error : 111 connection refused on port 4001
(Have tried without firewall, and with a firewall rule).
Its a new error, that also comes with other installs now,
that did not exist previously....
Back to DOS 6.22 + NC !
I could try harder. What is "mc" anyways?
Herbert Kleebauer
2008-02-11 12:26:36 UTC
Permalink
Post by //\\\\o//\\\\annabee
Post by Herbert Kleebauer
Back to DOS 6.22 + NC !
I could try harder. What is "mc" anyways?
A NC clone for Linux.



A note for Windows programmer:

You can download compilers and documentation as ISO images from:

http://www.microsoft.com/express/download/offline.aspx
http://www.microsoft.com/express/download/msdn/Default.aspx

I'm not sure wheter MASM now is included with C++, but I suppose so,
because of the documentation in the C++ section:

http://msdn2.microsoft.com/en-us/library/afzk3475.aspx


Microsoft Macro Assembler Reference

The Microsoft Macro Assembler (MASM) provides you with several advantages over
inline assembly. MASM contains a macro language with looping, arithmetic, text
string processing, and so on, and MASM supports the instruction sets of the 386,
486, and Pentium processors, providing you with greater direct control over the
hardware. You also can avoid extra time and memory overhead when using MASM.


MASM for x64 (ml64.exe)

ml64.exe is the assembler that accepts x64 assembly language. For information on
ml64.exe compiler options, see ML and ML64 Command-Line Reference.

Inline ASM is not supported for x64. Use MASM or compiler intrinsics (x64 Intrinsics).

The two workarounds are separate assembly with MASM (which supports x64 fully) and
compiler intrinsics. We’ve added a lot of intrinsics to allow customers to make use
of special-function instructions (e.g. privileged, bit scan/test, interlocked, etc…)
in as close to cross-platform a manner as possible.
Frank Kotler
2008-02-11 22:01:05 UTC
Permalink
Post by Herbert Kleebauer
Post by //\\\\o//\\\\annabee
I have learned a few commands even...
The most important command is: "mc"
Nonsense! The most important command is "nasm -f elf myprog.asm"! Well,
Wannabee might prefer "nasm myprog.asm"/"chmod +x myprog"...


But The Midnight Commander is pretty nice. Get it here:

http://www.ibiblio.org/mc/

"./configure"/"make install" - that's the "linux way". If you want to
try it the "Windows way"... don't be too surprised if it doesn't work...

How come Ubuntu (African for "One Ring to Rule them all") doesn't
include this??? Well... maybe for the same reason Wannabee's probably
not gonna like it - not GUI.
Post by Herbert Kleebauer
Post by //\\\\o//\\\\annabee
I may even end up starting with a hexeditor this time.
Well, mc is *almost* a hex editor... You can, of course, write "ascii
hex" with *any* editor... the "asc2bin" converter is trivial, as Herbert
regularly demonstrates.
Yes. As long as we don't want GUI - which Wannabee probably does. At
that point, it's different from dos, different from Windows... just
different...
Post by Herbert Kleebauer
;===========================================================================
seg32
@=$08048000
In case you decide Nasm really is better than a hex editor, here it is
is Nasmese (as figured out by Herbert)...

Best,
Frank

; nasm myprog.asm>myprog.map
; chmod +x myprog

[map all]
;===========================================================================
bits 32
ORIGIN equ 8048000h
org ORIGIN
section .text
code_offset equ 0
code_addr:
;--------------------------- ELF header -----------------------------------
dd $464c457f,$00010101,0,0,$00030002,1,main,$34,0,0,$00200034,2,0
dd 1,code_offset,code_addr,code_addr,code_filez,code_memsz,5,4096
dd 1,data_offset,data_addr,data_addr,data_filez,data_memsz,6,4096
;--------------------------- code ------------------------------------------
main:
mov eax, 4
mov ebx, 1
mov ecx, msg
mov edx, msg_len
int 80h

mov eax, 1
int 80h

;--------------------------- constant data ---------------------------------
; (note that we're in .text, not .rdata)
align 4



;---------------------------------------------------------------------------
align 4
code_memsz equ $ - $$
code_filez equ code_memsz
data_addr equ (ORIGIN+code_memsz+4095)/4096*4096 + (code_filez
% 4096)
data_offset equ code_filez
section .data vstart=data_addr
;--------------------------- initialized data ------------------------------

msg db "Hello from Nasm, all by itself!", 10
msg_len equ $ - msg


;---------------------------------------------------------------------------
idat_memsz equ $ - $$
bss_addr equ data_addr + ($ - $$)
section .bss vstart=bss_addr
;--------------------------- uninitialized data ----------------------------



;---------------------------------------------------------------------------
udat_memsz equ $ - $$
data_memsz equ idat_memsz + udat_memsz
data_filez equ idat_memsz
;===========================================================================
//\\\\o//\\\\
2008-02-12 04:17:53 UTC
Permalink
På Mon, 11 Feb 2008 23:01:05 +0100, skrev Frank Kotler
Post by Frank Kotler
Post by Herbert Kleebauer
Post by //\\\\o//\\\\annabee
I have learned a few commands even...
The most important command is: "mc"
Nonsense! The most important command is "nasm -f elf myprog.asm"! Well,
Wannabee might prefer "nasm myprog.asm"/"chmod +x myprog"...
huh! I was really wondering that the other day, from a philosopical
standpoint.
If NASM would bother to set the file executable.. I was guessing no.

:( Why make an exe executable?? That would be locking the developer into
something he may not want right? :)))
Post by Frank Kotler
http://www.ibiblio.org/mc/
"./configure"/"make install" - that's the "linux way". If you want to
try it the "Windows way"... don't be too surprised if it doesn't work...
Maybe it would be better to find out where my connection error is comming
from.
Any idea?
Post by Frank Kotler
How come Ubuntu (African for "One Ring to Rule them all") doesn't
include this??? Well... maybe for the same reason Wannabee's probably
not gonna like it - not GUI.
???
Creating an app, without a GUI (or TUI) is allways easy on the developer,
and both stupid and difficult for the user. If an app had more than about
7 possible switches and options, it should have a GUI (or "TUI" like
Norton commander).
Post by Frank Kotler
Post by Herbert Kleebauer
Post by //\\\\o//\\\\annabee
I may even end up starting with a hexeditor this time.
Well, mc is *almost* a hex editor... You can, of course, write "ascii
hex" with *any* editor... the "asc2bin" converter is trivial, as Herbert
regularly demonstrates.
Yes. As long as we don't want GUI - which Wannabee probably does. At
that point, it's different from dos, different from Windows... just
different...
Post by Herbert Kleebauer
;===========================================================================
seg32
@=$08048000
In case you decide Nasm really is better than a hex editor, here it is
is Nasmese (as figured out by Herbert)...
ok. Thanks.

I also have a lot of theese examples saved away. (Thats been posted here,
by charles, yourself and Herbert). But I am not going to start proggin,
until I know linux better, from the userside. Also, not until I got the 64
bit version running.
Post by Frank Kotler
Best,
Frank
; nasm myprog.asm>myprog.map
; chmod +x myprog
[map all]
;===========================================================================
bits 32
ORIGIN equ 8048000h
org ORIGIN
section .text
code_offset equ 0
;--------------------------- ELF header
-----------------------------------
dd
$464c457f,$00010101,0,0,$00030002,1,main,$34,0,0,$00200034,2,0
dd
1,code_offset,code_addr,code_addr,code_filez,code_memsz,5,4096
dd
1,data_offset,data_addr,data_addr,data_filez,data_memsz,6,4096
;--------------------------- code
------------------------------------------
mov eax, 4
mov ebx, 1
mov ecx, msg
mov edx, msg_len
int 80h
mov eax, 1
int 80h
;--------------------------- constant data
---------------------------------
; (note that we're in .text, not .rdata)
align 4
;---------------------------------------------------------------------------
align 4
code_memsz equ $ - $$
code_filez equ code_memsz
data_addr equ (ORIGIN+code_memsz+4095)/4096*4096 + (code_filez
% 4096)
data_offset equ code_filez
section .data vstart=data_addr
;--------------------------- initialized data
------------------------------
msg db "Hello from Nasm, all by itself!", 10
msg_len equ $ - msg
;---------------------------------------------------------------------------
idat_memsz equ $ - $$
bss_addr equ data_addr + ($ - $$)
section .bss vstart=bss_addr
;--------------------------- uninitialized data
----------------------------
;---------------------------------------------------------------------------
udat_memsz equ $ - $$
data_memsz equ idat_memsz + udat_memsz
data_filez equ idat_memsz
;===========================================================================
--
Sendt med Operas revolusjonerende e-postprogram: http://www.opera.com/mail/
Chuck Crayne
2008-02-12 05:34:25 UTC
Permalink
On Tue, 12 Feb 2008 05:17:53 +0100
Post by //\\\\o//\\\\
huh! I was really wondering that the other day, from a philosopical
standpoint.
If NASM would bother to set the file executable.. I was guessing no.
Much as I hate to suggest that my teammate Frank was smoking something
when he wrote that reply, the fact is that NASM creates elf object
files, which must be linked before they can be executed.
--
Chuck
http://www.pacificsites.com/~ccrayne/charles.html
//\\\\o//\\\\
2008-02-12 08:07:30 UTC
Permalink
På Tue, 12 Feb 2008 06:34:25 +0100, skrev Chuck Crayne
Post by Chuck Crayne
On Tue, 12 Feb 2008 05:17:53 +0100
Post by //\\\\o//\\\\
huh! I was really wondering that the other day, from a philosopical
standpoint.
If NASM would bother to set the file executable.. I was guessing no.
Much as I hate to suggest that my teammate Frank was smoking something
when he wrote that reply, the fact is that NASM creates elf object
files, which must be linked before they can be executed.
ok.

A Smoking C programmer.

There _is_ worse things....
there gotto be..... somewhere, sometimes... the universe is vast.

:))
Herbert Kleebauer
2008-02-12 08:54:43 UTC
Permalink
Post by Chuck Crayne
Much as I hate to suggest that my teammate Frank was smoking something
when he wrote that reply, the fact is that NASM creates elf object
files, which must be linked before they can be executed.
Fact is that NASM can write any of the 256 possible bytes to the output file
and therefore doesn't need any linker to generate an executable binary. Not
even for graphics programs:


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; annie.mac:simple Linux/X graphics demo ;;
;; ;;
;; X code based on examples by Frank Kotler ;;
;; ;;
;; display a flying heart, press any key to exit ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; nasm -O99 -f bin -o annie annie.asm
%include "mac.inc"

;===========================================================================
seg 32
orig equ $08048000
code_addr equ orig
code_offset equ 0
section .text vstart=code_addr

;--------------------------- ELF header -----------------------------------
dc.l $464c457f,$00010101,0,0,$00030002,1,main,$34,0,0,$00200034,2,0
dc.l 1,code_offset,code_addr,code_addr,code_filez,code_memsz,5,4096
dc.l 1,data_offset,data_addr,data_addr,data_filez,data_memsz,6,4096

;--------------------------- code ------------------------------------------

main: move.l r7,[stack_ptr] ; save initial stack pointer

; ******************** get socket handle ***************************
moveq.l 0,-[sp] ; no protocol specified
moveq.l 1,-[sp] ; 1: SOCK_STREAM (/usr/include/linux/net.h)
moveq.l 1,-[sp] ; 1: AF_UNIX, AF_LOCAL (/usr/include/linux/socket.h)
move.l r7,r2 ; pointer to parameter for "socket"
move.l 1,r3 ; "socket" (/usr/include/linux/net.h)
move.l 102,r0 ; socketcall (/usr/include/asm/unistd.h)
trap $80
addq.l 3*4,r7 ; free space for parameters
cmp.l -4095,r0 ; ERROR
bhs.l err
move.l r0,[x_handle]

; ********** connect socket to /tmp/.X11-unix/X0" ******************
moveq.l sockaddr_un_l,-[sp]
move.l sockaddr_un,-[sp] ; (/usr/include/linux/un.h)
move.l [x_handle],-[sp] ; socket handle
move.l r7,r2 ; pointer to parameter for "connect"
move.l 3,r3 ; "connect" (/usr/include/linux/net.h)
move.l 102,r0 ; socketcall (/usr/include/asm/unistd.h)
trap $80
addq.l 3*4,r7 ; free space for parameters
cmp.l -4095,r0 ; ERROR
bhs.l err

; *************** make socket read non blocking *******************
move.l [x_handle],r3 ; socket handle
move.l 3,r2 ; F_GETFL (/usr/include/asm/fcntl.h)
move.l 55,r0 ; fcntl (/usr/include/asm/unistd.h)
trap $80
cmp.l -4095,r0 ; ERROR
bhs.l err
move.l [x_handle],r3 ; socket handle
move.l 4,r2 ; F_SETFL (/usr/include/asm/fcntl.h)
move.l r0,r1
or.l $800,r1 ; O_NONBLOCK (/usr/include/asm/fcntl.h)
move.l 55,r0 ; fcntl (/usr/include/asm/unistd.h)
trap $80
cmp.l -4095,r0 ; ERROR
bhs.l err



; ******************* send connect message *************************
move.l send1,r0 ; pointer to connect message
move.l send1l,r1

bsr.l get_xauth ; try to read .Xauthority
bcs.b .11 ; no success, let's try without auth.

move.w r3,[send1+6] ; insert name length
move.w r5,[send1+8] ; insert data length
bsr.l x_send ; send header

move.l r2,r0 ; pointer to name
lea.l [r3 +3],r1 ; pad to a multiple of 4
andq.l $0fffffffc,r1
bsr.l x_send ; send name

move.l r4,r0 ; pointer to data
lea.l [r5+3],r1 ; pad to a multiple of 4
andq.l $0fffffffc,r1
.11: bsr.l x_send ; send data

eor.l r4,r4 ; number of total bytes read
move.l buf2,r5 ; pointer to buffer for next read
move.l buf2l,r6 ; max. bytes to read
.10: move.l r5,r0
move.l r6,r1
bsr.l x_receive_raw
beq.b .10 ; but we need a reply

cmp.b 1,[buf2] ; success
bne.l err ; something went wrong

add.l r0,r4 ; total read bytes
add.l r0,r5 ; pointer to buffer for next read
sub.l r0,r6 ; max. bytes to read
cmpq.l 8,r4 ; at least 8 bytes read?
blo.b .10 ; no, get more

movu.wl [buf2+6],r3 ; additional data in 4 bytes
lea.l [r3*4+8],r3 ; total size in bytes
cmp.l r3,r4 ; all read
blo.b .10 ; no, get more


; ******************* calculate id's *******************************
move.l buf2,r5
move.l [r5+$0c],r0 ; resource_id_base

move.l [r5+$10],r1 ; resource_id_mask
move.l r1,r2
neg.l r2
and.l r2,r1 ; resource_id_incr

move.l r0,[s2a] ; wid for CreateWindow
move.l r0,[s3a] ; wid for MapWindow
move.l r0,[s4a] ; wid for CreateDC
move.l r0,[s5a] ; wid for CreateDC
move.l r0,[s6a] ; wid for SetInputFocus
add.l r1,r0 ; next id
move.l r0,[s4b] ; cid for CreateDC
move.l r0,[s5b] ; cid for CreateDC

add.l r1,r0 ; next id
; move.l r0,[resource_id_next] ; maybe we need more id's later
; move.l r1,[resource_id_incr] ; maybe we need more id's later


; ******************* get root window id ***************************
movu.wl [r5+$18],r0 ; length of vendor string
addq.l $28+3,r0 ; const header length + round vendor length
and.b $0fc,r0 ; round to 4 bytes

movu.bl [r5+$1d],r1 ; number of FORMATs
lsl.l 3,r1 ; 8 byte for each FORMAT entry
add.l r0,r1 ; offset to root WINDOW id

move.l [r5+r1],r0 ; root window
move.l r0,[s2b] ; CreateWindow needs root window id

move.l [r5+r1+20],r0 ; width/hight of root window
move.l r0,[s2x] ; create window full size

sub.l (200<<16)+320,r0
lsr.l 1,r0
and.l $0ffff7fff,r0
move.l r0,[s5x] ; center drawing


; ******************* send CreatWindow request *********************
move.l send2,r0
move.l send2l,r1
bsr.l x_send

; ******************* send MapWindow request ***********************
move.l send3,r0
move.l send3l,r1
bsr.l x_send

; ******************* send CreatDC request *************************
move.l send4,r0
move.l send4l,r1
bsr.l x_send

; ******************* send SetInputFocust *************************
move.l send6,r0
move.l send6l,r1
bsr.l x_send


bsr.l init_color ; init 64 VGA colors

; ******************** main loop ***************************
.50: bsr.l annie ; generate next picture
bsr.l display
bsr.l x_receive
beq.b .50 ; no message is a good message

cmp.b 0,[r0.l] ; error message
beq.b err
cmp.b 2,[r0.l] ; key press
beq.b ende
cmp.b 4,[r0.l] ; button press
bne.b .50
err:
ende: move.l 0,r3 ; return code
move.l 1,r0 ; exit
trap $80

;------------------------------------------
display:
move.l screen,r5
move.l 20,r2 ; we use 20 parts to make each less than 16k
.10
move.l send5,r0
move.l send5l,r1
bsr.l x_send
move.l r5,r0
move.l 320*10*4,r1 ; size of one part
bsr.l x_send
add.w 10,[s5y] ; update y pos for next part
add.l 320*10*4,r5 ; update source pointer for next part
dbf.l r2,.10
sub.w 20*10,[s5y] ; restore original y position
rts.l
;-----------------------------------------

; ********* Annie's code to draw a heart ****************
annie: movem.l r0-r7,-[sp]
eor.l r3,r3

.10: inc.l [annie1]
move.l 320*200,r2
eor.l r6,r6
.20: move.l r6,r0 ; byte pos in screen
eor.l r1,r1
move.l 320,r3 ; 320 lines
divu.l r3,r1|r0 ; eax: line 0-199 edx: column 0-319
sub.l 120,r0 ; center y=120 (-120 .. +79)
sub.l 160,r1 ; x=160 (-160 .. +159)
bgt.b .30
neg.l r1 ; symmetric in x (0 .. 160)
.30: move.l r0,r3
muls.l r3,r3,r3 ; ebx = x*x
add.l r1,r0 ; eax = x*x+y
muls.l r0,r0,r1|r0 ; eax = (x*x+y)**2 mod 2*16
add.l r0,r3
beq.b .40
eor.l r1,r1
move.l 600000,r0
divu.l r3,r1|r0
.40: add.l [annie1],r0 ; change color
lsr.b 2,r0
movu.bl r0.b,r0
move.l [color+r0*4],r0
move.l r0,[screen+edi*4]
inc.l r6
dbf.l r2,.20

movem.l [sp]+,r0-r7
rts.l

; ****************** initialize 64 VGA colors *********************
init_color:
movem.l r0-r7,-[sp]
move.l color,r5
move.l 0,r0 ; sic
move.l 64,r2
_01: move.l r0,[r5]
add.l 4,r5
add.b $10,r0
add.w $800,r0
add.l $40000,r0
dbf.l r2,_01
movem.l [sp]+,r0-r7
rts.l
;**********************************************************
;******** read cookie from $home/.Xauthority **************
;**********************************************************
; *
; input: stack_ptr: original sp at program start *
; output: C=0: cookie found in $home/.Xauthority *
; r2: pointer to protocol name *
; r3: length of protocol name *
; r4: pointer to protocol data *
; r5: length of protocol data *
; C=1: nothing found *
; r2/r3/r4/r5 undefined *
; *
; typedef struct xauth { *
; unsigned short family; *
; unsigned short address_length; *
; char *address; *
; unsigned short number_length; *
; char *number; *
; unsigned short name_length; *
; char *name; *
; unsigned short data_length; *
; char *data; *
; } Xauth; *
;**********************************************************

get_xauth:
move.l r0,-[sp]
move.l r1,-[sp]
move.l r6,-[sp]

move.l [stack_ptr],r6 ; original stack pointer at program start
move.l [r6],r0 ; number of arguments
lea.l [r6+r0*4+8],r6 ; skip arguments + trailing null pointer

.20: move.l [r6],r5 ; pointer to next env variable
addq.l 4,r6
tst.l r5,r5 ; no more env variables
beq.l .notfound
cmp.l 'HOME',[r5] ; HOME found?
bne.b .20 ; no, try next
cmp.b '=',[r5.l+4] ; HOME= found?
bne.b .20 ; no, try next
addq.l 5,r5 ; start of HOME path
orq.l -1,r2
.30: inc.l r2 ; count length of HOME path
cmp.b 0,[r5.l+r2.l]
bne.b .30

or.l r2,r2 ; at least one char long?
beq.l .notfound ; no, HOME is empty
cmp.l 256,r2 ; more than 256 charcters
bhi.b .notfound ; somebody tries a buffer overflow
move.l fname,r6 ; buffer for filename
rep_r2 move.b [r5]+-,[r6]+-{s1} ; copy HOME path
move.l '/.Xa',r0 ; add .Xauthority
move.l r0,[r6]+-{s1}
move.l 'utho',r0
move.l r0,[r6]+-{s1}
move.l 'rity',r0
move.l r0,[r6]+-{s1}
move.b 0,[r6.l] ; and a trailing 0

move.l fname,r3
eor.l r2,r2 ; readonly
move.l 5,r0 ; open
trap $80

cmp.l -4095,r0 ; file open error?
bhs.b .notfound ; yes

move.l r0,r3 ; file handle
move.l buf2,r2
move.l buf2l,r1 ; read 1024 byte
move.l 3,r0 ; read
trap $80

cmp.l buf2l,r0
bhs.l err ; .Xauthority >= 1024 byte
move.l r0,r4 ; bytes read

move.l 6,r0 ; close
trap $80

tst.l r4,r4 ; file empty
beq.b .notfound

move.l buf2,r5
add.l r5,r4 ; end of read data
eor.l r0,r0 ; delete upper 16 bit of r0

.60: move.w [r5]+-,r0 ; family
dec.w r0
beq.b .40 ; 1=FamilyLocal

move.l 4,r2 ; skip entry
.50: move.w [r5]+-,r0
ror.w 8,r0 ; big -> little endian
add.l r0,r5
dbf.l r2,.50
cmp.l r4,r5 ; more data
blo.b .60 ; try next entry

.notfound:
bset.w 0,sr ; set Carry
br.b .70

.40: move.l 2,r2
move.l r2,r3
.41: move.w [r5]+-,r0 ; size of data
ror.w 8,r0 ; big endian <-> little endian
add.l r0,r5 ; skip address/number
dbf.l r2,.41

.42: move.w [r5]+-,r0 ; size of protocol name
ror.w 8,r0 ; big endian <-> little endian
move.l r5,r2 ; pointer to protocol name
move.l r0,r3 ; size of protocol name
add.l r3,r5 ; skip name

move.w [r5]+-,r0 ; size of protocol data
ror.w 8,r0 ; big endian <-> little endian
move.l r5,r4 ; pointer to protocol data
move.l r0,r5 ; size of protocol data
bclr.w 0,sr ; clear carry
.70: move.l [sp]+,r6
move.l [sp]+,r1
move.l [sp]+,r0
rts.l

;**********************************************************
;******** send message to X server **************
;**********************************************************
; input: r0: pointer to message *
; r1: length of message *
;**********************************************************
x_send: movem.l r0-r7,-[sp]
move.l r0,r4 ; pointer to next byte of message
move.l r1,r5 ; remaining bytes to send

.20: moveq.l 0,-[sp] ; flags
move.l r5,-[sp] ; length
move.l r4,-[sp] ; pointer to data
move.l [x_handle],-[sp]; socket handle
move.l r7,r2 ; pointer to parameter for "send"
move.l 9,r3 ; "send" (/usr/include/linux/net.h)
move.l 102,r0 ; socketcall (/usr/include/asm/unistd.h)
trap $80
addq.l 4*4,r7 ; free space for parameters

cmpq.l -11,r0 ; EAGAIN:
beq.b .20 ; message couldn't be sent, try again

cmp.l -4095,r0 ; ERROR
bhs.l err

sub.l r0,r5 ; remaining bytes to send
beq.b .30 ; nothing, all sent
add.l r0,r4 ; pointer to remaining message
br.b .20 ; send rest of message

.30: movem.l [sp]+,r0-r7
rts.l

;**********************************************************
;******** receive ONE message from X server **********
;**********************************************************
; input: none *
; output: Z=1: no complete message available *
; r0/r1 undefined *
; Z=0: r0: pointer to message data *
; r1: size of data *
;**********************************************************
x_receive:
move.l r2,-[sp]
move.l r5,-[sp]
move.l r6,-[sp]
.00: move.l [buf2_rest],r0 ; still something in read buffer?
cmpq.l 32,r0 ; a message has at least 32 bytes
bhs.b .10 ; maybe it is a complete message

.30: move.l [buf2_ptr],r5 ; start of message
move.l buf2,r6 ; start of buffer
move.l r6,[buf2_ptr] ; we copy message to top of buffer
cmp.l r5,r6 ; already at top of buffer
beq.b .50 ; then nothing to copy
or.l r0,r0 ; nothing in buffer
beq.b .50 ; then also nothing to copy
move.l r0,r2 ; copy to top of buffer
rep_r2 move.b [r5]+-,[r6]+-{s1}

.50: move.l buf2l,r1 ; let's try to get some more data
sub.l r0,r1 ; not more bytes than space is left in the buf
lea.l [r0+buf2],r0 ; append it here
bsr.l x_receive_raw
bne.b .20 ; we could read something
br.b .100 ; return with Z=1

.20: add.l r0,[buf2_rest] ; now we have a few more bytes in the buffer
br.b .00 ; let's try again

.10: move.l [buf2_ptr],r5 ; let's test if it is a complete meesage
move.l 32,r1 ; error/reply/event base length
cmp.b 1,[r5.l] ; reply message
bne.b .40 ; no, then event/error messages (always 32 byte)
add.l [r5+4],r1 ; + additional data for reply
add.l [r5+4],r1 ; + additional data for reply
add.l [r5+4],r1 ; + additional data for reply
add.l [r5+4],r1 ; + additional data for reply
cmp.l r1,r0 ; complete reply in buffer
blo.b .30 ; no, let's try to get more
.40: move.l r5,r0 ; pointer to data
sub.l r1,[buf2_rest] ; new rest
add.l r1,[buf2_ptr] ; pointer to next data; clear Z flag
.100: move.l [sp]+,r6
move.l [sp]+,r5
move.l [sp]+,r2
rts.l

;**********************************************************
;******** read data from X server **********
;**********************************************************
; input: r0: pointer to read buffer *
; r1: size of buffer *
; output: Z=1: nothing to read *
; Z=0: r0 bytes read *
;**********************************************************
x_receive_raw:
move.l r2,-[sp]
move.l r3,-[sp]

moveq.l 0,-[sp] ; flags
move.l r1,-[sp] ; number of bytes to read
move.l r0,-[sp] ; pointer to buffer
move.l [x_handle],-[sp]; socket handle
move.l r7,r2 ; pointer to parameter for "recv"
move.l 10,r3 ; "recv" (/usr/include/linux/net.h)
move.l 102,r0 ; socketcall (/usr/include/asm/unistd.h)
trap $80
addq.l 4*4,r7 ; free space for parameters
move.l [sp]+,r3
move.l [sp]+,r2
cmpq.l -11,r0 ; EAGAIN: no message available -> Z=1
beq.b .10

cmp.l -4095,r0 ; ERROR
bhs.l err

tst.l r0,r0 ; 0: NULL message -> Window close?
beq.l ende

.10: rts.l

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;--------------------------- constant data ---------------------------------
align 4

sockaddr_un:
dc.w 1 ; 1: AF_UNIX, AF_LOCAL (/usr/include/linux/socket.h)
dc.b "/tmp/.X11-unix/X0"
sockaddr_un_l equ $-sockaddr_un
align 4

;---------------------------------------------------------------------------

align 4
code_memsz equ $-$$
code_filez equ code_memsz
data_addr equ (orig+code_memsz+4095)/4096*4096 + (code_filez % 4096)
data_offset equ code_filez
section .data vstart=data_addr

;--------------------------- initialized data ------------------------------
buf2_ptr: dc.l buf2
buf2_rest: dc.l 0

; Connection Setup
send1: dc.b $6c,0 ; LSB first
dc.w 11,0 ; major/minor version
dc.w 0,0 ; length of protocol name/data
dc.w 0 ; unused
send1l equ $-send1

; Create Window
send2: dc.b 1 ; opcode for Create Window
dc.b 0 ; depth from parent
dc.w send2l/4; request length
s2a: dc.l 0 ; wid (has to be calculated)
s2b: dc.l 0 ; parent (has to be calculated)
dc.w 0 ; x
dc.w 0 ; y
s2x: dc.w 640 ; with
s2y: dc.w 400 ; higth
dc.w 0 ; border-width
dc.w 0 ; class: CopyFromParent
dc.l 0 ; visual: CopyFromParent
dc.l $0a02 ; value-mask: background-pixel 2
; + override-redirect 200
; + event-mask 800
dc.l $000000 ; background: black
dc.b 1 ; override-redirect = true
dc.b 0,0,0 ; pad
dc.l $05 ; event_mask: KeyPress 1
; +ButtenPress 4
; +PointerMotion 40
send2l equ $-send2

; Map Window
send3: dc.b 8 ; opcode for Map Window
dc.b 0 ; unused
dc.w send3l/4; request length
s3a: dc.l 0 ; wid (has to be calculated)
send3l equ $-send3

; Create GC
send4: dc.b 55 ; opcode for CreateGC
dc.b 0 ; unused
dc.w send4l/4; request length
s4b: dc.l 0 ; cid (has to be calculated)
s4a: dc.l 0 ; wid (has to be calculated)
dc.l 1+4+8 ; function+foreground+background
dc.l 3 ; function=copy
dc.l $0ffffff; foreground: white
dc.l $0080ff ; background: light blue
send4l equ $-send4
; Put Image
send5: dc.b 72 ; opcode for PutImage
dc.b 2 ; ZPixmap
dc.w send5l/4+320*10*4/4; request length
s5a: dc.l 0 ; wid (has to be calculated)
s5b: dc.l 0 ; cid (has to be calculated)
dc.w 320 ; width
dc.w 200/20 ; hight; we send 20 parts each 12800 byte (<16k)
s5x: dc.w 0 ; dest-x (inserted later)
s5y: dc.w 0 ; dest-y (inserted later)
dc.b 0 ; left-pad
dc.b 24 ; depth
dc.w 0 ; unused
send5l equ $-send5

; Set Input Focus
send6: dc.b 42 ; opcode for SetInputFocus
dc.b 0 ; revert-to None
dc.w send6l/4; request length
s6a: dc.l 0 ; wid (has to be calculated)
dc.l 0 ; timestamp CurrentTime
send6l equ $-send6


;---------------------------------------------------------------------------

idat_memsz equ $-$$
bss_addr equ data_addr+ ($-$$)
section .bss vstart=bss_addr

;--------------------------- uninitialized data ----------------------------

screen: blk.l 320*200 ; bitmap
stack_ptr: blk.l 1
x_handle: blk.l 1
annie1: blk.l 1
color: blk.l 64
fname: blk.b 256+32
buf2: blk.b 8*1024
buf2l equ $-buf2

;---------------------------------------------------------------------------

udat_memsz equ $-$$
data_memsz equ idat_memsz + udat_memsz
data_filez equ idat_memsz
;===========================================================================
Chuck Crayne
2008-02-12 18:43:43 UTC
Permalink
On Tue, 12 Feb 2008 09:54:43 +0100
Post by Herbert Kleebauer
Fact is that NASM can write any of the 256 possible bytes to the
output file and therefore doesn't need any linker to generate an
With the -f bin output format option, yes, but Frank's example was
specifically for the -f elf option, which generates only elf object
files. I could create another option which generates elf executable
modules, but I think my time is better spent on other NASM
enhancements, such as the DWARF3 debug format support which I am
currently working on.
--
Chuck
http://www.pacificsites.com/~ccrayne/charles.html
Frank Kotler
2008-02-12 20:58:12 UTC
Permalink
Chuck Crayne wrote:

...
Post by Chuck Crayne
With the -f bin output format option, yes, but Frank's example was
specifically for the -f elf option, which generates only elf object
files.
The example I posted in this thread? Look again. I *did* mention that
the most important command was "nasm -f elf ...", and I didn't mention
"-f bin" in the command line, but the example was for "-f bin".

Can do the same thing for PE files... Numit_or's got some macros...
recently corrected (if anyone uses 'em) so MapAndLoad will MapAndLoad
.exes made in this way (patched Alink, too). (MapAndLoad apparently
wants to see a certain "linker version" in the header?).
Post by Chuck Crayne
I could create another option which generates elf executable
modules, but I think my time is better spent on other NASM
enhancements, such as the DWARF3 debug format support which I am
currently working on.
(that reminds me...)

Agreed. It would be fairly simple (I think) to internalize the few
requirements for Nasm to emit PEs, ELF executables, etc. "directly", but
why bother? Macros exist, if you don't want the "clutter" in your
source. I haven't "macroized" Herbert's approach (yet?), but the
asmutils macros will do it - slightly different method, they put
everything in one section, and if you asked for writeable data, make the
whole damn thing writeable. Herbert's code is a little more "proper"...
Nasm doesn't need to do anything different.

Best,
Frank
Chuck Crayne
2008-02-12 21:18:52 UTC
Permalink
On Tue, 12 Feb 2008 20:58:12 GMT
Post by Frank Kotler
I *did* mention that
the most important command was "nasm -f elf ...", and I didn't
mention "-f bin" in the command line, but the example was for "-f bin"
Sorry about that. Having seen the "-f elf" in the first line, I saw
what I expected to see in the second.
--
Chuck
http://www.pacificsites.com/~ccrayne/charles.html
Evenbit
2008-02-12 20:31:52 UTC
Permalink
Post by Herbert Kleebauer
Post by Chuck Crayne
Much as I hate to suggest that my teammate Frank was smoking something
when he wrote that reply, the fact is that NASM creates elf object
files, which must be linked before they can be executed.
Fact is that NASM can write any of the 256 possible bytes to the output file
and therefore doesn't need any linker to generate an executable binary. Not
One can also produce a working PE file using numit_or's macros:

http://mipagina.cantv.net/numator/

NPEMAC2 is a Zip collection of the macros and examples.

Nathan.
Frank Kotler
2008-02-12 11:56:56 UTC
Permalink
//\\o//\\ wrote:

...
Post by //\\\\o//\\\\
huh! I was really wondering that the other day, from a philosopical
standpoint.
If NASM would bother to set the file executable.. I was guessing no.
:( Why make an exe executable?? That would be locking the developer
into something he may not want right? :)))
Correct, strange as it seems. Who says a binary file has to be an
executable? Who says an executable is targeted to an environment that
has to have an executable "made executable"? Nasm can't make those
decisions for you! Not the job of an "assembler". That's what "chmod" if
for.

This is an illustration of just *how* different a kind of tool Nasm is
than RosAsm. In a "fully integrated development environment", intended
as an "ELF producer" (as RosAsm is a "PE producer"), it would be
inexcusable to not make the output executable. But that isn't what Nasm
"is".

...
Post by //\\\\o//\\\\
I also have a lot of theese examples saved away. (Thats been posted
here, by charles, yourself and Herbert). But I am not going to start
proggin, until I know linux better, from the userside.
That's probably wise. As soon as I got "ls" working, I started trying to
program "hello world", with *very* little understanding of the OS.
Probably not the best approach...
Post by //\\\\o//\\\\
Also, not until
I got the 64 bit version running.
Mmmm... I'm less sure I agree with that... I guess it makes sense, in
the same sense that you wouldn't waste your time learning dos. 32-bit
systems are "obsolete", or will be, somewhere down the road. Everything
you'd learn about 32-bit Linux, you'd have to unlearn.

On the other hand... you'll really be out there in "pioneer" territory.
Fewer examples, tutorials, and documentation - especially documentation
in "asm terms". Likely to be slower and more frustrating. You *might* be
better off "easing into it", for similar reasons we (*some* of us)
advise a beginner to asm to try a few dos files before jumping into
Windows. Slightly different situation, but most of the same arguments -
pro and con - apply. Well... if you weren't planning to "suit yourself",
you probably wouldn't be an asm-head in the first place! :)

So... what keeps the 64-bit version from running?

Best,
Frank
Betov
2008-02-14 19:29:33 UTC
Permalink
Post by //\\\\o//\\\\
Also, not until I got the 64
bit version running.
Nobody cares of Linux-64. Personaly, i never even gave it a try
(even though my Linux Box *is* 64), and i have read that Ubuntu
64 is not recommanded. Anyway, even when it will work, 64 will
never have any advantage, - but for servers -, and will always
be a scaring horror, at a programming point of view.


Betov.

< http://rosasm.org >
Herbert Kleebauer
2008-02-14 21:18:04 UTC
Permalink
Post by Betov
Nobody cares of Linux-64. Personaly, i never even gave it a try
(even though my Linux Box *is* 64), and i have read that Ubuntu
64 is not recommanded. Anyway, even when it will work, 64 will
never have any advantage, - but for servers -,
That reminds me on the statement: "nobody will ever need more
than 640 kbyte RAM in his PC". Hurry up with your conversion
of RosAsm to Linux. In a few years every new PC will have more
than 4 Gbyte RAM installed and then it doesn't make any sense
to use a 32 bit OS.
Post by Betov
and will always
be a scaring horror, at a programming point of view.
I can understand your "horror". Many thousand lines of
32 bit assembly code which becomes worthless from one day
to the other. But I told you to write your assembler in
a HLL: just recompile it and it is converted to 64 bit.
Robert Redelmeier
2008-02-14 22:04:54 UTC
Permalink
Post by Herbert Kleebauer
That reminds me on the statement: "nobody will ever need
more than 640 kbyte RAM in his PC". Hurry up with your
conversion of RosAsm to Linux. In a few years every new
PC will have more than 4 Gbyte RAM installed and then it
doesn't make any sense to use a 32 bit OS.
Perhaps not, or maybe the PAE will be used more? VMware?
Post by Herbert Kleebauer
I can understand your "horror". Many thousand lines of 32
bit assembly code which becomes worthless from one day to
just recompile it and it is converted to 64 bit.
This is hyperbole. 32bit apps will be around for a very long
time because 32bits is quite sufficient for most purposes.
Linux 64bits supports 32bit apps.

64bits _are_ needed for some apps with large dataspaces, but
otherwise I'm not sure 64bits offers many advantages even
for kernel operation -- bcopy() is more limited by memory
bandwidth than instruction speed. 64b costs code density.

-- Robert
Herbert Kleebauer
2008-02-15 12:50:36 UTC
Permalink
Post by Robert Redelmeier
Post by Herbert Kleebauer
That reminds me on the statement: "nobody will ever need
more than 640 kbyte RAM in his PC". Hurry up with your
conversion of RosAsm to Linux. In a few years every new
PC will have more than 4 Gbyte RAM installed and then it
doesn't make any sense to use a 32 bit OS.
Perhaps not, or maybe the PAE will be used more? VMware?
When 64k wasn't enough, Intel used segmentation to extend the
address space in a 16 bit compatible way. Motorola did it
the "correct" way with it's 68k, but who won? This time Intel
did it the "correct" way with the Intanium, but AMD introduced
the 64 bit extension of the x86 and who won? But using a 32 bit
OS + PAE on a x86/64 CPU is like using 16 bit protected mode on
a 386 (it just doesn't make any sense).
Post by Robert Redelmeier
Post by Herbert Kleebauer
I can understand your "horror". Many thousand lines of 32
bit assembly code which becomes worthless from one day to
just recompile it and it is converted to 64 bit.
This is hyperbole. 32bit apps will be around for a very long
time because 32bits is quite sufficient for most purposes.
Linux 64bits supports 32bit apps.
There is still 16 bit code around (and I use it on a regular basis),
but nobody develops 16 bit "applications" anymore. And in a
few year nobody will develop 32 bit applications anymore. And
the purpose of a development tool like RosAsm is to implement
programs. So, first of all, RosAsm must be able to generate
64 bit code. And I suppose it's much more work to add this
feature to the assembly written RosAsm as it was for the C
written NASM. The next question is, will somebody use a 32 bit
RosAsm to generate 64 bit programs? Would you use a 16 bit C compiler
to generate 32 bit programs even if it generates the identical
binary?
Post by Robert Redelmeier
64bits _are_ needed for some apps with large dataspaces, but
otherwise I'm not sure 64bits offers many advantages even
for kernel operation -- bcopy() is more limited by memory
You already need 2 GByte RAM if you want Vista on your PC even for
simple Applications. In a few years we will have the next MS OS
which requires 4 GByte and if you want to do some video editing
you surely will need 8 or more GBytes.
Post by Robert Redelmeier
bandwidth than instruction speed. 64b costs code density.
Who cares about code density if there are 8 Gbyte RAM in your PC?
Robert Redelmeier
2008-02-15 14:42:57 UTC
Permalink
Post by Herbert Kleebauer
When 64k wasn't enough, Intel used segmentation to extend
the address space in a 16 bit compatible way. Motorola did
it the "correct" way with it's 68k, but who won? This time
Intel did it the "correct" way with the Intanium, but AMD
introduced the 64 bit extension of the x86 and who won? But
So by this logic, PAE will win?!?
Post by Herbert Kleebauer
using a 32 bit OS + PAE on a x86/64 CPU is like using 16
bit protected mode on a 386 (it just doesn't make any sense).
Only on the surface. The parallel is broken: 40 years ago with the
IBM 360 and uNIVAC 1100 it was determined that 32/36 bits was enough
for most business apps. Micros started at 4 and 8 bits and migrated
to 16 but it was well-known even at the time this was inadequate
for "serious" apps and only adequate for bit-bashing streams.
That's why IBM wasn't afraid of the PC.

Sizes have changed but the basic logic hasn't. 32 to 64 is not
the same as 16 to 32. Nowhere near as compelling. Far fewer
apps benefit. PAE looks like a segmentation kludge (and it is),
but it's very clever in that it can be handled all by the OS.
Post by Herbert Kleebauer
anymore. And in a few year nobody will develop 32 bit
applications anymore.
That may be true for compiled applications only after the 32b
OS installed base dwindles to insignificance. I don't see that
happening quickly. MS-Win32 is too popular. People dropped MS-DOS
in favor of MS-Win95 because of compelling advantages (useability).
(More precisely, many people bought their first machines) What
does 64b offer _users_? Where is the killer app?

SW vendors might well tout 64b apps as a marketing feature to
appear "fresh" and uptodate. Anything for sales. But they're
not dropping 32b until it doesn't cost them sales.
Post by Herbert Kleebauer
You already need 2 GByte RAM if you want Vista on your PC
even for simple Applications. In a few years we will have
Not true. I bought a laptop which only came with MS-Vista
and 256 MB. It runs about as poorly as any other machine I've
seen with MS-Vista. It does not thrash unless I run bloatware
(MS-IE). When I get around to upgrading it, that will be a
better OS (anything), not more RAM.
Post by Herbert Kleebauer
Who cares about code density if there are 8 Gbyte RAM in
your PC?
RAM only reduces swapping which should be rare. Code density
is still extremely important and perhaps a hidden reason for x86
performance predominance (over M68k & Alpha). Code takes longer
to fetch than to execute the first time. First from disk, then
from RAM. Density=speed. Density also improves cache hits.
As Terje says, "All programming is an exercise in caching".
Density improves cacheability.


-- Robert
Betov
2008-02-15 07:18:36 UTC
Permalink
Post by Herbert Kleebauer
That reminds me on the statement: "nobody will ever need more
than 640 kbyte RAM in his PC".
I did not say anything like that. 64-Bit has been invented for
the Web servers. Another thing is with the need of such a huge
space on the desktop PCs. Experience shows that 64-Bit offers
no advantage in this area.
Post by Herbert Kleebauer
Hurry up with your conversion
of RosAsm to Linux.
In one year, at best, if Linux wins. I have already worked these
past 10 years for absolutely nothing (since ReactOS is dead) and
i mean to save myself from doing the same error twice.
Post by Herbert Kleebauer
In a few years every new PC will have more
than 4 Gbyte RAM installed and then it doesn't make any sense
to use a 32 bit OS.
You will have to invent Apps that will make use of such a space.

Ooopppssss... Silly me: You never wrote anything for 32-bit nor
for 31...

:))
Post by Herbert Kleebauer
I can understand your "horror". Many thousand lines of
32 bit assembly code which becomes worthless from one day
to the other. But I told you to write your assembler in
a HLL: just recompile it and it is converted to 64 bit.
Considering that 13 bits is not yet dead, after so many years
of 32, we can estimate that 32-bit Apps will still be with us
in 20 years, if PCs still exist at that time. And as, for the
user, it is impossible to make any difference in between 32
and 64-App (as opposed to DOS vs Windows Apps), i would say
more than 20 years.


Betov.

< http://rosasm.org >
//\\\\o//\\\\
2008-02-15 08:13:26 UTC
Permalink
Post by Betov
Post by Herbert Kleebauer
That reminds me on the statement: "nobody will ever need more
than 640 kbyte RAM in his PC".
I did not say anything like that. 64-Bit has been invented for
the Web servers. Another thing is with the need of such a huge
space on the desktop PCs. Experience shows that 64-Bit offers
no advantage in this area.
Post by Herbert Kleebauer
Hurry up with your conversion
of RosAsm to Linux.
In one year, at best, if Linux wins. I have already worked these
past 10 years for absolutely nothing (since ReactOS is dead) and
i mean to save myself from doing the same error twice.
I think that RosAsm is far more important then this. At least it has
brought new ideas to asm, if ppl see this or not ... some may see it.
For all we know, people have adopted some of theese ideas and we may see
the results further down the line.

You are _way_ ahead of time, thats all.
Post by Betov
Post by Herbert Kleebauer
In a few years every new PC will have more
than 4 Gbyte RAM installed and then it doesn't make any sense
to use a 32 bit OS.
You will have to invent Apps that will make use of such a space.
Ooopppssss... Silly me: You never wrote anything for 32-bit nor
for 31...
:))
Post by Herbert Kleebauer
I can understand your "horror". Many thousand lines of
32 bit assembly code which becomes worthless from one day
to the other. But I told you to write your assembler in
a HLL: just recompile it and it is converted to 64 bit.
Considering that 13 bits is not yet dead, after so many years
of 32, we can estimate that 32-bit Apps will still be with us
in 20 years, if PCs still exist at that time. And as, for the
user, it is impossible to make any difference in between 32
and 64-App (as opposed to DOS vs Windows Apps), i would say
more than 20 years.
Betov.
< http://rosasm.org >
Herbert Kleebauer
2008-02-15 12:50:33 UTC
Permalink
Post by Betov
Post by Herbert Kleebauer
That reminds me on the statement: "nobody will ever need more
than 640 kbyte RAM in his PC".
I did not say anything like that.
No, that was said by a much more successful man as you.
Post by Betov
64-Bit has been invented for
the Web servers. Another thing is with the need of such a huge
space on the desktop PCs. Experience shows that 64-Bit offers
no advantage in this area.
Some live in the past and some think about tomorrow.
Post by Betov
Post by Herbert Kleebauer
Hurry up with your conversion
of RosAsm to Linux.
In one year, at best, if Linux wins. I have already worked these
past 10 years for absolutely nothing (since ReactOS is dead) and
i mean to save myself from doing the same error twice.
You was told this already ten year ago and you didn't believe it.
But even if ReactOS had been a success, nobody would have written
applications in assembly. This isn't done in Windows nor in Linux
nor would have been done in ReactOS. Even code for small 8 bit
controllers are mostly written in C and not in assembly these days.
Post by Betov
Post by Herbert Kleebauer
In a few years every new PC will have more
than 4 Gbyte RAM installed and then it doesn't make any sense
to use a 32 bit OS.
You will have to invent Apps that will make use of such a space.
You don't need even an application, the MS OS itself will need it.
Post by Betov
Ooopppssss... Silly me: You never wrote anything for 32-bit nor
for 31...
No no, I wrote for 8, 16 and 32 bit, but I never wrote an "application".
I only do a "proof of concept" and the loose interest.
Post by Betov
Post by Herbert Kleebauer
I can understand your "horror". Many thousand lines of
32 bit assembly code which becomes worthless from one day
to the other. But I told you to write your assembler in
a HLL: just recompile it and it is converted to 64 bit.
Considering that 13 bits is not yet dead, after so many years
of 32, we can estimate that 32-bit Apps will still be with us
in 20 years, if PCs still exist at that time. And as, for the
user, it is impossible to make any difference in between 32
and 64-App (as opposed to DOS vs Windows Apps), i would say
more than 20 years.
The user also doesn't see any difference between a 16 bit and a
32 bit Windows application. Why do you write 32 bit and not 16 bit
Windows code. What ever you answer to this question you can use
as answer why in a few years 64 bit instead if 32 bit Windows
applications are written.
//\\\\o//\\\\
2008-02-15 14:04:58 UTC
Permalink
På Fri, 15 Feb 2008 13:50:33 +0100, skrev Herbert Kleebauer
Post by Herbert Kleebauer
Post by Betov
Post by Herbert Kleebauer
That reminds me on the statement: "nobody will ever need more
than 640 kbyte RAM in his PC".
I did not say anything like that.
No, that was said by a much more successful man as you.
Post by Betov
64-Bit has been invented for
the Web servers. Another thing is with the need of such a huge
space on the desktop PCs. Experience shows that 64-Bit offers
no advantage in this area.
Some live in the past and some think about tomorrow.
Post by Betov
Post by Herbert Kleebauer
Hurry up with your conversion
of RosAsm to Linux.
In one year, at best, if Linux wins. I have already worked these
past 10 years for absolutely nothing (since ReactOS is dead) and
i mean to save myself from doing the same error twice.
You was told this already ten year ago and you didn't believe it.
But even if ReactOS had been a success, nobody would have written
applications in assembly. This isn't done in Windows nor in Linux
nor would have been done in ReactOS. Even code for small 8 bit
controllers are mostly written in C and not in assembly these days.
There is no need to. Asm is much easier to learn and to use then C.
Maybe not for all operations, but for most.
Post by Herbert Kleebauer
Post by Betov
Post by Herbert Kleebauer
In a few years every new PC will have more
than 4 Gbyte RAM installed and then it doesn't make any sense
to use a 32 bit OS.
You will have to invent Apps that will make use of such a space.
You don't need even an application, the MS OS itself will need it.
Because it is written in C, and the abominations that sprang forth because
of C.
Post by Herbert Kleebauer
Post by Betov
Ooopppssss... Silly me: You never wrote anything for 32-bit nor
for 31...
No no, I wrote for 8, 16 and 32 bit, but I never wrote an "application".
I only do a "proof of concept" and the loose interest.
So did I, unfortunatly. But I found that if I made the task complex and
big enough there is ways to defeat the bordom, by not working to much at
each task at the same time, but just do a litle at each step, and cycle
the small tasks of the bigger one, it will appear not to be so boring. You
can use the time you spend for the small task, to build test cases for the
big task. Still its boring, but its a bit easier that way. And when that
dont work, bittourment and games, and seeing other apps written by other
programmers, may help reengange some energy for the main task. Its sort of
a divide and conquer, only I call it Circling Change of Caos and
Confusion, Causing Carelessness and Casual Cuntbehaviour in the
Competition.
Post by Herbert Kleebauer
Post by Betov
Post by Herbert Kleebauer
I can understand your "horror". Many thousand lines of
32 bit assembly code which becomes worthless from one day
to the other. But I told you to write your assembler in
a HLL: just recompile it and it is converted to 64 bit.
Considering that 13 bits is not yet dead, after so many years
of 32, we can estimate that 32-bit Apps will still be with us
in 20 years, if PCs still exist at that time. And as, for the
user, it is impossible to make any difference in between 32
and 64-App (as opposed to DOS vs Windows Apps), i would say
more than 20 years.
The user also doesn't see any difference between a 16 bit and a
32 bit Windows application. Why do you write 32 bit and not 16 bit
Windows code. What ever you answer to this question you can use
as answer why in a few years 64 bit instead if 32 bit Windows
applications are written.
Is there anything preventing us from writing a majority of the code in the
standard 32 bit variants in the 64 bit mode?

mov ecx 100
mov ebx Source
mov edx Dest

L0:
mov al B$ebx
mov b$edx al
dec ecx | jne L0<

if mapped at < 32 bits address, we could use "short" jumps?
Spam Killer
2008-02-15 19:59:42 UTC
Permalink
Post by Herbert Kleebauer
Even code for small 8 bit
controllers are mostly written in C and not in assembly these days.
Na und!

You are free to use what ever you want, but if you haven't noticed
yet, this is an

"Assembly Language NG",

and everyone who wants to discuss C posts to a (you guessed it!) C-NG.
--
wfz
Herbert Kleebauer
2008-02-16 11:19:35 UTC
Permalink
Post by Spam Killer
Post by Herbert Kleebauer
Even code for small 8 bit
controllers are mostly written in C and not in assembly these days.
Na und!
You are free to use what ever you want, but if you haven't noticed
yet, this is an
"Assembly Language NG",
Yes, and C is a "CPU independent High Level Assembly language" and
therefore perfectly on topic here. But my answer was not about C
bout about the assembler RosAsm which should have been written in C
instead of x86 assembly.
Spam Killer
2008-02-16 18:24:48 UTC
Permalink
Post by Herbert Kleebauer
Yes, and C is a "CPU independent High Level Assembly language" and
therefore perfectly on topic here.
Thanks for the laugh!

This is from the FAQ: There is no moderator in A.L.A., so they will
not really be filtered, and are just guidelines for posting:

Topics that will be filtered are:

Flames about "{Language X} is {better/worse} than ASM"
Flames like "{Assembler 1} is {better/worse} than {Assembler 2}"
Flames, personal attacks, insults, etc.
HLL code, except when used for low-level hardware programming.
//////////////////////////////////////////////////////////////
Product comparisons except when presented in an unbiased fashion.
Advertisements unrelated to assembly programming or utilities.
Posts in languages other than English will be examined for approval
if any of the moderators can read the language in question. There
is no guarantee of approval for a post in any language other than
English.
Post by Herbert Kleebauer
But my answer was not about C
bout about the assembler RosAsm which should have been written in C
instead of x86 assembly.
IIRC you mentioned that your aren't legally allowed to use it (for
whatever reason), so why do you care!
--
wfz
Herbert Kleebauer
2008-02-16 22:13:04 UTC
Permalink
Post by Spam Killer
Post by Herbert Kleebauer
Yes, and C is a "CPU independent High Level Assembly language" and
therefore perfectly on topic here.
Thanks for the laugh!
That wasn't meant as a joke, it's the truth.
Post by Spam Killer
This is from the FAQ: There is no moderator in A.L.A., so they will
Which FAQ? I read this groups since a few years now, but can't
remember that a FAQ was ever posted here.
Post by Spam Killer
HLL code, except when used for low-level hardware programming.
//////////////////////////////////////////////////////////////
Now I understand why we don't see a HLA questions anymore here.
Post by Spam Killer
Post by Herbert Kleebauer
But my answer was not about C
bout about the assembler RosAsm which should have been written in C
instead of x86 assembly.
IIRC you mentioned that your aren't legally allowed to use it (for
whatever reason), so why do you care!
What has a discussion about the proper language for implementing
an assembler to do with using the assembler? The user of an
assembler only uses the binary of the program and mostly doesn't
care about how this binary was generated (That's not completely
true, because a professional programmer only will use a professional
tool. And that requires that the tool is written in an appropriate
language. And most professional programmers surely wouldn't call
assembly language an appropriate language for implementing an
assembler).
Spam Killer
2008-02-16 23:16:34 UTC
Permalink
Post by Herbert Kleebauer
Post by Spam Killer
Post by Herbert Kleebauer
Yes, and C is a "CPU independent High Level Assembly language" and
therefore perfectly on topic here.
Thanks for the laugh!
That wasn't meant as a joke, it's the truth.
Hey, my C is very limited, so lets see what the many C-Programers, who
(in your opinion) think this group is is the proper place to discuss C
have to say to your defininiton. Or maybe you can tell on what page
of the C-Standard this definition is given.
Post by Herbert Kleebauer
Which FAQ? I read this groups since a few years now, but can't
remember that a FAQ was ever posted here.
The last post is now quite long ago, but I can put a little lock on
messages I want to keep in my newsreader, and I copied this from one
of theese over.
Post by Herbert Kleebauer
What has a discussion about the proper language for implementing
an assembler to do with using the assembler?
I would expect that soneone who makes bad statments about a tool has
at least given it a try. How can you tell it isn't the proper tool
for you if don't use it at least for a while.
Post by Herbert Kleebauer
The user of an
assembler only uses the binary of the program and mostly doesn't
care about how this binary was generated
And then why should he care when the binary is produced written with
an Assembler written in Assembly Language.
Post by Herbert Kleebauer
(That's not completely
true, because a professional programmer only will use a professional
tool. And that requires that the tool is written in an appropriate
language. And most professional programmers surely wouldn't call
assembly language an appropriate language for implementing an
assembler).
FASM is programed in Assembly and I haven't seen any complaints yet.
I see no reason why the programmers who use it should be called
differently. How many of them do you know, that you can tell they are
no professionals?
--
wfz
Rod Pemberton
2008-02-17 05:59:22 UTC
Permalink
Post by Spam Killer
Post by Herbert Kleebauer
Post by Spam Killer
Post by Herbert Kleebauer
Yes, and C is a "CPU independent High Level Assembly language" and
therefore perfectly on topic here.
Thanks for the laugh!
That wasn't meant as a joke, it's the truth.
Hey, my C is very limited, so lets see what the many C-Programers, who
(in your opinion) think this group is is the proper place to discuss C
have to say to your defininiton. Or maybe you can tell on what page
of the C-Standard this definition is given.
Unfortunately, I have to agree with Herbert. I know both C and x86
assembly. Actually, I've programmed in about fourteen different languages
to varying degrees. There are only modest differences between C and
assembly. The most important differences are the type system and ability to
program entirely using variables instead of using registers. When one
writes C well, the compiled assembly can match or be very close to handcoded
assembly. But, that's not always the case. Most C compilers are _superb_
with constant folding and constant propagation. When such strength
reduction comes into play, I've never been able to write assembly code
better than a C compiler. They are also usually better with register
allocation than I am. However, C compilers can be weak in certain areas as
Terje Mathison can easily demonstrate with floating point, MMX, SSE, etc.
code. Let's take a program which I've written in both C and x86 assembly.
These are real code examples from a FORTH interpreter. The C (not shown) is
100% ANSI/ISO C.

First example of hand coded x86 NASM assembly:

cold_:
dd abort_
dd bye_

abort_:
dd enter_
dd quit_
dd exit_

Equivalent C routine compiled to x86 AT&T assembly:

.globl _cold_
_cold_:
.long _abort_
.long _bye_

.globl _abort_
_abort_:
.long _enter__
.long _quit_
.long _exit_

Except for syntax (AT&T vs. NASM), those two are 100% equivalent. Please
notice that abort is not only an object, but abort is also stored in cold.
Also note that, although they look identical here, there are three different
"incompatible" C types used together here - including one that is prohibited
from type conversion... I'm sure that more than a few programmers from
c.l.c., who don't understand assembly or C's type system or how C maps onto
assembly, will tell you that generating _that_ from C code impossible...
despite it being 100% ANSI/ISO C. No, you can guess at the C code. Can you
figure it out? Now throw in a function pointer... :-)

Second example of hand coded x86 NASM assembly:

next_:
mov w_,[ip_]
lea ip_,[ip_+4]
lea w_,[w_+4]
jmp [w_-4]

Equivalent C routine compiled to assembly:

.globl _next
_next:
subl $12, %esp
.p2align 4,,7
L2:
movl _ip, %ecx
movl (%ecx), %edx
addl $4, %ecx
movl %ecx, _ip
leal 4(%edx), %eax
movl %eax, _w
call *(%edx)
jmp L2

Okay, so that's not 100%. But, it's very close. If GCC could maintain a
file-scope variable in a register, instead of just local auto variables in
registers, there'd only be a few minor code differences. If all variables
were auto, the compiled code would look like this:

.globl _next
_next:
; three line prolog deleted
L2:
movl (%esi), %eax
addl $4, %esi
leal 4(%eax), %ebx
call *(%eax)
jmp L2

That's about 99%. Notice that the assembly here and the handcoded version
are functionally identical. The few remaining variations are compiler
instruction choice (addl instead of leal), differences due to C (call and
jmp instead of jmp, prolog), and explicit registers.


Rod Pemberton
Spam Killer
2008-02-17 09:26:45 UTC
Permalink
Post by Rod Pemberton
Unfortunately, I have to agree with Herbert. I know both C and x86
assembly. Actually, I've programmed in about fourteen different languages
to varying degrees. There are only modest differences between C and
assembly.
You mix up apples and pears here. The output of a compiler is machine
language and most compilers can be made (with the -S or similar
switches) to produce a .s or .asm file that can be fed to an
assembler. What you show below is from such a file, but the syntax of
a C-Source and an Assembly Language source are quite different.

And as many here have already mentioned, if you feed bad C-code to a
compiler you get bad output the same as with badly written assembly
code.

He may not have meant it as a joke, but to say that C is an Assembly
language is ridiculous. There is no opcode table and Instruction set
in the C-Standard.
--
wfz
Rod Pemberton
2008-02-17 22:53:07 UTC
Permalink
Post by Spam Killer
Post by Rod Pemberton
Unfortunately, I have to agree with Herbert. I know both C and x86
assembly. Actually, I've programmed in about fourteen different languages
to varying degrees. There are only modest differences between C and
assembly.
You mix up apples and pears here.
Pears... Am I? The point of my example was that C vs. assembly is more one
variety of apple to another highly similar variety of apple... not pears.
Post by Spam Killer
The output of a compiler is machine
language and most compilers can be made (with the -S or similar
switches) to produce a .s or .asm file that can be fed to an
assembler. What you show below is from such a file, but the syntax of
a C-Source and an Assembly Language source are quite different.
That's true. The literal syntax is different. But, you could create an
almost C syntax using assembly macro's. You could also create an x86
assembly syntax in C using define's and the preprocessor. If you understand
what is going on in C, the syntax isn't an important factor, because you're
coding assembly mentally, just using C to do so. It's like the difference
between Latin and another Romance language like Spanish or French, i.e., Red
Delicious apple vs. Golden Delicious apple. It could even be compared to a
partial Germanic language, like English, to a Romance language, if one
believe the differences are much larger, i.e., Red Delicious apple vs. Malus
apple. But, it's unlike the differences between English and Chinese, or
Japanese, i.e., apple vs. pear.
Post by Spam Killer
He may not have meant it as a joke, but to say that C is an Assembly
language is ridiculous. There is no opcode table and Instruction set
in the C-Standard.
But, C captures the entire set of low level functionality of RISC, pre-CISC,
and load-store cpu's. In that sense, it is an "assembly" - a RISC like
assembly. If you're interested, I've posted the words of a few notable
experts after my signature.


Rod Pemberton


"ANSI Standard Perl? Larry Rosler Talks About the Benefits of Standardizing
Perl", by Joe Johnston

"I taught the first course on C at Bell Labs, using a draft of K&R, which
helped vet the exercises. The students were hardware engineers who were
being induced to learn programming. They found C (which is 'portable
assembly language') much to their liking. Essentials such as pointers are
very clear if you have a machine model in mind."
- Larry Rosler (contributor to ANSI C X3J11)


"The Development of the C language", by Dennis M. Ritchie

"The language is also widely used as an intermediate representation
(essentially, as a portable assembly language) for a wide variety of
compilers, both for direct descendents like C++, and independent languages
like Modula 3 [Nelson 91] and Eiffel [Meyer 88]."
- Dennis M. Ritchie, co-creator of C language


"Al Stevens Interviews Alex Stepanov", by Al Stevens, Dr. Dobb's Journal

"Computers that were able to deal just with numbers evolved into computers
with byte-addressable memory, flat address spaces, and pointers. This was a
natural evolution reflecting the growing set of problems that people were
solving. C, reflecting the genius of Dennis Ritchie, provided a minimal
model of the computer that had evolved over 30 years. C was not a quick
hack. As computers evolved to handle all kinds of problems, C, being the
minimal model of such a computer, became a very powerful language to solve
all kinds of problems in different domains very effectively. This is the
secret of C's portability: it is the best representation of an abstract
computer that we have. Of course, the abstraction is done over the set of
real computers, not some imaginary computational devices."
- Alex Stepanov, C++ STL creator
Spam Killer
2008-02-18 20:40:10 UTC
Permalink
Post by Rod Pemberton
That's true. The literal syntax is different. But, you could create an
almost C syntax using assembly macro's. You could also create an x86
assembly syntax in C using define's and the preprocessor. If you understand
what is going on in C, ...
Maybe you understand this:

I'm not interested in C and don't want to know what's going on in it.

That's why I post here and *not* in a C group!
--
wfz
Rod Pemberton
2008-02-18 23:02:03 UTC
Permalink
Post by Spam Killer
Post by Rod Pemberton
That's true. The literal syntax is different. But, you could create an
almost C syntax using assembly macro's. You could also create an x86
assembly syntax in C using define's and the preprocessor. If you understand
what is going on in C, ...
I'm not interested in C and don't want to know what's going on in it.
That's why I post here and *not* in a C group!
Fair enough. But, you need to accept there are programmers here, who
understand assembly, and are dealing with assembly not just from compilers,
but what they write in assembly too. That means some other languages, or
their compiled output, will be posted. We also get posts from users of at
least three assemblers that few here understand... So, from your
perspective, they might as well not post their assembly here either,
correct? Just where do you stop excluding people?


Rod Pemberton
Spam Killer
2008-02-19 13:50:51 UTC
Permalink
Post by Rod Pemberton
Fair enough. But, you need to accept there are programmers here, who
understand assembly, and are dealing with assembly not just from compilers,
but what they write in assembly too. That means some other languages, or
their compiled output, will be posted. We also get posts from users of at
least three assemblers that few here understand... So, from your
perspective, they might as well not post their assembly here either,
correct? Just where do you stop excluding people?
I have no problems with accepting that, but I wouldn't count posts
along the line

"Nobody uses Assembly Language, a C-compiler is always better"

to belong to that category!

And to the other reply to my post I can only say that what is
interesting for someone can be quite boring for someone else. Some
like to deal with things at the machine level because that fits better
with their way of thinking, others prefer a higher level.
--
wfz
Dirk Wolfgang Glomp
2008-02-20 07:55:56 UTC
Permalink
Post by Spam Killer
Post by Rod Pemberton
Fair enough. But, you need to accept there are programmers here, who
understand assembly, and are dealing with assembly not just from compilers,
but what they write in assembly too. That means some other languages, or
their compiled output, will be posted. We also get posts from users of at
least three assemblers that few here understand... So, from your
perspective, they might as well not post their assembly here either,
correct? Just where do you stop excluding people?
I have no problems with accepting that, but I wouldn't count posts
along the line
"Nobody uses Assembly Language, a C-compiler is always better"
to belong to that category!
And to the other reply to my post I can only say that what is
interesting for someone can be quite boring for someone else. Some
like to deal with things at the machine level because that fits better
with their way of thinking, others prefer a higher level.
--
wfz
Betov:
The price of freedom, so to say, and one of the reasons i am
used to say that Assembly is an anarchist Language, whereas
C (typicaly) is a fascist Language.

Dirk
aku ankka
2008-02-19 11:02:58 UTC
Permalink
Post by Spam Killer
Post by Rod Pemberton
That's true. The literal syntax is different. But, you could create an
almost C syntax using assembly macro's. You could also create an x86
assembly syntax in C using define's and the preprocessor. If you understand
what is going on in C, ...
I'm not interested in C and don't want to know what's going on in it.
That's a real shame you're opposing something you don't understand
just because you're not interested in it. From this point forward,
anything you say about C cannot be taken seriously so you might as
well drop this argument to save everyone's time.

You *should* be interested in C, or other higher level language if you
want to do something interesting. Fiddling bits on and off isn't
interesting by itself but what you can achieve with it.
Rs
2008-02-20 18:23:31 UTC
Permalink
Post by Rod Pemberton
Post by Spam Killer
Post by Herbert Kleebauer
Post by Spam Killer
Post by Herbert Kleebauer
Yes, and C is a "CPU independent High Level Assembly language" and
therefore perfectly on topic here.
Thanks for the laugh!
That wasn't meant as a joke, it's the truth.
Hey, my C is very limited, so lets see what the many C-Programers, who
(in your opinion) think this group is is the proper place to discuss C
have to say to your defininiton. Or maybe you can tell on what page
of the C-Standard this definition is given.
Unfortunately, I have to agree with Herbert. I know both C and x86
assembly. Actually, I've programmed in about fourteen different languages
to varying degrees. There are only modest differences between C and
assembly.
not true assebly has 1 - 1 for "cpu instructions"- "instructions"
Post by Rod Pemberton
The most important differences are the type system and ability to
program entirely using variables instead of using registers.
the above (not use registers)
can not be the right thing to do, in many times

i think an assembly language + indentation + jumps
(structured programming with jumps)
can be more clear than the "C way"
Post by Rod Pemberton
When one
writes C well, the compiled assembly can match or be very close to handcoded
assembly. But, that's not always the case. Most C compilers are _superb_
with constant folding and constant propagation. When such strength
reduction comes into play, I've never been able to write assembly code
better than a C compiler.
if i think on it, i can write something better than all the compiler output
(because possibly the compiler can optimize something i have not seen
but i see the code can copy the idea and have some other ideas for
"surpass" the C compiler output)
Post by Rod Pemberton
They are also usually better with register
allocation than I am. However, C compilers can be weak in certain areas as
Terje Mathison can easily demonstrate with floating point, MMX, SSE, etc.
code. Let's take a program which I've written in both C and x86 assembly.
These are real code examples from a FORTH interpreter. The C (not shown) is
100% ANSI/ISO C.
Herbert Kleebauer
2008-02-17 19:24:37 UTC
Permalink
Post by Spam Killer
Hey, my C is very limited, so lets see what the many C-Programers, who
(in your opinion) think this group is is the proper place to discuss C
have to say to your defininiton. Or maybe you can tell on what page
of the C-Standard this definition is given.
Better don't ask a C programmer but a Java programmer what he thinks
about C.
Post by Spam Killer
I would expect that soneone who makes bad statments about a tool has
at least given it a try. How can you tell it isn't the proper tool
for you if don't use it at least for a while.
I didn't make a bad statement about the tool but about the language
which had been chosen to implement the tool. If you order a painting
and get a wonderful picture painted on a paper which destroys itself
after a few days then you must be able to criticize the paper used
for the painting without saying anything bad about the picture itself.
Post by Spam Killer
Post by Herbert Kleebauer
The user of an
assembler only uses the binary of the program and mostly doesn't
care about how this binary was generated
And then why should he care when the binary is produced written with
an Assembler written in Assembly Language.
The same reason why I would care when the beautiful painting is on
an inappropriate canvas.
Post by Spam Killer
FASM is programed in Assembly and I haven't seen any complaints yet.
I see no reason why the programmers who use it should be called
differently. How many of them do you know, that you can tell they are
no professionals?
Do you know a single professional programmer (one who makes a living from
his programing) who is using FASM (even as a C side tool as Rene calls it)?
//\\\\o//\\\\
2008-02-17 19:33:52 UTC
Permalink
På Sun, 17 Feb 2008 20:24:37 +0100, skrev Herbert Kleebauer
Post by Herbert Kleebauer
I didn't make a bad statement about the tool but about the language
which had been chosen to implement the tool. If you order a painting
and get a wonderful picture painted on a paper which destroys itself
after a few days then you must be able to criticize the paper used
for the painting without saying anything bad about the picture itself.
In other words:
C programming, Smoking, absint and MUCHROOMS should not be combined when
posting to ala.


(Herbert is working hard at theese hillerious crap allegories).

:)
Spam Killer
2008-02-17 21:15:57 UTC
Permalink
[...]
You chain of thinking is always the same: "If it is done in assembly
it is bad!", so it doesn't make any sense to discuss it further with
you anyway!
--
wfz
Betov
2008-02-18 07:14:42 UTC
Permalink
Post by Herbert Kleebauer
FASM (even as a C side tool as Rene calls it)
I never wrote that. Or, if i wrote it, this was a typo for MASM.
FASM is an Assembler. MASM is not.


Betov.


< http://rosasm.org >
Herbert Kleebauer
2008-02-18 08:59:47 UTC
Permalink
Post by Betov
Post by Herbert Kleebauer
FASM (even as a C side tool as Rene calls it)
I never wrote that. Or, if i wrote it, this was a typo for MASM.
FASM is an Assembler. MASM is not.
Maybe I didn't correctly express myself. What I wanted to say is,
that most programmers use assembly only for very small portions of
a project and do the major coding in a HLL. And if I understand you
correct, you call an assembler used this way a "C side tool". And
my statement was, that I don't believe that any professional programmer
is using FASM this way, let alone using FASM as the main developing
language.
Betov
2008-02-18 18:17:46 UTC
Permalink
Post by Herbert Kleebauer
Maybe I didn't correctly express myself. What I wanted to say is,
that most programmers use assembly only for very small portions of
a project and do the major coding in a HLL. And if I understand you
correct, you call an assembler used this way a "C side tool". And
my statement was, that I don't believe that any professional programmer
is using FASM this way, let alone using FASM as the main developing
language.
When you will stop considering "professional programmers"
as a reference, maybe you will consider that the Noe Arch
was build by a hobbyist and the Titanic by professional
people.


Betov.

< http://rosasm.org >
Rs
2008-02-20 07:18:55 UTC
Permalink
Post by Betov
When you will stop considering "professional programmers"
as a reference, maybe you will consider that the Noe Arch
was build by a hobbyist and the Titanic by professional
people.
the Arch project didn't came from Noe
Noe follow only instructions
Post by Betov
Betov.
< http://rosasm.org >
Betov
2008-02-21 07:28:46 UTC
Permalink
Post by Rs
the Arch project didn't came from Noe
Noe follow only instructions
You probably mean that, if this man existed, and if he did
it instruction by instruction, he was then an Assembler.

:)

Betov.

< http://rosasm.org >
Frank Kotler
2008-02-21 09:10:38 UTC
Permalink
Post by Betov
Post by Rs
the Arch project didn't came from Noe
Noe follow only instructions
You probably mean that, if this man existed, and if he did
it instruction by instruction, he was then an Assembler.
:)
Betov.
< http://rosasm.org >
"Noah!"
"Yes, Lord?"
"Build me an ark!"
"Yes, Lord. That's in gdi32.dll, right Lord?"

Best,
Frank

//\\\\o//\\\\
2008-02-15 08:03:03 UTC
Permalink
Post by Betov
Post by //\\\\o//\\\\
Also, not until I got the 64
bit version running.
Nobody cares of Linux-64. Personaly, i never even gave it a try
(even though my Linux Box *is* 64), and i have read that Ubuntu
64 is not recommanded. Anyway, even when it will work, 64 will
never have any advantage, - but for servers -, and will always
be a scaring horror, at a programming point of view.
It would seem that way. But how can _I_ say until I tried?

(Can you say abit more about why you think so)?

(And how can I stop myself. I WANT to code the 64 bit, like I wanted to
have a new cellphone, even though my old one worked, for using the phone,
the new one can take 5 megabits pictures, and video and I cant afford
making cellphone calls anyways :D :D)
Post by Betov
Betov.
< http://rosasm.org >
santosh
2008-02-08 13:48:02 UTC
Permalink
På Fri, 08 Feb 2008 11:12:44 +0100, skrev santosh
Post by santosh
På Fri, 08 Feb 2008 02:57:17 +0100, skrev santosh
Post by santosh
As for Vista what I find particularly galling is the unholy
combination of outrageous demands on the hardware and the user's
pocket and /very/ poor overall quality of the OS. Even XP is miles
better. MS' users (of whom I count myself out) should boycott Vista
and stay put with XP, forcing MS to extend the latter's life or
come with a better product (doubtful).
Agreed.
But yesterday I experienced one very sad issue with Ubuntu. I was
renaming a directoy containing 6 giga of data, when the directory
just disappeared. It was a directory on a NTFS drive. This was, to
say the least, discouraging.
(I searched around for the file, by several methods, but the entire
directory was just gone - any advice is appreciated)
Now I will be very afraid of using Linux. (Espesially with a NTFS
drive). This is extremly sad, because I found that Linux is
otherwise very satisfying.
If I use NTFS, I use Windows.
Only Windows knows all the secrets of MS's proprietary NTFS.
Does Linux offer some tools for converting the NTFS system?
I think you should install the 'ntfsprogs' package. Also if you search
your package repository with the string "NTFS" in your package manager
you might encounter other programs that you may be able to install.

My version of Ubuntu is 6.06 from 2006 but I think that your best bet
for *repairing* damaged NTFS filesystems is Windows's CHKDSK or a
Windows specific disk repair utility like Norton or whatever.
I havent found any yet. I dont need Windows for those files anymore.
Linux will anyway be my prefered media plattform of choise for the
forseeable future.
It is now simply working too good to let it slip.
I can not imagine to want to go back unless some serious issues arise.
I would program in a platform independant manner. No OS is worth your
complete loyalty, nor your app's. They all come and go. Who knows what
will be the "OS" in 2020. All that remains constant (relatively) are
the basic issues of programming and languages like assembler, C, C++,
LISP, Fortran etc.

The most portable way would be for you to actually write your own GUI
library using nothing but primitives of X or OpenGL and GDI or DirectX.
But this is a huge project. Better to use a toolkit like GTK+ or
something else.
mayby I should mount some partition, and copy the content over to a
"real" Linux parition. What is considered the best of those other
formats?
Currently some widely used FS with Linux are ext3, JFS, ReiserFS, and
XFS.

BTW is this your NTFS driver?

<http://en.wikipedia.org/wiki/NTFS-3G>

<snip>
//\\\\o//\\\\annabee
2008-02-11 09:48:49 UTC
Permalink
Post by santosh
På Fri, 08 Feb 2008 11:12:44 +0100, skrev santosh
Post by santosh
På Fri, 08 Feb 2008 02:57:17 +0100, skrev santosh
Post by santosh
As for Vista what I find particularly galling is the unholy
combination of outrageous demands on the hardware and the user's
pocket and /very/ poor overall quality of the OS. Even XP is miles
better. MS' users (of whom I count myself out) should boycott Vista
and stay put with XP, forcing MS to extend the latter's life or
come with a better product (doubtful).
Agreed.
But yesterday I experienced one very sad issue with Ubuntu. I was
renaming a directoy containing 6 giga of data, when the directory
just disappeared. It was a directory on a NTFS drive. This was, to
say the least, discouraging.
(I searched around for the file, by several methods, but the entire
directory was just gone - any advice is appreciated)
Now I will be very afraid of using Linux. (Espesially with a NTFS
drive). This is extremly sad, because I found that Linux is
otherwise very satisfying.
If I use NTFS, I use Windows.
Only Windows knows all the secrets of MS's proprietary NTFS.
Does Linux offer some tools for converting the NTFS system?
I think you should install the 'ntfsprogs' package. Also if you search
your package repository with the string "NTFS" in your package manager
you might encounter other programs that you may be able to install.
I found them, but are unable to install them for the same reason I cant
intall "mc". Connection refused 111 (port 4001)
Post by santosh
My version of Ubuntu is 6.06 from 2006 but I think that your best bet
for *repairing* damaged NTFS filesystems is Windows's CHKDSK or a
Windows specific disk repair utility like Norton or whatever.
It did not help. Lucky it was not important data.
Post by santosh
I havent found any yet. I dont need Windows for those files anymore.
Linux will anyway be my prefered media plattform of choise for the
forseeable future.
It is now simply working too good to let it slip.
I can not imagine to want to go back unless some serious issues arise.
I would program in a platform independant manner. No OS is worth your
complete loyalty, nor your app's.
Yes. Well I dont want to. ;)
My apps arnt worth porting, and if they wore,
I am sure I could get someone todo it for me.

:D
Post by santosh
They all come and go. Who knows what
will be the "OS" in 2020.
The 64 bit oses, will live for quite some time.
My next asm work, will be for 64bit.

( I am sure that it will be a free os, like Linux).

Windows on my AMD even when upgraded, spend 12 minutes
just to copy a 700 meg file from the USB drive, while
Linux does the same thing in 1 minute and 20 sec.

Maybe because Linux installed usb 2.0 drivers, and windows did
not. For whatever reason, this is enough for me to want Linux
on my PC. That and the fact that it plays all my Mp3, and all my
videos, I can use it for my pictures and ect ect.
And the web, mail, and etc.

(That means basically all my non-programming activities
It now also has several nice games, and utterly splendid screensavers)

This rename bug, or what it is, is not important enough to
stop me. Linux can at least READ and also COPY to the NTFS drive
and that works fine.

Just isnt going to let it near my windows sourcefiles.

btw. I have used USERMOUNT to unmount some partitions on
Linux, but linux keeps remounting them each time it boots.
Do you know a way to permanently dismount a volume?
Post by santosh
All that remains constant (relatively) are
the basic issues of programming and languages like assembler, C, C++,
LISP, Fortran etc.
The most portable way would be for you to actually write your own GUI
library using nothing but primitives of X or OpenGL and GDI or DirectX.
But this is a huge project. Better to use a toolkit like GTK+ or
something else.
I am _driven_ to do the things I do.
I dont do them because it is "better" or not. I do it for the
same reason some people solve puzzles, because they like todo it.
I also want the work to be finally useful of course, but if its not
then this is a secondary consideration to me. As in : Then I will
just keep trying to improve it until that is not longer true or
something else happens..
Post by santosh
mayby I should mount some partition, and copy the content over to a
"real" Linux parition. What is considered the best of those other
formats?
Currently some widely used FS with Linux are ext3, JFS, ReiserFS, and
XFS.
:))) Thats not what I was asking.
I asked what would be considered the _better_ one for storing > 6giga
mediafiles?
(The one most likly to be supported for the longest possible future, and
also capable for what I need it for)
Post by santosh
BTW is this your NTFS driver?
<http://en.wikipedia.org/wiki/NTFS-3G>
<snip>
//\\\\o//\\\\annabee
2008-02-11 12:12:36 UTC
Permalink
Post by santosh
BTW is this your NTFS driver?
<http://en.wikipedia.org/wiki/NTFS-3G>
It is that one, yes.
Post by santosh
<snip>
Loading...