home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-12-31 | 53.7 KB | 1,463 lines | [TEXT/R*ch] |
- Received-Date: Fri, 27 May 1994 14:28:00 +0200
- From: pottier@clipper.ens.fr (Francois Pottier)
- Subject: csmp-digest-v3-031
- To: csmp-digest@ens.fr
- Date: Fri, 27 May 94 14:27:48 MET DST
- X-Mailer: ELM [version 2.3 PL11]
- Errors-To: listman@ens.fr
- Reply-To: pottier@clipper.ens.fr
- X-Sequence: 34
-
- C.S.M.P. Digest Fri, 27 May 94 Volume 3 : Issue 31
-
- Today's Topics:
-
- Any good Mac C books?
- Basic, basic windows & PICT drawing
- Help: Palette translation in CopyBits
- How do I draw masked icons w-System 6?
- Motorola announces Power Mac compilers
- Polling the Serial Port
-
-
-
- The Comp.Sys.Mac.Programmer Digest is moderated by Francois Pottier
- (pottier@clipper.ens.fr).
-
- The digest is a collection of article threads from the internet newsgroup
- comp.sys.mac.programmer. It is designed for people who read c.s.m.p. semi-
- regularly and want an archive of the discussions. If you don't know what a
- newsgroup is, you probably don't have access to it. Ask your systems
- administrator(s) for details. If you don't have access to news, you may
- still be able to post messages to the group by using a mail server like
- anon.penet.fi (mail help@anon.penet.fi for more information).
-
- Each issue of the digest contains one or more sets of articles (called
- threads), with each set corresponding to a 'discussion' of a particular
- subject. The articles are not edited; all articles included in this digest
- are in their original posted form (as received by our news server at
- nef.ens.fr). Article threads are not added to the digest until the last
- article added to the thread is at least two weeks old (this is to ensure that
- the thread is dead before adding it to the digest). Article threads that
- consist of only one message are generally not included in the digest.
-
- The digest is officially distributed by two means, by email and ftp.
-
- If you want to receive the digest by mail, send email to listserv@ens.fr
- with no subject and one of the following commands as body:
- help Sends you a summary of commands
- subscribe csmp-digest Your Name Adds you to the mailing list
- signoff csmp-digest Removes you from the list
- Once you have subscribed, you will automatically receive each new
- issue as it is created.
-
- The official ftp info is //ftp.dartmouth.edu/pub/csmp-digest.
- Questions related to the ftp site should be directed to
- scott.silver@dartmouth.edu. Currently no previous volumes of the CSMP
- digest are available there.
-
- Also, the digests are available to WAIS users as comp.sys.mac.programmer.src.
-
-
- -------------------------------------------------------
-
- >From ralcasid@tech.iupui.edu (Peter R Alcasid)
- Subject: Any good Mac C books?
- Date: Fri, 29 Apr 1994 16:37:47 GMT
- Organization: Purdue University School of Engineering & Technology at Indianapolis,IN
-
- I'm intrested in programming the Mac using Think C. Does anyone know of any
- good books that gives a step by step tutorial on how to program the Macintosh
- (i.e. accessing the Toolbox using C). I've got Inside Macintosh: Macintosh
- Toolbox Essentials but everything is in PASCAL! Any suggestions would be
- appretiated.
-
- Ron Alcasid
-
- +++++++++++++++++++++++++++
-
- >From jtbell@presby.edu (Jon Bell)
- Date: Sat, 30 Apr 1994 11:05:08 GMT
- Organization: Presbyterian College, Clinton, South Carolina USA
-
- In article <Cp14uz.K7y@iupui.edu>,
- Peter R Alcasid <ralcasid@tech.iupui.edu> wrote:
- >I'm intrested in programming the Mac using Think C. Does anyone know of any
- >good books that gives a step by step tutorial on how to program the Macintosh
- >(i.e. accessing the Toolbox using C).
-
- "Macintosh C Programming Primer", by Dave Mark and Cartwright Reed,
- published by Addison-Wesley. It's in two volumes.
-
- --
- Jon Bell <jtbell@presby.edu> Presbyterian College
- Dept. of Physics and Computer Science Clinton, South Carolina USA
-
- +++++++++++++++++++++++++++
-
- >From rfblec@sunfish.usd.edu (Bob "Skippy" Blechinger)
- Date: Wed, 4 May 1994 10:31:01 GMT
- Organization: University of South Dakota
-
- ralcasid@tech.iupui.edu (Peter R Alcasid) writes:
-
- >I'm intrested in programming the Mac using Think C. Does anyone know of any
- >good books that gives a step by step tutorial on how to program the Macintosh
- >(i.e. accessing the Toolbox using C). I've got Inside Macintosh: Macintosh
- >Toolbox Essentials but everything is in PASCAL! Any suggestions would be
- >appretiated.
-
- >Ron Alcasid
-
- Ron,
- Try "Learn C on the Macintosh" by Dave Mark; it comes with a "lite"
- version of Think C, *and* it comes with an upgrade offer to the *full*
- Think C for only $129 (this might have changed since I got mine, though)
-
- After that, you can step up to the "Macintosh C Programming Primer", by
- Dave Mark & Cartwright Reed; it's a 2-volume set, and again, quite good...
-
- Hope this helps!
-
- -Bob Blechinger
- AppleCore of Siouxland
- Mac Software Director
- Sioux Falls, South Dakota
- rfblec@sunfish.usd.edu
-
-
- +++++++++++++++++++++++++++
-
- >From dmoney@magnus.acs.ohio-state.edu (Dean R Money)
- Date: 4 May 1994 16:31:48 GMT
- Organization: The Ohio State University
-
- Bob "Skippy" Blechinger <rfblec@sunfish.usd.edu> wrote:
- >ralcasid@tech.iupui.edu (Peter R Alcasid) writes:
- >>I'm intrested in programming the Mac using Think C. Does anyone know of any
- >>good books that gives a step by step tutorial on how to program the Macintosh
- >>(i.e. accessing the Toolbox using C). I've got Inside Macintosh: Macintosh
- >>Toolbox Essentials but everything is in PASCAL! Any suggestions would be
- >>appretiated.
- >
- > Try "Learn C on the Macintosh" by Dave Mark; it comes with a "lite"
- >version of Think C, *and* it comes with an upgrade offer to the *full*
- >Think C for only $129 (this might have changed since I got mine, though)
- >
- > After that, you can step up to the "Macintosh C Programming Primer", by
- >Dave Mark & Cartwright Reed; it's a 2-volume set, and again, quite good...
-
- I would agree. Those three books, along with Inside Mac I, II, V, and VI,
- not only got me started in programming on the Mac, but helped me learn
- C from scratch. I did know Pascal before, though, so it wasn't difficult
- for me to understand the Pascal examples in IM, and make Toolbox calls
- in C.
-
- Dean.
-
- +++++++++++++++++++++++++++
-
- >From susanlesch@aol.com (SusanLesch)
- Date: 4 May 1994 23:33:05 -0400
- Organization: America Online, Inc. (1-800-827-6364)
-
- In article <rfblec.768047461@sunfish>,
- rfblec@sunfish.usd.edu (Bob "Skippy" Blechinger) writes:
-
- > Try "Learn C on the Macintosh" by Dave Mark; it comes
- > with a "lite" > version of Think C...
-
- Oh, dear, no.
-
- I would _not_ recommend "Learn C on the Macintosh" to
- anyone seriously interested in learning the C language.
- There is no formal definition of all data types, little
- rigor, and a casual attitude that does not lend itself to
- the difficulties of IM. I wish I could suggest an
- alternative, but I must leave that to others.
-
- For examples, that are, sadly, fairly representative of
- the book on the whole: "long" is never defined, mentioned
- once. "continue" is not in the book. There is an
- incomplete definition of the "if" statement, both in the
- text and the appendix, leaving out the essential form "if
- else"!
-
- I believe LCOM causes more harm than good.
-
-
- +++++++++++++++++++++++++++
-
- >From susanlesch@aol.com (SusanLesch)
- Date: 5 May 1994 00:28:02 -0400
- Organization: America Online, Inc. (1-800-827-6364)
-
- Sorry, I believe in an earlier post I said "if else" is
- not in "Learn C on the Macintosh". It is "else if" that's
- missing. (We're having AOL problems and I can't retrieve
- what I said.)
-
- While I have the book out, the cover blurb says, among
- other things, "reference material, including glossary,
- Standard Library functions, and a C syntax reference." If
- that's C's syntax, we're all in trouble. For shame,
- Addison-Wesley.
-
- +++++++++++++++++++++++++++
-
- >From ojtv@sun3.oulu.fi (Olli Vuolteenaho)
- Date: Fri, 6 May 1994 15:55:15 GMT
- Organization: University of Oulu, Department of Physiology
-
- SusanLesch (susanlesch@aol.com) wrote:
- : Sorry, I believe in an earlier post I said "if else" is
- : not in "Learn C on the Macintosh". It is "else if" that's
- : missing. (We're having AOL problems and I can't retrieve
- : what I said.)
- :
- : While I have the book out, the cover blurb says, among
- : other things, "reference material, including glossary,
- : Standard Library functions, and a C syntax reference." If
- : that's C's syntax, we're all in trouble. For shame,
- : Addison-Wesley.
-
- Sorry for my ignorance, but what kind of special definition
- would "else-if" need? It isn't specifically defined, for example,
- in Turbo C/C++ reference manual either, is it.
-
- I don't have as pessimistic opinion about Learn C on the Macintosh
- as you do.
- If you have programming experience it feels awfully slow-paced, but
- then it wasn't written for you. I think that it presents the basics
- of C in an entertaining way, it might even encourage someone to explore
- programming deeper, unlike, for example, Lippman's C++ primer that I've
- often seen recommended as the first book on (C++) programming (it's
- an excellent book for the more experienced, though).
- And BTW, 'long' is explained on p. 207 of my LCOM.
-
- Olli
-
- +++++++++++++++++++++++++++
-
- >From susanlesch@aol.com (SusanLesch)
- Date: 7 May 1994 00:48:07 -0400
- Organization: America Online, Inc. (1-800-827-6364)
-
- In article <1994May6.155515.10438@ousrvr.oulu.fi>,
- ojtv@sun3.oulu.fi (Olli Vuolteenaho) writes:
-
- > what kind of special definition would "else-if" need?...
-
- For a comparison, take the Waite Group's New C Primer
- Plus. There are three forms described for the if
- statement: if, if-else, and if-else if-else. Lacking
- else-if, a newbie (like me :-) might wind up with nested
- if's, sort of like wasting time with case statements.
-
- > [Learn C on the Macintosh] presents the basics of C in an
- > entertaining way, it might even encourage someone to
- > explore programming deeper
-
- Sure, entertainment is part of education. But if
- substance is forfeited in exchange, I am worried. Perhaps
- if the book were titled "Learn C Basics on the
- Macintosh", I wouldn't object so much. It's the reader
- being led to think this is comprehensive C that offends
- me. I'd also like to be taught good habits and structure.
-
- On another tack, take the first incarnation of HyperCard,
- which was presented in an equally "entertaining way" and
- could "encourage" someone to "explore programming
- deeper". The problem here is similar. An informal
- definition of a language, perhaps encouraging
- lackadaisical programming practices, without mention of
- error-checking is _lots_ of fun!
-
- > And BTW, 'long' is explained on p. 207 of my LCOM.
-
- Yes, in passing, in the middle of an exercise on dice
- rolling, in a chapter titled "Variable Data Types" that
- doesn't define them. Where is the formal presentation of
- data types? Again using New C Primer Plus as a
- comparison, long, int, char, unsigned, float, and double
- are neatly presented in one chapter (3).
-
- Thank you for responding, by the way. Mr. Mark's books
- are extremely popular, and I would not expect many people
- to agree with my assessment of Learn C on the Macintosh.
-
- +++++++++++++++++++++++++++
-
- >From nick@pitt.edu ( nick.c )
- Date: 7 May 94 20:55:24 GMT
- Organization: (none)
-
- In Article <2q9pdh$1fj@search01.news.aol.com>, susanlesch@aol.com
- (SusanLesch) wrote:
-
- > I would _not_ recommend "Learn C on the Macintosh" to
- > anyone seriously interested in learning the C language.
- > There is no formal definition of all data types, little
- > rigor, and a casual attitude that does not lend itself to
- > the difficulties of IM.
-
- While I disagree with this assessment of _Learn_C_on_the
- Macintosh_ (I'm reading the C++ version now, and find it quite
- informative, as I found the C one), if you want rigor and
- less casual an aproach (and even if you don't) you should have
- a copy of Kernigan and Ritchie. This is probably stating the
- obvious, but since it is the *definitive* work, you should have
- a copy - no matter what you're doing with C.
-
-
-
- _/ _/ _/ _/_/_/ _/ _/ Sea Shells to C shells, Waikiki to
- _/_/ _/ _/ _/ _/ _/_/_/ the Internet, a wave, is a wave...
- _/ _/_/ _/ _/ _/ _/
- _/ _/ _/ _/_/_/ _/ _/ CompSrv: 71232,766 I-Net: Nick@pitt.edu
-
-
- +++++++++++++++++++++++++++
-
- >From thundero@news.delphi.com (THUNDERONE@DELPHI.COM)
- Date: 9 May 1994 04:07:27 -0000
- Organization: Delphi Internet Services Corporation
-
- nick@pitt.edu ( nick.c ) writes:
-
- >In Article <2q9pdh$1fj@search01.news.aol.com>, susanlesch@aol.com
- >(SusanLesch) wrote:
-
- >> I would _not_ recommend "Learn C on the Macintosh" to
- >> anyone seriously interested in learning the C language.
- >> There is no formal definition of all data types, little
- >> rigor, and a casual attitude that does not lend itself to
- >> the difficulties of IM.
-
- > While I disagree with this assessment of _Learn_C_on_the
- > Macintosh_ (I'm reading the C++ version now, and find it quite
- > informative, as I found the C one), if you want rigor and
- > less casual an aproach (and even if you don't) you should have
- > a copy of Kernigan and Ritchie. This is probably stating the
- > obvious, but since it is the *definitive* work, you should have
- > a copy - no matter what you're doing with C.
-
- If you're learning C++ from Learn C++ on the Macintosh, you're going
- to have serious problems using C++ for any medium to large-sized
- project. I agree with Susan on "Learn C.."- I know of no one who has
- actually learned good C programming from it. There are *good* C (and
- C++) books out there. They usually assume you have a PC or Unix, but
- so does "Learn C on the Macintosh" (printf and fopen are not Macintosh
- calls, you see). Get one of them instead.
-
- You might find the C++ book "quite informative," but that doesn't
- change the fact that it does not teach correct use of C++. Among
- other things, it does not mention virtual destructors once. It says
- that because constructors *never* return anything, one should not
- allocate memory in them, and discusses a "two-stage" workaround for
- this "problem." It does not teach proper inheritence theory. A review
- I read of the book in DDJ mentioned that the book would only be useful
- as a doorstop. I happen to agree.
-
- Chris
-
- +++++++++++++++++++++++++++
-
- >From $stephan@sasb.byu.edu (Stephan Fassmann)
- Date: 9 May 1994 18:39:34 GMT
- Organization: Brigham Young University
-
- In article <2qkctv$suu@news.delphi.com> thundero@news.delphi.com (THUNDERONE@DELPHI.COM) writes:
- >If you're learning C++ from Learn C++ on the Macintosh, you're going
- >to have serious problems using C++ for any medium to large-sized
- >project. I agree with Susan on "Learn C.."- I know of no one who has
- >actually learned good C programming from it. There are *good* C (and
- >C++) books out there. They usually assume you have a PC or Unix, but
- >so does "Learn C on the Macintosh" (printf and fopen are not Macintosh
- >calls, you see). Get one of them instead.
-
- How about a nice list, Because I would like to get some books on Mac
- c/C++ programing.
-
- Stephan Fassmann InterNet: $stephan@sasb.byu.edu GEnie: S.FASSMANN
- carpe diem carpe noctem
-
- +++++++++++++++++++++++++++
-
- >From Joe_Cabrera@bmugbost.uu.holonet.net
- Date: Tue, 10 May 1994 02:41:47 EST
- Organization: BMUG Boston
-
- >> I believe ["Learn C on the Macintosh" by Dave Mark] causes more harm than
- good.<<
-
- Can you offer an alternative text to use, then? I'm also beginning to learn C
- and LCOM doesn't feel like a "serious" enough book to begin learning C from. I
- also have the Waite group's New C Primer Plus. Is that any better? (As you can
- see, since I'm just beginning, I'm more interested in learning C itself rather
- than how it applies directly to the Mac yet.)
- -BMUG Boston 617-721-5840, East Coast BBS of The World's Largest Mac User Group
-
- +++++++++++++++++++++++++++
-
- >From susanlesch@aol.com (SusanLesch)
- Date: 10 May 1994 17:21:04 -0400
- Organization: America Online, Inc. (1-800-827-6364)
-
- In article
- <1994May10.024147.694130@bmugbost.uu.holonet.net>,
- Joe_Cabrera@bmugbost.uu.holonet.net writes:
-
- >> I believe ["Learn C on the Macintosh" by Dave Mark]
- causes more harm than good.<< (-SGL)
-
- > I also have the Waite group's New C Primer Plus. Is that
- > any better? (-JC)
-
- Well, I am no expert, and am as interested in seeing the
- names of some good books as anyone. I used "New C Primer
- Plus" and loved it. The comparisons between K&R and ANSI
- C are simply great. As the only caveat, I skimmed the PC
- / Unix / DOS sections on command lines for the most part,
- keeping in mind that the authors tried to be somewhat
- Macintosh and THINK C aware. My vote says yes, by all
- means, use it.
-
- "New C Primer Plus" is being used on America Online to
- teach C right now in a cross-platform class in their
- online Programmer U, if I'm not mistaken.
-
-
- +++++++++++++++++++++++++++
-
- >From Chris Hanson <chanson@mtlookitthat.chi.il.us>
- Date: Wed, 11 May 94 06:50:50 -0600
- Organization: Green Dragon Creations, Inc.
-
-
- In article <$stephan.3540.0@sasb.byu.edu>, Stephan Fassmann writes:
-
- >
- > In article <2qkctv$suu@news.delphi.com> thundero@news.delphi.com
- (THUNDERONE@DELPHI.COM) writes:
- > >If you're learning C++ from Learn C++ on the Macintosh, you're going
-
- > >to have serious problems using C++ for any medium to large-sized
- > >project. I agree with Susan on "Learn C.."- I know of no one who has
-
- > >actually learned good C programming from it. There are *good* C (and
-
- > >C++) books out there. They usually assume you have a PC or Unix, but
-
- > >so does "Learn C on the Macintosh" (printf and fopen are not
- Macintosh
- > >calls, you see). Get one of them instead.
- >
- > How about a nice list, Because I would like to get some books on Mac
-
- > c/C++ programing.
- >
- > Stephan Fassmann InterNet: $stephan@sasb.byu.edu GEnie:
- S.FASSMANN
- > carpe diem carpe
- noctem
-
- "Practical C Programming" from O'Reilly & Associates is one of the best
- C books out there. It assumes UNIX -- it is an O'Reilly book, after
- all. :-)
-
- TTFN,
- Chris
-
- +++++++++++++++++++++++++++
-
- >From kenlong@netcom.com (Ken Long)
- Date: Thu, 12 May 1994 01:11:39 GMT
- Organization: NETCOM On-line Communication Services (408 261-4700 guest)
-
- I wouldn't recommend Dave Mark's "Learn C on the Mac" as a first Mac C
- book. Dan Parks Sydow (DanParks@aol.com) has put out two great beginner
- and beginner/intermediate Mac C books. They illustrate what they
- discuss. Get "Think THINK C!" first. This will get you well into the
- idea, concept and viewpoint of programming on a MAC (leave the DOS C
- books alone for a while). Once you get that, and get through it, get
- Think C 5.0.4, since it's simplest and most available example source runs
- on it without complication. Also get at least old volume I and II of
- Inside Mac (if you're low on funds. If not, get all current IM volumes
- available.
-
- Read the IM on what you have already learned, so you can see what the
- explanations connect with, anh how. That way, when you read on something
- you haven't learned, you'll be better able to make a connection.
-
- Once you've gotten into it you can kind of tell which way to go from
- there. I'd recommend Dan's second book - Macintosh Programming
- Techniques - to drive in the foundation of what you'll need to go on.
- Then get the Primer books and their disks (saves typing all that in - or
- scan and OCR it).
-
- Many other books are just example sourc and explanations with some new
- (to the beginner) how-to. If you want details on specifics, like ANSI C
- stuff, get The C Programming Language (the "K&R" book). The Think C 5.x
- Standard Libraries manual is excellent, too.
-
- But a major source of "how to program" is example source. Download as
- much as possible. Example code that runs is a competent programmer
- telling you HOW to do some aspect of programming. "Competent" simply
- means he or she wrote a program that runs. It may not be optimumly
- coded, but it does run.
-
- "How do I write a Main Event Loop?" I look at as many Main Event Loops
- in as many example source projects as it takes to get the idea of how
- they are done. This shows differences, similarities and identities
- among them, and I can spot how and where to put modifications in.
-
- So, those two books, TC 5 (you can update later), New Inside Mac andas
- much example C source as you can get. Straight Think C source is the
- vast majority of example source you'll find. Not Pascal, not C++. Go
- with the flow.
-
- -Ken-
-
- ---------------------------
-
- >From bsa3320@u.cc.utah.edu (Brandon Allen)
- Subject: Basic, basic windows & PICT drawing
- Date: 13 May 1994 14:13:59 -0600
- Organization: University Of Utah Computer Center
-
-
- Somebody posted, asking for simple code regarding windows and displaying
- PICT's. I can't find the thread now, but here is a bit of code that may
- prove instructive. I hope it's not TOO basic for you. I'd be happy to
- answer any other questions (for which I have answers). Just e-mail me, if
- you like. I don't know it all, but I'll be glad to tell you what I do know.
-
- ___________________________________________________________________________
- { Ok, I'm assuming that you know how to create }
- {WIND & PICT resources using ResEdit . }
- { The first thing you'll need to do is load the}
- { WIND data using the GetNewCWind call, }
- { this function will return a WindowPtr to }
- { the window you are creating.}
-
- PROGRAM ShowAWindow;
-
- VAR
- myWindow: WindowPtr;
- { A pointer to your window data }
- windowID: Integer;
- { ID number of your WIND resource }
- pictureID: Integer;
- { ID of your Pict resource }
- myPicture: PicHandle;
- { Handle to the PICT }
- myRect: Rect;
- { A rectangle that will enclose the PICT }
- { when it is drawn }
-
- BEGIN
- windowID := 666;
- { Or whatever number you choose as }
- { your resource ID }
-
- myWindow := GetNewCWindow(windowID, NIL, WindowPtr(-1));
-
- { Now, the nil after the windowID tells }
- { the Mac to allocate some new memory for }
- { your window, rather than using some }
- { that you have already allocated for it. }
- { The WindowPtr(-1) tells the computer }
- { which window to display the new }
- { window BEHIND. For instance if you }
- { wanted your new window to appear behind }
- { a window whose data was contained in a }
- { variable called frontWind, then you }
- { would use frontWind instead. In this case }
- { we want this window to be the }
- { front-most window, so we send a }
- { WindowPtr that points to the value -1. }
- { This is a standard value that tells the }
- { computer not to display your window }
- { behind any other window. }
-
- SetPort(myWindow);
-
- { Now that we have created and displayed }
- { our window where we want it, we }
- { designate it as the current graphics port. }
- { This means that any drawing you }
- { do in your program will occur in this window. }
-
- myPicture := GetPicture(pictureID);
-
- { This call loads your PICT resource into memory }
-
- IF myPicture <> NIL THEN
- BEGIN
- myRect := myPicture^^.picFrame;
- DrawPicture(myPicture, myRect)
- END;
-
- { This bit of code ensures that the previous call }
- { to GetPicture was successful. If the PICT had }
- { not been loaded, myPicture would contain NIL. }
- { If it doesn't contain NIL, we'll go ahead and draw }
- { it into our window with the DrawPicture call. }
- { Obviously myPicture is the handle we just }
- { created with the GetPicture call. myRect is }
- { the rectangle into which the picture will be }
- { drawn. This Rect is in local coordinates for }
- { your window (0,0 corresponds to the upper }
- { left hand corner of your window, not of }
- { the screen). If myRect is different from the }
- { size of your PICT, QuickDraw will resize it }
- { automatically. Thus, the assignment of the }
- { PICT's Rect (myPicture^^.picFrame) to }
- { myRect keeps the PICT at its original size. }
-
-
- { The rest of your program here ... }
-
- END.
-
- ---------------------------
-
- >From jonbl@microsoft.com (Jon Blossom)
- Subject: Help: Palette translation in CopyBits
- Date: Tue, 3 May 1994 01:14:07 GMT
- Organization: Microsoft Corporation
-
- I'm trying to create an off-screen GWorld whose palette
- matches the palette of the window I'm copying to.
-
- What happens is that I set up a palette, say entry 3
- is red, and set it up for both the GWorld and the window.
- Then I poke a 3 somewhere into the GWorld memory, but
- when I call CopyBits(), the color's been translated to something
- else.
-
- If I do a PmForeColor(3) then poke the result of a GetForeColor(),
- I get the correct results.
-
- Somewhere, QuickDraw is remapping colors.
-
- Anyone know how to prevent QuickDraw from remapping so that I
- have an identity relationship between the color table in my
- off-screen GWorld and the palette in my window? I don't
- want to have to go through this cheesy translation step!
-
- Thanks
-
- -Jon Blossom
- jonbl@microsoft.com
-
- +++++++++++++++++++++++++++
-
- >From u9119523@sys.uea.ac.uk (Graham Cox)
- Date: Fri, 6 May 1994 16:33:02 GMT
- Organization: School of Information Systems, UEA, Norwich
-
- In article <Cp7CrM.CyF@microsoft.com>, jonbl@microsoft.com (Jon Blossom)
- wrote:
-
- > I'm trying to create an off-screen GWorld whose palette
- > matches the palette of the window I'm copying to.
- >
- > What happens is that I set up a palette, say entry 3
- > is red, and set it up for both the GWorld and the window.
- > Then I poke a 3 somewhere into the GWorld memory, but
- > when I call CopyBits(), the color's been translated to something
- > else.
- >
- > If I do a PmForeColor(3) then poke the result of a GetForeColor(),
- > I get the correct results.
- >
- > Somewhere, QuickDraw is remapping colors.
- >
- > Anyone know how to prevent QuickDraw from remapping so that I
- > have an identity relationship between the color table in my
- > off-screen GWorld and the palette in my window? I don't
- > want to have to go through this cheesy translation step!
- >
- > Thanks
- >
- > -Jon Blossom
- > jonbl@microsoft.com
-
-
- Gosh, someone at Microsoft asking how to do things properly! Whatever next!
-
- I suppose I should be nice and try and help, though actually I don't know
- the exact answer. However, it is definitely documented in Inside Mac VI in
- the Palette Manager chapter. You have to set up your GWorld colour table to
- the be the same as the window's colour table, then build a palette for the
- window which uses Animated Colours. Then you can draw using indexed values.
-
- However, do you NEED to do this? (examine the problem carefully). Normally
- you should be working with RGB Colours, and drawing using QuickDraw into
- the GWorld- life will be easy if you do it this way, and don't try to draw
- with indexes. Of course, there are times when you might legitimately want
- to do this, but as I don't know what the problem is in this case, then it's
- hard to be sure.
-
- One thing I do know is- NEVER,NEVER,NEVER poke indexes into the pixel image
- directly- this is a sure fire way of making a program incompatible with the
- video device. If QuickDraw doesn't know about the contents of an image
- (because you bypassed it) you will almost certainly not end up with what
- you want.
-
- Please do it right- I know we all love to hate MS products on the Mac, but
- they COULD be really good if more people like you asked questions!!!
-
- - ------------------------------------------------------------------------
- Graham
-
- -Everyone is entitled to their opinion, no matter how wrong they may be...
- - ------------------------------------------------------------------------
-
- +++++++++++++++++++++++++++
-
- >From 103t_english@west.cscwc.pima.edu
- Date: 7 May 94 10:59:55 MST
- Organization: (none)
-
- In article <u9119523-060594163303@cmpacc2.sys.uea.ac.uk>, u9119523@sys.uea.ac.uk (Graham Cox) writes:
- > In article <Cp7CrM.CyF@microsoft.com>, jonbl@microsoft.com (Jon Blossom)
- > wrote:
- >
- >> I'm trying to create an off-screen GWorld whose palette
- >> matches the palette of the window I'm copying to.
- >>
- >> What happens is that I set up a palette, say entry 3
- >> is red, and set it up for both the GWorld and the window.
- >> Then I poke a 3 somewhere into the GWorld memory, but
- >> when I call CopyBits(), the color's been translated to something
- >> else.
- >>
- >> If I do a PmForeColor(3) then poke the result of a GetForeColor(),
- >> I get the correct results.
- >>
- >> Somewhere, QuickDraw is remapping colors.
- >>
- >> Anyone know how to prevent QuickDraw from remapping so that I
- >> have an identity relationship between the color table in my
- >> off-screen GWorld and the palette in my window? I don't
- >> want to have to go through this cheesy translation step!
- >>
- >
- [snip]
-
- > One thing I do know is- NEVER,NEVER,NEVER poke indexes into the pixel image
- > directly- this is a sure fire way of making a program incompatible with the
- > video device. If QuickDraw doesn't know about the contents of an image
- > (because you bypassed it) you will almost certainly not end up with what
- > you want.
-
- What if you are trying to get a video-game to go as fast as possible?
- OBviously, QuickDraw is too slow for such purposes...
-
- >
- > --------------------------------------------------------------------------
- > Graham
- >
- > -Everyone is entitled to their opinion, no matter how wrong they may be...
- > --------------------------------------------------------------------------
-
- Lawson
-
- +++++++++++++++++++++++++++
-
- >From ltaylor@academic.csubak.edu (John Stiles)
- Date: 7 May 1994 22:19:15 GMT
- Organization: California State University, Bakersfield
-
- >>> Anyone know how to prevent QuickDraw from remapping so that I
- >>> have an identity relationship between the color table in my
- >>> off-screen GWorld and the palette in my window? I don't
- >>> want to have to go through this cheesy translation step!
- >>>
- The same thing happened to me. The GWorld was assigned a clut, this
- clut was changed to a palette and was applied to a window. Still, CopyBits
- wanted to do colormapping. Great.
- I did notice that the mapping was 0 to 0, 1 to 1, 2 to 2, ... 255 to
- 255--i.e., no change. (it had to be with the custom palette I was using!)
- The only workable solution was to implement a cheap blitter. It worked
- and I got it running faster than CopyBits anyway. So, problem solved. Still,
- there should be a more acceptable solution.
- *Stiles
-
-
- +++++++++++++++++++++++++++
-
- >From hall_j@sat.mot.com (Joseph Hall)
- Date: Sun, 8 May 1994 23:40:17 GMT
- Organization: Motorola Inc., Satellite Communications
-
- Seems it was 103t_english@west.cscwc.pima.edu who said:
- >What if you are trying to get a video-game to go as fast as possible?
- >OBviously, QuickDraw is too slow for such purposes...
-
- Obviously, you have never used a properly-aligned CopyBits.
-
- There is no need to draw directly into screen memory on the Mac. Munge
- your bits in your favorite quickest, hairiest way offscreen and then use
- QuickDraw to copy them onto the screen.
-
- I'll grant that QuickDraw's line- and circle-drawing algorithms are
- both slow and a little weird, but you don't have to use *them* to draw
- into an offscreen area.
-
- --
- Joseph Nathan Hall | Joseph's Law of Interface Design: Never give your users
- Software Architect | a choice between the easy way and the right way.
- Gorca Systems Inc. | joseph@joebloe.maple-shade.nj.us (home)
- (on assignment) | (602) 732-2549 (work) Joseph_Hall-SC052C@email.mot.com
-
- +++++++++++++++++++++++++++
-
- >From pottier@trimaran.ens.fr (Francois Pottier)
- Date: 9 May 1994 10:11:30 GMT
- Organization: Ecole Normale Superieure, PARIS, France
-
- In article <2qh453$aag@nic-nac.csu.net>,
- John Stiles <ltaylor@academic.csubak.edu> wrote:
-
- > The same thing happened to me. The GWorld was assigned a clut, this
- >clut was changed to a palette and was applied to a window. Still, CopyBits
- >wanted to do colormapping. Great.
- > I did notice that the mapping was 0 to 0, 1 to 1, 2 to 2, ... 255 to
- >255--i.e., no change. (it had to be with the custom palette I was using!)
- > The only workable solution was to implement a cheap blitter. It worked
- >and I got it running faster than CopyBits anyway. So, problem solved. Still,
- >there should be a more acceptable solution.
-
- There is one. Just replace the destination color table's ctSeed with
- the source table's one. This will let CopyBits know that the color tables
- are indeed equal, and no mapping will be performed. I think it is described
- in Inside Mac, but I don't know for sure, since Imaging hasn't appeared in
- French bookstores yet.
-
-
- --
- Francois Pottier pottier@dmi.ens.fr
- - ----------------------------------------------------------------------------
- This area dedicated to the preservation of endangered species. "Moof!"
-
- +++++++++++++++++++++++++++
-
- >From Phil Smy <psmy@io.org>
- Date: 10 May 1994 18:42:26 GMT
- Organization: Innotech MultiMedia Corp.
-
- In article <2ql28i$1q4@nef.ens.fr> Francois Pottier,
- pottier@trimaran.ens.fr writes:
- >There is one. Just replace the destination color table's ctSeed with
- >the source table's one. This will let CopyBits know that the color tables
- >are indeed equal, and no mapping will be performed. I think it is
- described
- >in Inside Mac, but I don't know for sure, since Imaging hasn't appeared
- in
- >French bookstores yet.
-
- Here's what I do to make a GWorld with matching palette:
-
- thePal = GetPalette(front->macPort);
- if (thePal)
- {
- offColors = GetCTable(ktheCLUT);
- Palette2CTab(thePal,offColors);
- }
-
- GetGWorld(&savePort,&saveDevice);
-
- depth = (*(*saveDevice)->gdPMap)->pixelSize;
- depth = depth & 0x0000FFFF;
-
- error = NewGWorld(&offPort, depth ,&borderRect,offColors,nil,0);
- if (error != noErr)
- // do something about this!
-
- SetGWorld(offPort,nil);
-
- I have had no colour mapping problems doing this. I don't know if this
- helps.
-
- Phil
- ******************************************************************
- * Phil Smy * Interactive CDRom MultiMedia *
- * Sr. Developer * #include <stddisclaimer.h> *
- * Innotech MultiMedia Corp. * Wot Gorilla? *
- ******************************************************************
-
- +++++++++++++++++++++++++++
-
- >From grobbins@apple.com (Grobbins)
- Date: 10 May 1994 19:56:42 -0700
- Organization: Skunkworks
-
- In article <2qh453$aag@nic-nac.CSU.net>,
- John Stiles <ltaylor@academic.csubak.edu> wrote:
- >>>> Anyone know how to prevent QuickDraw from remapping so that I
- >>>> have an identity relationship between the color table in my
- >>>> off-screen GWorld and the palette in my window?
- > The same thing happened to me. The GWorld was assigned a clut, this
- >clut was changed to a palette and was applied to a window. Still, CopyBits
- >wanted to do colormapping.
-
- Did you try setting bit 14 of ctFlags? Take a look at the
- palette manager article in issue 5 of develop and the ctSeed
- reference in the Palette Manager chapter of Inside Mac VI
- for a discussion of how to use that bit to avoid unintended
- color mappings.
-
- Grobbins grobbins@apple.com
-
- Usual disclaimers apply.
-
-
- +++++++++++++++++++++++++++
-
- >From tenglish@west.cscwc.pima.edu
- Date: 10 May 94 21:51:32 MST
- Organization: (none)
-
- In article <1994May8.234017.25097@sat.mot.com>, hall_j@sat.mot.com (Joseph Hall) writes:
- > Seems it was 103t_english@west.cscwc.pima.edu who said:
- >>What if you are trying to get a video-game to go as fast as possible?
- >>OBviously, QuickDraw is too slow for such purposes...
- >
- > Obviously, you have never used a properly-aligned CopyBits.
- >
- > There is no need to draw directly into screen memory on the Mac. Munge
- > your bits in your favorite quickest, hairiest way offscreen and then use
- > QuickDraw to copy them onto the screen.
- >
- > I'll grant that QuickDraw's line- and circle-drawing algorithms are
- > both slow and a little weird, but you don't have to use *them* to draw
- > into an offscreen area.
- >
-
- I'm sorry. From what you had said (as I dimly recall it), you seemed to be
- advocating the use of QuickDraw for *everything*.
-
- Obviously, CopyBits is part of QUickDraw, but I was taking you to mean circles
- and so on as well...
-
- Lawson (formerly 103T_English... The Sys Admin got her lines crossed and renamed
- my account with my brother's... imagine my surprise...)
-
- +++++++++++++++++++++++++++
-
- >From Mark Hanrek <hanrek@cts.com>
- Date: Wed, 11 May 1994 12:06:41 GMT
- Organization: The Information Workshop
-
- In article <u9119523-060594163303@cmpacc2.sys.uea.ac.uk> Graham Cox,
- u9119523@sys.uea.ac.uk writes:
-
- >> I'm trying to create an off-screen GWorld whose palette
- >> matches the palette of the window I'm copying to.
-
- In addition to the suggestions regarding the ctSeed, try taking the
- following approach.
-
- - -- Color Tables
-
-
- If you can, try to avoid thinking of "a palette of colors" because
- this English expression ends up confusing us when working with the
- Palette Manager, which is clearly from another planet. :)
-
- Try an approach that has worked well for me, of working with
- color tables at all times, until the very last minute.
-
- Then, when you are ready to activate the colors you need, just before
- drawing to the window, create a palette from your color table using
- CTab2Palette. E-Z.
-
- If you are going to be drawing into a GWorld, have the color table with
- the colors you want already attached to the GWorld. It helps to
- have the color table supplied when you create the GWorld as well.
-
- For example, say you want to read in and draw a GIF picture....
-
- - Read in the GIF data, and extract the color table and picture rect.
- - Create a color table with the picture's colors in it.
- - Create a GWorld of the proper rect and supply the color table, too.
- - While decoding the GIF's pixels, write the values directly into the
- GWorld's pixels, after having locked it down, natch.
- - Create a palette from the color table using CTab2Palette.
- - Activate the colors using NSetPalette and ActivatePalette
- - Copybits from the GWorld to the window.
-
- Also, observe the unwritten rules of always doing...
-
- ForeColor( blackColor );
- BackColor( whiteColor );
-
- before performing a CopyBits.
-
- - --- Palettes
-
- Also, it is good to be up on what the Palette Manager is doing.
-
- There is an informative article in the March '93 d e v e l o p called
- "The Palette Manager Way" in the Graphical Truffles column.
-
- It describes how one can use the pmTolerant + pmExplicit usage modes
- to ensure that the positions of your colors don't change when your
- palette is activated.
-
- Keep in mind that when you activate your palette, the Palette Manager
- is arbitrating your "request" with the needs of the rest of the windows.
-
- If you must have the exact colors you specify, then always use the
- pmTolerant + pmExplicit mode when you are creating your color tables
- and palettes.
-
- One thing that helped me get the hang of things was always creating
- palettes and color tables using ( pmTolerant + pmExplicit ) in the
- appropriate parameter.
-
- Things will work as you expect because you are essentially "insisting"
- that the Palette Manager give you exactly what you are asking for, and
- leave things in the positions you have them in.
-
- Once you get things working, then as a separate exercise you can
- relax your color needs and experiment with the usage modes, if by
- some freak accident of nature you actually have some extra time. :)
-
- Hope this helps.
-
- Mark Hanrek
-
- +++++++++++++++++++++++++++
-
- >From jonbl@microsoft.com (Jon Blossom)
- Date: Thu, 12 May 1994 02:59:06 GMT
- Organization: Microsoft Corporation
-
- >> One thing I do know is- NEVER,NEVER,NEVER poke indexes into the pixel image
- >> directly- this is a sure fire way of making a program incompatible with the
- >> video device. If QuickDraw doesn't know about the contents of an image
- >> (because you bypassed it) you will almost certainly not end up with what
- >> you want.
- >
- >What if you are trying to get a video-game to go as fast as possible?
- >OBviously, QuickDraw is too slow for such purposes...
-
- Which is basically exactly what I'm trying to do.
-
- For certain applications, QuickDraw just isn't fast enough. For instance, my
- polygon fills beat QD by about 25% or more because I know exactly how I want
- to draw them.
-
- What I really want to do is build my image the way I want it then say
- "QuickDraw, here is a picture. Put it on the screen as fast as you can."
-
- Unfortunately, I know that it's NOT going as fast as it can because it's doing
- this damn color translation along the way even though I know it doesn't have
- to.
-
- -Jon Blossom
- jonbl@microsoft.com
-
-
-
- ---------------------------
-
- >From s010mes@discover.wright.edu (Moshe Segal)
- Subject: How do I draw masked icons w-System 6?
- Date: Tue, 10 May 1994 15:33:15 GMT
- Organization: Wright State University, Dayton, OH 45435
-
- Does anybody know how to accomplish the following task: Display an ICN#
- resource in a window using System 6. You may recall that almost all of
- the icon utilities are only available on System 7, while the commands like
- "GetIcon" only display ICON resources, which have no mask and leave an
- unsightly white square around them when displayed.
-
- I know it must be possible to display ICN# resources on pre-System 7
- platforms. Indeed, a game called "Icon Bounce" does this beautifully. At
- first I thought that was done by storing the ICN# patterns and masks as
- regions. But, alas, I couldn't figure out to get a pointer or handle to
- the bitmap fields of the icon.
-
- Anyone know the answer or know where I could find it on the net or in a
- book (I have only the new Inside MacIntoshes). Or, does anyone have the
- source code for the aforementioned Icon Bounce game? Please post the
- response, as I am on a friends account.
-
- Michael E. Kotler
-
-
-
-
- +++++++++++++++++++++++++++
-
- >From Matt Slot <fprefect@engin.umich.edu>
- Date: 10 May 1994 21:01:38 GMT
- Organization: University of Michigan
-
- Moshe Segal, s010mes@discover.wright.edu writes:
-
- >Does anybody know how to accomplish the following task: Display an ICN#
- >resource in a window using System 6. You may recall that almost all of
- >the icon utilities are only available on System 7, while the commands like
- >"GetIcon" only display ICON resources, which have no mask and leave an
- >unsightly white square around them when displayed.
-
- Here is a snippet I extracted from some Icon plotting tools that I wrote.
- I found the technique in a TechNote (I think). It works for both System 6
- and System 7.
-
- This code is was snipped from a program I wrote and wrapped into a little
- function... it should be ready for dropping into a program with no bugs.
-
- Matt Slot
- fprefect@engin.umich.edu
-
- void PlotIconInAllSystems(short iconID, Boolean hilited, Rect *iconRect) {
- BitMap iconMap;
- Handle iconHdl;
-
- if (!hasSys7 || PlotIconID(&iconRect, 0, (hilited) ? ttSelected : 0, iconID)) {
- if (iconHdl = GetResource('ICN#', iconID)) {
- HLock(iconHdl);
-
- iconMap.baseAddr = *iconHdl;
- iconMap.rowBytes = 4;
- SetRect(&iconMap.bounds,0,0,32,32);
- CopyBits(&iconMap, &thePort->portBits,
- &iconMap.bounds, &iconRect, srcCopy, 0);
-
- if (hilited) {
- iconMap.baseAddr += 128;
- CopyBits(&iconMap, &thePort->portBits,
- &iconMap.bounds, &iconRect, srcXor, 0);
- }
-
- HUnlock(iconHdl);
- ReleaseResource(iconHdl);
- }
- else FrameRect(&iconRect); // Something went wrong -- wimp out
- }
- }
-
- +++++++++++++++++++++++++++
-
- >From Richard Knuckey <richard@purplex.nacjack.gen.nz>
- Date: Fri, 13 May 94 20:15:37 +1200
- Organization: Purple X's Humble Macintosh
-
-
- The following mimics all of the system 7 icon drawing styes (in black and
- white only) It is cut from a larger and more complete icon handling unit.
-
- const
- largeRowBytes = 4;
- smallRowBytes = 2;
- miniRowBytes = 2;
-
- largeMaskOffset = largeIconSize * largeRowBytes;
- smallMaskOffset = smallIconSize * smallRowBytes;
- miniMaskOffset = miniIconSize * miniRowBytes;
-
- type
- IconListHandle = ^IconListPtr;
- IconListPtr = ^IconListType;
- IconListType = record
- icon: packed array[1..32] of longint;
- mask: packed array[1..32] of longint;
- end;
-
-
- procedure DrawIconList (iconBounds: Rect; iconSize, transform: integer;
- iconData: univ Handle);
- var
- iconBitMap, maskBitMap: BitMap;
- iconDisabled, iconOffLine, iconOpen, iconSelected: Boolean;
- copyMode, iconTransform: integer;
- drawPort: GrafPtr;
-
- begin
- GetPort(drawPort);
- HLock(iconData);
-
- with iconBitMap do
- begin
- baseAddr := iconData^;
- bounds := iconBounds;
- maskBitMap := iconBitMap;
-
- case iconSize of
- largeIconSize:
- begin
- rowBytes := largeRowBytes;
- maskBitMap.rowBytes := largeRowBytes;
- maskBitMap.baseAddr := Ptr(ord4(baseAddr) + largeMaskOffset);
- end;
-
- smallIconSize:
- begin
- rowBytes := smallRowBytes;
- maskBitMap.rowBytes := smallRowBytes;
- maskBitMap.baseAddr := Ptr(ord4(baseAddr) + smallMaskOffset);
- end;
-
- miniIconSize:
- begin
- rowBytes := miniRowBytes;
- maskBitMap.rowBytes := miniRowBytes;
- maskBitMap.baseAddr := Ptr(ord4(baseAddr) + miniMaskOffset);
- end;
-
- otherwise
- begin
- HUnlock(iconData);
- exit(DrawIconList);
- end;
- end;
- end;
-
- {the transform type is in the lower nibble}
- iconTransform := BAND(transform, $000F);
- iconDisabled := iconTransform = ttDisabled;
- iconOffline := iconTransform = ttOffline;
- iconOpen := iconTransform = ttOpen;
- iconSelected := BAND(transform, ttSelected) <> 0;
-
- if iconOffline | iconOpen then
- begin
- PenMode(patXor);
- if iconSelected then
- PenPat(dkGray)
- else
- PenPat(ltGray);
- PaintRect(iconBounds);
- end;
-
- if (not (iconOffline | iconOpen)) & iconSelected then
- copyMode := srcOr
- else
- copyMode := srcBic;
- CopyBits(maskBitmap, drawPort^.portBits, iconBounds, iconBounds,
- copyMode, nil);
-
- if iconDisabled then
- begin
- PenMode(patXor);
- PenPat(gray);
- end;
-
- if iconOpen | iconOffline | iconDisabled then
- PaintRect(iconBounds);
-
- if (not iconOpen) then
- begin
- if iconOffline then
- if iconSelected then
- copyMode := srcBic
- else
- copyMode := srcOr
- else if iconDisabled then
- copyMode := srcBic
- else
- copyMode := srcXor;
-
- CopyBits(iconBitmap, drawPort^.portBits, iconBounds, iconBounds,
- copyMode, nil)
- end;
-
- if iconDisabled then
- PaintRect(iconBounds);
-
- PenMode(patOr);
- PenPat(black);
-
- HUnlock(iconData);
- end;
-
-
- ---------------------------
-
- >From julie@zoot.sps.mot.com (Julie Shipnes)
- Subject: Motorola announces Power Mac compilers
- Date: 12 May 1994 16:29:40 -0500
- Organization: Motorola RISC Software, Austin, TX
-
-
- MOTOROLA ANNOUNCES HIGH-PERFORMANCE POWERPC MICROPROCESSOR
- COMPILERS FOR POWER MACINTOSH
-
- AUSTIN, Texas, May 10 -- Motorola's RISC Microprocessor Division
- today announced plans to port its optimizing PowerPC microprocessor compilers
- to Apple's complete line of Power Macintosh computers. The C, C++ and FORTRAN
- compilers will be fully compatible with Apple's Macintosh Programmers'
- Workshop (MPW) development environment and will enable developers
- to simultaneously optimize code for each member of the PowerPC family
- of microprocessors, including PowerPC 601(TM), PowerPC 603(TM),
- PowerPC 604(TM) and PowerPC 620(TM).
-
- "The ability to take full advantage of the PowerPC performance features of
- each member of the PowerPC family is a critical aspect of Motorola's
- commitment to provide a complete solution for our customers," said Les
- Crudele, vice president and general manager, Motorola RISC Microprocessor
- Division. "Our compilers will permit developers to leverage the performance
- potential of current and future PowerPC microprocessors without the need to
- recompile applications."
-
- The compilers, which are currently being tested within Apple and at select
- beta sites, have demonstrated significant performance improvements for
- critical applications. Much of the performance increase is because the
- Motorola compilers optimize code to take advantage of individual features of
- the superscalar PowerPC microprocessors, while still maintaining code
- compatibility across all PowerPC architecture family members.
-
- The compilers can be configured to optimize code for a particular chip
- implementation, or they can generate a series of objects that target
- multiple PowerPC microprocessor. As a result, developers can develop
- applications now that will be optimally configured for existing and future
- Apple systems.
-
- "By integrating their compiler development with the PowerPC chip design
- efforts in Austin, Motorola is in a unique position to bring highly
- optimizing compilers to market quickly for forthcoming PowerPC
- microprocessors," said Peter Christy, senior director of developer products
- engineering at Apple Computer, Inc. "The Motorola compilers complement the MPW
- compilers and tools already available from Apple and others, and provide
- Macintosh developers with a more complete set of options for creating
- high-performance applications for the exciting Power Macintosh platform."
-
- Motorola has also announced its intention to integrate its compilers into
- the CodeWarrior development environment offered by Metrowerks, Inc. By
- supporting both the MPW and CodeWarrior environments, users will be able to
- leverage the performance advantages of the Motorola compilers without
- needing to adopt a new development environment.
-
- "The addition of Motorola's compilers to the CodeWarrior environment will
- offer an immediate performance boost for those CodeWarrier developers that
- are working on leading-edge applications for future implementations of
- PowerPC microprocessors," said Metrowerks president and CEO Greg Galanos.
- According to Galanos, Metrowerks is defining a tools and language interface
- for CodeWarrior that will permit developers to use standardized language
- conventions and user interfaces for a variety of development tools.
-
- Motorola will accept orders in July 1994 for the MPW-based compilers and
- tools running native on Power Macintosh and 68000-based Macintosh systems at
- an initial list price of $349. The company will offer a beta version of the
- compiler for CodeWarrior in late 1994. For additional information,
- customers can call 800-845-MOTO.
-
- PowerPC microprocessors are based on reduced instruction set computing
- (RISC) and incorporate leading edge technologies from IBM and Motorola. The
- family of PowerPC microprocessors is designed to address a wide range of
- computing requirements, from portable and desktop computers to midrange
- workstations and servers, to multi-processing, fault-tolerant and
- supercomputing systems. PowerPC microcontrollers also will be used for
- embedded control applications in automotive and consumer products.
-
- Companies developing PowerPC systems and subsystems include Apple
- Computer, Canon, DayStar Digital, Ford Motor Co., Groupe Bull, Harris,
- Hitachi, IBM, ISG Technologies, Mercury Computer Systems, Motorola Computer
- Group, Parsytec, PowerHouse, Scientific Atlanta, Shannon Computer, Tadpole
- Technologies, the Taiwan New PC Consortium, THOMSON-CSF and YARC.
-
- Having 1993 worldwide sales of $5.7 billion, Motorola's Semiconductor
- Products Sector is the largest U.S.-based broad line supplier of
- semiconductors, with a balanced portfolio of more than 50,000 devices.
- Motorola is one of the world's leading providers of wireless communications,
- semiconductors, and advanced electronic systems and services. Major
- equipment businesses include cellular telephone, two-way radio, paging and
- data communications, personal communications, automotive, defense and space
- electronics and computers. Communications devices, computers and millions
- of consumer products are powered by Motorola semiconductors. Motorola's
- 1993 sales were $17 billion.
-
- NOTE: Product names are trademarks of their respective companies. PowerPC,
- PowerPC architecture, PowerPC 601, PowerPC 603, PowerPC 604 and PowerPC 620
- are trademarks of International Business Machines Corporation and are used
- by Motorola under license from International Business Machines Corporation.
-
- CONTACT: (reader/Inquiry response) Motorola, Inc. RISC Microprocessor
- Division, P.O. Box 202558, Austin, Texas, 78720-9895, 1-800-845-MOTO
-
-
-
- - -------------------------- Oakhill -------------------------------
- Julie Shipnes Mike Phillip
- julie@pets.sps.mot.com phillip@pets.sps.mot.com
-
- Motorola RISC Compiler Development
- - -------------------------------------------------------------------
-
- ---------------------------
-
- >From sjf@phantom.com (Simon Jensen_Fellows)
- Subject: Polling the Serial Port
- Date: 28 Apr 1994 21:27:18 GMT
- Organization: [MindVox] / Phantom Access Technologies / (+1 800-MindVox)
-
- Hi,
- Anyone got any advice about running a background process that polls the
- serial port ?
- I have tried posting a VBL routine, patching a trap and just running a
- background application.
-
- My main problem is that I seem to loose all my settings (Baud rate,
- parity etc) once I exit the routine back to the O/S.
-
- I guess I`m doing something wrong: any advice or sample code ?
-
- Thanking you in advance.
-
- Simon.
-
-
- +++++++++++++++++++++++++++
-
- >From ctrfree@mr.net (Evan Olcott)
- Date: 29 Apr 1994 22:50:13 GMT
- Organization: Centor Freed Inc.
-
- Best thing to do is to patch WaitNextEvent. Open the serial drivers
- upon startup (a lovely piece of extension code) and hold them in an A4
- global buffer. Upon each call to your patch, get the globals (to get
- the refNum and other stuff) and check the port.
- Seems to work for me. Now the tricky part is serial port arbitration...
- ;-)
-
- Evan Olcott, programmer
- Centor Freed Inc.
- 100 N. 6th Street #989C
- Minneapolis, MN 55417
- "There are no experimental failures. There's only more data." - Bryce
-
- +++++++++++++++++++++++++++
-
- >From oster@netcom.com (David Phillip Oster)
- Date: Thu, 12 May 1994 19:59:24 GMT
- Organization: Netcom Online Communications Services (408-241-9760 login: guest)
-
-
- You'd have to be absolutely insane to poll the serial ports. Anybody in their
- right mind would do a PBRead(&io, TRUE); i.e., an asynchronous read. The
- operating system will call your completion routine at interrupt level when
- the read completes: you never need to poll. Your completion routine can do
- another read. You may want to set up a deadman-switch VBL task: your
- completion routine is expecting data in at most 10 seconds, so it sets up
- a VBL task with a 15 second timeout. If the read completes, the completion
- routine cancels the VBL and starts a fresh one. If something went wrong,
- the VBL gives you back control so you can fix things (like re-enable the
- serial ports, notify the user that something went wrong, etc.)
-
- Back in '85 I used this technique to interface serial digitizing tablets
-
- ---------------------------
-
- End of C.S.M.P. Digest
- **********************
-
-
-