Newsgroups: comp.sys.apple2.programmer Path: blue.weeg.uiowa.edu!news.uiowa.edu!hobbes.physics.uiowa.edu!math.ohio-state.edu!howland.reston.ans.net!wupost!waikato!comp.vuw.ac.nz!actrix.gen.nz!dempson From: dempson@atlantis.actrix.gen.nz (David Empson) Subject: Re: How can I change cursor to arrow? Message-ID: Nntp-Posting-Host: atlantis.actrix.gen.nz Sender: news@actrix.gen.nz (News Administrator) Organization: Actrix - New Zealand Internet Service Providers Date: Wed, 7 Dec 1994 13:51:13 GMT References: <3bu21m$1p5@nyx10.cs.du.edu> <9434011.13526@mulga.cs.mu.OZ.AU> Lines: 62 In article <9434011.13526@mulga.cs.mu.OZ.AU>, Anthony Morton wrote: > > Years and years ago I recall tweaking the cursor variable in this manner, > back when I thought it was really 'K00L' to have a solid-apple cursor. I > vaguely remember that the cursor character lives in a byte somewhere in the > bottom of bank $E1, near the battery RAM image (the address $E1/02C0 or maybe > $E1/03C0 rings a bell, but I'd have to check before I'd be certain). $E1/0134 in the ROM 1. It may be elsewhere in the ROM 3. There is actually no need to know where this is, or store a value directly into it. A simple machine language program can be used to set the cursor to any character. As indicated in earlier messages in this thread, you need to print a Ctrl-^ ($9E) via COUT, then print the character to be used for the cursor. All 256 codes are valid. High-ASCII codes will come out in normal, low-ASCII in flashing or inverse according to the character set. It _is_ possible to get MouseText, but isn't easy. 1. You must have the 80-column firmware enabled (PR#3) but it can be running in 40-column mode, e.g. use PRINT CHR$(17); 2. You have to use a machine language routine to output the cursor change command, because you need a low-ASCII character which cannot be printed directly from BASIC. (I tried using INVERSE and FLASH, and they didn't work - the character is grabbed by the cursor change routine before it can be masked by the inverse/flash mask).) 3. Mousetext output must be enabled, by printing CHR$(27). 4. The next key typed via GETLN (including INPUT, or a BASIC or monitor command line, all of which use GETLN) will be echoed to the screen but will not appear in the input buffer. Pressing RETURN is not sufficient - you have to press another key to clear the problem. I wasn't sure which machines were affected by this. I can now confirm that it applies to ROM 3 as well as ROM 1. 5. This only works on the IIgs. Here is a simple BASIC program which does the necessary steps to set the cursor to a mousetext mouse cursor character. 10 D$=CHR$(4) 20 PRINT D$;"PR#3" 25 REM PRINT CHR$(17) if you want 40 column mode 30 PRINT CHR$(30);: REM cursor character change prefix 40 POKE 768,169: POKE 769,66 50 POKE 770,76: POKE 771,237: POKE 772,253 60 CALL 768: REM prints low ASCII character 66 70 PRINT CHR$(27): REM Mousetext on 80 INPUT "Type anything:";A$ If you want a different mousetext character, change the number poked into location 769 (on line 40). A solid Apple is character 64. -- David Empson dempson@actrix.gen.nz Snail mail: P.O. Box 27-103, Wellington, New Zealand