This Technical Note discusses all the miscellaneous differences we know of between an enhanced Apple IIe and the Apple IIe Card for the Macintosh LC running version 1.0 of the IIe Startup application. This Note also contains routines needed to check and change the speed of the Apple IIe Card.
The Apple IIe Card for the Macintosh LC was designed to act as much like an enhanced Apple IIe as possible. For this reason, you should refer to the Apple IIe Technical Reference Manual for most technical information. However, our implementation of an Apple IIe is not completely perfect, so that's why we wrote this Note. The next several sections of this Note describe the differences we know of between an enhanced Apple IIe and the Apple IIe Card for the Macintosh LC. The Apple IIe Card can be identified using the routine in Apple II Miscellaneous Technical Note #2 or the identification bytes listed in Apple II Miscellaneous Technical Note #7.
The Apple IIe Card option panel allows the user to set three keyboard parameters not available on an Apple IIe: delay until repeat, repeat rate, and type ahead. The ability to set these parameters is also available on the Apple IIgs. If your application has trouble with the settings of any of these parameters, your documentation should make note of it.
The keyboard layout available to the user of an Apple IIe Card may be quite different than an AppleJIIe since any Apple Desktop Bus (ADB) keyboard might be attached to the Macintosh LC. Because of the variations in ADB keyboard layouts, applications should not depend on any specific key placement.
The single-wire Shift-key modification which allows software to read the state of the shift-key with the PB2 switch input is not implemented.
The game I/O signals are all handled by the Apple IIe Card hardware. The only game I/O signals available from the Apple IIe Card are those available at the 9 pin D-type miniature connector. The Apple IIe Card does not have a 16-pin DIP socket for game I/O signals, so the AN0-AN3 annunciator outputs and the STROBE+ output are not available.
The following soft switches are not implemented on the Apple IIe Card:
The RDDHIRES ($C07F) soft switch is not implemented in version 1.0 of the IIe Startup application. This soft switch may or may not be implemented in a future version of the IIe Startup application.
The VBL ($C019) soft switch cycles at 60 Hz, but it is not synchronized with the Macintosh LC video. This may cause flicker in some animation displays that depend on VBLs.
Several Monitor routine act different on the Apple IIe Card then they do on an Apple IIe. Here's a list of those routines:
When the 65C02 accesses certain key I/O locations or writes to the active Apple IIe display memory, it is "Trapped" (or halted temporarily) and the address accessed and data read or written is latched so the information is available to the IIe Startup application running on the MacintoshJLC. After the IIe Startup application has gathered the data, it allows the 65C02 to continue. Access to Trapped memory locations will cause problems with timing sensitive 65C02 code. The following table lists the Trapped access areas and what type of access (Read or Write) will cause the Trap to activate on the Apple IIe Card:
Notes:
The Apple IIe Card does not have the cassette tape input and output miniature phone jacks and the Monitor cassette routines READ and WRITE do nothing.
The 65C02 processor on the Apple IIe Card can be run at two speeds; the normal Apple IIe 1 MHz or a fast speed of approximately 1.9 MHz. Normally, the 65C02 processor speed setting should be left at whatever the user of the system set it to with the Apple IIe Card option panel. However, we know there are some times when an application must change the speed of the system so we've provided safe routines to change the speed and to obtain the speed setting of the Apple IIe Card option panel. Below are four short assembly language routines you can use to manipulate the 65C02 processor speed of the Apple IIe Option Card for the Macintosh LC.
Warning: You must ensure your application is running on an Apple IIe Card before calling these routines. See Apple II Miscellaneous Technical Notes #2 and #7 for Apple II Family identification information.
;---------------------------------------------------------------------------- - ; ; GetOptPanelSpeed ; ; Get the option panel's current speed setting. This may or may not be the ; current speed of the Apple IIe Option Card -- It is the speed the user has ; asked for via the option panel. ; ; The A, X and Y registers are not changed. ; The n, z and c flags are affected. ; The c flag (carry) will hold result: ; 0 = Normal Speed ; 1 = Fast Speed ; ; WARNING: Location $c05c is a read-only soft switch. You must never ; modify the contents of this location. ; ;---------------------------------------------------------------------------- - ; GetOptPanelSpeed pha ; store the A reg lda $c05c ; get option panel speed (in bit 2) lsr a ; and move it into the carry flag lsr a lsr a pla ; restore the A reg rts ;---------------------------------------------------------------------------- - ; ; SetToOptPanelSpeed ; ; Get the option panel's current speed setting and set the Apple IIe Option ; Card to that speed. ; ; The A, X and Y registers are not changed. ; The n, z and c flags are affected. ;---------------------------------------------------------------------------- - ; SetToOptPanelSpeed jsr GetOptPanelSpeed ; Get the default speed bcs SetFastSpeed ; branch to SetFastSpeed ; bcc SetNormalSpeed ; fall through to SetNormalSpeed ;---------------------------------------------------------------------------- - ; ; SetNormalSpeed ; ; Set the Apple IIe Option Card to "Normal" speed. ; ; The A, X and Y registers are not changed. ; The z flag may be changed. ; ; WARNING: All bits at location $c02b are reserved except for bit 3. ; In order to manipulate bit 3 at location $c02b and leave the other ; reserved bits untouched, you must use a read-modify-write technique. ; The test-and-set-bit (TSB) instruction or the test-and-reset-bit (TSR) ; instruction can be used to accomplish this. Both of these instructions ; allow you to modify any one bit and leave the others untouched. ; ;---------------------------------------------------------------------------- - ; SetNormalSpeed pha lda #$04 trb $c02b ;reset bit 2 to 0 pla rts ;---------------------------------------------------------------------------- - ; ; SetFastSpeed ; ; Set the Apple IIe Option Card to "Fast" speed. ; ; The A, X and Y registers are not changed. ; The z flag may be changed. ; ; WARNING: All bits at location $c02b are reserved except for bit 3. ; In order to manipulate bit 3 at location $c02b and leave the other ; reserved bits untouched, you must use a read-modify-write technique. ; The test-and-set-bit (TSB) instruction or the test-and-reset-bit (TSR) ; instruction can be used to accomplish this. Both of these instructions ; allow you to modify any one bit and leave the others untouched. ; ;---------------------------------------------------------------------------- - ; SetFastSpeed pha lda #$04 tsb $c02b ;set bit 2 to 1 pla rts
The Apple IIe Card does not have any real peripheral cards. Instead, it has a simulated slot architecture that allows pseudo-I/O devices to be flexibly mapped into the various Apple II I/O slot spaces. The subsections or this section describe the various pseudo-I/O devices available to the Apple IIe Card.
The 80-column video firmware is always in slot 3. The 80-column firmware acts just like the 80-column firmware in an Apple IIe or IIc. The Macintosh LC monitor is always used for the display device. There is no NTSC compatible video signal available from the Apple IIe Card.
The Apple IIe Card option panel allows the user to set the display to monochrome or color. When the display is in color mode, the "color fringes" seen in Apple IIe graphics may be more distinct on the high resolution color video monitors used with the Macintosh LC than they are on composite color video monitors or television sets commonly used with the Apple IIe.
The character set used by the Apple IIe Card is the same character set used on the enhanced AppleJIIe with two differences: the character set can be either normal or inverse by the Apple IIe Card option panel and the flashing display format does not flash. When the inverse character set is selected, the whole text display is inverted (graphics display modes are not affected). When the flashing display format is used, characters are shown as black text on a red background (or red text on a black background if the inverse character set is selected).
The IIe Startup application updates the Macintosh LC's display every time a change is made to the active display pages in the Apple IIe Card's RAM. Applications that attempt to animate over 1/3 of the display screen will not perform as fast on the Apple IIe Card as the do an Apple IIe. See the Memory Access and Timing section of this Note for more information.
The memory card device can be mapped to any slot space except slot 3 (where the video firmware always resides) or slot 6 (where the Apple Disk 5.25 always resides).
The memory card pseudo-I/O device looks like an Apple II Memory Expansion Card. It can be accessed through firmware routines or it can be accessed via hardware I/O addresses. It can be configured to have 256K, 512K, 768K or 1024K RAM with the Apple IIe Card option panel.
The modem and printer port devices can be mapped to any slot space except slot 3 (where the video firmware always resides) or slot 6 (where the Apple Disk 5.25 always resides).
The modem and printer ports pseudo-I/O devices look very much like Apple Super Serial Cards. They are compatible with software that uses the standard BASIC or Pascal firmware entry points of an Super Serial Card and with most software that talks directly to the 6551 Asynchronous Communications Interface Adaptor (ACIA) hardware addresses of an Super Serial Card. The differences between the modem or printer port devices and a Super Serial Card are:
The mouse device can be mapped to any slot space except slot 3 (where the video firmware always resides) or slot 6 (where the Apple Disk 5.25 always resides). The mouse pseudo-I/O device is compatible with software that uses the standard AppleMouse II or Apple IIc mouse firmware. The AppleMouse II hardware is not emulated by this pseudo-I/O device.
Mouse tracking (mouse speed) can be set by the Apple IIe Card option panel.
The network printer device can be mapped to any slot space except slot 3 (where the video firmware always resides) or slot 6 (where the Apple Disk 5.25 always resides). The network printer pseudo-I/O device allows applications to print to a LaserWriter printer or to an ImageWriter printer with the LocalTalk option installed as if it were printing to an ImageWriter printer connected to a Super Serial Card. The network printer pseudo-I/O device's firmware looks very much like Super Serial Card emulation performed by the Remote Print Manager on an Apple IIe Workstation card.
The SmartPort devices can be mapped only into slot 5. SmartPort on the Apple IIe Card can support one external UniDisk 3.5 drive and either one or two internal Macintosh LC SuperDrives.
If an UniDisk 3.5 drive is used, it is connected to the Apple IIe Card's disk drive connector and is controlled by the IWM disk controller unit on the Apple IIe Card.
The internal Macintosh LC SuperDrives return the same device type and subtype as an UniDisk 3.5 drive. However, the internal SuperDrives only support standard SmartPort calls and do not support any UniDisk 3.5 specific SmartPort calls. The internal SuperDrives are controlled by the Macintosh LC hardware and cannot be accessed by the IWM on the Apple IIe Card.
The Apple Disk 5.25 drives can be mapped only into slot 6. Either one or two external Apple Disk 5.25 drives can be connected to the Apple IIe Card's disk drive connector and they are controlled by the IWM disk controller unit on the Apple IIe Card.
Copy protection schemes that access video or I/O locations between sector or block reads and that depend on timing and will most likely fail on the Apple IIe Card.
The clock device can be mapped to any slot space except slot 3 (where the video firmware always resides) or slot 6 (where the Apple Disk 5.25 always resides). The firmware of the clock pseudo-I/O device looks just like the firmware of a ProDOS compatible clock. Clock card hardware is not emulated.
Most current Apple IIe applications run perfectly on the Apple IIe Card with no changes. By avoiding the few known differences listed in this Technical Note, you should be able to write new Apple IIe applications without adding code to special case for the Apple IIe Card. In applications that have special timing requirements, you can force the Apple IIe Card to run at 1 MHz by identifying the Apple IIe Card and using the processor speed routines supplied in this Note.
This and all of the other Apple II Technical Notes have been converted to HTML by Aaron Heiss as a public service to the Apple II community, with permission by Apple Computer, Inc. Any and all trademarks, registered and otherwise, are properties of their owners.