From: Robert AH Prins on
On 2010-06-07 10:40, Peter Flass wrote:
> robin wrote:
>> "Martin Krischik" <krischik(a)users.sourceforge.net> wrote in message
>> news:op.vdv17504z25lew(a)macpro-eth1.krischik.com...
>> | Am 06.06.2010, 17:19 Uhr, schrieb J. Clarke <jclarke.usenet(a)cox.net>:
>> |
>> | > On 6/6/2010 12:25 AM, Shmuel (Seymour J.) Metz wrote:
>> |
>> | > What do you believe to be the difference between machine code and
>> | > assembler?
>> |
>> | 6502 Assembler:
>> |
>> | LDA #10
>> |
>> | 6502 Machine code:
>> |
>> | A9 10
>> |
>> | Any more silly questions?
>>
>> That assembler was of a much later period than the one under discussion,
>> namely, the 1940s-1950s.
>>
>
> If you want to talk *really* old assemblers, look at SOAP. The hardware
> had no core, only drum memory, and each H/W instruction contained the
> drum address of the next instruction to be executed. A big function of
> the assembler was figuring out where to store the instructions on the
> drum so that the next instruction was under the R/W head just as the
> previous finished executing -- based on the instruction timings. Try
> doing that by hand for a large program!

http://www.csd.uwo.ca/staff/magi/personal/humour/Computer_Audience/Real%20Programmers%20Write%20Fortran.html

FWIW, this thread is getting far too long and has f*ck all to do with
Fortran or PL/I and everything with ego's and one ego in particular...

Robert
--
Robert
--
Robert AH Prins
spamtrap(a)prino(d)org
From: Yannick Duchêne (Hibou57) on
Le Mon, 07 Jun 2010 12:40:07 +0200, Peter Flass <Peter_Flass(a)yahoo.com> a
écrit:
> If you want to talk *really* old assemblers, look at SOAP. The hardware
> had no core, only drum memory,
What is a “drum memory” ?


--
There is even better than a pragma Assert: a SPARK --# check.
--# check C and WhoKnowWhat and YouKnowWho;
--# assert Ada;
-- i.e. forget about previous premises which leads to conclusion
-- and start with new conclusion as premise.
From: J. Clarke on
On 6/7/2010 5:29 AM, Shmuel (Seymour J.) Metz wrote:
> In<hugevn02qfa(a)news5.newsguy.com>, on 06/06/2010
> at 11:15 AM, "J. Clarke"<jclarke.usenet(a)cox.net> said:
>
>> I never understood this business of making a distinction between
>> machine language and assembler
>
> The language level. In the case of my first assembler, the
> optimization.

If it "optimizes" then it's not an assembler, no matter what it might be
called.

>> maybe they changed things after I stopped
>> working with assembler but in my day it was a 1:1 correspondence
>
> Not by 1960. Even before the macro era you had pseudo-ops that emitted
> no code and pseudo-ops that generated multiple words.

So? Shortcuts to keep from having to repeatedly type a bunch of code.
Don't do anything you couldn't do by hand and you are not compelled to
use them.

>> and the only practical difference was that someone who didn't have
>> an idiot-savant ability to remember numerical codes could learn to
>> work in assembler in a reasonable time.
>
> Maintaining your own symbol table would be labor intensive unless
> you're JvN; I vaguely recall that he refused to use assemblers.

He came down with cancer around the time that assemblers started to
become common, too, and died shortly after, so one has to question the
relevance of such an observation.
>
>> Perhaps he's looking for programs in microcode or something.
>
> ?
>
> FWIW, IBM used assemblers for the ROS on the S/360 and S/370; I don't
> know about other vendors.

From: J. Clarke on
On 6/7/2010 8:35 AM, Yannick Duchêne (Hibou57) wrote:
> Le Mon, 07 Jun 2010 12:40:07 +0200, Peter Flass <Peter_Flass(a)yahoo.com>
> a écrit:
>> If you want to talk *really* old assemblers, look at SOAP. The
>> hardware had no core, only drum memory,
> What is a “drum memory” ?

Are you serious?

You remember those old Edison phonographs that used a wax cylinder?
Well imagine that concept only with the cylinder coated with magnetic
material instead of wax, and with a row (or several rows) of heads along
its length. Has most of the properties of a fixed-head disk except the
unequal track lengths.


From: Arthur Evans Jr on
In article <huiia5$2k1$1(a)news.eternal-september.org>,
Peter Flass <Peter_Flass(a)Yahoo.com> wrote:

> If you want to talk *really* old assemblers, look at SOAP. The hardware
> had no core, only drum memory, and each H/W instruction contained the
> drum address of the next instruction to be executed. A big function of
> the assembler was figuring out where to store the instructions on the
> drum so that the next instruction was under the R/W head just as the
> previous finished executing -- based on the instruction timings. Try
> doing that by hand for a large program!

SOAP was an assembler for the IBM 650, a drum machine that had 200 (NOT
2048) words on a rotating drum in 40 tracks of 50 words each. It was a
one-plus-one address machine, each instruction including the address of
its successor.

As Mt Flass has said, SOAP (Symbolic Optimal Assembler Program) did its
best to place each instruction so that it was coming under the read
heads when the previous instruction finished executing.

But, it did that when first the instruction was encountered in the
input. If the instruction was the successor of another instruction, it
wasn't likely to be optimized for this one. Thus it was in fact
sometimes (rarely) worth doing that optimization by hand for frequently
used pieces of code.

The 650 initially had no floating point instructions, so the run time
support library for IT included code to simulate floating point
arithmetic. Since this package had heavy use, my colleague Joe Smith
optimized it by hand, resulting in a noticeable performance increase.

Yes, I know, this discussion really belongs on alt.folklore.computers,
but I couldn't resist.

BTW -- Don Knuth, who like me cut his programming teeth on the 650, once
designed an integer-programming application to truly optimize
instruction placement. I don't know if he ever actually programmed it,
as he was sure it would take vastly more time to execute than it could
ever save. I may misremember some of the details.

Art Evans
Old Codger