Re: [cc65] ca65 for stand-alone asm projects

From: Oliver Schmidt <ol.sc1web.de>
Date: 2010-11-13 18:29:06
Hi Chris,


>> That's basically all necessary to know from the user perspective...
>
> Fine. But I'm not a user in this respect, I think ... :-)

Certainly. I just wanted to point out that there *is* documentation available.

>> "While running main() the Language Card bank 2 is enabled for read
>> access."
>
> Ok. This probably means, the OS is switched out and RAM is present
> at its location. I'm no Apple guy, so I overlooked this.

Exactly. 'Language Card' is the name of the RAM area that can be
enabled in favour of the ROM. In early Apple II machines it was
optional - therefore 'Card'. It was originally used to provide
alternatives the the ROM BASIC - therefore 'Language'.

> How do you handle interrupts? Is the complete ROM switched out, or only a
> part?

Only a part is switched. But that isn't relevant for the interrupt
topic as $FFFE/$FFFF *are* switched.

When running ProDOS then the DOS uses most of the Language Card (incl.
$FFFE/$FFFF) itself and it takes care itself to handle interrupts
correctly when they occure while the Language Card is active (incl.
restoring the state found before the interrupt occured).
http://www.cc65.org/doc/apple2-4.html#ss4.1 :
"A plain vanilla ProDOS 8 doesn't actually use the Language Card bank
2 memory from $D400 to $DFFF."

When running DOS 3.3 interrupts are simply supposed to not occur.
http://www.cc65.org/doc/apple2-4.html#ss4.2 :
"A plain vanilla DOS 3.3 doesn't make use of the Language Card at all."

> Can one call ROM routines from code placed in HIGHCODE?

No. ROM calls are supposed to be made solely by the C library - which
isn't placed in HIGHCODE.

> So many questions... :-)

No problem. Just ask :-)

Regards,
Oliver
----------------------------------------------------------------------
To unsubscribe from the list send mail to majordomo@musoftware.de with
the string "unsubscribe cc65" in the body(!) of the mail.
Received on Sat Nov 13 18:29:13 2010

This archive was generated by hypermail 2.1.8 : 2010-11-13 18:29:17 CET