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

Re: Question: If Laser 128 didn't use Apple ROMS



Linards Ticmanis wrote:
Lockar wrote:

      How did the Laser 128 run Apple // programs if it didn't have any
code of Apple ROMS? (I know some programs do not work on the Laser).


If it was done the same way as in the early IBM PC clones, then for every commonly-used CALL (or JSR) into the ROM code there was something in the Laser ROMs that did the same thing as the original Apple routine at the same address, but employing different machine language sequences.

Interestingly, some code sequences could even be the same (by chance) as
long as the process by which they were written was independent of
anything but the observed behavior of the actual ROMs.

This so-called "clean room" process, in which one team writes a
behavioral spec from the original machine, then passes *only* the
spec to another team that (re-)writes code to implement it, was
found not to infringe the ROM copyrights.

In fact, any subsequent comparison of the newly written code with
the original ROM code could only be done legally by a *third* team,
to prevent any cross-flow of information about the contents of the
original ROMs.

Of course for Apple this was more difficult to get working because there were such jump-in points throughout the ROM, unlike the IBM which used mostly "software interrupts", through jump vectors stored in RAM and thus not fixed.

The programs that don't work on the Laser are either those that jump into the ROM at less commonly used addresses for which the Laser doesn't provide the necessary code, or maybe a few that depend on exact cycle counts of certain ROM routines.

-michael

Music synthesis for 8-bit Apple II's!
Home page:  http://members.aol.com/MJMahon/

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