[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: NadaNet file server coming soon...



mdj wrote:
On Apr 29, 8:09 pm, "Michael J. Mahon" <mjma...@aol.com> wrote:


Making the application programs be responsible for loading up their
environments makes an application much more readable than having the
"initialization" part in a separate program running on the master.


For sure, and if the bootstrap fits in the reclaimed bock of ROM
space, perfect :-)

What's in the ROM, replacing the sefl-test code, is a *low-level* boot,
used for doing a "cold load" of NadaNet into otherwise I/O-less 'Crate
machines.

What I was referring to here is the possibility, created by the file
server, of starting a parallel application by having the master push
a short Applesoft program to each machine which serves as a high-level
boot, loading the appropriate data and culminating in RUNning (or
BRUNning) the main application.

This in constrast to having a "start" program that runs on the master
to pre-load the code and data into each slave, then just starting them.

I particularly like the use of the Applesoft DATA statements in the
servers' command lexical scanner/parser. A little obtuse, but
nonetheless an elegant optimisation and an excellent performance/
maintainability engineering tradeoff. It must've been very tempting
just to recode the critical section in assembly ;-)

Ironically, as I was coding the original nested-GOSUB Applesoft parser,
I was always thinking on the side about how sweet it could be in
assembly--the 6502 is a *great* scanning machine!


As a part of a compiler project I wrote a (sub) version of "lex" that
outputs pretty tight 6502 code. Pruning the DFA's down to optimal
execution time was great fun :-)

There is something so primal, so "self-evident" about the 6502
architecture, that it serves as a nice, solid reference point.  ;-)

You'll note that I couldn't resist in the case of folding the request
to upper case in Applesoft.  Since that was the only character-by-
character processing remaining (hex excepted), I wrote a snippet of code
to fold the whole request in less time than it takes Applesoft to do one
statement.  ;-)


That would really sting perfomance if it wasn't optimised out :-)

Yes--it would have limited the optimization to about half what I was
able to get.

-michael

NadaNet file server for Apple II computers!
Home page:  http://members.aol.com/MJMahon/

"The wastebasket is our most important design
tool--and it's seriously underused."