This Technical Note describes the MouseText character set which is available on all currently produced Apple II computers.
Changed since November 1988: Corrected typographical errors in the BASIC and assembly language program examples.
In unenhanced Apple IIe computers, the alternate character set contained two sets of inverse uppercase characters. In the enhanced Apple IIe, and in all Apple IIc and IIGS computers, one set of inverse uppercase characters is replaced by a MouseText character set. MouseText is a set of graphical characters designed to allow Apple II computers to display a desktop metaphor on the text screen. The Apple II Desktop Toolkit uses these characters, as do applications like AppleLink -- Personal Edition.
If your program used the set of inverse uppercase characters which were replaced by MouseText (the set mapped to ASCII values $40-$5F), your program will display MouseText characters instead of inverse uppercase characters on all currently-produced Apple II computers. If your program used the other set of inverse uppercase characters (ASCII values $00-$1F), it will display inverse capital characters as expected.
The following will help you identify if the changes affect you or not.
Following are the methods recommended for accessing MouseText characters from various languages:
To stop displaying MouseText characters:
This short BASIC program displays all MouseText characters under DOS 3.3 and ProDOS:
10 D$=CHR$(4) 20 PRINT D$;"PR#3": REM Turn on the video firmware 30 PRINT:REM This is so the screen won't be in inverse 40 PRINT CHR$(15):REM Set inverse mode 50 PRINT CHR$(27);"ABCEDFGHIJKLMNOPQRSTUVWXYZ@[]^_\";CHR$(24) 60 PRINT CHR$(14):END
Assembly language programs are expected to follow the same procedure as AppleSoft BASIC. Use calls to COUT to print MouseText characters to the screen. The following is a sample assembly language program which displays two MouseText characters (which create a folder icon), along with their inverse uppercase equivalents:
START LDA #$A0 ;USE A BLANK SPACE TO JSR $C300 ;TURN ON THE VIDEO FIRMWARE LDY #0 ;INITIALIZE COUNTER LOOP LDA STR,Y ;GET VALUE JSR $FDED ;SEND IT THROUGH THE COUT ROUTINE INY CPY STRLEN BNE LOOP ;=>NOT DONE YET RTS STR DFB $1B,$58,$59,$18,$58,$59 ;MOUSETEXT ON, SHOW, MOUSETEXT OFF, SHOW STRLEN EQU *-STR ;LENGTH OF STR
Note: Using MouseText on the text screen by directly poking or storing MouseText character values into the text buffer is not supported by Apple at this time. Should the MouseText character set require remapping in the future, those programs which use the methods outlined in this Note should still work with any new mapping. Those which directly store MouseText values run the strong risk of display failure under a new mapping.
A Pascal sample program:
PROGRAM OUTPUT_MOUSETEXT VAR CMD:PACKED ARRAY[0..1] OF 0..255 BEGIN CMD[0]:=27; CMD[1]:=15; UNITWRITE(1,CMD,2); {turn on MouseText mode} {code to display MouseText . . . } CMD[0]:=24; UNITWRITE(1,CMD,1); {turn off MouseText mode} END
Pictorial descriptions of the MouseText character set may be found in the Apple IIe Technical Reference Manual, the Apple IIc Technical Reference Manual, Second Edition, and the Apple IIGS Hardware Reference.
Note: The pictures of MouseText characters in these manuals differ from early implementations. In early MouseText character sets, the icons mapped to the letters F and G combined to form a "running man." In current production, these letters are different pictures (an inverse carriage return symbol and a window title bar pattern) which form no picture when placed next to each other. Programs should not attempt to use the running man MouseText characters.
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.