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

Re: 6502 illegal opcodes questions



Paul Schlyter wrote:
In article <1149383070.763983.291190@h76g2000cwa.googlegroups.com>,
mdj <mdj.mdj@gmail.com> wrote:


Paul Schlyter wrote:


I fully agree with that!  The API is the specification, not the
implementation.  There might be some parts of the library which
can be called by outside code but wasn't intended to be called in
that way - they're not part of the API, even though they're part of
the library!

Of course, if you use features of a library that aren't part of it's
documented interface you'll eventually be cursed by almost everybody.

Hey, we're almost back on topic, considering this was supposed to be
about 'undocumented opcodes' :-) Of course, my feelings on using
undocumented library calls is much the same as my feelings on
undocumented opcodes. They are very similar problems.

Matt


In the Apple II world we had other similar situations: calling Monitor
ROM routines at some fixed address.  Or calling routines in the Applesoft
Basic ROM's.

And, intrestingly, this also returns us to another earlier theme of this
thread--how widespread use of undocumented features can create a barrier
to the creation of new, improved implementations.

The Apple ROM was not significantly changed until the //e, where much
of the actual code was placed in a bank-switched area.  Much of the F8
region became stubs at documented entry points vectoring to the actual
routines.  Updating the F8 region of the ROM was known to be a minefield
of compatibility issues.

The notion of defining the ROM entry points more architecturally was
not widespread at the time the Apple II was designed, and the impact
of the subsequent loss of control over ROM code became a problem.

(I've always wondered how much "compatibility issues" and how much
"renegotiation issues" factored into the decision to never update
the Applesoft ROMs to fix bugs...)

Later systems used a combination of less documentation and more
complexity to make calls into the middle of ROM less likely.  Still
not an ideal solution, but one well adapted to the Apple II.  ;-)

-michael

Parallel computing 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."