Apple II Technical Notes _____________________________________________________________________________ Developer Technical Support #0: About Apple II Technical Notes March-July 1991 _____________________________________________________________________________ Technical Note #0 (this document) accompanies each release of Apple II Technical Notes. This combination release includes a new Notes for the Apple IIe #10, Apple IIgs #101, HyperCard IIgs #1, #2 and #3, and revised Notes for the IIgs #24, #43, #44, #53, #63, #71, #73, #76, #81, #83, #86, #90, #91 and 99, Miscellaneous #2 and #7 as well as an index to all released Apple II Technical Notes, File Type Notes, and Sample Code. If there are any subjects which you would like to see treated in a Technical Note (or if you have any questions about existing Technical Notes), please contact us at one of the following addresses: Apple II Technical Notes Developer Technical Support Apple Computer, Inc. 20525 Mariani Avenue, M/S 75-3T Cupertino, CA 95014 AppleLink: AIIDTS MCI Mail: AIIDTS (264-0103) Internet: AIIDTS@AppleLink.Apple.com We want Technical Notes to be distributed as widely as possible, so they are sent to all Partners and Associates at no charge; they are also posted on AppleLink in the Developer Services bulletin board and other electronic sources, including the Apple FTP site (IP 130.43.2.3). You can also order them through APDA. As an APDA customer, you have access to the tools and documentation necessary to develop Apple-compatible products. For more information about APDA, contact: APDA Apple Computer, Inc. 20525 Mariani Avenue, M/S 33-G Cupertino, CA 95014 (800) 282-APDA or (800) 282-2732 Fax: (408) 562-3971 Telex: 171-576 AppleLink: APDA Internet: APDA@AppleLink.Apple.com We place no restrictions on copying Technical Notes, with the exception that you cannot resell them, so read, enjoy, and share. We hope Apple II Technical Notes will provide you with lots of valuable information while you are developing Apple II hardware and software. The following pages list all Apple II Technical Notes that have been released. Developer Technical Support thanks Dave Ely and Eric Mueller for their assistance in creating these text file versions of Technical Notes. _____________________________________________________________________________ Released Apple II Technical Notes July 1991 New *** Revised *R* Apple IIc 1 Mouse Differences On IIe and IIc 11/88 2 40-Column and Double High-Resolution Graphics 11/88 3 Foreign Language Keyboard Layouts 11/88 4 Dvorak Keyboard Layout 11/88 5 Memory Expansion on the Apple IIc 11/88 6 Buffering Blues 11/88 7 Existing Versions 11/88 8 Single-Sided 3.5" Media and the Apple IIc Plus 5/89 9 Detecting VBL 11/90 Apple IIe 1 Overview of the Apple IIe 11/88 2 Hardware Protocol for Doing DMA 11/88 3 Double High-Resolution Graphics 11/88 4 RDY line 11/88 5 /INH line 11/88 6 The Apple II Paddle Circuits 11/88 7 Interfaces--Serial, Parallel, and IEEE-488 11/88 8 Known Anomalies of Enhanced IIe ROMs 11/88 9 Switch Input Changes 11/88 *** 10 The Apple IIe Card for the Macintosh LC 07/91 Apple IIgs 1 How to Install Custom BRK and /NMI Handlers 11/88 2 Transforming I/O Subroutines for Use in "Native" Mode 11/88 3 Window Information Bar Use 1/91 4 Changing Graphics Modes in Mid-Application 1/91 5 Window and Menu Titles 11/90 6 QuickDraw II Pattern Data Structure 7/89 7 Halt Mechanism in IIgs SANE 11/88 8 Elems Functions in IIgs SANE 11/88 9 IIgs Sound Expansion Connector: Analog Input/Output Impedances 11/88 10 InvalRgn Twist 11/88 11 Ensoniq DOC Swap-Mode Anomaly 11/88 12 Tool Set Interdependencies 1/90 13 ROM 1.0 Modem Firmware Bug 11/88 14 Standard File Calls and GrafPort Records 11/88 15 InstallFont and Big Fonts 7/89 16 Notes on Background Printing 11/88 17 Application Memory Management and the MMStartUp User ID 11/88 18 Do-It-Yourself SCC Access 7/90 19 Multichannel Output with the Apple IIgs Note Synthesizer 11/88 20 Catalog of APW Language Numbers 3/90 21 DMA Compatibility for Expansion RAM 11/88 22 Proper Use of Dynamic Segments 9/90 23 Toolbox Use of DOC RAM 11/88 *R* 24 Apple IIgs Toolbox Reference Updates 7/91 25 Apple IIgs Firmware Reference Updates 9/90 26 ROM Revision Summary 9/89 27 Graphics Image File Formats 11/88 28 Interface Card Design Guidelines 11/88 29 Monochrome High-Resolution Mode 11/88 30 Apple IIgs Hardware Reference Updates 9/90 31 Redirecting Output in APW C 11/88 32 /INH Line Anomaly 11/88 33 ERRORDEATH Macro 11/88 34 Low-Level QuickDraw II Routines 1/91 35 Printer Driver Specifications 9/90 36 Port Driver Specifications 9/89 37 Free-Form Synthesizer Tips 11/88 38 List Controls in Dialog Boxes 9/90 39 Mega II Video Counters 7/89 40 VBL Signal 7/89 41 Font Family Numbers 11/90 42 Custom Windows 11/88 *R* 43 Undocumented Feature of CalcMenuSize obsolete 7/91 *R* 44 GetPenState and SetPenState Record Error obsolete 7/91 45 Parameters for GetFrameColor 9/89 46 DrawPicture Data Format 11/88 47 What SetDataSize Does 11/88 48 All About AlertWindow obsolete 11/90 49 Rebooting (Really) 1/89 50 Extended Serial Interface Error Handling 1/89 51 How to Avoid Running Out of Memory 9/90 52 Loading and Special Memory 7/89 *R* 53 Desk Accessories and Tools 3/91 54 MIDI Drivers 11/90 55 Avoiding ClrHeartBeat 7/89 56 Managing Dynamic Segments obsolete 11/90 57 Preventing Memory Compacting and Purging 7/89 58 Keyboard Modifiers Register Anomaly 7/89 59 Do Not Create Zero-Length Text Scraps obsolete 1/91 60 Menu Manager Memorabilia 11/90 61 Window Title Handles 7/89 62 No Non-Solid Window Background Patterns 7/89 *R* 63 Master Color Values 5/91 64 Apple IIgs Installer and Installer Scripts 9/89 65 Control-^ is Harder Than It Looks 9/89 66 ExpressLoad Philosophy 9/90 67 LaserWriter Font Mapping 11/89 68 Tips for I/O Expansion Slot Card Design 9/89 69 The Ins and Outs of Slot Arbitration 5/90 70 Fast Graphics Hints 9/89 *R* 71 DA Tips and Techniques 7/90 72 QuickDraw II Quirks 11/90 *R* 73 Using User Tool Sets 7/91 74 A Faster List Manager Draw Routine 11/89 75 BeginUpdate Anomaly 1/90 *R* 76 Miscellaneous Resource Formats 7/90 77 Print Manager & AppleTalk Configuration Files 1/90 78 Bank Alignment and Memory Management 3/90 79 Integer Math Data Types 5/90 80 QuickDraw II Clipping 3/90 *R* 81 Extended Control Ecstasy 7/91 82 Controlling the Control Manager obsolete 11/90 *R* 83 Resource Manager Stuff 3/91 84 TaskMaster Madness 7/90 85 Moving the Mouse 7/90 *R* 86 Risking Resourceful Code 3/91 87 Patching the Tool Dispatcher 9/90 88 The Page One Stack in a 16-Bit World 9/90 89 MessageByName--Catchy Messages 9/90 *R* 90 65816 Tips and Pitfalls 3/91 *R* 91 The Wonderful World of Universal Access 7/91 92 Twisted Tales of TextEdit 11/90 93 Compatible Printing 9/90 94 Packing It In (and Out) 9/90 95 ROM Diagnostic Errors 9/90 96 Standard File Customization 11/90 97 Picture Comments and Printing 11/90 98 Aren't Windows A Pane 1/91 *R* 99 Supplemental Scrap Types 3/91 100 VersionVille 1/91 *** 101 Patching the Toolbox 5/91 Apple II Miscellaneous 1 80-Column Screen Dump 11/88 *R* 2 Apple II Family Identification Routines 2.2 5/91 3 Super Serial Card Firmware Bug 11/88 4 AppleWorks Keys obsolete 5/89 5 AppleWorks File Formats obsolete 5/89 6 IWM Port Description 11/88 *R* 7 Apple II Family Identification 5/91 8 Pascal 1.1 Firmware Protocol ID Bytes 11/88 9 AppleSoft Real Variable Storage 11/88 10 80-Column GetChar Routine 9/89 11 Examining the $C800 Space from AppleSoft 5/89 12 Apple II Firmware WAIT Routine 11/88 13 not used 14 Guidelines for Telecommunication Programs 7/89 15 Compatibility Across Apple II Models 1/90 16 Apple II Parallel Interface Card Firmware 7/90 17 Buried Treasures of the Video Overlay Card 9/90 AppleTalk 1 Identifying AppleTalk 3/90 2 ProDOS 8 Compatibility on the IIe and IIgs 11/88 3 Avoiding Remote Printer Time-Outs 9/89 4 Printing Through the Firmware 9/90 5 SPCommand Calls and Error $0702 7/89 6 Apple IIe Workstation Card Anomalies 7/89 7 MLIACTV Flag and the IIe Workstation Card 11/89 8 Using the @ Prefix 9/90 9 The PAP Status Buffer 11/90 HyperCard IIGS *** 1 Corrections to the Script Language Guide 3/91 *** 2 Known HyperCard Bugs 3/91 *** 3 Pitching Sampled Sounds 3/91 GS/OS 1 Contents of System.Disk and System.Tools 1/91 2 GS/OS and the 80-Column Firmware 11/88 3 Pointers on Caching 11/88 *R* 4 A GS/OS State of Mind 3/91 5 Resource Fork Formats 7/89 6 Drivers and GS/OS Direct Page 11/90 7 Behavior of SET_DISKSW 7/89 8 Filenames With More Than CAPS and Numerals 7/89 9 Interrupt Handling Anomalies 5/90 10 How Applications Find Their Files 9/90 11 About EraseDisk and Format 11/90 12 All About Notify Procs 9/90 *R* 13 GS/OS Reference Update 3/91 ImageWriter 1 Custom Font Selection 11/88 Memory Expansion Card 1 Questions and Answers 11/88 Mouse 1 Interrupt Environment with the Mouse 11/88 2 Varying VBL Interrupt Rate 11/88 3 Mode Byte of the SetMouse Routine 11/88 4 Mouse Firmware Bug Affecting ServeMouse 11/88 5 Check on Mouse Firmware Card 11/90 6 MouseText Characters 1/89 7 Mouse Clamping 11/88 Pascal 4 Pascal Declarations and the Directory Structure of a Blocked Volume 11/88 10 Configuration and Use of the Apple II Pascal Run-Time Systems 11/88 12 Disk Formatter Routine 11/88 14 Apple Pascal 1.3 TREESEARCH and IDSEARCH 11/88 15 Apple II Pascal SHORTGRAPHICS Module 11/88 16 Driver to Have Two Volumes on One 3.5" Disk 11/88 17 SYSTEM.APPLE Patch V2.0 3/90 ProDOS 8 1 The GETLN Buffer and a ProDOS Clock Card 11/88 2 Porting DOS 3.3 Programs to ProDOS and BASIC.SYSTEM 11/88 3 Device Search, Identification, and Driver Conventions 11/88 4 I/O Redirection in DOS and ProDOS 11/88 5 ProDOS Block Device Formatting 11/88 6 Attaching External Commands to BASIC.SYSTEM 11/88 7 Starting and Quitting Interpreter Conventions 11/88 8 Dealing with /RAM 11/88 9 Buffer Management Using BASIC.SYSTEM 11/88 10 Installing Clock Driver Routines 11/88 11 The ProDOS 8 MACHID Byte 11/88 12 Interrupt Handling 11/88 13 Double High-Resolution Graphics Files 11/88 14 Selector and Dispatcher Conventions 11/88 15 How ProDOS 8 Treats Slot 3 11/88 16 How to Format a ProDOS Disk Device 11/88 17 Recursive ProDOS Catalog Routine 11/89 18 /RAM Memory Map 11/88 19 File Auxiliary Type Assignment 11/88 20 Mirrored Devices and SmartPort 11/88 21 Identifying ProDOS Devices 3/90 22 Don't Put Parameter Blocks on Zero Page 7/89 23 ProDOS 8 Changes and Minutia 9/90 24 BASIC.SYSTEM Revisions 9/90 25 Non-Standard Storage Types 7/89 26 Polite Use of Auxiliary Memory 1/90 27 Hybrid Applications 1/90 28 ProDOS Dates--2000 and Beyond 9/90 29 Clearing the Backup Needed Bit 9/90 SmartPort 1 SmartPort Introduction 11/88 2 SmartPort Calls Updated 9/89 3 SmartPort Bus Architecture 11/88 4 SmartPort Device Types 11/88 5 SCSI SmartPort Call Changes 11/90 6 Apple IIgs SmartPort Errata 11/90 7 SmartPort Subtype Codes 11/88 8 SmartPort Packets 5/89 9 Apple II SCSI Errata 7/90 UniDisk 3.5 1 UniDisk 3.5 Internals 11/88 2 UniDisk 3.5 ID Bytes 11/88 3 STATUS Call Bug 11/88 4 Accessing Macintosh Disks 11/88 5 Architectural Differences Between 3.5" Drives 11/88