TweetFollow Us on Twitter

Jun 90 Letters
Volume Number:6
Issue Number:6
Column Tag:Letters

Parse Table Correction

By Kirk Chase, Editor, MacTutor

Parse Table Correction

Kirk Chase

MacTutor

Unfortunately, Clifford Story’s second part in his Language Translation Series was missing the parse table. Here it is for you now:

Dialogs, the easy way

Neil Ticktin

Truin Software

I was glad to see that dialogs are now getting some press. I wanted to make sure, though, that your readers connect dialogs with Extender DialogHandler™ by Invention Software. First, there is a review by David Kelly on DialogHandler in the January, 1990 issue of MacTutor.

In the April, 1990 article on extending modal dialogs, Paul Potts talks about default bold outlining, key equivalents and default items.

DialogHandler takes care of all of these things automatically for you. In your article on Messenger, you speak about placing dialogs, icons, multiple buttons, character equivalents, and adding filters. Again, DialogHandler takes care of all of these things as well -- all automatically. In short, DialogHandler handles push buttons, multiple sets of radio buttons, check boxes, counter items, icons and pictures with animation, display text items, pop-up menus, pull down menus, “pick lists” (list manager style), and string, integer, long integer, and real “flavors” of edit and static text. All number conversion, on-the-fly character filtering, cut/copy/paste support, and key equivalents are taken care of automatically.

DialogHandler now supports modeless dialogs. In addition, almost every item can have a “user hook” associated with it. In other words, if you want a push button to do something special, you can write a procedure to do that and pass a pointer to that procedure to DialogHandler. DialogHandler, in turn, will call your routine when the item is hit.

For example, take a simple dialog that asks for an integer between -100 and 100, has a bold outlined OK button, a Cancel button, on-the-fly character filtering (the user can’t enter a bad character), full cut/copy/paste support, range checking with alert and handling of the ok and cancel buttons. Using DialogHandler, you can write the support code for this dialog with 6 lines of code.

In summary, if you are doing dialogs, modal or modeless, you can do them in 5-10% of the time using Extender DialogHandler™ from Invention Software at 313-996-8108. It will pay for itself on the first dialog. As you already may know, MacTutor is also selling DialogHandler in the mail order store.

MultiFinder Detection

Ajay Nath

Oakland Gardens

Daniel Allens excellent book, “On Macintosh Programming: Advanced Techniques”, shows a quick way (on p. 160) to find out if MultiFinder is running. Simply examine the long word at $B7C which is called “Twitcher2”, if its less than 0 then MultiFinder isn’t running. I have a feeling that somebody at Apple didn’t read his book too carefully since I don’t think they’d want us to know this.

cdevShell

Charles Dyer

Jamaica, West Indies

I am writing about that cdevShell.p article in February, 1990 MacTutor. I finally got it all entered and tried to test it out, but then I found drumroll, please BUGS. Some of them were typos, but those were easily fixed. However, I still get the ever-popular ID=2 and ID=28 bombs even after I had corrected all of my spelling errors. So I used TMLPascal’s TMLPasRef utility to try to track who did what/where, and guess what: a lot of items are initialized but never used. In particular, the variables totalItems, p, c, tempD, and r in the procedure startupCdev are never used anywhere. It appears that a line or two may have been left off. And those were only the more obvious and easier to find examples. After I found them, I went through the source checking every case where PasRef said that a variable had been used once, and found several others. I also checked the .r file, and noted that there doesn’t seem to be a DLOG or an ALRT for DITL -15999.

Tracking would have been easier if only Mr. Hoddie hadn’t used so many cryptic variable names. I mean, in startupCdev the variable c is of type ControlHandle. A little further on, there is another c which is an INTEGER. Would it have been so difficult to use theControl and counter, respectively? The whole programme is peppered with single-character variables: e, i, j, p, r I haven’t seen so many single-character variables in one place since I stopped using BASIC on an Apple II. Variable names like dP, tempD, and rH don’t help either. It’s not so bad if the thing works right the first time, but

In the past, if I had a problem, when I translated a program over from Pascal to Modula-2 and things didn’t work, I wouldn’t know if it was because so obscure difference between Pascal and Modula-2 or if it was just that I did something wrong. Thanks to TML, if it doesn’t work and I can’t find any difference between my code and what’s in the magazine, I’d say something is wrong with the published code. In any case, I’ve gone through my code several times and cannot see where I’ve gone wrong. It might still be something I did, so I’ll try again, but in the meantime, I’d like to know if anyone else has had any problems with cdevShell.p.

I now use TML Pascal II, as SemperSoft seems to have bitten the dust. I would like to get another Modula-2 package, but no-one else seemed to have an MPW Modula-2 package available. Having shelled out all that cash for MPW in the first place, I am not going to give up on it without a fight. I’ll even get C-ugh-if I have to. Actually, what with UNITs and some of the other extensions, TML Pascal is almost Modula-2 anyway. The .o and executable files that TML makes are a little bigger than those made by SemperSoft Modula-2, but TML is faster and doesn’t give weird problems when you’re trying to build cdevs and INITs. The biggest problem so far has been the Show Icons LDEF demo program from the TML Source Code Library crashes and burns under MultiFinder. I haven’t gotten around to writing them about that yet.

[I have check the printed code against the original source code, and I could not see a line missing in startupCdev. I have had no complaints, other than yours, about cdevShell.p. I ask if anyone else has to write a letter to MacTutor. On the good side, Metrowerks has Modula-2 for MPW at $150. Their phone number in the USA is 514-458-2018; their FAX number is 514-458-2010.-ed]

MPW Pascal Compiler

Richard H. Winkler

Boulder, CO

We have discovered a bug in the MPW Pascal compiler which has remained constant from version 2.02 through version 3.1. The bug arises when the stack frame in a procedure exceeds 32k bytes in size. Two Pascal programs used to test this bug differ only in stack frame size, the program ‘lgstkfrmst’ had added to it a second array, z2: ARRAY[1..7000] OF REAL, which caused the stack frame to grow beyond 32k. As one would expect, the addressing strategy for all stack frame variables which are normally addressed indirect through A6 is altered such that A6 is moved to A0, the variable offset is added to A0, and the variable is then addressed indirect through A0. The assembly code produced from ‘lgstkfrmst’ produces an instruction:

;1

PEA$252A(A6)

which should in fact be the set of instructions:

;2

MOVEA.L A6,A0
ADDA.L  $FFFF252A, A0
PEA(A0)

This is a particularly unusual error in that the lower half of the address is correct. Had the compiler used proper (A6) addressing one would have expected something other than $252A. In particular one would have expected -$6D6C as in the assembly listing of ‘smstkfrmtstcd’, the smaller stack frame test code. This error is believed to occur following calls to transcendental function other than _LN.

As a historical note, let me add the following. I suspect that what is now the MPW Pascal compiler was originally developed by Silicon Valley Software for earlier 68000 based machines. In particular, I believe that this was the same Pascal compiler used for the ill fated IBM 9000 computers. I have worked extensively with 9000’s and base this conclusion on the fact that the manual included with version 2.02 of the MPW complier was word for word identical, down to the page breaks, with the Pascal manual supplied with the IBM 9000. With the 9000 compiler, we also had a compiler bug associated with the stack frame growing beyond 32k bytes. In particular there was a range of stack frame sizes from 32000 bytes to somewhere greater than 32768 bytes where the stack frame pointer, A6, was set point to the load point of the system library rather than to the stack frame when a subroutine was entered. This bug was fixed by IBM (Silicon Valley Software?) in version 2.0 of the compiler, but I find it an interesting coincidence that the MPW compiler has a bug which arises under similar circumstances surrounding the stack frame.

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

Tweetbot 2.5.3 - Popular Twitter client.
Tweetbot is a full-featured OS X Twitter client with a lot of personality. Whether it's the meticulously-crafted interface, sounds and animation, or features like multiple timelines and column views... Read more
Hopper Disassembler 4.2.19- - Binary dis...
Hopper Disassembler is a binary disassembler, decompiler, and debugger for 32- and 64-bit executables. It will let you disassemble any binary you want, and provide you all the information about its... Read more
Monosnap 3.4.0 - Versatile screenshot ut...
Monosnap lets you capture screenshots, share files, and record video and .gifs! Capture Capture full screen, just part of the screen, or a selected window Make your crop area pixel perfect with our... Read more
Duet 1.6.5.5 - Use your iPad as an exter...
Duet is the first app that allows you to use your iDevice as an extra display for your Mac using the Lightning or 30-pin cable. Note: This app requires a $14.99 iOS companion app. Version 1.6.5.5:... Read more
Hopper Disassembler 4.2.19- - Binary dis...
Hopper Disassembler is a binary disassembler, decompiler, and debugger for 32- and 64-bit executables. It will let you disassemble any binary you want, and provide you all the information about its... Read more
Duet 1.6.5.5 - Use your iPad as an exter...
Duet is the first app that allows you to use your iDevice as an extra display for your Mac using the Lightning or 30-pin cable. Note: This app requires a $14.99 iOS companion app. Version 1.6.5.5:... Read more
Monosnap 3.4.0 - Versatile screenshot ut...
Monosnap lets you capture screenshots, share files, and record video and .gifs! Capture Capture full screen, just part of the screen, or a selected window Make your crop area pixel perfect with our... Read more
Tweetbot 2.5.3 - Popular Twitter client.
Tweetbot is a full-featured OS X Twitter client with a lot of personality. Whether it's the meticulously-crafted interface, sounds and animation, or features like multiple timelines and column views... Read more
Default Folder X 5.1.6 - Enhances Open a...
Default Folder X attaches a toolbar to the right side of the Open and Save dialogs in any OS X-native application. The toolbar gives you fast access to various folders and commands. You just click on... Read more
Evernote 6.12.3 - Create searchable note...
Evernote allows you to easily capture information in any environment using whatever device or platform you find most convenient, and makes this information accessible and searchable at anytime, from... Read more

The best new games we played this week -...
It's pretty much been one big release after another. We were privy to a bunch of surprises this week, with a lot of games we'd been waiting for quite some time dropping unexpectedly. We hope you're free this weekend, because there is a lot for... | Read more »
Stormbound: Kingdom Wars guide - how to...
Stormbound: Kingdom Wars is an excellent new RTS turned card battler out now on iOS and Android. Lovers of strategy will get a lot of enjoyment out of Stormbound's chess-like mechanics, and it's cardbased units are perfect for anyone who loves the... | Read more »
The best AR apps and games on iOS right...
iOS 11 has officially launched, and with it comes Apple's ARKit, a helpful framework that makes it easier than ever for developers to create mobile AR experiences. To celebrate the occassion, we're featuring some of the best AR apps and games on... | Read more »
Phoenix Wright: Ace Attorney - Spirit of...
Phoenix Wright: Ace Attorney - Spirit of Justice 1.00.00 Device: iOS Universal Category: Games Price: $.99, Version: 1.00.00 (iTunes) Description: ************************************************※IMPORTANT※・Please read the “When... | Read more »
Kpressor (Utilities)
Kpressor 1.0.0 Device: iOS Universal Category: Utilities Price: $4.99, Version: 1.0.0 (iTunes) Description: The ultimate ZIP compression application for iPhone and iPad. - Full integration of iOS 11 with support for multitasking.-... | Read more »
Find out how you can save £35 and win a...
Nothing raises excitement like a good competition, and we’re thrilled to announce our latest contest. We’ll be sending one lucky reader and a friend to the Summoners War World Arena Championship at Le Comedia in Paris on October 7th. It’s the... | Read more »
Another Lost Phone: Laura's Story...
Another Lost Phone: Laura's Story 1.0 Device: iOS Universal Category: Games Price: $2.99, Version: 1.0 (iTunes) Description: Another Lost Phone is a game about exploring the social life of a young woman whose phone you have just... | Read more »
The Witness (Games)
The Witness 1.0 Device: iOS Universal Category: Games Price: $9.99, Version: 1.0 (iTunes) Description: You wake up, alone, on a strange island full of puzzles that will challenge and surprise you. You don't remember who you are, and... | Read more »
Egg, Inc. guide - how to build your gold...
Egg, Inc.'s been around for some time now, but don't you believe for one second that this quirky clicker game has gone out of style. The game keeps popping up on Reddit and other community forums thanks to the outlandish gameplay (plus, the... | Read more »
The best deals on the App Store this wee...
Good news, everyone! Your favorite day of the week has arrived at last -- it's discount roundup day! This fine Wednesday evening we're gathering up the hottest deals on the App Store. We've got action platformers, we've got puzzle games, we've got... | Read more »

Price Scanner via MacPrices.net

Looking for a 2017 12″ Retina MacBook? Save $...
Apple has Certified Refurbished 2017 12″ Retina MacBooks available for $200-$240 off the cost of new models. Apple will include a standard one-year warranty with each MacBook, and shipping is free.... Read more
Apple Offering Up To $455 Credit Toward iPhon...
iPhone 8 and 8 Plus are now available at the Apple Store, and you can receive up to $375 credit toward a new iPhone purchase when you trade in your eligible smartphone. Photo Courtesy Apple Just... Read more
AnyTrans Offers iOS Users Three Ways For Movi...
iMobie Inc. today announceed AnyTrans v6.0.1, which now can help iOS users move all data to iPhone 8/8 Plus seamlessly. The software is available both on Mac and Windows and fully able to move all... Read more
Snag a 13-inch 2.3GHz MacBook Pro for $100 of...
B&H Photo has 2017 13″ 2.3GHz MacBook Pros in stock today and on sale for $100 off MSRP, each including free shipping plus NY & NJ sales tax only: – 13-inch 2.3GHz/128GB Space Gray MacBook... Read more
Verizon offers new iPhone 8 for $100-$300 off...
Verizon is offering the new iPhone 8 for up to $300 off MSRP with an eligible trade-in: • $300 off: iPhone 6S/6S Plus/7/7 Plus, Google Pixel XL, LG G6, Moto Z2 Force, Samsung Galaxy S7/S7 edge/S8/S8... Read more
Apple Refurbished 2017 13-inch MacBook Pros a...
Apple has Certified Refurbished 2017 13″ Touch Bar MacBook Pros in stock today and available for $200-$300 off MSRP. A standard Apple one-year warranty is included with each MacBook, and shipping is... Read more
OWC USB-C Travel Dock with 5 Ports Connectivi...
OWC have announced the new OWC USB-C Travel Dock, the latest addition to their line of connectivity solutions. The USB-C Travel Dock lets you connect its integrated USB-C cable to a Mac or PC laptop... Read more
Pelican Products, Inc. Unveils Cases For All...
Pelican Products, Inc. has announced the launch of its full line of cases including Voyager, Adventurer, Protector, Ambassador, Interceptor (for the Apple iPhone 8 and 8 Plus backwards compatible... Read more
$100 off new 2017 13-inch MacBook Airs
B&H Photo has 2017 13″ MacBook Airs on sale today for $100 off MSRP including free shipping. B&H charges NY & NJ sales tax only: – 13″ 1.8GHz/128GB MacBook Air (MQD32LL/A): $899, $100 off... Read more
Apple restocks Certified Refurbished 13-inch...
Apple has Certified Refurbished 2015 13″ MacBook Airs available starting at $719 and 2016 models available starting at $809. An Apple one-year warranty is included with each MacBook, and shipping is... Read more

Jobs Board

Instructional Designer, *Apple* Product Doc...
Job Summary The Apple Product Documentation team is looking for an instructional designer or a video editor to write user documentation for its professional video Read more
*Apple* Retail - Multiple Positions - Apple,...
Job Description: Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
Development Operations and Site Reliability E...
Development Operations and Site Reliability Engineer, Apple Payment Gateway Job Number: 57572631 Santa Clara Valley, California, United States Posted: Jul. 27, 2017 Read more
Specialist - Retail Customer Services and Sal...
The position listed below is not with Tennessee Interviews but with Apple , Inc. Tennessee Interviews is a private organization that works in collaboration with Read more
Specialist - Retail Customer Services and Sal...
The position listed below is not with South Carolina Interviews but with Apple , Inc. South Carolina Interviews is a private organization that works in collaboration Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.