mdavis@hp-sdd.UUCP.UUCP (04/18/87)
For those of you who are struggling along with APW and Apple's Toolbox Reference Manual for creating applications on the Apple IIGS, you'll note that there are many bugs in the preliminary two-volume manual put out by APDA. Addison-Wesley is coming out with a revised version shortly, but until then, here's a list of known bugs and their fixes. Updates will be posted quarterly, as more and more discrepencies pop up every day. Feel free to send additional reports to my mailing address. ************************************************************************* * * * Bugs in the Apple IIGS Toolbox Reference * * Compiled by Morgan Davis * * Copyright (C) 1987 * * * * Send any updates or corrections to: * * * * BIX, MCI Mail: mdavis * * UUCP: [ ihnp4 hplabs!hp-sdd nosc ] !crash!pnet01!pro-sol!mdavis * * ARPA: crash!pnet01!pro-sol!mdavis@nosc * * INET: mdavis@pro-sol.CTS.COM * * * * Updated: 29 Mar 87 Bug Count: 12 File Size: 4211 * * * ************************************************************************* ---------------------------<< FONT MANAGER >>---------------------------- Bug Count: 1 Updated: 23 Mar 87 =============================== FMStartUp -- $021B -- Page 8-16 =============================== Manual says to push SFNamePtr (a LONG). Don't push it. ---------------------------<< INTEGER MATH >>---------------------------- Bug Count: 1 Updated: 29 Mar 87 ============================= LongMul -- $0C0B -- Page 9-16 ============================= Manuals says to push one LONG for result space. Push two LONGs. ---------------------------<< MENU MANAGER >>---------------------------- Bug Count: 1 Updated: 23 Mar 87 ========================================================= Sample Program Bug -- Accept Input From User -- Page 12-9 ========================================================= The Taskmaster example incorrectly pushes a $002C onto the stack which is a valid TASK mask but not a valid EVENT mask for the example. To get the example to work, push a $000E onto the stack as the EVENT mask. (Make sure you push an EVENT mask and not a TASK mask). -----------------------<< MISCELLANEOUS TOOLSET >>----------------------- Bug Count: 5 Updated: 29 Mar 87 ================================== ReadTimeHex -- $0D03 -- Page 13-16 ================================== Manual includes a fifth input parameter called buffersize. Ignore it, the buffersize parameter is not used. ==================================== ReadAsciiTime -- $0F03 -- Page 13-18 ==================================== Manual says BufferAddress is a WORD. It's a LONG. ================================ ReadMouse -- $1703 -- Page 13-37 ================================ Manual describes all return parameters as WORDs. They are all BYTEs. ================================= ClearMouse -- $1B03 -- Page 13-42 ================================= This function was completely left out of the manual. Basically, it sets the X and Y mouse positions to absolute zero. (NOTE: This is different from HomeMouse which sets the X,Y coordinates to the MINIMUM clamping bounds). ================================ IntSource -- $2303 -- Page 13-51 ================================ 1. Manual says to push a LONG before the SrcRefNum WORD. Do not push the LONG. 2. Manual says enabling keyboard interrupts will automatically turn on VBL interrupts. You must enable VBL interrupts yourself with IntSource($0002). ---------------------------<< TEXT TOOLSET >>---------------------------- Bug Count: 1 Updated: 25 Mar 87 ================================ ReadBlock -- $230C -- Page 21-41 ================================ Manuals says to pull Char (WORD) from the stack. Do not pull anything. --------------------------<< WINDOW MANAGER >>--------------------------- Bug Count: 3 Updated: 23 Mar 87 ================================== FindWindow -- $170E -- Page 23-107 ================================== Manual says PointX and PointY are LONGs. They are WORDs. ================================== GrowWindow -- $1B0E -- Page 23-111 ================================== Manual says to push a WORDSPACE as the first parameter. Push a LONGSPACE. ================================================ Sample Program Bug -- Draw InfoBar -- Page 23-22 ================================================ The sample program for implementing an InfoBar uses stores to <14 and <12. After the last comment, the code SHOULD read: lda 2,s sta <16 lda 0,s sta <14 ************************************************************************* UUCP: [ ihnp4 akgua hplabs!hp-sdd sdcsvax nosc ] !crash!pnet01!pro-sol!mdavis ARPA: crash!pnet01!pro-sol!mdavis@nosc INET: mdavis@pro-sol.CTS.COM