This Technical Note describes changes on the memory-expandable IIc which affect the procedures for enabling keyboard and serial input buffering.
When the IIc firmware was reorganized to accommodate the memory expansion card in slot 4, the mouse moved to slot 7, thus causing some screen holes to be reassigned. This change may software which uses keyboard or serial input buffering to crash.
The following list shows the changes in the locations which are used for enabling keyboard and serial input buffering:
Original & Name 3.5 ROM Expandable IIc Comment typhed $5FA $5FA ;buffer the keyboard? NO CHANGE twkey $5FF $5FC ;storage pointer for type-ahead buffer trkey $6FF $6FC * ;retrieve pointer for type-ahead buffer aciabuf $4FF $4FC ;Owner of serial buffer, if any twser $57F $57C ;storage pointer for serial buffer trser $67F $67C ;retrieve pointer for serial buffer * In the version 3 ROM (original "memory-expandable" IIc) this pointer is still $6FF which causes, among other things, the Terminal Mode to be inoperative. Revision 4 of the IIc firmware fixes this bug.
We can not emphasize enough the need for carefully checking the version of the machine on which a program is running. It is also important to pay attention to the now obvious fact that even in the Apple IIc things can (and most probably will) move around, making any hard-coded slot assignment a sure source of incompatibility. To ensure compatibility, scan the slots.
The Apple IIc Technical Reference Manual, Second Edition describes how to enable buffering. Using serial buffering as an example, the pertinent instructions in the manual should now be understood as meaning:
If (machineID = "Memory Expandable IIc") then begin aciabuf = $04FC; {Newest IIc with Expanded Memory Capabilities,} twser = $057C; {ROM versions 3 and 4.} trser = $067C end else begin aciabuf = $04FF; {Original IIc and 3.5 ROM IIc} twser = $057F; trser = $067F end; Set_Location aciabuf to $C1 or $C2. Set_Locations twser and trser to $0.
Set_Location aciabuf to a value other than $C1 or $C2
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.