TweetFollow Us on Twitter

Jun 91 Letters
Volume Number:7
Issue Number:6
Column Tag:Letters

Sorry, no Yerk

By Kirk Chase, Editor

Yerk is NOT on Disk

Kirk Chase

MacTutor

Jörg Langowski, in his March column, indicated that the sources for NEON, now public domain and called “Yerk”, would be put that month’s source code disk. It did not come in with Mr. Langowski’s materials, but we have obtained it. Unfortunately, Yerk is much to large, even after compression to place on anything but a high density floppy. Therefore, Yerk will NOT be distributed on the source code disk. We obtained it on America OnLine. Other BBS and on-line services should be carrying Yerk also. We are sorry that we are not able to distribute it to you.

Animated Cursor Corrections

Rich Lesh

Bridgeton, MO

In my March ’91 article “Animated Color Cursors,” I mentioned that you must be careful to avoid re-entrant conditions with the SetCursor() calls.

Sometimes this is difficult even in the most well behaved programs. I was informed by a reader, Joe Schwartz, that Apple has posted a tidbit of information that can solve this problem. According to the Q&A Stack that Apple distributes, there is a low memory byte, CrsrBusy at 0x8CD, that indicates whether or not the cursor is currently busy, i.e. shouldn’t be changed. The following correction to the code published in March makes use of this global to prevent any calls to SetCursor() when the cursor is busy.

This prevents any cursor fragments from appearing on the screen.

/* 1 */

static pascal void SpinCursorTask()
{
    long oldA5;
 
    oldA5=SetCurrentA5();
    gCursorTask->vblCount=gSpeed;
    if (gSpinCycles && !(*(Byte*)0x8cd)){
        gSpinCycles--;
        (*gCurrentHdl)->index++;
        (*gCurrentHdl)->index%=(*gCurrentHdl)->n;
        if (gColorCursor){
            SetCCursor((*gCurrentHdl)->frame[(*gCurrentHdl)->index].cursorHdl);
        }else{
            SetCursor(*(*gCurrentHdl)->frame[(*gCurrentHdl)->index].cursorHdl);
        }
    }
    SetA5(oldA5);
}

HOTWIRE Labs Address

Kirk Chase

MacTutor

HOTWIRE Labs’ address was inadvertently left off in the April issue. We regret this sincerely as their hardware debugger, Xtrap, is a great developer’s product. Their address is

HOTWIRE Labs

8912 Jamesburg

Witchita, KS 67212

(316) 838-8849

AppleLink: D4527

INIT Mr. Bus Error

Tom Nielsen

Recommended Testing

336 Cernon St.

Vacaville, CA 95688

In February’s issue, Dave Dunham said “I don’t like them (programs) generating bus errors, having to reboot without Mr. Bus Error and rerunning the programs”. Being a programmer and tester myself, I can understand Mr. Dunham’s frustration; however, there is a way to continue the program’s execution as if INIT Mr. Bus Error were not installed.

In MacsBug, examine the registers on the left looking for the characteristic 00F0F0F1 that INIT Mr. Bus Error uses. (Note: Sometimes the register is 00F0F0Fx, where x is some number besides 1. This happens when the application uses the handle as a handle to an array or string). If this value is in register A0, then you would type “A0=0;g.” If it’s in A1, then you’d type “A1=0;g.” That’s it. The program continues as if INIT Mr. Bus Error were not installed. In fact, I type this line so often that I’ve created MacsBug macros to do it for me. These macros clear out register A0, A1 or both and then continue.

[Tom has included three resources that can be added to MacsBug’s prefs file “Debugger Prefs” (found in the System Folder) which may be found on this month’s source disk. Pasting these resources into this file and rebooting, adds the clear Mr Bus Error commands to the list of macros.

Macros Meaning Expansion

azg A Zero Go A0=0;g

aog A One Go A1=0;g

abg A Both Go A0=0;A1=0;g

The template for editing these resources should already be in your Debugger Prefs file.-ed and Tom]

More Debugging Tips

Mike Morton

Honolulu, HI

Some comments on Rex Reinhart’s letter in the March issue:

First, you needn’t use “asm” to drop into the debugger. Think C has a Debugger() trap defined for you, so just put this line in your source:

/* 2 */

Debugger(); /* invoke debugger */

An equally useful trap is the DebugStr(), which takes a single Pascal-string argument. You can “print” simple messages with:

/* 3 */

DebugStr(“\phello, world!”);

or you can print out more useful information to print variables or other values:

/* 4 */

{
 char tempBuf[100];
 sprintf(tempBuf, “x is %d”, x);
 CtoPstr(tempBuf);
 DebugStr(tempBuf);
}

Don’t forget the CtoPstr() call to convert the string from C to Pascal format.

An advantage of this kind of output is that during repeated debugging sessions you needn’t enter your variables into the Data window in the Think C debugger. Or if you don’t have the memory for the debugger, or are debugging a standalone application, this stuff is handy. (of course, if you have a text window for debugging output, you don’t usually need DebugStr().)

Another trick is the equivalent of Think C’s conditional breakpoints. Suppose you have a loop which is locking up after many iterations. If you press the Interrupt switch, you’ll get Macsbug or TMON, not the Think C debugger. Instead, put this line anywhere in the loop:

/* 5 */

if (optionKeyDown()) DeBugger();

(Here, optionKeyDown() is some function you write which tests for the option key.) Run your application until it seems to hang up, then hold down the option key-now you’re in the Think C debugger.

Lastly, be sure to remove all these calls before you distribute your application!

[Still, Think C would definitely be friendlier if its debugger were more like Think Pascal. I feel something like selecting a variable and the a menu command to examine its contents would be nice. I suppose something a little more interactive than DebugStr().-ed]

Call For Articles

Kirk Chase

Editor, MacTutor

Every so often (about five or six times a day), I am asked what I would like to see in the way of articles for MacTutor. At that time, I pull out my editorial calendar (which is scribbled on with a multitude of changes) to read off some of the upcoming topics. Here are a number of requests from readers:

• Programming for modules. This would include such things as given the application’s working directory, a folder name of where the modules are located, and a filter proc, return a path (or directory) and list of filtered files to be used later. Also, we have had articles on external functions/modules in January and February of 1990, but one on file format filters would also be nice.

• Dialog enhancements such as a preview picture.

• A great article or two on the in’s and out’s of the File Manager, Resource Manager, Finder information and MultiFinder information (such as proper use of the SCC ports).

• System 7 quirks, tips and discussions.

• 32-bit QuickDraw, animation (B&W/Color), sound.

• Networking/Groupware articles.

• Neat DEF’s.

And the list goes on and on.

So if you have an elegant solution to a problem, send it in. You’ll gain recognition and inspire others.

GUI Wars

XVT Software, Inc.

1800 30th St., Box 17665

Boulder, CO 80308

(303) 443-4223

One way to reach a bigger market for your product is to publish it on multiple platforms. This is called, “cross development”. This has been growing steadily for the past few years. Even on the Macintosh, there are different platforms such as A/UX to develope for.

The problem with cross development is differing machine architectures and user interfaces. You can reuse some of your code, but it is hard to separate the Mac Toolbox from your code; this makes it difficult to port your code over. You could go to the lowest level of character I/O (PLEASE DON’T!), but that is not why you got started on the Macintosh. You could even rewrite everything from scratch.

Another solution offers an elegant way to port your graphical program over to another windowing environment. Enter XVT, or the Extensible Virtual Toolkit, from XVT Software Inc. With XVT, you can obtain GUI portability. Now you can develope C/C++ code for THINK or MPW. Then, you take that same source over to your other platform environment and compile without a whole lot of changes.

There is a down side to this GUI solution. The first is the cost factor; each library for a particular platform costs about $800; to get the source it is around $5000; also a license is required for distribution. This price does include an annual technical support and update program.

The second problem and third problem are speed degradation and capability limitations. These problems are only natural. One would expect a slight slow down in execution speed because of the higher-level calls. Also, some features beyond the normal ones are not implemented due to the need for cross compatibility.

Still, these factors are probably not large when faced with the potential savings in time/resources and potential gains in new markets. I know now that AppMaker now generates code for XVT. This makes development time go down dramatically. Imagine using AppMaker to get the user interface down, and then generating code that is cross compatible. I imagine dollar signs.

 
AAPL
$524.94
Apple Inc.
+5.93
MSFT
$40.01
Microsoft Corpora
-0.39
GOOG
$536.10
Google Inc.
-20.44

MacTech Search:
Community Search:

Software Updates via MacUpdate

Mac DVDRipper Pro 4.1.7 - Copy, backup,...
Mac DVDRipper Pro is the DVD backup solution that lets you protect your DVDs from scratches, save your batteries by reading your movies from your hard disk, manage your collection with just a few... Read more
PDFpenPro 6.2 - Advanced PDF toolkit for...
PDFpenPro allows users to edit PDF's easily. Add text, images and signatures. Fill out PDF forms. Merge or split PDF documents. Reorder and delete pages. Even correct text and edit graphics! Create... Read more
PDFpen 6.2 - Edit and annotate PDFs with...
PDFpen allows users to easily edit PDF's. Add text, images and signatures. Fill out PDF forms. Merge or split PDF documents. Reorder and delete pages. Even correct text and edit graphics! Features... Read more
Monolingual 1.5.9 - Remove unwanted OS X...
Monolingual is a program for removing unnecesary language resources from OS X, in order to reclaim several hundred megabytes of disk space. It requires a 64-bit capable Intel-based Mac and at least... Read more
Maya 2015 - Professional 3D modeling and...
Maya is an award-winning software and powerful, integrated 3D modeling, animation, visual effects, and rendering solution. Because Maya is based on an open architecture, all your work can be scripted... Read more
Starcraft II: Wings of Liberty 1.1.1.180...
Download the patch by launching the Starcraft II game and downloading it through the Battle.net connection within the app. Starcraft II: Wings of Liberty is a strategy game played in real-time. You... Read more
Sibelius 7.5.0 - Music notation solution...
Sibelius is the world's best-selling music notation software for Mac. It is as intuitive to use as a pen, yet so powerful that it does most things in less than the blink of an eye. The demo includes... Read more
Typinator 5.9 - Speedy and reliable text...
Typinator turbo-charges your typing productivity. Type a little. Typinator does the rest. We've all faced projects that require repetitive typing tasks. With Typinator, you can store commonly used... Read more
MYStuff Pro 2.0.16 - Create inventories...
MYStuff Pro is the most flexible way to create detail-rich inventories for your home or small business. Add items to MYStuff by dragging and dropping existing information, uploading new images, or... Read more
TurboTax 2013.r17.002 - Manage your 2013...
TurboTax guides you through your tax return step by step, does all the calculations, and checks your return for errors and overlooked deductions. It lets you file your return electronically to get... Read more

Latest Forum Discussions

See All

Living Planet - Tiny Planet Videos and P...
Living Planet - Tiny Planet Videos and Photos 1.0 Device: iOS Universal Category: Photography Price: $.99, Version: 1.0 (iTunes) Description: 50% OFF LAUNCH SPECIAL! BUY NOW BEFORE THE PRICE GOES UP... | Read more »
Livescribe 3 Smartpen Review
Made by: Livescribe Price: $149.99 for Livescribe 3 Hardware/iOS Integration Rating: 4.5 out of 5 stars Usability Rating: 4 out of 5 stars Reuse Value Rating: 4.75 out of 5 stars Build Quality Rating: 4.5 out of 5 stars Overall Rating: 4.44 out of... | Read more »
Unpossible Review
Unpossible Review By Carter Dotson on April 17th, 2014 Our Rating: :: RALPH WIGGUM APPROVESUniversal App - Designed for iPhone and iPad Unpossible is much better than its English!   | Read more »
Hitman GO Review
Hitman GO Review By Carter Dotson on April 17th, 2014 Our Rating: :: GO HITMAN, GO!Universal App - Designed for iPhone and iPad Hitman GO is not the obvious way to do a mobile version of the Hitman series, but it’s an incredibly... | Read more »
Monster High Ghouls and Jewels is a Frea...
Monster High Ghouls and Jewels is a Freaky Fashion-Forward Match-3 Puzzler Posted by Rob Rich on April 17th, 2014 [ permalink ] | Read more »
Dinosaur Train A to Z Review
Dinosaur Train A to Z Review By Amy Solomon on April 17th, 2014 Our Rating: :: DINO DETAILSUniversal App - Designed for iPhone and iPad Dinosaur Train A to Z is an educational app about dinosaurs that includes In-App Purchases... | Read more »
Easter Comes to Junk Jack X – Bringing N...
Easter Comes to Junk Jack X – Bringing New Crafts, Chemistry, and More Posted by Rob Rich on April 17th, 2014 [ permalink ] Universal App - Designed for iPhone and iPad | Read more »
Call of Cookie Review
Call of Cookie Review By Jordan Minor on April 17th, 2014 Our Rating: :: COOKIE CRUMBLESUniversal App - Designed for iPhone and iPad Call of Cookie proves that plants aren’t the only fighting foods out there.   | Read more »
Corel Launches Video Editing App Pinnacl...
Corel Launches Video Editing App Pinnacle Studio for iPhone, Updates iPad Version for iOS 7 Posted by Tre Lawrence on April 17th, 2014 [ | Read more »
Bad Vamp Review
Bad Vamp Review By Jennifer Allen on April 17th, 2014 Our Rating: :: BASIC VAMPIRIC ADVENTURESUniversal App - Designed for iPhone and iPad Run or destroy the vampires in this simple, single-screen game that lacks real bite.   | Read more »

Price Scanner via MacPrices.net

Apple restocks refurbished Mac minis starting...
The Apple Store has restocked Apple Certified Refurbished Mac minis for up to $150 off the cost of new models. Apple’s one-year warranty is included with each mini, and shipping is free: - 2.5GHz Mac... Read more
Hyundai Brings Apple CarPlay To The 2015 Sona...
Hyundai Motor America has announced it will bring Apple CarPlay functionality to the 2015 Sonata. CarPlay is pitched as a smarter, safer and easier way to use iPhone in the car and gives iPhone users... Read more
Updated iPads Coming Sooner Than We Had Thoug...
MacRumors, cites KGI securities analyst Ming Chi Kuo, well-respected as an Apple product prognisticator, saying that Apple will introduce an upgraded iPad Air and iPad mini in 2014/Q3, meaning the... Read more
Toshiba Unveils New High And Low End Laptop M...
Toshiba has announced new laptop models covering both the high-end and low-end of the notebook computer spectrum. Toshiba 4K Ultra HD Laptop Toshiba’s new Satellite P55t features one of the world’s... Read more
Save up to $270 with Apple refurbished 13-inc...
The Apple Store has Apple Certified Refurbished October 2013 13″ Retina MacBook Pros available starting at $1099, with models up to $270 off MSRP. Apple’s one-year warranty is standard, and shipping... Read more
Apple now offering refurbished iPad mini with...
The Apple Store has Certified Refurbished 2nd generation iPad minis with Retina Displays now available starting at $339. Apple’s one-year warranty is included with each model, and shipping is free.... Read more
Microsoft Blinks – Drops Microsoft Office 365...
Microsoft has dropped the annual subscription fee for Microsoft Office 365 Personal – which is needed in order to create and edit documents in Microsoft Office for iPad. However, Apple’s iOS and OS X... Read more
New AVG Vault Apps for iOS and Android Help K...
AVG Technologies N.V. an online security company for 177 million active users, has announced the launch of its latest mobile application, AVG Vault. The free app introduces an innovative user... Read more
Free Local Carrot iPhone App Helps Find Fresh...
I love fresh vegetables. I’m not a vegan, although I was for several years in the 1980s, but fresh vegetables and other whole foods are still my dietary mainstays as a matter of taste rather than... Read more
CarSO Pro – Car Service and Finance Manager/O...
Lviv, Ukraine-based BM-Studios’ CarSO Pro is a tool to manage operations concerning your car. Never forget to change the oil or prolong the insurance for your car. Remember when you’ve done the car... Read more

Jobs Board

*Apple* Solutions Consultant (ASC) - Apple (...
**Job Summary** The ASC is an Apple employee who serves as an Apple brand ambassador and influencer in a Reseller's store. The ASC's role is to grow Apple Read more
*Apple* Retail - Manager - Holyoke - Apple I...
Job Summary Keeping an Apple Store thriving requires a diverse set of leadership skills, and as a Manager, you’re a master of them all. In the store’s fast-paced, Read more
*Apple* Retail - Manager - Apple (United Sta...
Job SummaryKeeping an Apple Store thriving requires a diverse set of leadership skills, and as a Manager, you're a master of them all. In the store's fast-paced, dynamic Read more
*Apple* Solutions Consultant (ASC) - Apple (...
**Job Summary** The ASC is an Apple employee who serves as an Apple brand ambassador and influencer in a Reseller's store. The ASC's role is to grow Apple Read more
*Apple* Retail - Market Leader - Cincinnati...
…challenges of developing individuals, building teams, and affecting growth across Apple Stores. You demonstrate successful leadership ability - focusing on excellence Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.