home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Mac Game Programming Gurus / TricksOfTheMacGameProgrammingGurus.iso / Information / CSMP Digest / volume 1 / csmp-v1-123.txt < prev    next >
Encoding:
Text File  |  1994-12-08  |  43.9 KB  |  1,168 lines  |  [TEXT/R*ch]

  1. C.S.M.P. Digest             Tue, 23 Jun 92       Volume 1 : Issue 123
  2.  
  3. Today's Topics:
  4.  
  5.     q: marching ants as vbl task problems
  6.     GetGWorldPixMap
  7.     Wanna Keep Up with the Future: Mac Hacker needs unix book rec
  8.     Zortech C++ wins award?
  9.     Info on Toolserver?
  10.     Do people actually use ViewEdit 3?
  11.     The Device Thing...
  12.     Print/Save Graph @ 300dpi - how?
  13.     Debugging in MacApp
  14.  
  15.  
  16. The Comp.Sys.Mac.Programmer Digest is moderated by Michael A. Kelly.
  17.  
  18. These digests are available (by using FTP, account anonymous, your email
  19. address as password) in the pub/mac/csmp-digest directory on ftp.cs.uoregon.
  20. edu.  This is also the home of the comp.sys.mac.programmer Frequently Asked
  21. Questions list.  The last several issues of the digest are available from
  22. sumex-aim.stanford.edu as well.
  23.  
  24. These digests are also available via email.  Just send a note saying that you
  25. want to be on the digest mailing list to mkelly@cs.uoregon.edu, and you will
  26. automatically receive each new digest as it is created.
  27.  
  28. The digest is a collection of articles from the internet newsgroup comp.sys.
  29. mac.programmer.  It is designed for people who read c.s.m.p. semi-regularly
  30. and want an archive of the discussions.  If you don't know what a newsgroup
  31. is, you probably don't have access to it.  Ask your systems administrator(s)
  32. for details.  (This means you can't post questions to the digest.)
  33.  
  34. The articles in these digests are taken directly from comp.sys.mac.programmer.
  35. They are not edited; all articles included in this digest are in their original
  36. posted form.  The only articles that are -not- included in these digests are
  37. those which didn't receive any replies (except those that give information
  38. rather than ask a question).  All replies to each article are concatenated
  39. onto the original article in the order in which they were received.  Article
  40. threads are not added to the digests until the last article added to the
  41. thread is at least one month old (this is to ensure that the thread is dead
  42. before adding it to the digests).
  43.  
  44. Send administrative mail to mkelly@cs.uoregon.edu.
  45.  
  46. -------------------------------------------------------
  47.  
  48. From: andre@cs.pitt.edu (Andre "A Mac Plumber" Srinivasan)
  49. Subject: q: marching ants as vbl task problems
  50. Date: 20 May 92 14:42:10 GMT
  51. Organization: Computer Science Dept., University of Pittsburgh
  52.  
  53. i wrote a simple vbl task based on the marquee code from dts.  the
  54. idea was to create a standalone routine that would need little work
  55. from the person using it.  it works very nicely, except for the
  56. following:
  57.  
  58. 1) when a pulldown menu overlaps the ants, the ants just march right
  59. over the menu.  it looks like i will have to remove the task when a
  60. mouse down occurs and then install it again afterward.
  61.  
  62. 2) nothing selected from the apple menu works while my application is
  63. in the foreground.  when it is suspended, all of these selections that
  64. i made are launched.
  65.  
  66. 3) when i switch to the finder and then return to my app, the ants
  67. don't march very fast at all; they crawl very slowly.  if i switch to
  68. some other app and then return, i don't have this problem.
  69.  
  70. i guess i'm also asking if i should just do this as a null event task
  71. rather than mucking with interrupts (which turned out to be easier
  72. than i thought if you ignore my troubles above).
  73.  
  74. thanks for your thoughts.
  75.  
  76.                             -andre.
  77.  
  78.  
  79. - --
  80. Andre Srinivasan  :
  81. 734 LRDC          :         This Space For Rent
  82. U. of Pittsburgh  :
  83. andre@cs.pitt.edu :
  84.  
  85. +++++++++++++++++++++++++++
  86.  
  87. From: time@ice.com (Tim Endres)
  88. Date: 21 May 92 15:37:16 GMT
  89. Organization: ICE Engineering, Inc.
  90.  
  91.  
  92. In article <14739@pitt.UUCP> (comp.sys.mac.programmer), andre@cs.pitt.edu (Andre "A Mac Plumber" Srinivasan) writes:
  93. > 1) when a pulldown menu overlaps the ants, the ants just march right
  94. > over the menu.  it looks like i will have to remove the task when a
  95. > mouse down occurs and then install it again afterward.
  96.  
  97. You might try patching MenuSelect() to determine this window.
  98.  
  99. > 2) nothing selected from the apple menu works while my application is
  100. > in the foreground.  when it is suspended, all of these selections that
  101. > i made are launched.
  102.  
  103. Are you calling the standard eventloop stuff? Are you using "OpenDeskAcc()"
  104. when you get the Apple menu picks?
  105.  
  106. > 3) when i switch to the finder and then return to my app, the ants
  107. > don't march very fast at all; they crawl very slowly.  if i switch to
  108. > some other app and then return, i don't have this problem.
  109.  
  110. WOW!
  111.  
  112. > i guess i'm also asking if i should just do this as a null event task
  113. > rather than mucking with interrupts (which turned out to be easier
  114. > than i thought if you ignore my troubles above).
  115.  
  116. VBLs are cool, in that they do not get blocked. NULL events would probably
  117. prove to be more trouble-free in the long run, however.
  118.  
  119. tim.
  120.  
  121.  
  122. tim endres - time@ice.com  -or-  uupsi!tbomb!time
  123. ICE Engineering, Inc. - Phone (313) 449 8288 - FAX (313) 449-9208
  124. 8840 Main Street, Whitmore Lake, MI  48189
  125. USENET - a slow moving self parody... ph
  126.  
  127. +++++++++++++++++++++++++++
  128.  
  129. From: edw@caligula.cts.com (Ed Watkeys)
  130. Date: 21 May 92 21:28:41 GMT
  131. Organization: Distant Software
  132.  
  133.  
  134. In article <1CE00001.42ber9@tbomb.ice.com> (comp.sys.mac.programmer), time@ice.com (Tim Endres) writes:
  135. > > 2) nothing selected from the apple menu works while my application is
  136. > > in the foreground.  when it is suspended, all of these selections that
  137. > > i made are launched.
  138. > Are you calling the standard eventloop stuff? Are you using "OpenDeskAcc()"
  139. > when you get the Apple menu picks?
  140. I had this problem in something I was writing, and I traced it back to the
  141. fact that I was ignoring update events. Everything worked fine except Apple
  142. Menu selections.
  143.  
  144. Ed
  145.  
  146. - --
  147. Ed Watkeys, Sys Admin.  "...The errors of great men are more venerable
  148. Distant Software         because they are more fruitful than the truths
  149. edw@caligula.cts.com     of little men..."  -- Friedrich Nietzsche
  150.  
  151. +++++++++++++++++++++++++++
  152.  
  153. From: keith@taligent.com (Keith Rollin)
  154. Date: 21 May 92 20:37:29 GMT
  155. Organization: Taligent
  156.  
  157. In article <14739@pitt.UUCP>, andre@cs.pitt.edu (Andre "A Mac Plumber"
  158. Srinivasan) writes:
  159. > i wrote a simple vbl task based on the marquee code from dts.  the
  160. > idea was to create a standalone routine that would need little work
  161. > from the person using it.  it works very nicely, except for the
  162. > following:
  163. > [ problems deleted]
  164. > i guess i'm also asking if i should just do this as a null event task
  165. > rather than mucking with interrupts (which turned out to be easier
  166. > than i thought if you ignore my troubles above).
  167.  
  168. Ignoring the problems you have already listed, there is a VERY GOOD reason why
  169. you should not do marching ants at interrupt time. FrameRect (I assume you are
  170. calling FrameRect) has the potential of moving blocks in the heap. Moving blocks
  171. at interrupt time is one of the things you absolutely must not do. First of all,
  172. there is the potential of invalidating any dereferenced handles your application
  173. may have. Second, you'd could be re-entering the Memory Manager, something it
  174. was not designed to do. This could lead to a corrupt heap and crashes.
  175.  
  176. - --
  177. Keith Rollin
  178. Phantom Programmer
  179. Taligent, Inc.
  180.  
  181. +++++++++++++++++++++++++++
  182.  
  183. From: REEKES@applelink.apple.com (Jim Reekes)
  184. Date: 22 May 92 03:01:42 GMT
  185. Organization: Apple Computer, Inc.
  186.  
  187. In article <14739@pitt.UUCP>, andre@cs.pitt.edu (Andre "A Mac Plumber" Srinivasan) writes:
  188. > i wrote a simple vbl task based on the marquee code from dts.  the
  189. > idea was to create a standalone routine that would need little work
  190. > from the person using it.  it works very nicely, except for the
  191. > following:
  192. > 1) when a pulldown menu overlaps the ants, the ants just march right
  193. > over the menu.  it looks like i will have to remove the task when a
  194. > mouse down occurs and then install it again afterward.
  195. > 2) nothing selected from the apple menu works while my application is
  196. > in the foreground.  when it is suspended, all of these selections that
  197. > i made are launched.
  198. > 3) when i switch to the finder and then return to my app, the ants
  199. > don't march very fast at all; they crawl very slowly.  if i switch to
  200. > some other app and then return, i don't have this problem.
  201. > i guess i'm also asking if i should just do this as a null event task
  202. > rather than mucking with interrupts (which turned out to be easier
  203. > than i thought if you ignore my troubles above).
  204.  
  205. You cannot call QuickDraw at interrupt level, such as a VBL task.
  206. You'll need to draw during null events or when _WaitNextEvent returns
  207. false.  Also, while you're trying to get background time or nullEvents
  208. you'll need to pass a sleep value to WaitNextEvent that provides you
  209. with enough polling time.  Typically this should be 60 ticks, or once
  210. a second.  Many applications will pass a longer time or even MAXLONGINT
  211. to WaitNextEvent because they do not need any nullEvents.
  212.  
  213.  
  214.  
  215. - -----------------------------------------------------------------------
  216. Jim Reekes, Polterzeitgeist  |     Macintosh Toolbox Engineering
  217.                              |          Sound Manager Expert
  218. Apple Computer, Inc.         | "All opinions expressed are mine, and do
  219. 20525 Mariani Ave. MS: 81-KS |   not necessarily represent those of my
  220. Cupertino, CA 95014          |       employer, Apple Computer Inc."
  221.  
  222. ---------------------------
  223.  
  224. From: peirce@outpost.SF-Bay.org (Michael Peirce)
  225. Subject: GetGWorldPixMap
  226. Date: 21 May 92 18:29:37 GMT
  227. Organization: Peirce Software
  228.  
  229. I have a question about using GetGWorldPixMap().  In Inside Mac VI
  230. it says to never access the portPixMap of an offscreen GWorld (for
  231. using in things like LockPixels()).
  232.  
  233. I ran across some code (QuickTime sample code) that says something about
  234. GetGWorldPixMap() not always working.  My code currently does the
  235. access itself and hasn't run into problems, but I'd like to DO THE
  236. RIGHT THING.  But I also don't want to run into problems if GetGWorldPixMap()
  237. messes up sometimes.
  238.  
  239. Does anyone know the real answer to this?
  240.  
  241. - --  Michael Peirce      --   peirce@outpost.SF-Bay.org
  242. - --  Peirce Software     --   Suite 301, 719 Hibiscus Place
  243. - --  Makers of...        --   San Jose, California USA 95117
  244. - --                      --   voice: (408) 244-6554 fax: (408) 244-6882
  245. - --     SMOOTHIE         --   AppleLink: peirce & America Online: AFC Peirce
  246.  
  247. +++++++++++++++++++++++++++
  248.  
  249. From: ivanski@world.std.com (Ivan M CaveroBelaunde)
  250. Date: 22 May 92 03:58:29 GMT
  251. Organization: The World Public Access UNIX, Brookline, MA
  252.  
  253. peirce@outpost.SF-Bay.org (Michael Peirce) writes:
  254. >I ran across some code (QuickTime sample code) that says something about
  255. >GetGWorldPixMap() not always working.  My code currently does the
  256. >access itself and hasn't run into problems, but I'd like to DO THE
  257. >RIGHT THING.  But I also don't want to run into problems if GetGWorldPixMap()
  258. >messes up sometimes.
  259. >Does anyone know the real answer to this?
  260.  
  261. Yup, I do (hey, it bit me). In 32-bit QuickDraw 1.2, GetGWorldPixMap
  262. does not return the portPixMap field of the gworld, but rather returns
  263. the portVersion field (a word) in the high word and the high word of
  264. the portPixMap field in the low word. It does:
  265.     move.l    (a0),8(a7)
  266. (a0 containing the gworldptr and 8(a7) being where the return value of
  267. the pascal function should be placed) instead of:
  268.     move.l    2(a0),8(a7)
  269. which does the right thing.
  270.  
  271. This is fixed in 32-bit QuickDraw 1.3 (the System 7 version). Although
  272. one of the suggested workarounds is to grab it yourself from the
  273. CGrafPort record, I play it a little safer and grab it myself only if
  274. I'm running on 32-bit QD 1.2 or lesser, and otherwise I use
  275. GetGWorldPixMap.
  276.  
  277. Hope this helps
  278.  
  279. - -Ivanski
  280.  
  281. - ---
  282. Ivan Cavero Belaunde (ivanski@world.std.com)
  283. DiVA Corporation
  284.  
  285. +++++++++++++++++++++++++++
  286.  
  287. From: grobbins@Apple.COM (Grobbins)
  288. Date: 22 May 92 05:48:47 GMT
  289. Organization: Apple DTS
  290.  
  291. In article <D2150035.42b0hy@outpost.SF-Bay.org> peirce@outpost.SF-Bay.org (Michael Peirce) writes:
  292. >I ran across some code (QuickTime sample code) that says something about
  293. >GetGWorldPixMap() not always working.  My code currently does the
  294. >access itself and hasn't run into problems, but I'd like to DO THE
  295. >RIGHT THING.  But I also don't want to run into problems if GetGWorldPixMap()
  296. >messes up sometimes.
  297.  
  298. Under System 7, use GetGWorldPixMap; under System 6, access the
  299. field directly.   This is covered in the Q&A Stack and in Dev Tech
  300. Answers on AppleLink; I'll paste the appropriate entries below.
  301.  
  302. Grobbins           grobbins@apple.com
  303.  
  304. Usual disclaimers apply.
  305. - ---------------------------------------------------------------
  306.  
  307. from Dev Tech Answers on AppleLink:
  308.  
  309. Testing for GWorld availability
  310.  
  311. How do I tell if GWorld calls such as NewGWorld are available? Is the
  312. existence of 32-Bit Color QuickDraw the only condition?
  313. ___
  314.  
  315. Presence of 32-Bit QuickDraw is a sufficient but not a necessary condition
  316. for GWorld support. Under System 7, GWorld routines and certain other color
  317. calls are allowed on 68000-based Macintosh models, even though Color
  318. QuickDraw is not available. However, special precautions must be taken to
  319. use GWorlds in a compatible way.
  320.  
  321. On a Macintosh without Color QuickDraw running System 7.0, the GWorld
  322. created by NewGWorld uses an extended GrafPort, not a CGrafPort. NewGWorld
  323. will return an error if asked to create a GWorld with depth greater than 1
  324. unless Color QuickDraw is available.
  325.  
  326. The PixMap field of a GWorld should not be accessed directly; instead, use
  327. the function GetGWorldPixMap. Similarly, to obtain the address of the PixMap
  328. data, use GetPixBaseAddr rather than access the baseAddr field of the
  329. PixMap. These routines are documented in the Graphics Devices chapter of
  330. Inside Macintosh Volume VI. One-bit GWorlds are also discussed in the article,
  331. "QuickDraw's CopyBits Procedure: Better Than Ever in System 7.0," from issue 6
  332. of develop.
  333.  
  334. Unfortunately, GetGWorldPixMap does not work properly under 32-Bit QuickDraw
  335. 1.2, so use theGWorldPtr^.portPixMap instead if and only if Gestalt reports
  336. the QuickDraw version as greater than or equal to gestalt32BitQD and less
  337. than gestalt32BitQD13.
  338.  
  339. The proper test for the availability GWorlds is
  340.  
  341. retCode1 = Gestalt(gestaltQuickdrawVersion, &qdVersResponse);
  342. retCode2 = Gestalt(gestaltSystemVersion, &sysVersResponse);
  343. if ((retCode1 == noErr) &&
  344.     (retCode2 == noErr) &&
  345.     ((qdVersResponse >= gestalt32BitQD) ||
  346.      (sysVersResponse >= 0x0700))) {
  347.     /* do GWorld stuff */
  348. }
  349.  
  350. This is also the appropriate test for other "color" routines available on
  351. all Macintosh models under System 7: RGBForeColor, RGBBackColor,
  352. GetForeColor, GetBackColor, and QDError. (QDError returns zero if Color
  353. QuickDraw is not present.)
  354.  
  355. Alternatively, if color or greyscale GWorlds are required, check bit
  356. gestaltHasDeepGWorlds (bit 1) of the response to selector
  357. gestaltQuickdrawFeatures. It is set if GWorlds with true CGrafPorts are
  358. available. Incidentally, the gestaltHasColor bit for
  359. gestaltQuickdrawFeatures erroneously returns true for black-and-white
  360. machines under System 7.0.
  361.  
  362.  
  363.  
  364. Copyright Apple Computer, Inc.  1985-1991
  365.  
  366.  
  367.  
  368. GetGWorldPixMap bug and workaround
  369.  
  370. Why does GetGWorldPixMap (when called on a Macintosh II, IIcx, or IIx running
  371. system software version 6.0.5 or 6.0.7 with 32-Bit QuickDraw 1.2) return a
  372. combination of the device field (two bytes) and the first two bytes of the
  373. portPixMap field? Is this a bug?
  374. ___
  375.  
  376. Your analysis of GetGWorldPixMap is exactly right: It doesn't work correctly
  377. in system software version 6.0.5 and 6.0.7 with 32-Bit QuickDraw 1.2. It
  378. returns a value that's two bytes before the value it's supposed to return.
  379.  
  380. The solution is to use GWorldPtr->portPixMap instead of GetGWorldPixMap. It's
  381. safe to do this, but you should use GetGWorldPixMap under System 7. Not only
  382. is the bug fixed there, but dereferencing the port is dangerous under System 7
  383. because it may not be CGrafPort. Use Gestalt with the gestaltQuickdrawVersion
  384. selector to determine whether you can use GetGWorldPixMap. If Gestalt returns
  385. a value from gestalt8BitQD ($0100) through gestalt32BitQD12 ($0220), then
  386. GetGWorldPixMap either doesn't exist or is the buggy version. If it returns
  387. gestalt32BitQD13 ($0230) or higher, then GetGWorldPixMap does exist and works
  388. correctly. Interestingly, GetGWorldPixMap can be called on a black-and-white
  389. QuickDraw machine under System 7. It returns a handle to a structure which
  390. should be treated as a BitMap structure, though there are some undocumented
  391. fields after the normal BitMap fields. To tell whether GetGWorldPixMap is
  392. available on a black-and-white QuickDraw machine, you must check the system
  393. software version by calling Gestalt with the gestaltSystemVersion selector. If
  394. it returns $0700 or higher, GetGWorldPixMap is available.
  395.  
  396.  
  397.  
  398. Copyright Apple Computer,  Inc.  1985-1991
  399.  
  400.  
  401.  
  402. ---------------------------
  403.  
  404. From: gft_robert@gsbacd.uchicago.edu (opcode ranger)
  405. Subject: Wanna Keep Up with the Future: Mac Hacker needs unix book rec
  406. Date: 18 May 92 22:01:08 GMT
  407.  
  408. I'm a Mac programmer, and haven't had much use for Unix, but I can read the
  409. writing on the wall.I'm keen to keep up on the future of the Mac and Apple
  410. post-Mac computing.  From what I've gathered, the future lies in Unix, and/or
  411. an OS which bears some passing resemblance to some form of Unix.  I don't know
  412. what Taligent will be like, but I would presume that some knowledge of Unix
  413. would be helpful (AIX keeps popping into my head; was Taligent supposed to use
  414. that as an OS?).
  415.  
  416. Anyway, although I've used -- minimally -- Unix systems, I don't know much
  417. about them. I'd like to get a book that would give me a good __programmer's__
  418. introduction to  Unix.  That is, I'm not really interested in how to awk, grep,
  419. cat, etc.  I'm more interested in how Unix works.  I'd also like to book that's
  420. on the bleeding edge; that is, I'd like prefer a book that is relevant to me as
  421. a Mac/GUI programmer, i.e. where Unix is heading, not where it was 10 years
  422. ago.  I'd also like a book that gets me pretty advanced pretty quickly and is
  423. not just a puffy tutorial.
  424.  
  425. One book that caught my interest to some extent which gives considerable info
  426. on Unix (including Mach) is "Modern Operating Systems" by Tanenbaum (1992).
  427. Since I'm also keen on learning something about OS's in general, it seemed
  428. interesting. Anyone have any opinions on this book (it is pretty new, I know).
  429.  
  430. Replies by e-mail would be much appreciated, since my phone link to this
  431. newssite is rather expensive.
  432.  
  433.  
  434. Thanks!
  435.  
  436. Robert
  437.  
  438. - -- 
  439. ==============================================================================
  440. = gft_robert@gsbacd.uchicago.edu * "Out there on a darkened road, the lights =
  441. = are dead and the cars explode" -- "Good Things", Sisters of Mercy           =
  442. ==============================================================================
  443.  
  444. +++++++++++++++++++++++++++
  445.  
  446. From: ksand@apple.com (Kent Sandvik)
  447. Date: 19 May 92 18:03:45 GMT
  448. Organization: MacDTS Mongols
  449.  
  450. In article <1992May18.160108.1@gsbacd.uchicago.edu>,
  451. gft_robert@gsbacd.uchicago.edu (opcode ranger) writes: 
  452. > I'm a Mac programmer, and haven't had much use for Unix, but I can read the
  453. > writing on the wall.I'm keen to keep up on the future of the Mac and Apple
  454. > post-Mac computing.  From what I've gathered, the future lies in Unix, and/or
  455. > an OS which bears some passing resemblance to some form of Unix.  I don't know
  456. > what Taligent will be like, but I would presume that some knowledge of Unix
  457. > would be helpful (AIX keeps popping into my head; was Taligent supposed to use
  458. > that as an OS?).
  459.  
  460. Funny, I do know of many former UNIX programmers - including me - that have 
  461. switched over to MacOS or Windows programming mostly due to the lack of
  462. a market for commercial UNIX office products...
  463.  
  464. Most of the modern kernels have ideas taken/stolen from UNIX or Mach, so
  465. yes it makes sense to check these out. Then again in many cases application
  466. developers don't need to know everything about the kernel implementation,
  467. threads/semaphores, memory management and networking are the usual
  468. things 'good-to-know', but for instance figuring out how MMU mapping works,
  469. or how the scheduler spins around is only good for real kernel hacking
  470. (and in some cases dev. driver work).
  471.  
  472. > One book that caught my interest to some extent which gives considerable info
  473. > on Unix (including Mach) is "Modern Operating Systems" by Tanenbaum (1992).
  474. > Since I'm also keen on learning something about OS's in general, it seemed
  475. > interesting. Anyone have any opinions on this book (it is pretty new, I know).
  476.  
  477. The Tanenbaum book is a nice overview of operating system concepts. If you
  478. want to check out the SysV or BSD internals there are many books available
  479. in a decent bookstore (like the BSD UNIX Operating System by Leffler, McKusick,
  480. Karels and Quarterman - but that's a kernel level book).
  481.  
  482. Most of my UNIX books are back home nowadays so I can't give a nice listing,
  483. if I remember correctly you are really looking for an API level programming
  484. book, and there should be many of those out on the market today.
  485.  
  486. Cheers,
  487. Kent
  488.  
  489.  
  490. +++++++++++++++++++++++++++
  491.  
  492. From: larrym@mtxinu.COM (Larry Meyer - mac weenie)
  493. Date: 22 May 92 01:24:19 GMT
  494. Organization: Xinet, Berkeley
  495.  
  496. This is an interesting issue, but i think this guys confused 
  497. kernel with GUI. As I understand it, taligent will be an
  498. object oriented os (whatever that is). this really has nothing to
  499. do with unix; the only currently shipping parallel that I can think of
  500. is the O-O GUI built into the NeXT. 
  501.  
  502. Obviously, the mac os has big problems.
  503. It takes much too long to build apps and there's no support for 
  504. multi-processing and other such "real-os" features which are built into unix. 
  505. I assume, though, that Apple is not going to solve the latter by putting 
  506. a very nice o-o interface builder on top of unix, a-la the NeXT. So if your
  507. worried about obsolet mac skills, I wouldn't worry about learning
  508. about the unix kernel (unless you enjoy low-level hacking).
  509.  
  510. if you really want to learn unix, start with Kernighan and Pike's book
  511. (it's called something like "A introduction to the Unix programming
  512. environment".) Then move on to one of the many Addison Wesley books
  513. which deal with kernel implementation (I personnaly like the "red daemon" 
  514. book, by Karels et al., and which is called something like "The design 
  515. and implementation of 4.3 BSD").
  516.  
  517. if you want to learn what taligent will be like, you ain't going to
  518. find that info in any book. 
  519.  
  520. I personally think that the NeXT's less ambitious approach
  521. makes sense; does anyone out there have any idea what an 
  522. object oriented operating system is? If so, please tell me! 
  523.  
  524. +++++++++++++++++++++++++++
  525.  
  526. From: steve@oceania.com (Steve Dakin)
  527. Date: 22 May 92 22:10:26 GMT
  528. Organization: Oceania Health Care Systems
  529.  
  530. In article <1992May22.012419.27017@mtxinu.COM> larrym@mtxinu.COM (Larry Meyer -  
  531. mac weenie) writes:
  532. > does anyone out there have any idea what an 
  533. > object oriented operating system is? If so, please tell me! 
  534.  
  535. Check out Go Corp's PenPoint (and give yourself plenty of time, by the way).  A  
  536. good book to peruse is "The Power of PenPoint" by Robert Carr and Dan Shafer  
  537. (not really worth buying in my opinion - your mileage may vary).
  538.  
  539. - -Steve
  540.  
  541. - -- 
  542.     Steve Dakin                      Oceania Health Care Systems 
  543.  steve@oceania.com (NeXT mail)       Palo Alto, CA (415) 322-0127
  544.  jester@oceania.com                  "That one deserves a ... WOW!"
  545.  
  546. +++++++++++++++++++++++++++
  547.  
  548. From: ksand@apple.com (Kent Sandvik)
  549. Date: 22 May 92 19:22:18 GMT
  550. Organization: MacDTS Mongols
  551.  
  552. In article <1992May22.012419.27017@mtxinu.COM>, larrym@mtxinu.COM (Larry Meyer -
  553. mac weenie) writes:
  554. > if you want to learn what taligent will be like, you ain't going to
  555. > find that info in any book. 
  556.  
  557. If you want to know about object oriented kernel design, check out issues
  558. of the OOPSLA and Usenix C++ conference proceedings. The Usenix
  559. "Computing Systems" magazine contains also a lot of really
  560. good articles about kernel design, especially concerning object oriented
  561. kernels. You need to join Usenix though to get this one.
  562. - --
  563.                                               Cheers, Kent
  564.  
  565.  
  566. ---------------------------
  567.  
  568. From: tlt38517@uxa.cso.uiuc.edu (Terry Thiel)
  569. Subject: Zortech C++ wins award?
  570. Date: 20 May 92 00:36:46 GMT
  571. Organization: University of Illinois at Urbana
  572.  
  573. The June Byte magazine says Zortech C++ (now owned by Symantec) won their
  574. readers choice award for best Mac programming language.  Is this based on
  575. the Xortech implementation or Symantecs?  I was under the impression that
  576. Symantec was not producing this package.
  577. - -Terry
  578.  
  579. +++++++++++++++++++++++++++
  580.  
  581. From: k044477@hobbes.kzoo.edu (Jamie R. McCarthy)
  582. Date: 20 May 92 04:36:18 GMT
  583. Organization: Kalamazoo College
  584.  
  585. tlt38517@uxa.cso.uiuc.edu (Terry Thiel) writes:
  586. >The June Byte magazine says Zortech C++ (now owned by Symantec) won their
  587. >readers choice award for best Mac programming language.
  588.  
  589. Why do I get the feeling that this says more about Byte's readers
  590. than it does about Zortech...?
  591. - -- 
  592.  Jamie McCarthy     Internet: k044477@kzoo.edu     AppleLink: j.mccarthy
  593.  Civil Rights:  1964 - 1992.  R.I.P.
  594.  
  595. +++++++++++++++++++++++++++
  596.  
  597. From: nagle@netcom.com (John Nagle)
  598. Date: Wed, 20 May 92 06:46:52 GMT
  599. Organization: Netcom - Online Communication Services  (408 241-9760 guest) 
  600.  
  601. >The June Byte magazine says Zortech C++ (now owned by Symantec) won their
  602. >readers choice award for best Mac programming language.
  603.  
  604.        That's incredible.  I'd like to hear from some happy users.
  605. For that matter, ANY active users of the Mac product.
  606.  
  607.        Zortech C++ is also available for Intel CPUs, under DOS, Windows,
  608. and OS/2, and that product is much more solid than the Mac product.
  609. Could Byte have mixed up the reports on the other platforms with the
  610. Mac product?
  611.  
  612.                     John Nagle
  613.  
  614. +++++++++++++++++++++++++++
  615.  
  616. From: timm@coffee.ncsa.uiuc.edu (Tim McClarren)
  617. Date: 20 May 92 19:27:08 GMT
  618. Organization: University of Illinois at Urbana
  619.  
  620. John Nagle writes
  621. > >The June Byte magazine says Zortech C++ (now owned by Symantec) won  
  622. their
  623. > >readers choice award for best Mac programming language.
  624. >        That's incredible.  I'd like to hear from some happy users.
  625. > For that matter, ANY active users of the Mac product.
  626. >        Zortech C++ is also available for Intel CPUs, under DOS, Windows,
  627. > and OS/2, and that product is much more solid than the Mac product.
  628. > Could Byte have mixed up the reports on the other platforms with the
  629. > Mac product?
  630. >                     John Nagle
  631.  
  632. Byte is a worthless piece of trash.  They also claim in the May issue
  633. that OS/2 is the first threaded OS.  I'd suggest if you want to know
  634. anything about the industry, avoid Byte.  See comp.sys.next.advocacy
  635. or misc for recent threads about Byte's ongoing stupidity.
  636.  
  637. +++++++++++++++++++++++++++
  638.  
  639. From: k044477@hobbes.kzoo.edu (Jamie R. McCarthy)
  640. Date: 20 May 92 21:00:57 GMT
  641. Organization: Kalamazoo College
  642.  
  643. timm@coffee.ncsa.uiuc.edu writes:
  644. >
  645. >Byte is a worthless piece of trash.
  646. >I'd suggest if you want to know
  647. >anything about the industry, avoid Byte.
  648.  
  649. My favorite boner is "The Mac has its own built-in speech hardware and
  650. software...  The Mac comes from the factory with a built-in
  651. text-to-speech program called MacInTalk [sic], which drives the
  652. built-in speech hardware..."  (April 1992, p. 167)
  653. - -- 
  654.  Jamie McCarthy     Internet: k044477@kzoo.edu     AppleLink: j.mccarthy
  655.  "When I read the 486 manual, I was amazed that they had got all this
  656.   working.  Then I got to the bug list in the back, and said, "Oh.
  657.   They _didn't_ get it all working."  - Mitch Bradley
  658.  
  659. +++++++++++++++++++++++++++
  660.  
  661. From: ksand@apple.com (Kent Sandvik)
  662. Date: 20 May 92 19:35:05 GMT
  663. Organization: MacDTS Mongols
  664.  
  665. In article <tpvkckg.nagle@netcom.com>, nagle@netcom.com (John Nagle) writes:
  666. > >The June Byte magazine says Zortech C++ (now owned by Symantec) won their
  667. > >readers choice award for best Mac programming language.
  668. >        That's incredible.  I'd like to hear from some happy users.
  669. > For that matter, ANY active users of the Mac product.
  670. >        Zortech C++ is also available for Intel CPUs, under DOS, Windows,
  671. > and OS/2, and that product is much more solid than the Mac product.
  672. > Could Byte have mixed up the reports on the other platforms with the
  673. > Mac product?
  674.  
  675. I'm also amazed... It seems they had a mixup with the compiler, maybe
  676. they assumed that the customers on the Mac side are as happy as those in the 
  677. DOS world.
  678.  
  679. Fortunately my Byte subscription ended two months ago, and I don't think
  680. I will renew it :-).
  681.  
  682. Cheers,
  683. Kent
  684. PS: Private comments
  685.  
  686. +++++++++++++++++++++++++++
  687.  
  688. From: suitti@ima.isc.com (Stephen Uitti)
  689. Date: 21 May 92 20:03:46 GMT
  690. Organization: Interactive Systems, Cambridge, MA 02138-5302
  691.  
  692. In article <1992May20.003646.16118@news.cso.uiuc.edu> tlt38517@uxa.cso.uiuc.edu (Terry Thiel) writes:
  693. >The June Byte magazine says Zortech C++ (now owned by Symantec) won their
  694. >readers choice award for best Mac programming language.  Is this based on
  695. >the Xortech implementation or Symantecs?  I was under the impression that
  696. >Symantec was not producing this package.
  697. >-Terry
  698. >
  699.  
  700. The last version of Zortech C++ I reviewed did not support large
  701. model (in the MPW linker).  This makes it useless.  I can't
  702. imagine why anyone who would say that this is "best" for anything.
  703.  
  704. If this is fixed, it may have some uses.  For example, it will be
  705. faster than MPW C++ (not saying much).  It will probably produce
  706. better code than MPW C++.
  707.  
  708. It will still have numerous parsing bugs for C and C++.  It will
  709. still have the most outrageous treatment of the "pascal" keyword
  710. I've seen to date.
  711.  
  712. Think C+Objects will still be a superior environment.  It will be
  713. a faster compiler, it will produce better code, the debugger will
  714. be better, we will have been using it for more years.
  715.  
  716. Stephen.
  717. suitti@ima.isc.com
  718.  
  719. +++++++++++++++++++++++++++
  720.  
  721. From: ejhill@athena.mit.edu (Ernest J Hill)
  722. Organization: Massachusetts Institute of Technology
  723. Date: Thu, 21 May 1992 21:41:33 GMT
  724.  
  725. I of course don't know for sure, but I think this Byte report is just an
  726. isolated error.  As far as general coverage industry magazines for the
  727. technically minded, I don't think anything comes CLOSE to Byte.  If you want to
  728. know who's buying what, read InfoWeak. If you want to know what a bunch of
  729. coneheads thinks about the latest release of Envelope Licker Professional, you
  730. can read MacWeak or MacLoser.  If, on the other hand, you're interested in
  731. hardware explained on a reasonably technical level, the algorithms behind real
  732. software, and a unique historical perspective, read Byte.
  733.  
  734. Just One man's opinion.
  735. - --Foss
  736.  
  737.  
  738. +++++++++++++++++++++++++++
  739.  
  740. From: molla@paone.uucp (Levent Mollamustafaoglu)
  741. Date: 22 May 92 04:46:24 GMT
  742. Organization: Aiken Computation Lab, Harvard University
  743.  
  744. In article <1992May21.214133.15506@athena.mit.edu> ejhill@athena.mit.edu (Ernest J Hill) writes:
  745. >I of course don't know for sure, but I think this Byte report is just an
  746. >isolated error.  As far as general coverage industry magazines for the
  747. >technically minded, I don't think anything comes CLOSE to Byte.  If you want to
  748. >know who's buying what, read InfoWeak. If you want to know what a bunch of
  749. >coneheads thinks about the latest release of Envelope Licker Professional, you
  750. >can read MacWeak or MacLoser.  If, on the other hand, you're interested in
  751. >hardware explained on a reasonably technical level, the algorithms behind real
  752. >software, and a unique historical perspective, read Byte.
  753. >
  754.  
  755. You are right, in a sense... When I worked in the industry and wrote
  756. software for the PC's (yecccch..) I followed Byte enthusiastically.
  757. Certainly its technical articles are superb, they are sometimes
  758. machine-independent and they go into the details of a particular
  759. technology or algorithm. MacWorld, MacUser etc. are very light, in
  760. comparison to Byte. But I think they are too PC-specific in coverage.
  761.  
  762.  
  763. ===========================================================================
  764. Dr. Levent Mollamustafaoglu       Harvard University    
  765. molla@paone.harvard.edu    molla@metatron.harvard.edu
  766. ===========================================================================
  767.  
  768. +++++++++++++++++++++++++++
  769.  
  770. From: zobkiw@world.std.com (Joe Zobkiw)
  771. Organization: The World Public Access UNIX, Brookline, MA
  772. Date: Fri, 22 May 1992 15:32:26 GMT
  773.  
  774. You guys are comparing Apples to PCs (and Oranges)...MacUser and MacWeek
  775. (and MacWorld) are NOT written for programmers. Simple. Byte is much more
  776. technical. MacTutor is for programmers. Don't try to complain about a
  777. magazine when it has nothing to do with what you are comparing it to.
  778.  
  779. - -- 
  780. - -- joe zobkiw                      Internet: zobkiw@world.std.com
  781. - --                                      AOL: AFL Zobkiw  
  782. - -- mac.synthesis.MIDI.THINK C.OOP.asm   CI$: 70712,515 
  783. - -- communications.networks.cool tunes...
  784.  
  785. ---------------------------
  786.  
  787. From: chopper@dcs.qmw.ac.uk (OOI)
  788. Subject: Info on Toolserver?
  789. Date: 20 May 92 18:23:13 GMT
  790. Organization: Computer Science Dept, QMW, University of London
  791.  
  792.  
  793. Appreciate if anyone who has used this, do mail me on what it is
  794. and what can it do.
  795.  
  796. I believe it is a Distributed server like environment running on
  797. top of the mpwshell allowing tools to respond via Apple Events.
  798. Am I correct?
  799.  
  800.  
  801. Thanks for all replies.
  802.  
  803.            
  804.  
  805. +++++++++++++++++++++++++++
  806.  
  807. From: ksand@apple.com (Kent Sandvik)
  808. Date: 21 May 92 20:37:37 GMT
  809. Organization: MacDTS Mongols
  810.  
  811. In article <1992May20.182313.14287@dcs.qmw.ac.uk>, chopper@dcs.qmw.ac.uk (OOI)
  812. writes:
  813. > Appreciate if anyone who has used this, do mail me on what it is
  814. > and what can it do.
  815. > I believe it is a Distributed server like environment running on
  816. > top of the mpwshell allowing tools to respond via Apple Events.
  817. > Am I correct?
  818.  
  819.    The ETO distribution has a whole document about the Toolserver, but
  820. what you stated is in principle correct. It does *not* run on top
  821. of any shells, it's actually a micro-shell, running in the background,
  822. processing AEs that correspond to a published protocol, triggering 
  823. tools to be executed. 
  824.  
  825.    If anyone who is *seriously* thinking about supporting the Toolserver with
  826. tools would like to get the specs, send me an email (ksand@apple.com).
  827.  
  828.    Actually this document should be published on ftp.apple.com and AppleLink
  829. as reference material, so it's now noted in my DayMaker Todo list :-).
  830. - --
  831.                                               Cheers, Kent
  832.  
  833.  
  834. ---------------------------
  835.  
  836. From: dank@calvin.usc.edu (Dan King)
  837. Subject: Do people actually use ViewEdit 3?
  838. Date: 20 May 1992 11:56:42 -0700
  839. Organization: University of Southern California, Los Angeles, CA
  840.  
  841.  
  842. Howdy, y'all.  I'm frustrated and thought I'd see if there was a less painful
  843. way to build views for MacApp 3 than using ViewEdit (3.0b2).  It seems like
  844. every time I boot the damn thing I end up with a hung machine and a bus error.
  845.  
  846. Do people actually use this thing?  Have you all gone back to 2.0 views?  Is
  847. there a newer (more stable) version around?
  848.  
  849. Frustrated,
  850. dank
  851.  
  852.  
  853. +++++++++++++++++++++++++++
  854.  
  855. From: ksand@apple.com (Kent Sandvik)
  856. Date: 21 May 92 20:34:54 GMT
  857. Organization: MacDTS Mongols
  858.  
  859. In article <l1l87aINNljd@calvin.usc.edu>, dank@calvin.usc.edu (Dan King) writes:
  860. > Howdy, y'all.  I'm frustrated and thought I'd see if there was a less painful
  861. > way to build views for MacApp 3 than using ViewEdit (3.0b2).  It seems like
  862. > every time I boot the damn thing I end up with a hung machine and a bus error.
  863. > Do people actually use this thing?  Have you all gone back to 2.0 views?  Is
  864. > there a newer (more stable) version around?
  865.  
  866.    It's a well-known secret that ViewEdit 3.0b2-b3 were buggy, the latest one,
  867. b4, should have cured some of the problems.
  868.  
  869.    But if you still don't trust ViewEdit 3.0, here's what to do:
  870.  
  871. a) Use ViewEdit 1.0.1 or IcePick and convert resources to 'View' format
  872. using ViewPromoter.
  873.  
  874. b) Use text resource definitions, I do that mostly because I got used
  875. to those su***rs.
  876.  
  877. c) Bribe someone to send you an alpha copy of Ad Lib, a future tool shown
  878. at the latest Bamada meeting, a really nice 3.0 Views creation tool.
  879.  
  880. d) Continue complaining to MACAPP.TEST about problems, and hopefully the
  881. last bugs in ViewEdit 3.0 are shaken out before final release.
  882.  
  883. Over-out.
  884. - --
  885.                                               Cheers, Kent
  886.  
  887.  
  888. ---------------------------
  889.  
  890. From: jryan@adobe.com (Jim Ryan)
  891. Subject: The Device Thing...
  892. Organization: Adobe Systems Incorporated
  893. Date: Thu, 21 May 1992 04:57:28 GMT
  894.  
  895. OK, I'm confused (nothing new), I think... :)
  896.  
  897. I would like to center my app's window, and I would like it to work 
  898. on everything from a Mac Plus' single B&W screen to a Mac II (or whatever)
  899. with 5 color monitors.  Should I:
  900.  
  901. A        Use screenbits.bounds
  902. B        Use GetMainDevice
  903. C        Use GetCurDevice
  904. D        All of the above
  905. E        None of the above
  906. F        Some of the above
  907. G        Above the above
  908.  
  909. Let's say my app has one main window.  I want it centered at launch.  Then,
  910. as the user play with it, and decides to move it to another monitor, I
  911. would like my "Center Window" command (a menu item) to center my
  912. app's main window in whatever monitor it currently happens to reside.  Also,
  913. I'm centering alerts (1/3) and dialogs, and would like them to appear in the 
  914. same window as my apps main window.  
  915.  
  916. What variable to I use???  Is there a way to know for sure if there is
  917. more than one monitor in use?
  918.  
  919. Do I call GetMainDevice to center the main window at launch, and then
  920. GetCurDevice thereafter?  Does it work with non-ColorQD Macs?  
  921. Am I lost?  IM is a bit vague on these issues,
  922. or if I'm not looking in the right place, please point me in the right 
  923. direction.
  924.  
  925. Thanks,
  926. jr
  927.  
  928. +++++++++++++++++++++++++++
  929.  
  930. From: jcav@quads.uchicago.edu (JohnC)
  931. Organization: The Royal Society for Putting Things on Top of Other Things
  932. Date: Thu, 21 May 1992 19:18:46 GMT
  933.  
  934. In article <1992May21.045728.29201@adobe.com> jryan@adobe.com (Jim Ryan) writes:
  935. >I would like to center my app's window, and I would like it to work 
  936. >on everything from a Mac Plus' single B&W screen to a Mac II (or whatever)
  937. >with 5 color monitors.  Should I:
  938. >
  939. >A        Use screenbits.bounds
  940. >B        Use GetMainDevice
  941. >C        Use GetCurDevice
  942. >D        All of the above
  943. >E        None of the above
  944. >F        Some of the above
  945. >G        Above the above
  946.  
  947. And the answer is:  F!
  948.  
  949. >Let's say my app has one main window.  I want it centered at launch.  Then,
  950. >as the user play with it, and decides to move it to another monitor, I
  951. >would like my "Center Window" command (a menu item) to center my
  952. >app's main window in whatever monitor it currently happens to reside.  Also,
  953. >I'm centering alerts (1/3) and dialogs, and would like them to appear in the 
  954. >same window as my apps main window.  
  955.  
  956. You want to center things on the device which is showing the largest part of
  957. your window.
  958.  
  959. >What variable to I use???  Is there a way to know for sure if there is
  960. >more than one monitor in use?
  961.  
  962. Yes.  _GetDeviceList returns a handle to the beginning of the linked list of
  963. graphics devices.  If there is more then one item in this list that is an
  964. active screen device, then you have multiple monitors.
  965.  
  966. >Do I call GetMainDevice to center the main window at launch, and then
  967. >GetCurDevice thereafter?  Does it work with non-ColorQD Macs?  
  968.  
  969. _GetCurDevice won't help you figure out where the window is.  Graphics
  970. devices don't exist on non-Color Macs.
  971.  
  972. On non-Color Macs the answer to your question is easy: just use
  973. screenBits.bounds.  On color Macs it's more involved.
  974.  
  975. Here's some code:
  976.  
  977.  FUNCTION GetMajorDevice (box: rect): GDHandle;
  978.   VAR
  979.    md, gd: GDHandle;
  980.    sect: rect;
  981.    area, maxArea: longint;
  982.    temp: boolean;
  983.  BEGIN
  984.   md := nil;
  985.   maxArea := 0;
  986.   gd := GetDeviceList;
  987.   WHILE gd <> nil DO
  988.    BEGIN
  989.     temp := SectRect(gd^^.gdRect, box, sect);
  990.     WITH sect DO
  991.      area := (right - left) * (bottom - top);
  992.     IF area > maxArea THEN
  993.      BEGIN
  994.       md := gd;
  995.       maxArea := area;
  996.      END;
  997.     gd := GetNextDevice(gd);
  998.    END; { WHILE gd <> NIL DO }
  999.   IF md = nil THEN
  1000.    md := GetMainDevice;
  1001.   GetMajorDevice := md;
  1002.  END; { FUNCTION GetMajorDevice }
  1003.  
  1004.  
  1005. What this does is return a handle to the device that contains the majority
  1006. of the area of a given rectangle.  This rect should be in global
  1007. coordinates.  To use this to figure out which monitor a window is on, you
  1008. pass it the windows portRect (converted to global coordinates).  There is
  1009. a problem with this code in that it doesn't check that a given device is
  1010. actually a screen device.  It should be calling _TestDeviceAttribute(gd,
  1011. screenDevice), and possibly _TestDeviceAttribute(gd,screenActive), although
  1012. I don't know how likely it would be to encounter an inactive screen device in
  1013. the device list.   Once you get a handle to the major device, simply center
  1014. your window within gd^^.gdRect.
  1015.  
  1016.  
  1017. - -- 
  1018. John Cavallino                  |  EMail: jcav@midway.uchicago.edu
  1019. University of Chicago Hospitals |         John_Cavallino@uchfm.bsd.uchicago.edu
  1020. Office of Facilities Management | USMail: 5841 S. Maryland Ave, MC 0953
  1021. B0 f++ c+ g+ k s++ e+ h- pv     |         Chicago, IL  60637
  1022.  
  1023. ---------------------------
  1024.  
  1025. From: gt4586c@prism.gatech.EDU (WILLETT,THOMAS CARTER)
  1026. Subject: Print/Save Graph @ 300dpi - how?
  1027. Date: 14 May 92 16:18:22 GMT
  1028. Organization: Georgia Institute of Technology
  1029.  
  1030. I have written my own application that does some data processing, and I plot
  1031. graphs, save them as pict files, and print them.  However, I only know how
  1032. to do it at 72dpi, and I have more than enough data that 300dpi would give me
  1033. a much better plot.  What are the mechanics of utilizing the 300dpi resolution
  1034. of the printer when drawing my graphs with Quickdraw?
  1035. thanks.
  1036.  
  1037. - -- 
  1038. thomas willett 
  1039. Georgia Institute of Technology, Atlanta  
  1040. gt4586c@prism.gatech.edu
  1041. "Violence is the last refuge of the incompetent." - Salvor Hardin (Foundation)
  1042.  
  1043. +++++++++++++++++++++++++++
  1044.  
  1045. From: weymouth@spline.engin.umich.edu (Terry Weymouth)
  1046. Date: 20 May 92 14:28:31 GMT
  1047. Organization: University of Michigan Engineering, Ann Arbor
  1048.  
  1049.  
  1050. > gt4586c@prism.gatech.EDU (WILLETT,THOMAS CARTER):
  1051. > What are the mechanics of utilizing the 300dpi resolution
  1052.  
  1053. How about writing in Postscript? Anyone tried this?
  1054.  
  1055. ---------------------------
  1056.  
  1057. From: tfiske@qualcom.qualcomm.com (T.J. Fiske)
  1058. Subject: Debugging in MacApp
  1059. Organization: Qualcomm, Inc., San Diego, CA
  1060. Date: Thu, 14 May 1992 22:59:10 GMT
  1061.  
  1062. I am currently trying to develope an application under the MacApp
  1063. development shell.  In other languages you can output to the screen
  1064. for debugging purposes utilizing the cout << "ERROR:", but on the
  1065. macintosh I have not been able to do this.
  1066.  
  1067. Does any body have a good method for debugging MacAPP C++ code?
  1068.  
  1069. I could sure use the help, BOY could I use it!!
  1070.  
  1071. Thanks,
  1072.  
  1073.     -- T.J. Fiske
  1074.  
  1075.  
  1076. +++++++++++++++++++++++++++
  1077.  
  1078. From: ksand@apple.com (Kent Sandvik)
  1079. Date: 18 May 92 19:29:48 GMT
  1080. Organization: MacDTS Mongols
  1081.  
  1082. In article <tfiske.705884350@qualcom>, tfiske@qualcom.qualcomm.com (T.J. Fiske)
  1083. writes:
  1084. > I am currently trying to develope an application under the MacApp
  1085. > development shell.  In other languages you can output to the screen
  1086. > for debugging purposes utilizing the cout << "ERROR:", but on the
  1087. > macintosh I have not been able to do this.
  1088. > Does any body have a good method for debugging MacAPP C++ code?
  1089. > I could sure use the help, BOY could I use it!!
  1090.  
  1091. MacApp 2.0, just compile with -Debug mode and you should get a transcript
  1092. view where cout works.
  1093.  
  1094. MacApp 3.0, we took out this transcript view, it's now part of SourceBug,
  1095. so if SourceBug is running in the background, and you do a cout (-Debug), a
  1096. transcript
  1097. view will automagically pop up. This also works with SADE. Also, the TTranscript
  1098. view class is part of the unsupported ones, so you could use it for whaever
  1099. doing a little bit hacking.
  1100.  
  1101. See, that was easy!
  1102.  
  1103. Cheers,
  1104. Kent
  1105. Dynamic Language Advocate
  1106.  
  1107. +++++++++++++++++++++++++++
  1108.  
  1109. From: mullin@nic.cerf.net (Mark Mullin)
  1110. Date: 21 May 92 06:02:18 GMT
  1111. Organization: Institute for Cliffgrazing DogBears
  1112.  
  1113. Since you feel that it was so easy to explain how to use Sourcebug,
  1114. have you any suggestions for those of us who don't want to use
  1115. sourcebug cause a 1 minute link then takes 10 minutes ?
  1116. MMM
  1117.  
  1118.  
  1119. +++++++++++++++++++++++++++
  1120.  
  1121. From: ksand@apple.com (Kent Sandvik)
  1122. Date: 21 May 92 23:57:28 GMT
  1123. Organization: MacDTS Mongols
  1124.  
  1125. In article <1953@nic.cerf.net>, mullin@nic.cerf.net (Mark Mullin) writes:
  1126. > Since you feel that it was so easy to explain how to use Sourcebug,
  1127. > have you any suggestions for those of us who don't want to use
  1128. > sourcebug cause a 1 minute link then takes 10 minutes ?
  1129.  
  1130.    Don't remember if I talked about SourceBug, but we are really talking
  1131. about .SYM file generation than about anything else. Yes, use MacsBug,
  1132. the symbolics generated with -mbg on is quite ok, and I use MacsBug
  1133. half of the time with my C++ code.
  1134.  
  1135.    As for 10 minutes, that's long, then again it depends on the machine,
  1136. setup, tricks and so on. See my TN 313 for suggestions how to decrease
  1137. the linking times (without turning off -sym on).
  1138. - --
  1139.                                               Cheers, Kent
  1140.  
  1141.  
  1142. ---------------------------
  1143.  
  1144. End of C.S.M.P. Digest
  1145. **********************
  1146.