TweetFollow Us on Twitter

Mar 94 Tips
Volume Number:10
Issue Number:3
Column Tag:Tips & Tidbits

Tips & Tidbits

Using GWorlds and the Pallette Manager

Edited by Scott Boyd and Neil Ticktin

Note: Source code files accompanying article are located on MacTech CD-ROM or source code disks.

Tip Of The Month

Studies have shown that anyone who has to focus visual attention in one place for a long time (like a computer user), will blink less often. This makes your eyes dry, and is the main cause of eyestrain. Even though blinking is a reflex action and usually outside of conscious control, there’s an easy way to increase your blink-rate.

Write the word “Blink!” on a small piece of paper. Then stick it someplace on your computer monitor where you will always be able to see it. Put one on every monitor you have. Every time you notice it, follow the instruction: Blink a couple of times, and look away from your monitor to focus on some distant object for a few seconds. Then get back to work before your boss catches you staring off into space.

You’ll notice the paper a lot at first, eventually less often. The initial effect is just to make you think about it. But even after you stop noticing it consciously, leave the note there. It has a subliminal “training” effect that makes you blink more often. It’s like tying a string around your finger to help you remember something. This really works to reduce eyestrain. But it’s so simple and inexpensive that most people don’t believe it until they’ve used it for a while.

- Lee David Rimar, Absoft Corporation

[As with all tips, consult your physician before trying this at home! - Ed. nst]

This column is your opportunity to spread the word about little bits of information that you find out about. These tidbits can be programming related or they can be user tips that are particularly useful to programmers.

MacTech Magazine will pay $25 for every tip used, and $50 for the Tip of the Month. Or you can take your award in orders or subscriptions.

To submit a tip, send in a letter to the magazine. E-mail is our preferred method, but feel free to send something via the US Mail. See page two for all addresses. If you do send snail mail, enclose a printed copy and a disk copy of the letter so that it does not have to be retyped.

Down and dirty

The following two MOVE instructions will load a zero into lower D0 on a 68000 processor and a one on 68020 or better.


/* 1 */
; Get offset to be scaled
303C 0001  Move.W  #1,D0

; Get one of the two bytes 00 or 01!
103B 02FB  Move.B  *-3(PC,D0.W*2),D0 

This is a much cheaper way than _Gestalt to find out if the 32x32 => 64 multiply instructions are available, etc. To see why this works, first consider 68020 or better hardware. After the Move.W instruction lower D0 will contain the value one. The *-3(PC) part of the Move.B addresses the 3C byte of the Move.W instruction, but indexing by D0 is also specified. Since the scaling field is two, the effective index is two times one or two. Thus the Move.B fetches the byte two down from the 3C byte, which is the 01 byte. Thus on 68020 or better hardware we get a one.

Now consider 68000 hardware. It does not implement index scaling, nor does it notice it being called for! Thus a 68000 will execute the Move.B instruction as if it were the instruction:


/* 2 */
 Move.B  *-3(PC,D0.W),D0

Now the effective index is one (not two) and the zero byte that is one down from the 3C byte is loaded. Thus on 68000 hardware we get a zero. Note also that the Zero toggle will be set on 68000 and cleared on 68020 or better hardware. This allows an immediate BZ/BEq or BNZ/BNE to be used.

The information that the 68000 processor fully decodes all 16384 possible opcode words but does not fully decode the addressing modes in extension words can be found in the Advanced Topics appendix of Motorola's MC68020 32-Bit Microprocessor User's Manual (Second Edition).

- Charles Cranston

zben@ni.umd.edu

Starting an init

I always the following code for the entry point for an INIT, WDEF or any other code resource. This template can only be used with Think C, as it uses assembly and it relies on A4 to reference globals. The 'Custom Header' must be checked in the 'Set Project Type '-dialog.


/* 3 */
void main (void) ;
void header (void) ;

void header (void)
{
  asm {
    BRA.S  @next   ; jump over the following data
    DC.L   'TMON'  ;   tell TMON todo label-searching
    DC.L   'INIT'  ;   use this and the next 4 bytes to label
    DC.L   'SPPS'  ;   this code resouce
 next:
    LEAheader, A0  ; load the address of the code resource in A0
    JMP    main  ; jump to main
  }
}

#include <SetUpA4.h>   // We need this if we have globals

void main (void)
{ Ptr  mySelf ;  // pointer to this code resource

  asm {
    move.l A0, mySelf
  }

  RememberA0()   ;  // put A0 in a save spot
  SetUpA4() ;  // and use it to set up A4
        
  RestoreA4() ;

The low-level debugger TMON looks for MacsBug labels in code resources that it knows about. If it doesn’t know the type of a resource to be code, or if it is detached and no longer a resource, TMON will not show labels in the code. The TMON User Area 'AddRange/TMON.fixed' looks for the string 'TMON' two bytes into every block it finds, and then asks TMON to scan it for labels. It was written by Ken Schalk and it is available on bulletin boards.

The following two strings mark what the block is about. This is great for debugging. If I want to set a breakpoint, I simply search for these strings in memory,

After the 'next' label, I load the address of the start of the code resource in register A0. This is required by Think C so that it can retrieve it to set A4 for accessing globals. The statements RememberA0() and SetUpA4() do the trick. Always be sure to call RestoreA4() before leaving the routine. A0 contains a pointer to the start of the block, and I save it in the variable 'mySelf'. If I want to keep the code in memory afterwards, I simply have to execute 'DetachResource(RecoverHandle(mySelf))'.

- Jan Bruyndonckx

Wave Research, Belgium

Tiny MPWScript

Here’s a tiny MPW script I find indispensible when collaborating on an MPW project. It lets you instantly open the files that your coworkers have changed.

The CheckOut command does have a -open option, but with this script you can choose which files to open and in what order, and you can wait until later to do it. Of course, once you have a file open you can use CompareRevisions to see what changed. Put this script in your MPW:Scripts folder and call it “Checked”. Opens the file referenced in the output of a projector CheckOut -p command:


/* 4 */
Checked out "HD:Blah:Blah.c,9" from "Blah ".

You can execute lines of this form directly from your worksheet (in groups or individually). This is an amazingly complicated script...not! It ignores its first argument, which is always “out”, its third argument, which is always “from”, and its fourth argument, which is the project pathname. All we care about is the second argument, which is almost the filename that we want the trick is ignoring the comma and digits at the end, which we do by matching the argument against a regular expression (see “help patterns”).


/* 5 */
(evaluate "{2}" =~ /( )®1,[0-9.]+/ ) > Dev:Null
open "{®1}"

Yes, it’s a two-line script.

- Dave Lyons

 
AAPL
$474.83
Apple Inc.
+7.47
MSFT
$32.39
Microsoft Corpora
-0.48
GOOG
$883.30
Google Inc.
-2.21

MacTech Search:
Community Search:

Software Updates via MacUpdate

TrailRunner 3.7.746 - Route planning for...
Note: While the software is classified as freeware, it is actually donationware. Please consider making a donation to help stimulate development. TrailRunner is the perfect companion for runners,... Read more
VueScan 9.2.23 - Scanner software with a...
VueScan is a scanning program that works with most high-quality flatbed and film scanners to produce scans that have excellent color fidelity and color balance. VueScan is easy to use, and has... Read more
Acorn 4.1 - Bitmap image editor. (Demo)
Acorn is a new image editor built with one goal in mind - simplicity. Fast, easy, and fluid, Acorn provides the options you'll need without any overhead. Acorn feels right, and won't drain your bank... Read more
Mellel 3.2.3 - Powerful word processor w...
Mellel is the leading word processor for OS X, and has been widely considered the industry standard since its inception. Mellel focuses on writers and scholars for technical writing and multilingual... Read more
Iridient Developer 2.2 - Powerful image...
Iridient Developer (was RAW Developer) is a powerful image conversion application designed specifically for OS X. Iridient Developer gives advanced photographers total control over every aspect of... Read more
Delicious Library 3.1.2 - Import, browse...
Delicious Library allows you to import, browse, and share all your books, movies, music, and video games with Delicious Library. Run your very own library from your home or office using our... Read more
Epson Printer Drivers for OS X 2.15 - Fo...
Epson Printer Drivers includes the latest printing and scanning software for OS X 10.6, 10.7, and 10.8. Click here for a list of supported Epson printers and scanners.OS X 10.6 or laterDownload Now Read more
Freeway Pro 6.1.0 - Drag-and-drop Web de...
Freeway Pro lets you build websites with speed and precision... without writing a line of code! With it's user-oriented drag-and-drop interface, Freeway Pro helps you piece together the website of... Read more
Transmission 2.82 - Popular BitTorrent c...
Transmission is a fast, easy and free multi-platform BitTorrent client. Transmission sets initial preferences so things "Just Work", while advanced features like watch directories, bad peer blocking... Read more
Google Earth Web Plug-in 7.1.1.1888 - Em...
Google Earth Plug-in and its JavaScript API let you embed Google Earth, a true 3D digital globe, into your Web pages. Using the API you can draw markers and lines, drape images over the terrain, add... Read more

Guitar! by Smule Jams Out A Left-Handed...
Guitar! by Smule Jams Out A Left-Handed Mode, Unlocks All Guitars Posted by Andrew Stevens on August 13th, 2013 [ permalink ] | Read more »
KungFu Jumpu Review
KungFu Jumpu Review By Lee Hamlet on August 13th, 2013 Our Rating: :: FLYING KICKSUniversal App - Designed for iPhone and iPad Kungfu Jumpu is an innovative fighting game that uses slingshot mechanics rather than awkward on-screen... | Read more »
The D.E.C Provides Readers With An Inter...
The D.E.C Provides Readers With An Interactive Comic Book Platform Posted by Andrew Stevens on August 13th, 2013 [ permalink ] | Read more »
Choose ‘Toons: Choose Your Own Adventure...
As a huge fan of interactive fiction thanks to a childhood full of Fighting Fantasy and Choose Your Own Adventure books, it’s been a pretty exciting time on the App Store of late. Besides Tin Man Games’s steady conquering of all things Fighting... | Read more »
Terra Monsters Goes Monster Hunting, Off...
Terra Monsters Goes Monster Hunting, Offers 178 Monsters To Capture and Do Battle With Posted by Andrew Stevens on August 13th, 2013 [ permalink ] | Read more »
Blaster X HD Review
Blaster X HD Review By Jordan Minor on August 13th, 2013 Our Rating: :: OFF THE WALLiPad Only App - Designed for the iPad For a game set in a box, Blaster X HD does a lot of thinking outside of it.   | Read more »
Tube Map Live Lets You View Trains In Re...
Tube Map Live Lets You View Trains In Real-Time Posted by Andrew Stevens on August 13th, 2013 [ permalink ] Universal App - Designed for iPhone and iPad | Read more »
Premier League Kicks Off This Week; Watc...
Premier League Kicks Off This Week; Watch Every Single Match Live Via NBC Sports Live Extra and Your iPhone or iPad Posted by Jeff Scott on August 13th, 2013 [ permalink ] | Read more »
Meet Daniel Singer, the Thirteen-Year-Ol...
Ever had the idea for an app, but felt like the lack of programming and design ability was a bit of a non-starter? Well, 13-year-old Daniel Singer has made an app. He’s the designer of Backdoor, a chat app that lets users chat with their friends... | Read more »
Flashout 2 Gets Revealed, Offers Up An E...
Flashout 2 Gets Revealed, Offers Up An Enhanced Career Mode and Exciting New Circuits Posted by Andrew Stevens on August 13th, 2013 [ permalink ] | Read more »

Price Scanner via MacPrices.net

Apple refurbished iPads and iPad minis availa...
 Apple has Certified Refurbished iPad 4s and iPad minis available for up to $140 off the cost of new iPads. Apple’s one-year warranty is included with each model, and shipping is free: - 64GB Wi-Fi... Read more
Snag an 11-inch MacBook Air for as low as $74...
 The Apple Store has Apple Certified Refurbished 2012 11″ MacBook Airs available starting at $749. An Apple one-year warranty is included with each model, and shipping is free: - 11″ 1.7GHz/64GB... Read more
15″ 2.3GHz MacBook Pro (refurbished) availabl...
 The Apple Store has Apple Certified Refurbished 15″ 2.3GHz MacBook Pros available for $1449 or $350 off the cost of new models. Apple’s one-year warranty is standard, and shipping is free. Read more
15″ 2.7GHz Retina MacBook Pro available with...
 Adorama has the 15″ 2.7GHz Retina MacBook Pro in stock for $2799 including a free 3-year AppleCare Protection Plan ($349 value), free copy of Parallels Desktop ($80 value), free shipping, plus NY/NJ... Read more
13″ 2.5GHz MacBook Pro on sale for $150 off M...
B&H Photo has the 13″ 2.5GHz MacBook Pro on sale for $1049.95 including free shipping. Their price is $150 off MSRP plus NY sales tax only. B&H will include free copies of Parallels Desktop... Read more
iPod touch (refurbished) available for up to...
The Apple Store is now offering a full line of Apple Certified Refurbished 2012 iPod touches for up to $70 off MSRP. Apple’s one-year warranty is included with each model, and shipping is free: -... Read more
27″ Apple Display (refurbished) available for...
The Apple Store has Apple Certified Refurbished 27″ Thunderbolt Displays available for $799 including free shipping. That’s $200 off the cost of new models. Read more
Apple TV (refurbished) now available for only...
The Apple Store has Apple Certified Refurbished 2012 Apple TVs now available for $75 including free shipping. That’s $24 off the cost of new models. Apple’s one-year warranty is standard. Read more
AnandTech Reviews 2013 MacBook Air (11-inch)...
AnandTech is never the first out with Apple new product reviews, but I’m always interested in reading their detailed, in-depth analyses of Macs and iDevices. AnandTech’s Vivek Gowri bought and tried... Read more
iPad, Tab, Nexus, Surface, And Kindle Fire: W...
VentureBeat’s John Koetsier says: The iPad may have lost the tablet wars to an army of Android tabs, but its still first in peoples hearts. Second place, however, belongs to a somewhat unlikely... Read more

Jobs Board

Sales Representative - *Apple* Honda - Appl...
APPLE HONDA AUTOMOTIVE CAREER FAIR! NOW HIRING AUTO SALES REPS, AUTO SERVICE BDC REPS & AUTOMOTIVE BILLER! NO EXPERIENCE NEEDED! Apple Honda is offering YOU a Read more
*Apple* Developer Support Advisor - Portugue...
Changing the world is all in a day's work at Apple . If you love innovation, here's your chance to make a career of it. You'll work hard. But the job comes with more than Read more
RBB - *Apple* OS X Platform Engineer - Barc...
RBB - Apple OS X Platform Engineer Ref 63198 Country USA…protected by law. Main Function | The engineering of Apple OS X based solutions, in line with customer and Read more
RBB - Core Software Engineer - Mac Platform (...
RBB - Core Software Engineer - Mac Platform ( Apple OS X) Ref 63199 Country USA City Dallas Business Area Global Technology Contract Type Permanent Estimated publish end Read more
*Apple* Desktop Analyst - Infinity Consultin...
Job Title: Apple Desktop Analyst Location: Yonkers, NY Job Type: Contract to hire Ref No: 13-02843 Date: 2013-07-30 Find other jobs in Yonkers Desktop Analyst The Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.