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.

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

Fantastical 2.3.6 - Create calendar even...
Fantastical 2 is the Mac calendar you'll actually enjoy using. Creating an event with Fantastical is quick, easy, and fun: Open Fantastical with a single click or keystroke Type in your event... Read more
Creative Kit 1.1 - $149.99
Creative Kit 2016--made exclusively for Mac users--is your ticket to the most amazing images you've ever created. With a variety of powerful tools at your fingertips, you'll not only repair and fine-... Read more
iMazing 2.2.3 - Complete iOS device mana...
iMazing (was DiskAid) is the ultimate iOS device manager with capabilities far beyond what iTunes offers. With iMazing and your iOS device (iPhone, iPad, or iPod), you can: Copy music to and from... Read more
Apple Configurator 2.4 - Configure and d...
Apple Configurator makes it easy to deploy iPad, iPhone, iPod touch, and Apple TV devices in your school or business. Use Apple Configurator to quickly configure large numbers of devices connected to... Read more
WhatRoute 2.0.18 - Geographically trace...
WhatRoute is designed to find the names of all the routers an IP packet passes through on its way from your Mac to a destination host. It also measures the round-trip time from your Mac to the router... Read more
Posterino 3.3.5 - Create posters, collag...
Posterino offers enhanced customization and flexibility including a variety of new, stylish templates featuring grids of identical or odd-sized image boxes. You can customize the size and shape of... Read more
Skim 1.4.28 - PDF reader and note-taker...
Skim is a PDF reader and note-taker for OS X. It is designed to help you read and annotate scientific papers in PDF, but is also great for viewing any PDF file. Skim includes many features and has a... Read more
Apple macOS Sierra 10.12.4 - The latest...
With Apple macOS Sierra, Siri makes its debut on Mac, with new features designed just for the desktop. Your Mac works with iCloud and your Apple devices in smart new ways, and intelligent... Read more
Apple Numbers 4.1 - Apple's spreads...
With Apple Numbers, sophisticated spreadsheets are just the start. The whole sheet is your canvas. Just add dramatic interactive charts, tables, and images that paint a revealing picture of your data... Read more
Xcode 8.3 - Integrated development envir...
Xcode includes everything developers need to create great applications for Mac, iPhone, iPad, and Apple Watch. Xcode provides developers a unified workflow for user interface design, coding, testing... Read more

Hearthstone celebrates the upcoming Jour...
Hearthstone gets a new expansion, Journey to Un'Goro, in a little over a week, and they'll be welcoming the Year of the Mammoth, the next season, at the same time. There's a lot to be excited about, so Blizzard is celebrating in kind. Players will... | Read more »
4 smart and stylish puzzle games like Ty...
TypeShift launched a little over a week ago, offering some puzzling new challenges for word nerds equipped with an iOS device. Created by Zach Gage, the mind behind Spelltower, TypeShift boasts, like its predecessor, a sleak design and some very... | Read more »
The best deals on the App Store this wee...
Deals, deals, deals. We're all about a good bargain here on 148Apps, and luckily this was another fine week in App Store discounts. There's a big board game sale happening right now, and a few fine indies are still discounted through the weekend.... | Read more »
The best new games we played this week
It's been quite the week, but now that all of that business is out of the way, it's time to hunker down with some of the excellent games that were released over the past few days. There's a fair few to help you relax in your down time or if you're... | Read more »
Orphan Black: The Game (Games)
Orphan Black: The Game 1.0 Device: iOS Universal Category: Games Price: $4.99, Version: 1.0 (iTunes) Description: Dive into a dark and twisted puzzle-adventure that retells the pivotal events of Orphan Black. | Read more »
The Elder Scrolls: Legends is now availa...
| Read more »
Ticket to Earth beginner's guide: H...
Robot Circus launched Ticket to Earth as part of the App Store's indie games event last week. If you're not quite digging the space operatics Mass Effect: Andromeda is serving up, you'll be pleased to know that there's a surprising alternative on... | Read more »
Leap to victory in Nexx Studios new plat...
You’re always a hop, skip, and a jump away from a fiery death in Temple Jump, a new platformer-cum-endless runner from Nexx Studio. It’s out now on both iOS and Android if you’re an adventurer seeking treasure in a crumbling, pixel-laden temple. | Read more »
Failbetter Games details changes coming...
Sunless Sea, Failbetter Games' dark and gloomy sea explorer, sets sail for the iPad tomorrow. Ahead of the game's launch, Failbetter took to Twitter to discuss what will be different in the mobile version of the game. Many of the changes make... | Read more »
Splish, splash! The Pokémon GO Water Fes...
Niantic is back with a new festival for dedicated Pokémon GO collectors. The Water Festival officially kicks off today at 1 P.M. PDT and runs through March 29. Magikarp, Squirtle, Totodile, and their assorted evolved forms will be appearing at... | Read more »

Price Scanner via MacPrices.net

Is A New 10.5-inch iPad Still Coming In April...
There was no sign or mention of a long-rumored and much anticipated 10.5-inch iPad Pro in Apple’s product announcements last week. The exciting iPad news was release of an upgraded iPad Air with a... Read more
T-Mobile’s Premium Device Protection Now Incl...
Good news for T-Mobile customers who love their iPhones and iPads. The “Un-carrier” has become the first national wireless company to give customers AppleCare Services at zero additional cost as part... Read more
FileWave Ensures Support for Latest Apple OS...
FileWave multi-platform device management providers announced support for Apple’s release yesterday of iOS 10.3, macOS Sierra 10.12.4, and tvOS 11.2. FileWave has a history of providing zero-day... Read more
Use Apple’s Education discount to save up to...
Purchase a new Mac or iPad using Apple’s Education Store and take up to $300 off MSRP. All teachers, students, and staff of any educational institution qualify for the discount. Shipping is free: -... Read more
Apple refurbished Apple Watches available sta...
Apple is now offering Certified Refurbished Series 1 and Series 2 Apple Watches for 14-16% off MSRP, starting at $229. An Apple one-year warranty is included with each watch. Shipping is free: Series... Read more
9-inch 32GB Space Gray iPad Pro on sale for $...
B&H Photo has the 9.7″ 32GB Space Gray Apple iPad Pro on sale for $549 for a limited time. Shipping is free, and B&H charges NY sales tax only. Their price is $50 off MSRP. Read more
13-inch MacBook Airs on sale for $100-$150 of...
B&H Photo has 13″ MacBook Airs on sale for up to $150 off MSRP. Shipping is free, and B&H charges NY sales tax only: - 13″ 1.6GHz/128GB MacBook Air (MMGF2LL/A): $899 $100 off MSRP - 13″ 1.... Read more
13-inch MacBook Airs, Apple refurbished, in s...
Apple has Certified Refurbished 2016 13″ MacBook Airs available starting at $849. An Apple one-year warranty is included with each MacBook, and shipping is free: - 13″ 1.6GHz/8GB/128GB MacBook Air: $... Read more
12-inch Retina MacBooks on sale for $1199, sa...
B&H has 12″ 1.1GHz Retina MacBooks on sale for $100 off MSRP. Shipping is free, and B&H charges NY sales tax only: - 12″ 1.1GHz Space Gray Retina MacBook: $1199 $100 off MSRP - 12″ 1.1GHz... Read more
Save up to $260 with Apple refurbished 12-inc...
Apple has Certified Refurbished 2016 12″ Retina MacBooks available for $200-$260 off MSRP. Apple will include a standard one-year warranty with each MacBook, and shipping is free. The following... Read more

Jobs Board

Fulltime aan de slag als shopmanager in een h...
Ben jij helemaal gek van Apple -producten en vind je het helemaal super om fulltime shopmanager te zijn in een jonge en hippe elektronicazaak? Wil jij werken in Read more
Desktop Analyst - *Apple* Products - Montef...
…technology to improve patient care. JOB RESPONSIBILITIES: Provide day-to-day support for Apple Hardware and Software in the environment based on the team's support Read more
*Apple* Mobile Master - Best Buy (United Sta...
**493168BR** **Job Title:** Apple Mobile Master **Location Number:** 000827-Denton-Store **Job Description:** **What does a Best Buy Apple Mobile Master do?** At Read more
Fulltime aan de slag als shopmanager in een h...
Ben jij helemaal gek van Apple -producten en vind je het helemaal super om fulltime shopmanager te zijn in een jonge en hippe elektronicazaak? Wil jij werken in Read more
*Apple* Mobile Master - Best Buy (United Sta...
**492889BR** **Job Title:** Apple Mobile Master **Location Number:** 000886-Norwalk-Store **Job Description:** **What does a Best Buy Apple Mobile Master do?** Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.