[comp.sys.amiga] Assembly Source Level Collection

spier@umd5.umd.edu (Lori Spier) (04/02/88)

TITLE: Assembly Source Level Collection for the Amiga

After reading message after message about how 'C is just as good and fast
as assembly language and much easier to program in', I decided to put my
two cents in.  I am a dedicated assembly language programmer, starting with
the 8085 in the Compucolor II computer, PDP-10, PDP-20/20, 80x86, 6502 and
now the 68000, and I find that once you know the instructions WELL, you can
be just as productive as a C programmer, with faster code.  I don't want to
get on my soapbox, but for every program that you show me in C that is the
same size and just as fast as the assembly language counterpart, I will show
you five assembly programs which are just the opposite.

I know what you are saying now: "what does this have to do with anything??".
Well, I feel that the reason people are backing away from assembly language
is that there really is not that many examples out in the PD and the ones
which are out there, are not that easy to get a hold of or referenced for
easy access.  My point is that if there was a central collection where people
could get source code to aide them in programming in assembly language, more
people would be inclined to do so.  My answer: create such a collection.

The ASL Collection (Assembly Source Level Collection)
-----------------------------------------------------

I am starting a collection of 68000 assembly language source code files, much
like the Fred Fish Collection, in that I am asking (PLEADING!!) for any files
you have, that are in the public domain, and wish to submit.  I want to be
able to release five disk at a time, with no less than 2% of the disk space
free, so I need anything you have.  I am setting this project up using the
funds from my company, Selgus Ltd., and would love to have it expand in the
future.

REQUIREMENTS
------------

The only requirement is that any source you donate is either yours, you
created it, or it was placed in the public domain.  Before any code is
placed on any of the disks, it will be checked out by myself and if it is
necessary, I will contact the author.

HOW TO SUBMIT SOURCE CODE
-------------------------

It is very easy to submit source to the cause, just send the source to the
account I set up for the collection, along with the following infomation:
   1) title of source code
   2) type of code (i.e. graphics, math function, quicksort, etc.)
   3) authors name
   4) authors address (a E-MAIL address please, if there is one.)
   5) processor (68000, 68010, 68020 or 68030 if needed.)
   6) comment (any comment you wush to make about the code.)

I am sorry but I can not place any source code on any disk without the
above information, for the protection of all involved.

Please address any questions and all that source code you wish to donate to
the collection to:
   brett@rover.umd.edu      or if you have trouble with that
   bbourbin@umdd.bitnet

I hope to get some positive feedback and start the source rolling in. BTW
I have already submitted about 20 programs and functions of my own to the
collection and will be doing so whenever I get a chance.

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
   Brett S Bourbin                               Selgus Ltd.
   email:  brett@rover.umd.edu                   5 Fraternity Row
   bitnet: bbourbin@umdd.BITNET                  College Park, MD 20740
                                                 ATTN: Brett Bourbin
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

mwm@eris (Mike (My watch has windows) Meyer) (04/11/88)

In article <2524@umd5.umd.edu> spier@umd5.umd.edu (Lori Spier) writes:
<TITLE: Assembly Source Level Collection for the Amiga

Nice idea. But I've got some corrections, and a suggestion:

<I find that once you know the instructions WELL, you can
<be just as productive as a C programmer, with faster code.

Key word - "WELL". How many C-level and HLL langauges can you learn
well in the time it takes you to learn a non-trivial machine
instruction set well?

<I don't want to
<get on my soapbox, but for every program that you show me in C that is the
<same size and just as fast as the assembly language counterpart, I will show
<you five assembly programs which are just the opposite.

Ok. My favorite C progam is mg. The _most_ important thing it does is
run on my Amiga, my Sun, several VAXen and a Cray. When you've got an
editor written in assembler that does that, _then_ I'll switch :-).

The second most important thing is that new features added to one
version usually show up in all the others gratis. Make sure you get
that one, too.

<Well, I feel that the reason people are backing away from assembly language
<is that there really is not that many examples out in the PD and the ones
<which are out there, are not that easy to get a hold of or referenced for
<easy access.  My point is that if there was a central collection where people
<could get source code to aide them in programming in assembly language, more
<people would be inclined to do so.  My answer: create such a collection.

Not a bad idea. Writing things that aren't usefull on other machines
(e.g. - frags) in assembler doesn't cost anything in portability. On
the other hand, the PD C code for the Amiga is a little above average.
This makes it readable. Assembler code that is a little above average
is unreadable.

Since the goal is to provide examples to encourage people to write
assembler instead of C, you should definitely change:

<REQUIREMENTS
<------------
<
<The only requirement is that any source you donate is either yours, you
<created it, or it was placed in the public domain.  Before any code is
<placed on any of the disks, it will be checked out by myself and if it is
<necessary, I will contact the author.

To be:

The requirements are that the source code be either public domain or
publicly available, and that the code should provide a good example of
assembler programming.

Oh yeah - note the quiet change. Many people these days aren't putting
code in the public domain, as they lose all control of what others can
and can't do with the code. Instead, people copyright code, and then
state that "This code may be freely distributed under conditions X
except for Y" (X varies a lot, Y tends to prevent people from selling
the program for money). You might consider adding shareware to the
list, also. I wouldn't distribute it, but you might.

[I'm about to flame a bit. You may wish to skip from here on down.]

I don't agree that it's as easy to write C as to write in an assembler
you know well. I've been writing 68K assembler since '84, and I still
can't write it as fast as I can write C (Ok, I'll admit I've been
writing C since '79). The main reason isn't that the assembler is
harder to deal with - that's true for some machines, but not the 68K -
it's that I have to write significantly more english around the code
to bring the level of readability of assembler up to what I get when I
write C.

If you're on a brain-dead architechture that doesn't deal with stacks
well, or you're trying to get todays typical 10lb program to run on
one of yesterdays machines with 5lbs of memory, then you need to write
in assembler to get acceptable performance, or to get the thing to fit
at all. 

But with the Amiga, I've got a machine that spends most of it's cycles
waiting on me to type things at it, has an architechture that doesn't
punish you for using a stack, and has more memory than the first three
mainframes I worked with. Why work harder to have more of something I
already have in abundance?

Assembler has it's place, and I can and do write it when I need to.
Even on the Amiga, if I'm doing something CPU-intensive. But I'll
write the bulk of the code in C, and then spend the half the time I
saved by not writing it in assembler in the first place analyzing and
rewriting (maybe even in assembler) the 10% of the program that's
soaking up 90% of the time.

	<mike
--
But I'll survive, no you won't catch me,		Mike Meyer
I'll resist the urge that is tempting me,		ucbvax!mwm
I'll avert my eyes, keep you off my knee,		mwm@berkeley.edu
But it feels so good when you talk to me.		mwm@ucbjade.BITNET

haitex@pnet01.cts.com (Wade Bickel) (04/12/88)

mwm@eris (Mike (My watch has windows) writes:
>In article <2524@umd5.umd.edu> spier@umd5.umd.edu (Lori Spier) writes:
><TITLE: Assembly Source Level Collection for the Amiga
>
>[I'm about to flame a bit. You may wish to skip from here on down.]
>
>I don't agree that it's as easy to write C as to write in an assembler
>you know well. I've been writing 68K assembler since '84, and I still
>can't write it as fast as I can write C (Ok, I'll admit I've been
>writing C since '79). The main reason isn't that the assembler is
>harder to deal with - that's true for some machines, but not the 68K -
>it's that I have to write significantly more english around the code
>to bring the level of readability of assembler up to what I get when I
>write C.
>

        Seems to me that you should:


                A) get a better assembler.  As I understand it there are
                      several.

                B) use macro's.

        A well constructed library of routines and macros should be almost
      as easy to use as C, and in alot of cases easier.  Seems to me that
      what we all really need is an extensive, well written library of
      such routines and macros.

        Also, uncommented C (which is just about all I C :^) is not much 
      more readable than assembler, and assembler programmers are *much*
      more likely to comment there code carefully for there own needs.
      (My macros comment themselves).  If you want readablility, try 
      Modula-2.


                                                        Thanks,


                                                                Wade.

UUCP: {cbosgd, hplabs!hp-sdd, sdcsvax, nosc}!crash!pnet01!haitex
ARPA: crash!pnet01!haitex@nosc.mil
INET: haitex@pnet01.CTS.COM