home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #20 / NN_1992_20.iso / spool / comp / sys / mac / programm / 15117 < prev    next >
Encoding:
Internet Message Format  |  1992-09-08  |  44.9 KB

  1. Xref: sparky comp.sys.mac.programmer:15117 news.answers:2836
  2. Path: sparky!uunet!cis.ohio-state.edu!ucbvax!bloom-beacon!bloom-picayune.mit.edu!news
  3. From: mkelly@sisters.cs.uoregon.edu ((Michael A. Kelly))
  4. Newsgroups: comp.sys.mac.programmer,news.answers
  5. Subject: Comp.Sys.Mac.Programmer Frequently Asked Questions Part 1/2 (8/3/92)
  6. Summary: Frequently Asked Questions list for comp.sys.mac.programmer
  7. Keywords: frequently asked questions faq
  8. Message-ID: <csmp-faq/part1_715928413@athena.mit.edu>
  9. Date: 8 Sep 92 05:03:41 GMT
  10. Expires: Tue, 29 Sep 1992 05:00:13 GMT
  11. Sender: news@athena.mit.edu (News system)
  12. Reply-To: mkelly@cs.uoregon.edu
  13. Followup-To: poster
  14. Organization: University of Oregon Computer and Information Sciences Dept.
  15. Lines: 1173
  16. Approved: news-answers-request@MIT.Edu
  17. Supersedes: <csmp-faq/part1_715323611@athena.mit.edu>
  18. X-Last-Updated: 1992/08/11
  19. Nntp-Posting-Host: pit-manager.mit.edu
  20.  
  21. Archive-name: csmp-faq/part1
  22. Last-modified: 1992/08/03
  23.  
  24.  
  25.                      +---------------------------------+
  26.                      | Frequently Asked Questions List |
  27.                      |   for Comp.Sys.Mac.Programmer   |
  28.                      |         August 3, 1992          |
  29.                      |            PART  ONE            |
  30.                      +---------------------------------+
  31.  
  32.  
  33. This FAQ list is automatically posted once a week to comp.sys.mac.programmer.
  34. It is also available via anonymous ftp from ftp.cs.uoregon.edu [128.223.8.8]
  35. (user name 'anonymous', your internet address as password) in the files
  36. /pub/mac/csmp-faq-1 and /pub/mac/csmp-faq-2.
  37.  
  38. This FAQ list is maintained by Michael A. Kelly.  He can be reached at the
  39. following addresses:                                                         
  40.   
  41.    Internet:  mkelly@cs.uoregon.edu
  42.    SnailMail: Computer Science Dept.
  43.               University of Oregon
  44.               Eugene, Oregon  97403
  45.  
  46. The purpose of the FAQ list is to answer some of the most common questions
  47. asked on this group, and to refer people left with unanswered questions to
  48. available sources of additional help.  You should read the FAQ list before
  49. posting to comp.sys.mac.programmer.
  50.  
  51. Submissions, comments, etcetera, should be sent to Michael Kelly, as above.
  52. All such material sent will be considered to have entered the public domain
  53. (and will be subject to editing) unless specific text to the contrary
  54. accompanies the message (which may render the submission unusable).
  55.  
  56.  
  57.  
  58.                          Changes since July 24, 1992
  59.                          ---------------------------
  60.  
  61.  - Fixed some typos.
  62.  - Reorganized section 3.
  63.  - Added 3.2.1, 3.2.2, 3.2.3, and 3.3.3.
  64.  - Updated 3.1.2.
  65.  - Updated 4.1 and 4.2, moved 4.7 to 4.8 and added 4.7.
  66.  - Updated 6.8.1.
  67.  
  68.  
  69.  
  70.  
  71.                               Table of Contents
  72.                               -----------------
  73.  
  74. Part One  (this file)
  75. ---------------------
  76.  
  77.   I.    Development Software
  78.           1. Compilers
  79.           2. Debuggers
  80.           3. Other Tools
  81.    
  82.   II.   Apple Developer Programs
  83.           1. The Associates and Partners Programs
  84.           2. Apple Developer University
  85.           3. APDA
  86.           4. Developer CDs
  87.  
  88.   III.  Sources of Information
  89.           1. Books and Periodicals
  90.                1. Technical Books
  91.                2. Teaching Books
  92.                3. Periodicals
  93.           2. Mailing Lists
  94.                1. Comp.Sys.Mac.Programmer Digest
  95.                2. Think Class Library Discussion
  96.                3. MacPsych
  97.           3. Miscellaneous
  98.                1. Usenet Mac Programmer's Guide (UMPG)
  99.                2. Kent Sandvik's Frequently Asked MPW C++ and MacApp Questions
  100.                3. Comp.Sys.Mac.FAQ
  101.  
  102.   IV.   Archive Sites
  103.           1. ftp.apple.com [130.43.2.3]
  104.           2. sumex-aim.stanford.edu [36.44.0.6]
  105.           3. rascal.ics.utexas.edu [128.83.138.20]
  106.           4. mac.archive.umich.edu [141.211.164.153]
  107.           5. ftp.cs.uoregon.edu [128.223.8.8]
  108.           6. ics.uci.edu [128.195.1.1]
  109.           7. ftp.brown.edu [128.148.176.55]
  110.           8. comp.binaries.mac [newsgroup]
  111.  
  112.   V.    One-liners
  113.           1. The Main Loop and Events
  114.           2. Menus
  115.           3. Resources
  116.           4. Windows, Alerts, and Dialogs
  117.           5. Drawing
  118.           6. Files
  119.           7. Interrupts and VBL Tasks
  120.           8. Handles and Pointers
  121.           9. General
  122.  
  123.  
  124. Part Two  (separate file)
  125. -------------------------
  126.  
  127.   VI.   Specific Questions Answered
  128.           1. The Main Loop and Events
  129.                1. How do you tell if a specific key is being pressed?
  130.                2. How can I get millisecond timing from the keyboard
  131.                   (or mouse)?
  132.           2. Menus
  133.                1. When do you put an ellipsis on the end of a menu item?
  134.                2. How do I get the menubar to disappear and re-appear?
  135.                3. What's the difference between the resource ID of a 'MENU'
  136.                   resource and the menuID field of that resource?
  137.           3. Windows, Alerts, and Dialogs
  138.                1. How do you put a border around the default button in a
  139.                   dialog?
  140.           4. Drawing
  141.                1. What is the fastest way to paint one pixel on the screen?
  142.                2. How do you draw directly into a pixmap without using
  143.                   QuickDraw?
  144.                3. How do you draw directly onto the screen without using
  145.                   QuickDraw?
  146.                4. What RGB value does the system use for dimmed buttons,
  147.                   menus and window titles?
  148.           5. Files
  149.                1. Why is the File Manager so hard to use?
  150.                2. How do you get a full pathname?
  151.                3. How do you set the SFGet/PutFile directory?
  152.                4. How do you access the application's data fork?
  153.           6. Handles and Pointers
  154.                1. When should I call MoveHHi?
  155.                2. Why does malloc/calloc keep crashing or returning NULL in
  156.                   Think C?
  157.           7. Standalone Code
  158.                1. How do I write an INIT?
  159.           8. General
  160.                1. How do I register signatures and file types with Apple?
  161.                2. How do I go about writing serial port communications?
  162.  
  163.    
  164.   VII.  Eternal Debates:
  165.           1. Why doesn't the Mac do preemptive multitasking?
  166.    
  167.  
  168.  
  169. =============================================================================
  170.  
  171.  
  172.                      ===================================
  173.                        Section I: Development Software
  174.                      ===================================
  175.  
  176.  
  177. This is by no means a complete analysis of the tools, development systems,
  178. etc. that are available.  This is a short list of things which *most* Mac
  179. programmers use (or are at least aware of, and have considered using).
  180.  
  181.  
  182.  
  183. 1.1  Compilers
  184. --------------
  185.  
  186. Macintosh Programmer's Workshop (Apple)
  187. ---------------------------------------
  188.  
  189. MPW is a package which contains separately-purchaseable compilers for
  190. Assembly, C, C++, and Object Pascal.  All of these run in an environment
  191. called the MPW Shell.  The Shell is a command-line oriented environment,
  192. designed for extreme configurability with scripts, user-writeable "tools",
  193. i/o redirection, and lots of other bells and whistles.  On the pro side, it
  194. can do many things that THINK cannot do; it scales much better to large
  195. projects; it can be customized much more; and it's Apple's supported
  196. development environment.  On the con side, it is comparatively expensive,
  197. slow, and difficult to learn.  A debugger (SADE) is available for it, and
  198. is philosophically similar to MPW.  An object library is available (MacApp)
  199. which allows applications to be built on an object-oriented framework, again
  200. similar to MPW in it's approach of being very powerful, but not necessarily
  201. easy to learn, easy to use, small, or fast.
  202.       
  203. MPW is also available on the quarterly Essentials-Tools-Objects CD-ROM from
  204. Apple.  This disc contains the latest version of the entire MPW development
  205. environment, as well as debugging utilities and a huge collection of sample
  206. source code.  This brings the price of the MPW environment down a bit, but
  207. it's still much more expensive than THINK.
  208.  
  209.  
  210. Think (Symantec)
  211. ----------------
  212.  
  213. Think is two separate products, Think C and Think Object Pascal.  They are
  214. similar products.  Both are integrated editor/compiler/linker/debugger
  215. environments.  Both come with a large library of predefined classes (the C
  216. classes are written in a sort of pseudo C++ language that is Symantec's own
  217. Object C, not C++).  Think Pascal is MacApp-compatable, as well.  Both
  218. support inline assembly, but there is no separate assembler.  Their main
  219. selling point, however, is that they are very fast and very simple.  They are
  220. ideal for small projects that you want to finish in a few days, for
  221. beginners, and for people who need a full-fledged development environment but
  222. cannot afford MPW.  This is not to say that the Think environments are not
  223. useful for commercial development; many successful commercial programs were
  224. written with Think.  The difference in power between MPW and Think is only
  225. noticeable with very large and/or multiple-developer projects.
  226.  
  227.  
  228.  
  229. 1.2  Debuggers (beyond SADE and the Think debuggers)
  230. ----------------------------------------------------
  231.  
  232. MacsBug (Apple)
  233. ---------------
  234.  
  235. MacsBug is an assembly-level debugger.  It is a command-line driven, entirely
  236. text-based environment which uses little of the Mac toolbox, and is thus
  237. fairly stable in crashes (although it doesn't use protected memory, its main
  238. failing in the area of stability).  It supports complex operations with
  239. breakpoints, A-line traps, macros, expressions, and more, and can be
  240. configured even more with user-writeable 'dcmd' external code resources.
  241. MacsBug is free via anonymous ftp from ftp.apple.com.  It is also included
  242. with the book "Debugging Macintosh Software with MacsBug."
  243.  
  244.  
  245. TMON Professional (ICOM)
  246. ------------------------
  247.  
  248. TMON Professional is an object-level debugger which is MUCH more powerful
  249. than MacsBug.  It has an elaborate interface which looks nothing like a Mac
  250. application, and takes a while to get used to.  It is a very intelligent
  251. program, however, which can often display memory in its most useful format
  252. without help (e.g. it will disassemble code, and display a string as a
  253. string, automatically).  It has strong support for types, allowing you to
  254. easily view complex structures, arrays, floating point numbers, and more.
  255. You can examine the stack, the heaps, and just about anything else you could
  256. be interested in.  It also provides versatile scripting, and is amazingly
  257. configurable.  There are more goodies in this package than I can possible
  258. describe here.  Drawbacks are high price, and a very steep learning curve.
  259.  
  260.  
  261. The Debugger (Jasik Designs)
  262. ----------------------------
  263.  
  264. The Debugger (also known as Jasik's Debugger, because it was written by Steve
  265. Jasik) is the only source level debugger with all the low-level features of
  266. Macsbug (speed, straight-forward display of important info) and many of the
  267. advantages of source level debuggers (source code, quick display of local
  268. variables).  Some of its best features are complete support for Object
  269. Pascal, speed, and the ability to look at resource map and file information.
  270. You gotta love any debugger that will display all of the low-level globals
  271. with their values in a single keystroke!  It also has a On the down side,
  272. the interface is an aquired taste, the documentation needs work and
  273. distribution disks lack a certain polish.  But, phone support is very good
  274. (you often get Steve himself).
  275.  
  276.  
  277. SourceBug (Apple)
  278. -----------------
  279.  
  280. This is similar to SADE, but I hear it is much nicer.  It is not scriptable,
  281. however.  Perhaps someone would like to give me a review of SourceBug to put
  282. here???
  283.  
  284.  
  285.  
  286. 1.3  Other Tools
  287. ----------------
  288.  
  289. ResEdit (Apple)
  290. ---------------
  291.  
  292. ResEdit is the accepted tool for editing and creating resources.  It has very
  293. little competition, partially because it is a very good and comprehensive
  294. program, and partially because it is free (available via anonymous ftp from
  295. ftp.apple.com).  It allows you to edit any resource in hexadecimal, and most
  296. of the standard types have special editors that provide a direct-manipulation
  297. paradigm for editing them.  Users may write their own pickers and editors for
  298. custom resource types, although this is rarely done in practice.
  299.  
  300.  
  301. Resorcerer (Mathemaesthetics)
  302. ------------------------------
  303.  
  304. Resorcerer is a commercially available replacement for ResEdit.  Many
  305. developers use it exclusively, and swear by it quite vehemently.  This is
  306. from one of them:
  307.       
  308.       RESORCERER is a no-holds-barred resource dynamo.
  309.         -- embarrasses the ResEdit dialog editor
  310.         -- supports many more template data types
  311.         -- swap in different resource templates based on a key value
  312.         -- creates recursive resources
  313.         -- generates starter code for a dialog
  314.         -- does complex searches against resource contents or titles
  315.         -- renumbers resources in batches
  316.         -- changes resource types
  317.         -- excellent support from the author himself
  318.  
  319. I personally like Resorcerer for some things and ResEdit for others.  There
  320. are certain resource types that cannot be edited with Resorcerer, like
  321. color icons, and others that cannot be edited with ResEdit, like help
  322. balloons.  I expect, however, that with the addition of such resource
  323. editors to Resorcerer, I will begin to use it exclusively.
  324.  
  325. The price is the major consideration for most people.  ResEdit is free from
  326. Apple, while Resorcerer is a commercial product (available for around $250).
  327.  
  328.  
  329. Virtual User (Apple)
  330. --------------------
  331.  
  332. Virtual User allows you to script user interactions with a program so that
  333. they cal be relayed over and over, and it can execute scripts remotely, over
  334. AppleTalk.  So, for instance, you could write a script that puts your program
  335. through its paces, and then automatically execute that script simultaneously
  336. on lots of differently configured Macintosh systems.  It is available from
  337. APDA (#M0987LL/B).  [This paragraph taken from develop Issue 8, page 60.]
  338.  
  339.  
  340. Online Companion (Addison-Wesley)
  341. ---------------------------------
  342.  
  343. Online Companion is a reference tool.  Hit a magic key combination, and a
  344. pseudo-window opens at the bottom of the screen which allows you to type in
  345. a full or partial name and find it in Online's database.  It contains Inside
  346. Mac and some supplements, Tech Notes, etc.  It's fast and simple.
  347.  
  348.  
  349. Think Reference (Symantec)
  350. --------------------------
  351.  
  352. Think Reference is a reference tool.  It is a hypertext version of Inside Mac
  353. I-V and the Tech Notes.  Click on the function or data type name to go to the
  354. page on which it is defined.  It includes some very useful notes and examples
  355. written by Symantec, and the function prototypes can be copied and pasted
  356. into your editor.  Very fast and simple to use.  But beware of typos and, in
  357. some cases, bad advice.
  358.  
  359.  
  360.  
  361.  
  362.  
  363.                    ========================================
  364.                      Section II: Apple Developer Programs
  365.                    ========================================
  366.  
  367.  
  368. 2.1  The Associates and Partners Programs
  369. -----------------------------------------
  370.  
  371. From the back cover of 'develop' Issue 7:
  372.  
  373. The Associate's Program, Apple's mainstream program for commercial
  374. developers, is a convenient and cost-effective way to get essential technical
  375. and marketing information.  This program offers self-help technical support,
  376. keeps you up to date with the latest products and technical documentation,
  377. and gives you access to the Apple developer community through AppleLink.
  378. Associates also receive discounts on equipment.  The Associates program is
  379. designed for commercial developers and others involved in development
  380. projects, such as contract programmers, training providers, authors, and
  381. system integrators.
  382.  
  383. The Partners Program is open to Apple-selected commercial developers.  In
  384. addition to receiving the same development information and tools as
  385. Associates, Partners receive technical support via electronic mail.
  386. Membership in the Partners program is limited to developers who directly
  387. contribute to Apple's long-term product strategies and business objectives.
  388.  
  389. Information about becoming an Apple Associate or an Apple Partner is
  390. available from Apple.  Call Developer Programs at (408) 974-4897, AppleLink
  391. DEVHOTLINE (devhotline@applelink.apple.com), or write
  392.  
  393.      20525 Mariani Avenue
  394.      M/S 75-2C
  395.      Cupertino, CA  95014,
  396.  
  397. for information or an application for the Associates or Partners program.
  398. Developers outside the U.S. and Canada should instead contact the Apple
  399. office in their country for information about developer programs.
  400.  
  401.  
  402. 2.2  Apple Developer University
  403. -------------------------------
  404.  
  405. From the back cover of 'develop' Issue 7:
  406.  
  407. Apple Developer University provides training for all levels of Macintosh
  408. programmers.  The hands-on classes give you experience using the most up-
  409. to-date development tools.  Classes are offered in locations across the
  410. United States, and on-site instruction can also be arranged.  Multimedia
  411. self-paced courses are available from Developer University through APDA.
  412. These courses include Macintosh Programming Fundamentals, User-Centered
  413. Design, and Introduction to Object-Oriented Programming.
  414.  
  415. The registrar at (408) 974-6215 can reserve your place or send a current
  416. catalog.  You can also AppleLink DEVUNIV (devuniv@applelink.apple.com) or
  417. write
  418.  
  419.      20525 Mariani Avenue
  420.      M/S 75-6U
  421.      Cupertino, CA  95014
  422.  
  423.  
  424. 2.3  APDA
  425. ---------
  426.  
  427. From the back cover of 'develop' Issue 7:
  428.  
  429. The Apple Programmers and Developers Association (APDA) offers convenient
  430. worldwide access to development tools, resources, training products, and
  431. information for anyone interested in developing applications on Apple
  432. platforms.  A quarterly APDA catalog features over 300 technical products
  433. from Apple and third-party developers.  There are no membership fees.
  434. APDA offers convenient payment and shipping options, including site
  435. licensing.  Apple Associates or Partners automatically receive the APDA
  436. catalog.
  437.  
  438. To order products or to receive a complimentary catalog,
  439.      (800) 282-2732 U.S.
  440.      (800) 637-0029 Canada
  441.      (408) 562-3910 International
  442.      (408) 562-3971 Fax
  443.      171-576        Telex
  444.      APDA           AppleLink (apda@applelink.apple.com)
  445.  
  446.      20525 Mariani Avenue
  447.      M/S 33-G
  448.      Cupertino, CA  95014
  449.  
  450.  
  451. 2.4  Developer CDs
  452. ------------------
  453.  
  454. The developer CDs are available quarterly from APDA, or monthly to Apple
  455. Associates and Partners.  The quarterly version is also included in the
  456. quarterly issue of d e v e l o p.  They contain just about everything that
  457. Apple makes freely available, including SpInside Mac, the Tech Notes, and
  458. a plethora of code snippets.
  459.  
  460.  
  461.  
  462.  
  463.  
  464.                    =======================================
  465.                      Section III: Sources of Information
  466.                    =======================================
  467.  
  468.  
  469. 3.1  Books and Periodicals
  470. --------------------------
  471.  
  472. 3.1.1  Technical Books
  473. ----------------------
  474.  
  475.  
  476. Inside Macintosh Volume I
  477.    Addison-Wesley.  ISBN 0-201-17731-5.  $24.95
  478. Inside Macintosh Volume II
  479.    Addison-Wesley.  ISBN 0-201-17732-3.  $24.95
  480. Inside Macintosh Volume III
  481.    Addison-Wesley.  ISBN 0-201-17733-1.  $19.95
  482. Inside Macintosh Volume IV
  483.    Addison-Wesley.  ISBN 0-201-05409-4.  $24.95
  484. Inside Macintosh Volume V
  485.    Addison-Wesley.  ISBN 0-201-17719-6.  $26.95
  486. Inside Macintosh Volume VI
  487.    Addison-Wesley.  ISBN 0-201-57755-0.  $39.95
  488.  
  489.      Inside Mac is the definitive reference regarding the Macintosh toolbox.
  490.      Volumes I and II are basically essential to any Mac programmer who uses
  491.      the toolbox at all.  Volume III is essentially a summary, cross
  492.      reference, index-y sort of thing, and isn't very useful.  Volume IV is
  493.      stuff specific to the Mac Plus and later machines, which would make it
  494.      almost as important as I and II (not many 512K Macs left out there),
  495.      except that the routines it describes are not nearly as generally
  496.      useful.  It does have all of the stuff on the HFS File Manager, however,
  497.      so if you're working with File Manager routines you should definitely
  498.      consult IV before I-III.  Otherwise, you can survive without it for a
  499.      while.  Volume V is the Mac II volume.  It has every thing on Color
  500.      QuickDraw, as well as lots of other goodies.  I'd say it's more useful
  501.      than IV, but only if you're doing color.  Volume VI is the System 7
  502.      volume.  It contains all kinds of bizarre new things which are probably
  503.      not of general use or interest; but it contains a lot of new
  504.      non-System-7 stuff as well (such as 32-bit Quickdraw), and it has
  505.      corrections to the other five volumes.
  506.  
  507.  
  508. Inside Macintosh X-Ref, Revised Edition
  509.    Addison Wesley.  ISBN 0-201-57769-0.  $12.95.
  510.  
  511.      Inside Mac X-Ref is a cross-referenced index to the six volumes and
  512.      some other Macintosh technical books.
  513.  
  514.  
  515. M68000 User's Manual
  516.    Prentice Hall.  ISBN 0-13-609249-7.  $22.95.
  517. MC68020 User's Manual
  518.    Prentice Hall.  ISBN 0-13-567017-9.  $22.95.
  519. MC68030 User's Manual
  520.    Prentice Hall.  ISBN 0-13-566423-3.  $22.95.
  521. MC68881/MC68882 Floating-Point Coprocessor User's Manual
  522.    Prentice Hall.  ISBN 0-13-566936-7.  $22.95.
  523.  
  524.      The Motorola references are required reading for anyone doing assembly
  525.      programming on the Mac.  The 68000 is by far the most important.  The
  526.      68881 manual only has relevance to those who want to do floating point
  527.      and don't want to use SANE (the Standard Apple Numeric Environment,
  528.      slow but robust, precise and general).
  529.  
  530.  
  531. Technical Introduction to the Macintosh Family
  532.    Addison-Wesley.  ISBN 0-201-17765-X.  $19.95.
  533.  
  534.      This book provides an overview of the general hardware design, system
  535.      archiecture, and ROM design of the Macintosh.  It is not required for
  536.      programming, but does provide some useful background information for
  537.      programmers new to the Mac.
  538.  
  539.  
  540. Programmer's Introduction to the Macintosh Family.
  541.    Addison-Wesley.  ISBN 0-201-19254-3.  $22.95.
  542.  
  543.      This book provides an overview of basic Macintosh programming concepts.
  544.      It is recommended for programmers new to the Mac.
  545.  
  546.  
  547. Guide to the Macintosh Family Hardware
  548.    Addison-Wesley.  ISBN 0-201-52405-8.  $26.95.
  549.  
  550.      This is the definitive guide to the hardware design of the Macintosh
  551.      family.
  552.  
  553.  
  554. Designing Cards and Drivers for the Macintosh Family
  555.    Addison-Wesley.  ISBN 0-201-52404-X.  $26.95.
  556.  
  557.      This is the official guide for developers of expansion cards and
  558.      peripheral devices for the Mac.  This book is required reading for
  559.      anyone who wants to talk directly to expansion cards (video cards,
  560.      for example).
  561.  
  562.  
  563. Human Interface Guidelines: The Apple Desktop Interface
  564.    Addison-Wesley.  ISBN 0-201-17753-6.  $14.95.
  565.  
  566.      This is the definitive guide to program interface design on the
  567.      Macintosh.  When you find yourself wondering where to put the OK
  568.      button in a dialog, consult this book.
  569.  
  570.  
  571. Apple Numerics Manual
  572.    Addison-Wesley.  ISBN 0-201-17738-2.  $29.95.
  573.  
  574.      This book describes the Standard Apple Numerics Environment (SANE),
  575.      and provides information about the IEEE-standard arithmetic and
  576.      about the SANE engines on the Apple IIgs and Macintosh computers.
  577.  
  578.  
  579. Inside the Macintosh Communications Toolbox
  580.    Addison-Wesley.  ISBN 0-201-57775-5.  $24.95.
  581.  
  582.      This is the definitive reference volume for the Communications Toolbox.
  583.  
  584.  
  585.  
  586. 3.1.2  Teaching Books
  587. ---------------------
  588.  
  589.  
  590. Macintosh Programming Primer (Second Edition)
  591.    Addison-Wesley.  ISBN 0-201-60838-3.  $26.95.
  592. Macintosh C Programming Primer Volume II
  593.    Addison-Wesley.  ISBN 0-201-57016-5.  $24.95.
  594.  
  595.      These are excellent books for the beginning Mac programmer.  Both books
  596.      use Think C in their examples, but developers using other platforms
  597.      will find a plethora of useful tidbits.  I believe both books are
  598.      available in Pascal as well.
  599.  
  600.  
  601. Macintosh Revealed, Volume One: Unlocking the Toolbox
  602.    Hayden Books.  ISBN 0-8104-6551-5.  $26.95.
  603. Macintosh Revealed, Volume Two: Programming with the Toolbox
  604.    Hayden Books.  ISBN 0-8104-6561-2.  $26.95.
  605. Macintosh Revealed, Volume Three: Mastering the Toolbox
  606.    Hayden Books.  ISBN 0-672-48402-1.  $26.95.
  607. Macintosh Revealed, Volume Four: Expanding the Toolbox
  608.    Hayden Books.  ISBN 0-672-48413-7.  $26.95.
  609.  
  610.      This encyclopedic collection covers the entire Mac Toolbox for the
  611.      beginning Pascal or Assembly programmer.  It sometimes re-iterates
  612.      Inside Mac, but always offers a fresh perspective.  Volume I covers
  613.      basics including memory management and QuickDraw.  Volume II covers the
  614.      other essential Toolbox managers and exemplifies each by constructing
  615.      part of a complete text editor.  Volume III expands this application,
  616.      covering printing, drivers, desk accessories, sound and definition
  617.      functions.  Volume IV contains details of programming with MultiFinder,
  618.      Color QuickDraw and styled text.
  619.  
  620.  
  621. How to Write Macintosh Software (Third Edition)
  622.    Hayden Books.  ISBN 0-201-?????-?.  ~$30.
  623.    
  624.      This book gives comprehensive coverage of memory management and
  625.      debugging techniques.  It also gives an excellent overview of assembly
  626.      language programming on the Mac.  A must-have.  Somebody please send me
  627.      the ISBN and price of the third edition (I haven't bought mine yet).
  628.  
  629.  
  630. Macintosh Programming Secrets (Second Edition)
  631.    Addison-Wesley.  ISBN 0-201-58134-5.  $29.95.
  632.    
  633.      This is the second edition of Scott Knaster's classic book.  This
  634.      edition was co-authored by Keith Rollin.  From the back cover: "If
  635.      you've ever written Macintosh programs, or want to learn how it's done,
  636.      this book will show you how to perform tasks that aren't explicitly
  637.      documented in the reference books."  This is true.  Get this book if
  638.      you want to learn how to write a tail patch, or how to hide the menu
  639.      bar.  If you don't know what a tail patch is, that's OK; this book
  640.      starts at (or near) the beginning.  A must-have for all beginning- and
  641.      intermediate-level Macintosh programmers.
  642.  
  643.  
  644. On Macintosh Programming: Advanced Techniques
  645.    Addison-Wesley.  ISBN 0-201-51737-X.  $24.95.
  646.  
  647.      This book contains a lot of information on all aspects of programming
  648.      the Mac, including hardware and software architecture, the toolbox,
  649.      and the use of assembly, C, and Pascal for programming the toolbox.
  650.      It includes quite a lot of source code.
  651.  
  652.  
  653. Using the Macintosh Toolbox With C
  654.    Sybex.  ISBN 0-89588-572-7.  $29.95.
  655.  
  656.      This is a fairly good book for beginning Mac programmers.  Experienced
  657.      programmers will find nothing new here.
  658.  
  659.  
  660. Programmer's Guide to MPW, Volume I
  661.    Addison-Wesley.  ISBN 0-201-57011-4.  $26.95.
  662.  
  663.      This is a basic introduction to using MPW.  I don't recommend it for
  664.      anyone who already uses MPW.
  665.  
  666.  
  667. Programming with MacApp
  668.    Addison-Wesley.  ISBN 0-201-09784-2.  $24.95.
  669. C++ Programming with MacApp
  670.    Addison-Wesley.  ISBN 0-201-57020-3.  $24.95.
  671.  
  672.      These give a basic introduction to programming with MacApp; the first
  673.      with Object Pascal, and the second with C++.
  674.  
  675.  
  676. Programming for System 7.
  677.    Addison-Wesley.  ISBN 0-201-56770-9.  $26.95
  678.  
  679.      This is a guide to creating applications for System 7.  It describes
  680.      the new features and functions of the operating system in detail.
  681.      The sample code is in C and includes a complete System 7 application
  682.      in Chapter 1 which is expanded in succeeding chapters.
  683.  
  684.  
  685. ResEdit Complete
  686.    Addison-Wesley.  ISBN 0-201-55075-X.  $29.95.
  687.  
  688.      Most of this book is not written for programmers, but includes quite
  689.      a bit of useful information nonetheless.  It contains detailed
  690.      discussions of using, customizing and programming ResEdit, including
  691.      the creation of custom templates, pickers and editors. It comes with
  692.      ResEdit 2.1 on disk, with sample source code in MPW C and Pascal.
  693.  
  694.  
  695. Debugging Macintosh Software with MacsBug
  696.    Addison-Wesley.  ISBN 0-201-57049-1.  $34.95.
  697.  
  698.      This looks like a really good and useful book, but I haven't had a
  699.      chance to look at it yet.  MacsBug is included on disk, along with
  700.      several examples and dcmds.
  701.  
  702.  
  703. Programming the M68000
  704.    Benjamin/Cummings.  ISBN 0-8053-5550-2.
  705. 680x0 Programming by Example
  706.    Howard W. Sams & Co.  ISBN 0-672-22544-1.  $17.95.
  707. M68000 Assembly Language: Techniques for Building Programs
  708.    Addison-Wesley.  ISBN 0-201-11659-6.
  709. The Complete Book of Macintosh Assembly Language Programming [sic]
  710.    Scott, Foresman & Co.
  711.    Vol I  ISBN 0-673-18379-3
  712.    Vol II ISBN 0-673-18583-4
  713.  
  714.      These are all assembly books that have been recommended by people on
  715.      the net.  The first two are general; the others are specific to the
  716.      Macintosh.
  717.  
  718.  
  719.  
  720. 3.1.3  Periodicals
  721. ------------------
  722.  
  723.  
  724. d e v e l o p
  725.    Quarterly.  $10 per issue.  $30 per year.
  726.    develop
  727.    Apple Computer, Inc.
  728.    P.O. Box 531
  729.    Mt. Morris, IL  61054
  730.    AppleLink DEV.SUBS
  731.  
  732.      develop is Apple's technical journal for the Macintosh and Apple II
  733.      (the focus is on the Mac).  The articles are well-written and useful,
  734.      and it includes the Developer CD.
  735.  
  736.    
  737. MacTutor
  738.    Monthly.  $5 per issue.  $40 per year Third Class; $55 First Class.
  739.    1250 N. Lakeview Suite O
  740.    Anaheim, CA  92807
  741.    (714) 777-1255
  742.  
  743.      The only Macintosh programming journal that I'm aware of.  A good
  744.      source of sample code.
  745.  
  746.  
  747.  
  748.  
  749. 3.2  Mailing Lists
  750. ------------------
  751.  
  752. 3.2.1  Comp.Sys.Mac.Programmer Digest
  753. -------------------------------------
  754.  
  755. The Comp.Sys.Mac.Programmer Digest is a collection of article threads from
  756. comp.sys.mac.programmer.  It is designed for people who read c.s.m.p. semi-
  757. regularly and want an archive of the discussions.
  758.  
  759. Each issue of the digest contains one or more sets of articles (called
  760. threads), with each set corresponding to a 'discussion' of a particular
  761. subject.  The articles are not edited; all articles included in the digest
  762. are in their original posted form (as received by the news server at
  763. cs.uoregon.edu).  Article threads are not added to the digest until the last
  764. article added to the thread is at least one month old (this is to ensure that
  765. the thread is dead before adding it to the digest).  Article threads that
  766. consist of only one message are generally not included in the digest.
  767.  
  768. The entire digest is available for anonymous ftp from ftp.cs.uoregon.edu
  769. [128.223.8.8] in the directory /pub/mac/csmp-digest.  The most recent issues
  770. are available from sumex-aim.stanford.edu [36.44.0.6] in the directory
  771. /info-mac/digest/csmp.  If you don't have ftp capability, the sumex archive
  772. has a mail server; send a message with the text '$MACarch help' (no quotes)
  773. to LISTSERV@ricevm1.rice.edu for more information.
  774.  
  775. The digest is also available via email.  Just send a note saying that you
  776. want to be on the digest mailing list to mkelly@cs.uoregon.edu, and you will
  777. automatically receive each new issue as it is created.  Sorry, back issues
  778. are not available through the mailing list.
  779.  
  780.  
  781.  
  782.  
  783. 3.2.2  Think Class Library Discussion
  784. -------------------------------------
  785.  
  786. The Think Class Library discussion list is for those interested in using
  787. Symantec's Think C and Think Pascal object-oriented class library for
  788. Macintosh.  Discussion topics include
  789.  
  790.    * class usage, design, and implementation
  791.    * TCL bug reports, work-arounds, and fixes
  792.    * TCL application development techniques
  793.    * TCL development aids
  794.  
  795. Mail to the discussion list should be sent to tcl-talk@brown.edu.
  796. If you want to join the discussion list, mail a note saying so to
  797. tcl-request@brown.edu.
  798.  
  799.  
  800.  
  801.  
  802. 3.2.3  MacPsych
  803. ---------------
  804.  
  805. This is a mailing list of psychologists and others interested in using the
  806. Macintosh in research and teaching.  The intention of this service is to
  807. provide quick and authoritative answers to questions raised by Mac-using
  808. researchers and teachers in psychology.  Individuals who have Mac questions
  809. to pose, or have general messages that they believe would be of interest to
  810. research psychologists and teachers using the Macintosh, may send their
  811. information to macpsych@stolaf.edu.  Mail sent to this address will first
  812. pass through the moderator for the list (huff@stolaf.edu) who will forward
  813. it to everyone on the list.
  814.  
  815. If you want to be on the mailing list, mail a note saying so to
  816. macpsych-request@stolaf.edu.
  817.  
  818. There is an archive containing some free Macintosh software that has been
  819. written by members of the group; for more information, write to
  820. macpsych-request@stolaf.edu.
  821.  
  822.  
  823.  
  824.  
  825. 3.3  Miscellaneous
  826. ------------------
  827.  
  828. 3.3.1  Usenet Mac Programmer's Guide
  829. ------------------------------------
  830.  
  831. The Usenet Mac Programmer's Guide (UMPG) is a collection of useful tips
  832. culled  from comp.sys.mac.programmer.  Compiled by Matthew X. Mora
  833. (mxmora@unix.sri.com), it is organized by topic and includes a table of
  834. contents and index.  It is available via anonymous ftp from sumex-aim.
  835. stanford.edu (36.44.0.6) in the directory /info-mac/tech/.
  836.    
  837. It is also available in a pre-printed version, or on disk.
  838.    
  839. To get a copy of the printed version send $17.00 to:
  840.  
  841.      USENET Macintosh Programmer's Guide Printed Version
  842.      39075 Carmel Ct.
  843.      Fremont, CA  94538
  844.  
  845. To get a copy of the disk version send $5.00 to:
  846.  
  847.       USENET Macintosh Programmer's Guide Disk Version
  848.       39075 Carmel Ct.
  849.       Fremont, CA  94538
  850.  
  851.  
  852.  
  853.  
  854. 3.3.2  Kent Sandvik's Frequently Asked MPW C++ and MacApp Questions
  855. -------------------------------------------------------------------
  856.  
  857. This file is available upon request from ksand@apple.com or via anonymous ftp
  858. to ftp.cs.uoregon.edu [128.223.8.8] in the directory /pub/mac.
  859.  
  860.  
  861.  
  862.  
  863. 3.3.3  Comp.Sys.Mac.FAQ
  864. -----------------------
  865.  
  866. This Frequently Asked Questions list provides short answers to a number of
  867. frequently asked questions from the newsgroups comp.sys.mac.system,
  868. comp.sys.mac.misc, and comp.sys.mac.apps.  Some of the questions that it
  869. answers are asked occasionally on comp.sys.mac.programmer.  Please read
  870. this FAQ list before posting to c.s.m.p.  It is available from the sumex
  871. archives and its mirror sites (see section 4.2) in the file /info-mac/
  872. report/csmf-faq.txt.
  873.  
  874.  
  875.  
  876.  
  877.  
  878.                         =============================
  879.                           Section IV: Archive Sites
  880.                         =============================
  881.  
  882.  
  883. 4.1  ftp.apple.com [130.43.2.3]
  884. -------------------------------
  885.  
  886. Contents
  887.    This archive contains just about everything available for free from
  888.    Apple.  Look here first for sample source code, the latest tech
  889.    notes, and tools such as ResEdit and MacsBug.  Very little of what
  890.    can be found here is available from other archives.
  891.  
  892. Access
  893.    Anonymous ftp, from inside the United States only.
  894.    You should read the file /dts/README.FIRST before downloading from this
  895.    archive.  Everything for the Mac is in /dts/mac.  The moderators ask that
  896.    you download during the off-peak hours if at all possible, since this is
  897.    just a IIci running A/UX.
  898.  
  899. Submissions
  900.    You cannot post to this archive.
  901.  
  902.  
  903. 4.2  sumex-aim.stanford.edu [36.44.0.6]
  904. ---------------------------------------
  905.  
  906. Contents
  907.    This archive contains a large collection of public-domain and shareware
  908.    for the Mac.  It is well-maintained and updated regularly.  New
  909.    submissions to the archive are listed every other day or so in the
  910.    newsgroup comp.sys.mac.digest.
  911.  
  912. Access
  913.    Anonymous ftp.  Read the files in /info-mac/help for more detailed
  914.    information about the files in the archive.  Everything is in /info-mac.
  915.    If you don't have ftp access you can use the mail server; send a message
  916.    with the text '$MACarch help' (no quotes) to LISTSERV@ricevm1.rice.edu
  917.    for more information.
  918.  
  919. Submissions
  920.    Sumex accepts all submissions that "are of general benefit to the
  921.    Macintosh community."  Basically, if you have something that you think is
  922.    useful, and that other people may like to have, you should feel free to
  923.    send it to sumex.  All submissions should be compressed and BinHexed, and
  924.    should include a short but informative blurb at the beginning of the file.
  925.    Mail your submissions to info-mac@sumex-aim.stanford.edu.  For more
  926.    detailed information, consult the file
  927.        /info-mac/help/posting-guidelines.txt.
  928.  
  929.  
  930. 4.3  rascal.ics.utexas.edu [128.83.138.20]
  931. ------------------------------------------
  932.  
  933. This archive is being discontinued as of 5/92.  It will continue to have
  934. stuff available for a while, perhaps a few months, but the contents will
  935. eventually dwindle until there is very little or nothing left.
  936.  
  937. Contents
  938.    This archive contains most of what can be found at sumex.  Its
  939.    emphasis is on utilities and programming-related items, but it
  940.    contains quite a bit of other stuff as well.  It is the home of
  941.    the comp.sys.mac.announce archives.  Many items tend to appear
  942.    here before they show up at sumex or comp.binaries.mac.
  943.  
  944. Access
  945.    Anonymous ftp.
  946.  
  947. Submissions
  948.    No longer accepted.
  949.  
  950.  
  951. 4.4  mac.archive.umich.edu [141.211.164.153]
  952. --------------------------------------------
  953.  
  954. Contents
  955.    I haven't explored this archive yet, but I hear it has quite a bit
  956.    of general Macintosh freeware and shareware.
  957.  
  958. Access
  959.    Anonymous ftp.
  960.  
  961. Submissions
  962.    You can submit to this archive by mailing a compressed, binhexed
  963.    file with a brief descriptive header to macgifts@mac.archive.umich.
  964.    edu.  This address will also forward your mail to comp.binaries.mac
  965.    and sumex-aim.stanford.edu.
  966.  
  967.  
  968. 4.5  ftp.cs.uoregon.edu [128.223.8.8]
  969. -------------------------------------
  970.  
  971. Contents
  972.    This is the home of this FAQ list, as well as the Comp.Sys.Mac.
  973.    Programmer Digests.  There's also a little sample code not included
  974.    in the FAQ.
  975.  
  976. Access
  977.    Anonymous ftp.  Directory /pub/mac.
  978.  
  979. Submissions
  980.    Not accepted.
  981.  
  982.  
  983. 4.6  ics.uci.edu [128.195.1.1]
  984. ------------------------------
  985.  
  986. Contents
  987.    This archive has some Mac stuff, although not nearly as much as the
  988.    major sites, such as sumex.  The main attraction is the Think C
  989.    directory.  It contains the latest updates to Think C, as well as
  990.    Think C related system extensions, fkeys, etc., and source code.
  991.    Definitely worth checking out if you use Think C extensively.
  992.  
  993. Access
  994.    Anonymous ftp.  Directory /mac.
  995.  
  996. Submissions
  997.    Not accepted, I think.  Someone please correct me if I'm wrong.
  998.  
  999.  
  1000. 4.7  ftp.brown.edu [128.148.176.55]
  1001. -----------------------------------
  1002.  
  1003. Contents
  1004.    This is the home of the Think Class Library mailing list.  It includes
  1005.    TCL bug fixes and new classes, as well as an archive of the tcl-talk
  1006.    mailing list.
  1007.  
  1008. Access
  1009.    Anonymous ftp.  Directory /pub/tcl.
  1010.  
  1011. Submissions
  1012.    Submissions to the archive should be mailed to tcl-request@brown.edu or
  1013.    placed in the directory /incoming/tcl with accompanying mail to
  1014.    tcl-request.  Encode all submissions in BinHex 4.0 format and include a
  1015.    descriptive header.  Please do not redistribute Symantec's TCL source.
  1016.  
  1017.  
  1018. 4.8  comp.binaries.mac [newsgroup]
  1019. ----------------------------------
  1020.  
  1021. Contents
  1022.    This is a moderated newsgroup for distribution of Macintosh freeware
  1023.    and shareware.  Just about everything that gets sent to sumex and
  1024.    the other major archives gets sent here as well.
  1025.  
  1026. Access
  1027.    Subscribe to the newsgroup....
  1028.  
  1029. Submissions
  1030.    All files should be compressed and binhexed for mailing.  Posting
  1031.    to the newsgroup should automatically get your file mailed to the
  1032.    moderator.  If this does not happen on your system, you can mail
  1033.    your posting to the moderator yourself at macintosh@dhw68k.cts.com,
  1034.    or at dhw68k!bytebug@ics.uci.edu if the first address doesn't work.
  1035.    Expect a delay of as much as a month before your posting shows up
  1036.    on the newsgroup.
  1037.  
  1038.  
  1039.  
  1040.  
  1041.  
  1042.                           =========================
  1043.                             Section V: One-liners
  1044.                           =========================
  1045.  
  1046.  
  1047. 5.1  The Main Loop and Events
  1048. -----------------------------
  1049.  
  1050. Call MaxApplZone and MoreMasters when the application starts up.
  1051. If you call SetApplLimit, do it before calling MaxApplZone.
  1052. Use HD in MacsBug while running to estimate how many times to call MoreMasters.
  1053. Don't use SetEventMask to disable mouseUp events.  Better not to use it at all.
  1054. Call WaitNextEvent if you're running under System 6 or later.
  1055. DTS sample code passes 0x7fffffff to WaitNextEvent when nothing is happening.
  1056. DTS sample code passes GetCaretTime() to WaitNextEvent when flashing a cursor.
  1057. Call both GetNextEvent and SystemTask only if WaitNextEvent is unavailable.
  1058. Call IsDialogEvents and DialogSelect even if GetNextEvent returns false.
  1059. SetPort to a known good grafPort once every time through the event loop.
  1060. Set the cursor on suspend and resume events.
  1061. Call GetDblTime to get the maximum time for a double click.
  1062. Measure double click time from mouse up to mouse down.
  1063.  
  1064.  
  1065. 5.2  Menus
  1066. ----------
  1067.  
  1068. Use SetItem to include meta characters literally in menus.
  1069. Prepend an ASCII 0 to a menu item to use a leading '-'.
  1070. Never make MENU resources purgeable.
  1071.  
  1072.  
  1073. 5.3  Resources
  1074. --------------
  1075.  
  1076. GetResource never produces resNotFound.  Check for a NIL handle instead.
  1077. To create a resource file, call HCreate, then HCreateResFile.
  1078. To open a resource file read-only for shared access, use HOpenResFile.
  1079. Don't leave ResLoad set to false.
  1080. GetResource on a dctb may return a non-resource copy of the dctb.
  1081.  
  1082.  
  1083. 5.4  Windows, Alerts, and Dialogs
  1084. ---------------------------------
  1085.  
  1086. Move and size windows to the bounding box of GetGrayRgn.
  1087. Hide scroll bars when deactivating a window.
  1088. Call DrawGrowIcon when activating or deactivating a window with a grow region.
  1089. DrawGrowIcon does not check to see if the window has a grow region.
  1090. Call PenNormal before calling DrawGrowIcon.
  1091. itemHit will not be set when a dialog filter is called.
  1092. Use a disabled UserItem to draw the roundrect outline around the OK button.
  1093. ModalDialog assumes the dialog is already visible and in the front.
  1094. Use screenBits.bounds to center dialogs, alerts, etc. below the menu bar.
  1095. If you save window locations in files, they may not be valid for all monitors.
  1096. DragWindow expects startPt in boundsRect; if not it may not call SelectWindow.
  1097. SelectWindow does not automatically call SetPort.  You must do that yourself.
  1098. DialogSelect responds to activate events but ignores suspend/resume events.
  1099.  
  1100.  
  1101. 5.5  Drawing
  1102. ------------
  1103.  
  1104. Always set the VisRgn and ClipRgn of offscreen ports.
  1105. Set the ClipRgn first when making a picture.
  1106. Don't make rowBytes in bitMaps greater than 8191.
  1107. To dim text, draw a rectangle with penPat=gray and penMode=patbic over it.
  1108. To draw rotated text, draw to an offscreen bitmap, rotate it, and CopyBits it.
  1109. Don't use picSize to determine the size of a picture.  Check the handle size.
  1110. Never draw outside a window except in XOR mode for temporary effects like drag.
  1111. To avoid animation flicker, synchronize drawing to the vertical retrace.
  1112. CopyBits on more than 3Kb data will work, but it might have to allocate memory.
  1113. The small Mac screen is 512 pixels wide by 342 pixels high including menu bar.
  1114.  
  1115.  
  1116. 5.6  Files
  1117. ----------
  1118.  
  1119. Don't write in the application file.  This will fail with read-only devices.
  1120. Use PBGetVInfo to convert a VRefNum to a volume name.
  1121. Delete uses the Poor Man's Search Path, so don't delete blindly.
  1122. File Manager routines with dirID=0 use the Poor Man's Search Path.
  1123. Truncate and reallocate files before overwriting to reduce fragmentation.
  1124. Check/change the creator and type of Save As... files before overwriting.
  1125. If you rewrite files by deleting and creating, copy all Finder information.
  1126. Directory ID's are longs, not shorts.  Shorts work ALMOST all the time.
  1127. Always set the version number that appears in some file manager calls to 0.
  1128. To convert a pathRefNum to a name or file number, use PBGetFCBInfo.
  1129. Prevent the creation of files with names that begin with a period.
  1130.  
  1131.  
  1132. 5.7  Interrupts and VBL Tasks
  1133. -----------------------------
  1134.  
  1135. Don't call any Memory Manager routines during an interrupt.
  1136. Unlocked handles may not be valid during an interrupt.
  1137. To synchronize to the vertical retrace on Macs with slots use SlotVInstall.
  1138.  
  1139.  
  1140. 5.8  Handles and Pointers
  1141. -------------------------
  1142.  
  1143. Lock handles before passing their dereferenced pointers to any routine.
  1144. Lock handles before setting referenced data to expressions containing functions
  1145. Put an odd long at location zero on a 68000 to help find NIL handle references.
  1146. Use HGetState/HLock/HSetState to lock a handle then put it back as it was.
  1147.  
  1148.  
  1149. 5.9  General
  1150.  
  1151. Always use unsigned characters within text and Pascal-format strings.
  1152. Save application preferences in a folder named Preferences in the System Folder
  1153. Use SysEnvirons to find the System (Blessed) Folder.
  1154. Use GetAppParms to get the name of the application.
  1155. The high bit of SysParam . volClik enables the alarm clock.
  1156. Check the application name at $910 before exiting with ES within MacsBug.
  1157. To exit to shell in the mini-debugger, enter SM 0 A9 F4 and then G 0.
  1158. In Pascal, don't nest procedures to be passed by procedure pointer.
  1159. In Pascal, "with theHandle^^" is unsafe if memory compaction can occur.
  1160.  
  1161.  
  1162.  
  1163.  
  1164.  
  1165.                        ==============================
  1166.                          Credits / Acknowledgements
  1167.                        ==============================
  1168.  
  1169.  
  1170. Many thanks to Ben Haller, who started this whole thing, and did quite a lot
  1171. of work on this posting before handing it off to me.
  1172.  
  1173. Thanks to these people for proofreading this list during its development:
  1174.     Ben Haller
  1175.     Wally Wedel
  1176.     John B. Matthews
  1177.     Patrick Beard
  1178.     Steve Zellers
  1179.  
  1180. Thanks to Chris Webster for the one-liners.
  1181.  
  1182. Thanks to Peter Lewis for the answers to the following specific questions:
  1183.     6.2.1  When do you put an ellipsis on the end of a menu item?
  1184.     6.5.1  Why is the File Manager so hard to use?
  1185.     6.5.2  How do you get a full pathname?
  1186.     6.5.3  How do you set the SFGet/PutFile directory?
  1187.  
  1188. Thanks to Greg Ferrar for the review on TMON Pro.
  1189.  
  1190. Thanks to John Rinaldo for the review on Jasik's Debugger.
  1191.  
  1192. And thanks to everyone who has offered suggestions or constructive
  1193. criticism....  Keep those comments coming!
  1194.