TweetFollow Us on Twitter

Feb 96 Factory Floor
Volume Number:12
Issue Number:2
Column Tag:From The Factory Floor

From the Factory Floor

A monthly column of assorted news, interviews, and technical information from Metrowerks.

By Dave Mark

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

In last month’s issue, we introduced a brand new column with little in the way of explanation. Here’s the skinny. At Neil’s persistent urging, the folks at Metrowerks asked me to put together a regular monthly column, but with no particular agenda. For example, last month’s column was a Java interview with Greg Galanos, Metrowerks’ President and CEO. This month, we’ll go through a pile of Metrowerks tech support questions and answers. Got any ideas? Any interviews you’d like to see? As always, your feedback is most welcome. Check out page 2 of the magazine for contact information.

The questions were provided by Stephen Chong, Khurram Quereshi, and the folks at Metrowerks tech support. I did a little bit of editing just to clean up the questions but I tried to keep with the spirit of the original question. Since not everyone wants their name up in lights, I didn’t include names with the questions.

Top Ten Tech Support Questions

Q: My program makes extensive use of SIOUX for console i/o, and I frequently generate more than 32K worth of output in the console window. I’ve noticed that when I scroll down to the bottom of my console window, I occasionally end up with garbage in the window and sometimes the window stops scrolling. Any ideas?

A: Our SIOUX output window can only handle 32k of output at a time, and after you send it more than that, results are unpredictable. The solution is to either redirect stdout to a file (via the ccommand() function/dialog in console.h) or change the printfs to fprintfs and write to a file.

Q: How can I use the debugger for debugging MPW tools and how can I specify command-line arguments when I am debugging?

A: Currently, our debugger doesn’t support debugging MPW tools. One option is to build your tool as an application that uses the ccommand() function to take its command-line arguments and I/O redirection. Once it is debugged, you would change the project type back to MPW tool, swap ANSI libraries, and remove the ccommand call. Another option is to purchase Steve Jasik’s The Debugger, which can debug 68K MPW tools, and possibly PPC ones.

Q: In the following code snippet, the scope of the variable i inside the for-loop doesn’t conform to the ARM when I compile using the CodeWarrior C++ compiler. Why is that?

 void scopeOfVars()
 {
 long a = 0;
 if (a)
 for (long i = 0; i < 12; ++i)
 a = i;
 else
 for (long i = 0; i < 12; ++i)
 a = i + 1;
 }

A: The scope of the index is just within the for-loop; this agrees with the draft ANSI Standard for C++ which is what CodeWarrior follows. If you instead want to force ARM conformance, which allows the index to live outside the for-loop, you can do this by checking the ARM Conformance checkbox in the C/C++ Language Preferences panel.

Q: I have two source code files I am linking together. One is written in C and one in Pascal. Here’s the Pascal source code, from source file Foo.p:

 unit Foo;
 interface

 var
 myGlobalVariable : Integer;

 implementation

 end.

Here’s the C source code:

 extern short myGlobalVariable;

 void main(void)
 {
 myGlobalVariable++;
 }

When I compile and link these files using CodeWarrior I get a linker error complaining that myGlobalVariable referenced from main is undefined. What gives?

A: You will need to do either (but not both) of the following to make your code link:

• In the Pascal source, enclose the variable declaration with the compiler directive {$J+} and {$J-}. The $J directive controls the case conversion of global identifiers when building object files.

or

• Use all uppercase in the variable name in your C source code.

Q: I just upgraded to CW7 and I’m having problems getting a CW6 Pascal 68K project to link under CW7. When I recompile my code, I got the following linker errors:

 Link Error : StrOp.c 'memchr' referenced 
 from '__POSITION__' is undefined.
 Link Error : MWP.Stub.lib: '%_X2STR' referenced
 from 'NUM2STR' is undefined.
 Link Error : MWP.Stub.lib: 'STR2DEC' referenced
 from 'STR2NUM' is undefined.

A: Under CW7, the IDE is now integrated, allowing Pascal and C to use the same set of ANSI C libraries. You’ll need to make sure these libraries have been added to your project. To find out all the libraries needed for a typical 68k project in CW7, you might want to create a new project using the MacOS 68k Pascal.µ project stationery, then compare your new project to your old project.

Q: In CW6, I used the libraries P/ANS.68K.lib and SetLib.Lib (A5). What are the CW7 equivalents?

A: Neither of these libraries are needed under CW7.

Q: I have a simple ANSI C console-based program I wrote on the Mac and that I am trying to get working under Windows ’95. The program works just fine under MacOS but I can’t get it to build using the Win32/x86 environment. I am using the Win32s libraries as used in the CW7 Win32/x86 tutorial but I can’t get my project to link sucessfully.

A: Inside the (Project Stationery) folder is a folder called Additional Project Stationery. Drag the Win32 Console application stationery from there into the (Project Stationery) folder. Next, create a new project using the Win32 Console app stationery. The binary created from there should run without problems under Windows95. I just tried it with Hello World and it ran fine on my Win95 machine.

Q: Is there a way to “Import” the template I made in version 1 of Constructor into version 2 of Constructor?

A: Unfortunately, Constructor 1 and 2 are completely different programs (literally), and they use a different mechanism for custom types. Right now it isn’t possible to import 1.0.1 templates into 2.0.

Q: How can I get a SIOUX-based program to quit without pausing when the program ends or without waiting for the user to select Quit from the File menu?

A: Try this: #include the file <SIOUX.h>, then add the following code at the beginning of main():

 SIOUXSettings.autocloseonquit = true;
 SIOUXSettings.asktosaveonclose = false;

Q: I’m trying to debug a code resource. However, after I set a breakpoint at the beginning of the resource and then run the application that calls this resource, I never drop into the debugger. What’s happening?

A: Under CW7, you can debug only 68K code resources. Debugging PPC code resources will be available in CW8 (contact tech support to request a beta). If you are debugging a code resource under CW7, carefully follow the instructions in the Debugger manual on debugging code resources. Here is the basic procedure:

After creating the .SYM file for the code resource, change its name (to anything). Double-click on it, and then (since the name no longer corresponds to any executable), the debugger will ask you for the name of the executable to look at. Give it the name of the executable you’ve created that contains this resource. You can now set breakpoints. Next, leaving the .SYM window open, double-click on the application itself and control should be transferred to the Debugger. Let us know if this sequence of steps doesn’t work. (In that case it might be necessary for us to look at a copy of the project in order to diagnose the problem.)

 
AAPL
$96.02
Apple Inc.
-2.13
MSFT
$43.34
Microsoft Corpora
-0.24
GOOG
$573.60
Google Inc.
-13.82

MacTech Search:
Community Search:

Software Updates via MacUpdate

Ember 1.8 - Versatile digital scrapbook....
Ember (formerly LittleSnapper) is your digital scrapbook of things that inspire you: websites, photos, apps or other things. Just drag in images that you want to keep, organize them into relevant... Read more
OmniPlan 2.3.6 - Robust project manageme...
With OmniPlan, you can create logical, manageable project plans with Gantt charts, schedules, summaries, milestones, and critical paths. Break down the tasks needed to make your project a success,... Read more
Command-C 1.1.1 - Clipboard sharing tool...
Command-C is a revolutionary app which makes easy to share your clipboard between iOS and OS X using your local WiFi network, even if the app is not currently opened. Copy anything (text, pictures,... Read more
Knock 1.1.7 - Unlock your Mac by knockin...
Knock is a faster, safer way to sign in. You keep your iPhone with you all the time. Now you can use it as a password. You never have to open the app -- just knock on your phone twice, even when it's... Read more
Mellel 3.3.6 - 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
LibreOffice 4.3.0.4 - Free Open Source o...
LibreOffice is an office suite (word processor, spreadsheet, presentations, drawing tool) compatible with other major office suites. The Document Foundation is coordinating development and... Read more
Freeway Pro 7.0 - Drag-and-drop Web desi...
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
Drive Genius 3.2.4 - Powerful system uti...
Drive Genius is an OS X utility designed to provide unsurpassed storage management. Featuring an easy-to-use interface, Drive Genius is packed with powerful tools such as a drive optimizer, a... Read more
Vitamin-R 2.15 - Personal productivity t...
Vitamin-R creates the optimal conditions for your brain to work at its best by structuring your work into short bursts of distraction-free, highly focused activity alternating with opportunities for... Read more
Toast Titanium 12.0 - The ultimate media...
Toast Titanium goes way beyond the very basic burning in the Mac OS and iLife software, and sets the standard for burning CDs, DVDs, and now Blu-ray discs on the Mac. Create superior sounding audio... Read more

Latest Forum Discussions

See All

Puzzle Roo Review
Puzzle Roo Review By Jennifer Allen on July 31st, 2014 Our Rating: :: PUZZLE-BASED TWISTUniversal App - Designed for iPhone and iPad A different take on the usual block dropping puzzle game, Puzzle Roo is quite pleasant.   | Read more »
Super Crossfire Re-Release Super Crossfi...
Super Crossfire Re-Release Super Crossfighter Coming Soon, Other Radiangames Titles Go 50% Off Posted by Ellis Spice on July 31st, 2014 [ | Read more »
Hexiled Review
Hexiled Review By Rob Thomas on July 31st, 2014 Our Rating: :: HEX SELLSUniversal App - Designed for iPhone and iPad In space, no one can hear you… spell? Hexiled is a neat concept for a word scramble puzzle, but it doesn’t go too... | Read more »
Despicable Me: Minion Rush is One Year O...
Despicable Me: Minion Rush is One Year Old, Gets its Biggest Update Yet Posted by Jennifer Allen on July 31st, 2014 [ permalink ] Universal App - Designed for iPhone and iPad | Read more »
Plants vs. Zombies 2 Enters the Second H...
Plants vs. Zombies 2 Enters the Second Half of the Dark Ages Posted by Ellis Spice on July 31st, 2014 [ permalink ] Universal App - Designed for iPhone and iPad | Read more »
Why Does It Spin? (Games)
Why Does It Spin? 1.0 Device: iOS Universal Category: Games Price: $2.99, Version: 1.0 (iTunes) Description: THERE'S ONLY ONE RULE: DON'T TOUCH THE WALLS! Do you think you're able to follow this simple rule even if you would have to... | Read more »
Ice Wings Plus (Games)
Ice Wings Plus 1.0 Device: iOS Universal Category: Games Price: $1.99, Version: 1.0 (iTunes) Description: THE GREAT ENDLESS RUNNER OF COMBAT JETS IS BACK !! With more than 680.000 downloads in the App Store, Ice Wings: Skies of Steel... | Read more »
Murl the Squirrel (Games)
Murl the Squirrel 1.0 Device: iOS Universal Category: Games Price: $.99, Version: 1.0 (iTunes) Description: Meet Murl. He is teased by a group of flying squirrels because he can't fly. Determined to show them he's can fly, he meets... | Read more »
Celleste (Games)
Celleste 0.1 Device: iOS Universal Category: Games Price: $2.99, Version: 0.1 (iTunes) Description: Lots of cute action with amazing 3D graphics and a new type of gameplay! Take control over the forces of the universe to help a group... | Read more »
Super Heavy Sword (Games)
Super Heavy Sword 0.0.1 Device: iOS Universal Category: Games Price: $.99, Version: 0.0.1 (iTunes) Description: Get Ready to Get HEAVY! Monster Robot Studios presents SUPER Heavy Sword! The sequel to the smash hit HEAVY sword which... | Read more »

Price Scanner via MacPrices.net

Save up to $130 on an iPad mini with Apple re...
The Apple Store has Certified Refurbished 2nd generation iPad minis with Retina Displays available for up to $130 off the cost of new models, starting at $339. Apple’s one-year warranty is included... Read more
iPad Cannibalization Threat “Overblown”
Seeking Alpha’s Kevin Greenhalgh observes that while many commentators think Apple’s forthcoming 5.5-inch panel iPhone 6 will cannibalize iPad sales, in his estimation, these concerns are being... Read more
Primate Labs Releases July 2014 MacBook Pro P...
Primate Labs’ John Poole has posted Geekbench 3 results for most of the new MacBook Pro models that Apple released on Tuesday. Poole observes that overall performance improvements for the new MacBook... Read more
Apple Re-Releases Bugfixed MacBook Air EFI Fi...
Apple has posted a bugfixed version EFI Firmware Update 2.9 a for MacBook Air (Mid 2011) models. The update addresses an issue where systems may take longer to wake from sleep than expected, and... Read more
Save $50 on the 2.5GHz Mac mini, plus free sh...
B&H Photo has the 2.5GHz Mac mini on sale for $549.99 including free shipping. That’s $50 off MSRP, and B&H will also include a free copy of Parallels Desktop software. NY sales tax only. Read more
Save up to $140 on an iPad Air with Apple ref...
Apple is offering Certified Refurbished iPad Airs for up to $140 off MSRP. Apple’s one-year warranty is included with each model, and shipping is free. Stock tends to come and go with some of these... Read more
$250 price drop on leftover 15-inch Retina Ma...
B&H Photo has dropped prices on 2013 15″ Retina MacBook Pros by $250 off original MSRP. Shipping is free, and B&H charges NY sales tax only: - 15″ 2.3GHz Retina MacBook Pro: $2249, $250 off... Read more
More iPad Upgrade Musings – The ‘Book Mystiqu...
Much discussed recently, what with Apple reporting iPad sales shrinkage over two consecutive quarters, is that it had apparently been widely assumed that tablet users would follow a two-year hardware... Read more
13-inch 2.5GHz MacBook Pro on sale for $999,...
Best Buy has the 13″ 2.5GHz MacBook Pro available for $999.99 on their online store. Choose free shipping or free instant local store pickup (if available). Their price is $100 off MSRP. Price is... Read more
Save up to $300 on an iMac with Apple refurbi...
The Apple Store has Apple Certified Refurbished iMacs available for up to $300 off the cost of new models. Apple’s one-year warranty is standard, and shipping is free. These are the best prices on... Read more

Jobs Board

Sr. Product Leader, *Apple* Store Apps - Ap...
**Job Summary** Imagine what you could do here. At Apple , great ideas have a way of becoming great products, services, and customer experiences very quickly. Bring Read more
Sr Software Lead Engineer, *Apple* Online S...
Sr Software Lead Engineer, Apple Online Store Publishing Systems Keywords: Company: Apple Job Code: E3PCAK8MgYYkw Location (City or ZIP): Santa Clara Status: Full Read more
Sr Software Lead Engineer, *Apple* Online S...
Sr Software Lead Engineer, Apple Online Store Publishing Systems Keywords: Company: Apple Job Code: E3PCAK8MgYYkw Location (City or ZIP): Santa Clara Status: Full 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
Sr. Product Leader, *Apple* Store Apps - Ap...
**Job Summary** Imagine what you could do here. At Apple , great ideas have a way of becoming great products, services, and customer experiences very quickly. Bring Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.