Winter 1991 - APPLE II Q & A APPLE II DEVEOPER TECHNICAL SUPPORT QThe Apple IIGS¨ GS/OS Reference, page 43, alludes to "an enhanced ProDOS ¨ 8 QUIT call, which contains a pathname to an application to be launched." However, I find no mention of this enhancement in the ProDOS 8 Technical Reference. How do I use this call? AThe enhanced ProDOS 8 QUIT call allows you to quit to another application if GS/OS or ProDOS 16 has been booted. The enhanced ProDOS 8 QUIT call requires either of the following four-count parameter blocks: Standard dc.b $00 ;quit type ;normal dc.w $0000 ;null dc.b $00 ;null dc.w $0000 ;null Extended dc.b $EE ;quit type ;enhanced dc.w path ;addr of ;launch ;pathname dc.b $00 ;reserved dc.w $0000 ;reserved path str 'myprog.sys16' GS/OS patches ProDOS 8 to get control on a QUIT and launches the next program if the quit type is $EE. The code to do this is not part of ProDOS 8; it doesn't fit in the kernel, and it can't go in the "quit code" because program selectors swap that out. The enhanced Quit call, therefore, works only when GS/OS has been booted. QWhat's the difference between Apple II GS System Software versions 5.0.3 and 5.0.4? AApple IIGS System 5.0.4 includes the following changes: ¥TOOL.SETUP for System Software 3.2 in May 1987 changed QDStartUp to make the cursor image handle safe and has now been changed for ROM 03 as well. ¥QuickDraw Auxiliary no longer returns bogus errors for SeedFill and CalcMask in pure 640 mode, and a low-level stack imbalance has been corrected. ¥The ImageWriter¨ and ImageWriter LQ drivers now spool to the User Path if the system was booted over AppleShare¨. A bug concerning memory allocation has been fixed, and the drivers now check errors more robustly. ¥The SCSI Manager no longer resets the SCSI bus when the Manager is started. ¥The AppleShare FST now saves and restores the correct QuickDraw direct page locations when shielding the cursor to draw the AppleShare arrows. QWhat do I need to get started with MPW IIGS? AMPW IIGS is a set of tools and languages that creates Apple II and Apple IIGS programs and object code under the Macintosh MPW development environment. The system requirements for MPW are detailed inAPDAlog¨ in the MPW product description. In addition to MPW and a system suitable for it, you need the MPW IIGS Tools package, which contains necessary development tools like the linker and other useful tools such as the resource compiler, object module dumper, and ProDOS file duplicator. You will also need the MPW IIGS language of your choice--currently assembly, C, or Pascal. QIf a task in the Heartbeat Interrupt Task queue has not yet been executed (the tick counter has not yet reached zero), is it possible to store a zero into the TaskCnt field to keep the system from ever executing the task? AThis will work fine. If you know where the count word is, then you can set it to zero to prevent yourself from being called. The system does not keep this information in a separate buffer; it checks the value in the queue header each pass through the Heartbeat queue,so if you were at 200 one pass, and then 0 the next, the system will not be bothered because it does not remember the previous value. And because the task is not executed unless the system itself decrements the count to zero, storing a zero into theTaskCnt field is a fine way to prevent a task from executing. QCan run queue tasks remove themselves? AYes, run queue tasks can call Desk Manager RemoveFromRunQ on themselves without difficulty. QCan QuickDraw II Auxiliary's CopyPixels call scale pixel images beyond maxWidth? ANo, but you can use the QuickDraw II SetBufDims call to increase the size of the QuickDraw buffer to beyond what was specified for the maxWidth variable in the QDStartUp routine. QHow do I port my Macintosh HyperCard ¨ stack to run with HyperCard II GS? AYou can use HyperMover TM, which is available on AppleLink ¨ on developer CDs. HyperMover allows HyperCard 1.2.5 stacks from the Macintosh to run with little or no modification on the Apple II GS with HyperCard IIGS. HyperMover consists of two stacks, one for the Macintosh and one for the Apple II GS. HyperMover for the Macintosh creates a folder containing files that describe the stack you wish to convert to the II GS. This folder and the files it contains are then transferred to the II GS via Apple File Exchange or an AppleTalk network. HyperMover for the IIGS then rebuilds a stack as close as possible to the original stack using the files contained in this folder. The most noticeable difference between the original and the rebuilt stack will be in the graphics. Because the II GS and the Macintosh have such different sized screen displays, the graphics and objects of the rebuilt stack must be scaled to fit the II GS screen, resulting in some loss of detail. HyperMover contains several features designed to make the rebuilt stack as useful and as close to the original stack as possible. It can create scaled representations of Macintosh pictures, convert Macintosh sounds to IIGS sounds and Macintosh icons to IIGS icons, and transfer all HyperCard objects including backgrounds, cards, buttons, and fields and their attributes. However, because HyperMover is a stack, it cannot convert XCMD/XFCNs and cannot fix scripts that need specific Macintosh screen coordinates to function. QIs HyperTalk the same in HyperCard II GS as in Macintosh HyperCard? AGenerally, HyperTalk¨ on the Apple II GS is the same as HyperCard 1.2.5 HyperTalk on the Macintosh, but the HyperTalk on the Apple II GS has an extended command set to support the features available in the Apple II GS environment. New commands are included for setting color properties of objects, painting properties, and printing. A new property for buttons called the family property also has been added. QDoes HyperCard IIGS provide for extending the HyperTalk language? AYes. External commands and functions, which are usually referred to as XCMDs and XFCNs, or externals as a general group, are functionally identical in the Macintosh HyperTalk and Apple IIGS HyperTalk software environments. XCMDs and XFCNs provide for extensions to the existing HyperTalk language and are called using the same methods as those for Macintosh HyperTalk. Modifications have to be made, however, to move existing source code for Macintosh externals into the Apple IIGS environment. HyperTalk callback procedures and interfaces for the Apple IIGSdiffer slightly from Macintosh HyperTalk. Kudos to our readers who care enough to ask us terrific and well thought out questions. The answers to these puzzles have been supplied courtesy of our teams of technical gurus; our thanks to all. Special thanks to Matt Deatherage, C. K. Haun, Jim Luther, Eric Soldan, Dan Strnad, and Tim Swihart for the material in this Q & A column. * Have more questions? Need more answers? Take a look at the new developer technical library on AppleLink (updated weekly) or the Q & A stack on each Developer CD Series disc. *