AppleTalk #2: ProDOS 8 Compatibility on the IIe and IIGS
Apple II Technical Notes Developer Technical Support
Written by: Mark Day November 1988
This Technical Note describes areas which could cause an application to run under the
AppleShare Apple IIe workstation software, but fail under the Apple IIGS workstation
software.
- If code is running in auxiliary memory in emulation mode (e.g., ProDOS 8 programs that
run code from auxiliary memory), make sure $0100 in auxiliary memory is set to the normal
stack pointer and $0101 in auxiliary memory is set to the auxiliary (alternate) stack
pointer. (See page 93 of the Apple IIe Technical Reference Manual.)
- Make sure ProDOS calls are not made from auxiliary memory; Apple has never recommended
doing this, and it is not supported.
- Make sure interrupts are enabled when making ProDOS 8 calls.
- Make sure interrupts are not disabled for long periods of time, nor for a high
percentage of time. Whenever interrupts are disabled, there is a chance that an AppleTalk
packet will be missed (which could cause AppleShare volumes to be unmounted). The more
interrupts are disabled, the more likely that packets will be missed. This risk is
inherent for any application that disables interrupts (directly or indirectly), therefore,
interrupts should be disabled with discretion and only when absolutely necessary.
- Make sure programs get the completion routine return address from the GetInfo call when
they are started.
- Make sure to identify AppleTalk by calling GetInfo and checking for an invalid call
number error (which means AppleTalk is not present). Do not use the ATLK signature bytes
for identification. See Apple II AppleTalk Technical Note #1, Identifying
AppleTalk.
Further Reference
- Apple IIe Technical Reference Manual
- Apple II AppleTalk Technical Note #1, Identifying AppleTalk