Yup. We had a large production program that I'd patch until the
whole thing fell apart - only then would I try to wheedle the 40
minutes of machine time that it took to re-assemble it.

I finally wrote my own assembler. Although it had a number of very
nice features that were missing from the stock assembler, its primary
goal (which I achieved) was to run twice as fast. It was a bit easier
to scrounge 20 minutes of machine time than 40.

--
/~\ snipped-for-privacy@kltpzyxm.invalid (Charlie Gibbs)
\ / I'm really at ac.dekanfrus if you read it the right way.

re:
http://www.garlic.com/~lynn/2010p.html#11 Rare Apple I computer sells for
$216,000 in London

I had the machine time ... since I got 48hrs straight every weekend ...
it was that it was usually faster to patch it than re-assemble.

I had conditional assembly ... one that ran stand-alone ... with its own
device drivers, interrupt handlers, etc that assembled in approx. 30
mins ... and the one that ran under os/360 using open/close, read/write
and DCB macros that assembled in approx. an hour (on 360/30) ... the DCB
macros taking 5-6 mins elapsed time each ... it was possible to see it
in the front panel lights when it had hit a DCB macro.

the folklore was that the person doing opcode lookup assembler routine
had been told that it had to be done in 256 bytes (or some such) ... so
the lookup table was reloaded from disk on each statement. the assembler
got much faster when somebody improved opcode lookup (using the memory
to keep the table loaded).

--
virtualization experience starting Jan1968, online at home since Mar1970

Bert Shaw was the old blacksmith -- about the age then that I am now
-- who got me hooked on beating hot iron. He'd retired, saying he was
too old to do "real blacksmithing" but was offered a position as
resident artist at an art and craft center. He took this up with glee
as he got to forge "little stuff" -- perfect reproductions of colonial
hardware -- and tell yarns and lies to the visitors.

In the course of time, one of the center honchos arranged for
U. Mass. to award Bert an honorary doctorate. Instead of framing the
document, he spiked it to a post in the shop with a 16 penny nail.

People such as I, ignorant as I was then of smithing or of art, he
treated with good humor and kindness. But occasionally, academics,
high-art types, biz dudes and the like would come in and show Bert no
respect, with "Say, Bert <this>" and "Oh, Bert, <that>". Then he
would take his horrible wrinkly cigar out of his mouth, spit on the
flood in a disgustingly drooly sort of way, then point to the now
sooty parchment and say, "That will be 'Doctor Shaw", if you don't
mind."

I'm not sure how a programmer could turn this yarn to advantage, what
with lacking a handy wooden post, smoking rules and so on. Maybe
Scott Adams could work on it.

I've always been a big fan of insertion sorts for such things -
then I can use a binary search. But I don't think that was the
main reason my assembler was so much faster. Univac's assembler
was heavily I/O-bound; it must have been doing a lot of passes,
or was keeping too much stuff on disk. The binary had 40 overlays
or so. Mine consisted of 4 phases, with one overlay each for the
second, third and fourth phases. The first phase read the source
file and expanded macros, the second one read the expanded code and
built the symbol table, the third read the expanded code again and
generated the listing, object code, and cross-reference data, and
the fourth sorted and printed the cross-reference data.

If I was assembling a program from a card deck, the first pass
worked directly from the card input without reading it into a
disk file first. You could hear the card reader stutter or pause
at each macro. The second phase ran in about the time it took the
card reader motor to time out and shut down, at which point the
printer fired up and started cranking out the listing.

This was on the Univac 9300, although I used the same principles
when I wrote my OS/3 assembler. Rumour has it that Univac's OS/3
assembler was a hacked version of IBM's DOS/360 assembler, whose
source code somebody found in the trunk of a car. Another rumour
states that IBM wanted it found. :-)

--
/~\ snipped-for-privacy@kltpzyxm.invalid (Charlie Gibbs)
\ / I'm really at ac.dekanfrus if you read it the right way.