[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: substituting ROMs (Re: Illegal Clones)
Matthew Montchalin replied (original author <me> corrected):
>On Thu, 17 Oct 2002, Michael Mahon wrote:
>|>The Apple II mini-assembler has a structure which, to my knowledge,
>|>is unique in mocrocomputerdom. It simply starts incrementing an
>|>"opcode" byte in the destination location, _disassembling_ it after
>|>each increment, until it matches what the user typed in! It then
>|>fills in the operand address byte(s), if any, and disassembles it
>|>again to the screen.
>|
>|ROTFL. I knew Woz was a genius, I didn't know he was a _twisted_
>|genius. Though the Disk II controller should have clued me in.
>
>Why not just use a couple lookup tables? (One for size of operand,
>and one for addressing mode.) Was RAM significantly more expensive,
>as I would imagine, back when he did it the hard way?
It wasn't in RAM, it was in ROM--and ROM space is always precious.
While Woz considered the disassembler essential, the mini-assembler
was an embellishment, and was added only because its clever structure
enabled it to fit. When Applesoft BASIC replaced Woz's Integer BASIC
in ROM, there was no longer space for even the mini-assembler.
Doing it like this is not the "hard way", but the "clever way" considering
the realities of the speed (negligible) and space (critical) requirements.
-michael
Check out 8-bit Apple sound that will amaze you on my
Home page: http://members.aol.com/MJMahon/