TweetFollow Us on Twitter

Jul 90 Mousehole
Volume Number:6
Issue Number:7
Column Tag:Mousehole Report

Mac IIfx and MacApp

By Larry Nedry, Mousehole BBS

From: Dhands

Re: MacII vs MacIIfx

I had the opportunity to compare a Mac II and a Mac IIfx on MPW compile/link times and here are the results. The command executed was a complete rebuild of 5 MacApp examples repeated 5 times, average total time in seconds.

MABuild -make -e “{MAExamples}Calc:Calc”

MABuild -make -e “{MAExamples}Cards:Cards”

MABuild -make -e “{MAExamples}DemoDialogs:DemoDialogs”

MABuild -make -e “{MAExamples}DemoText:DemoText”

MABuild -make -e “{MAExamples}Nothing:Nothing”

RAM Cache | Mac II | Mac IIfx | II:IIfx
Off | 1495 | 870 | 1:1.7
512k | 842 | 374 | 1:2.25

I was sort of surprised that the IIfx was “only” 2.25 times faster (in this test) than the II. I was expecting at least 3x based on Apples press and other reviews. This is a narrow view of the IIfx speed, but to a software developer the compile/link time is an important bench mark.

Both Macs were running Multifinder 6.1, System 6.0.5, MPW 3.1, 2 meg. MPW partition.

From: Nobutoge

Re: MacII vs MacIIfx

Interesting. It may be because MPW takes a lot of disk I/Os to get compile/link done and those I/O periods basically remain the same whether you are on the II or IIfx [I don’t know... this is just my guess. I mean that the IIfx may be fast on the I/O processing but the time to get to right sectors on the disk would remain the same.]

From: John Hestenes [Mousehole: Johnh;Compuserve: 76216,1540]

Re: Console/tty for MPW C++/C

I need information to obtain or build a console or tty window and keyboard interface in C code to support STDIN,STDOUT and STDERR streams and CIN, COUT and CERR in applications (not within MPW as a tool). I am using a Mac IIcx, 4MB RAM, 40MB disk, System 6.0.4, MPW C++, C and assembler. The standard MPW manuals appear to omit needed information to do this. This interface is needed for teaching university students (Drexel University, PA) C++ from the standard C++ books so the code may be compiled also on UNIX and IBM-compatible systems. I am aware of “console” implementations in THINK C and other Mac compilers. Were is it for MPW? Any help is appreciated!

From: Atom

Re: console/tty for MPW C/C++?

Language Systems has a nice console window for their MPW Fortran compiler that could be used. It’s scrollable and editable and there are documented routines to send text to and from it from any MPW language. To use it in C++ you would create a custom streambuf class, make its overflow and underflow methods call the LS code, and assign the standard C++ streams to instances of it. I hope this helps.

From: Noisy

Re: Mystery globals & Macsbug

If you can’t get something to work...see how someone else did it. This works fine until I decided to peer into the guts of MacsBug to try and determine how to implement a breakpoint in ROM. While Nosying around, I discovered a rather interesting phenomenon: there are no CODE resources (or recognizable object code as ANY resource) in the MacsBug file. Hacking at the boot code revealed that a low ram global ($120) the Nosy titled ‘MacJmp’ got bashed around a lot during MacsBug installation. Any sages out there able to identify this beasty and how MacsBug interacts with the rest of the world?

From: Mrteague

Re: Mystery globals & Macsbug

I too learn by hacking other people’s work. Although at one time I probably reverse engineered MacsBug and System Boot up, I have forgotten some of it. But I can tell you the way *I expect* MacsBug interacts with the rest of the world. It all revolves around the idea of exceptions on the 680x0 family, and the associated exception (interrupt) vectors that are stored in low memory (I think $100 on). Normally the ROM vectors them to the System Error trap - like if you don’t have MacsBug installed, and you get an Address error, you will be greeted with the bomb box with ID = 2. However if MacsBug is present in your System Folder on bootup, the bootup code loads the data fork of MacsBug (that’s why you don’t see any CODE resources etc, if you having been looking with ResEdit) into high memory (where BufPtr points to, and subsequently the value of BufPtr is set to below MacsBug for other uses), and patches the interrupt vectors to point to MacsBug entry point(s), and probably MacJmp as well (I haven’t bothered worrying about that particular interaction). Now when you get an address error, you will dropped into MacsBug. MacJmp is probably used when tracing or single-stepping through code among other things. The newer versions of MacsBug are much more sophisticated than earlier versions, in that they have user callable routines to do things like get data from a user, and display data to the user - so there is probably some kind of jump table in MacsBug for the various common routines.

Among more interesting things, I think MacsBug keeps a checksum on itself, so it can if it ever gets corrupted (I’m sure you have seen some of the infamous “MacsBug caused an exception” type of msgs). I tried patching MacsBug 6.x once, to allow use of alternate keyboard chars rather than up/down arrow of the ADB

From: Cforden

Re: 2 questions re: Memory Mgmt.

1. Is there any disadvantage to calling MaxApplZone() at the beginning of a program? It seems like it would be very handy to always know how much memory was actually available. If MaxApplZone() is not called first, then FreeMem() seems to not report any memory that would automatically be added to the application heap if needed.

2. Is there any nice way to detect a failure of the segment loader to load a CODE segment (due to, for example, an out-of-memory condition)? I presume such an occurrence would likely result in something ungraceful happening, like a system crash. The only way I can think of doing something about this is to call GetResource(‘CODE’, xxx) before any subroutine call that might not get loaded successfully and check for a NIL handle. However, that approach would get tedious if used often.

From: Mrteague

Re: 2 questions re: Memory Mgmt.

1) The only disadvantages to calling MaxApplZone at the beginning of your program I can think of - if you wanted to reduce the size of the current heap zone by say modifying BufPtr or the stack size sometime in your program (you should do these first before MaxApplZone), and there would be no room to do this, if the zone was extended to it’s fullest first. Or things like DAs etc. that wanted their own heap couldn’t do it. Probably less of a problem now with MultiFinder and newer System software.

2) The only way I can think of trapping failure of the segment loader to load a CODE segment etc, would be to patch the System Error handler, to trap the System error #25 or #26 (I think) calls - but you are probably dicing with death at this point. If your program is written well enough at the start, and has the segmentation in sensible places etc, then you SHOULD NOT have a problem with Out of Memory conditions that the user can do anything about (i.e. if your program requires more memory than the user has, there are not many options open to him/her and your program).

From: Atom

Re: MacApp 2.0B9 and C++

I am interested in MacApp and would like to know if I need MPW Pascal to be able to use MacApp 2.0B9. I get different and confusing answers from APDA depending on who I talk to. I have MPW 3.1, the Interfaces & Libraries, and C++ 3.1B1 but not the Pascal compiler.

From: Lecroy

Re: MacApp 2.0B9 and C++

You’ll need either MPW Pascal *OR* the latest version of THINK Pascal. The MPW compiler will work “out of the box”, THINK Pascal has a source converter that reformats the MacApp code to THINK “standards”.

We use MPW here and are pretty happy with it (I’m not referring to compile/link speed...which is fairly unbearable). From what I’ve seen on AppleLink regarding THINK, everyone seems to be pretty happy with it, although a few people have run into some minor problems...

From: Atom

Re: MacApp 2.0B9 and C++

Thanks for your reply. I decided to spring for the THINK upgrade anyway, it seemed like a good environment in which to learn MacApp -- I like to tinker a lot, and MPW C++’s slow turnarounds were driving me crazy (even with relatively short header files). Just out of curiosity, why the need for the Pascal compiler? Does MacApp come in source form only, or (as one APDA operator told me) is there some sort of incompatibility between MacApp 2.0B9 and C++?

From: Lecroy

Re: MacApp 2.0B9 and C++

I assumed you were talking about Pascal when you asked about MacApp. MacApp does come with source and object files, so theoretically you don’t need the Pascal compiler, but..... I wouldn’t want to do without it, especially if you are going to be using MacApp 2.0b9. The last change list I got for 2.0b9 -> final contained 5 pages of single spaced changes, many of which were bug fixes. So you want to have the Pascal compiler in order to fix any bugs you come across. There are also a few places in MacApp that we have needed to change directly in the source code (the base behavior of some objects wasn’t quite what *we* thought it should be).

I feel awkward speaking negatively about MacApp, so I should mention that we have been extremely happy with it. Even MacApp with problems is better than having to deal with all of the programming problems application features that MacApp has already taken care of.

As far as incompatibility between C++ & MacApp 2.0b9, I’m not really sure. I know that I’ve seen a few problems mentioned on AppleLink, but they all seemed to get resolved sooner or later. If you have an AppleLink account, I highly recommend taking a look at the MacApp.Tech$ group address. You can get just about any MacApp related question taken care of there.

I’m not sure, though, if THINK C works with MacApp, someone correct me if I’m wrong.

From: Btoback

Re: MacApp 2.0B9 and C++ Help

I have been trying to get a C++ version of the “nothing” application to work with MacApp and the original MacApp C++ headers. I fixed several problems that shouldn’t have been there: types Byte and VHSelect were not defined anywhere; I stuck them into one of the MacApp header files.

Now the program compiles correctly, but immediately drops into the debugger with a diagnostic that says that a class name can’t be found. This is coming from RegisterStdType, which calls a routine that looks up the class name in a table. How do I get my class name into the table?

Who is supposed to construct the table? Pascal? Me? The linker? HyperCard? I must be missing something.

From: Atom

Re: MacApp 2.0 -- worth the cost?

Well, my THINK Pascal 3.0 upgrade came in late Friday (a week early!) so I decided to put in my order for MacApp 2.0B9 today, and guess what? 2.0 beta isn’t available anymore and they’re taking orders for 2.0 final. Great, I thought, until they told me how much it would cost. $125 you say, maybe $150? Guess again. Apple’s raised the price on MacApp 2.0 from $100 to $275. No, that’s not a typo. They’ve almost tripled the price.

From: Siegel

Re: MacApp 2.0 -- worth the cost?

If you’ve never used a class library before, why not start with the TCL, and then if you decide you want MacApp, you can upgrade later, and in the meantime save your pennies to help pay for it.

From: Thomas

Re: Serial Port Reset on the Portable

I’m porting some software to the Macintosh Portable which writes directly to the SCC chip. The program works fine on all other Mac platforms except the Portable and the IIfx. I’ve heard rumors that all I need to do on the portable is wakeup the serial port (reset the SCC chip?). Does anyone out there know anything about this?

From: Ears

Re: Serial Port Reset on the Portable

Why do you need to write to the SCC chip. This is a sure way to make your program break on future CPUs. Unless you really need to it would be better to stay within Apple’s guidelines for future compatibility.

From: Mrteague

Re: Serial Port Reset on the Portable

I would have to agree with the other reply - you are asking with trouble writing directly to the SCC chip. If the application/driver whatever you are modifying doesn’t require that extra special need for accessing the hardware directly, then I would suggest you take THIS opportunity to modify the code to NOT access the SCC chip directly. But if you must, the usual reason for direct SCC not working is the I/O addresses are in different places on different Macs.

It will be even harder to do on the IIfx and newer machines. The Serial Driver for the Portable does do things with the Power Manager, which you will need to do, and it won’t only be “waking up” the SCC.

From: Atom

Re: Mouse-moved events

Does anyone know if there’s a minimum time that Multifinder waits before returning with a mouse-moved event? In other words, if you set the mouse region but the mouse has moved out of it before you next call WaitNextEvent, will Multifinder return immediately or give background tasks a chance before doing so? The reason I ask is that I noticed some strange behavior while playing with the TCL TinyEdit demo that comes with THINK Pascal 3.0. If you quickly move the mouse into the edit pane from outside the active window there is often a noticeable delay before the cursor changes to an I-beam. For this to happen you have to cross the part of the scroll pane that’s outside the edit pane. At first I thought the mouse region was being set up wrong but WNE *is* returning with a mouse-moved event, it’s just taking its time doing it. I know this is a minor problem but it’s made me curious.

From: Malam

Re: Patching traps

Hi, I am looking for source code examples on how to patch traps in an INIT. Specifically, I’d like to trap GetResource and ExitToShell. I need to track application launches and quits.

A while back there was an INIT that beeped upon launch and quit, but it was written in FORTH, something that I have absolutely no idea on what to do with.

From: Johncasey

Re: Hiding the menu bar

I am trying to write a slide show/presentation program. Does anyone know how to remove the menubar from the main screen under Multifinder? I also may want to write a little screen saver, but I can’t seem to find a “HideMenuBar” command!

From: Johncasey

Re: Full File Pathnames - HELP!

How can you translate the information returned by SFGetFile into a full pathname (ie. HD:System Folder:System)? I am working on some libraries that will allow a user to write software that will run on many different computers. I don’t want to rewrite all the stdio routines for the other machines just because the Mac uses a reference number instead of a pathname. If anyone has any suggestions please respond. Thanks!

From: Johncasey

Re: PICT File Spooling

Does anyone have a the source code to a PICT file viewer using the PICT file spooling example from Inside Mac Volume V? I would prefer a C version (if possible). Thanks!

From: Arlen

Re: Kilroy

Anybody know where the PICT Kilroy comes from? I was sleuthing through a friend’s Mac the other day and found the PICT resource of the cute little bugger peeking over a wall in his system file. I’ve seen it before, but not very often and not in every Mac. Who puts him there, anyway? Is he a virus (doubtful, as none of my tools react to him) or is he a calling card left by some DA/CDEV/INIT author?

I haven’t found anything wrong about having him around, but I’m curious.

From: Tomt

Re: Kilroy

I think the pict could be from Virus Detective.

From: Craig

Re: DB Engines

Mac Oracle has a Hypercard front end that is worth checking out. It suffers only from the speed of Hypercard. The latest version includes info on getting the thing to work with Supercard as well. The real problem is Oracle, multi-user access - Phoee (sp? :-)). The suggested solution was SQLNet running on a microvax. The response to AppleTalk was fear.

Single user use though is OK, the need to develop in a HLL such as C or Pascal is a bit of a bummer as it really slows development down.

From: Walrus

Re: WDEF virus

Well, I’m in the midst of cleaning up my system after discovering this virus (a message had come up on this board a couple months ago about it) I wanted to upload an INIT that has helped in the mopping up.

This is the first infection I’ve contracted and fortunately it is relatively benign. I didn’t even suspect a problem until I was trying to fix a Stuffed file on a disk and found some odd strings in the Desktop file -- stuff like “WDEF” “WDEFvirus” and that is when I remembered something about a new virus that hides as a WDEF resource. Disinfectant 1.7 works well in finding it and giving some background, but 2 INITs are good for automatic treatment. Both work automatically when a disk is inserted (which is when it spreads from disk to disk. It is not an executable program-spreading type of virus), but they are a little different. Eradicate’em is a little smaller and only beeps when it finds it’s prey and kills it. GateKeeper Aid gives you a dialog box telling you what the heck is going on. If you don’t think you have a problem, you probably want GA so that YOU will know when something is amiss. If you know you’ve got a problem (like me), you might just use Eradicate’em so that it does it without bothering you. And they both work under Multifinder.

I’m not sure where I got this, I almost never have a disk that was in someone else’s drive. Oh well, at least I bagged one of the suckers to be examined (or rather, Nosied) later.

BEWARE, Y’ALL

From: Venture

Re: Moon Phases

I seem to remember that “Numerical Recipes In C” had the formula for calculating every Friday the 13 which occurred on a full moon (just as an example of how to write the code). If true, that should give you the basis of the algorithm.

Numerical R.. (however you spell it) should be available in any respectable college bookstore or library. Try page 12 or thereabouts.

From: Chuckerp

Re: PopUpFuncs

For what it’s worth, I have never had any problems with the PopUpFuncs INIT, or any other mysterious problems after installing it. Have lots of RAM, lots of INITS.

From: Derek

Re: Mac II Monitor Problem

My Mac II is a few years old now and now one out of every ten times I turn on my Mac II the monitor stays off. I don’t hear a relay click so I know the relay is not turning on. Anyone know where I can get the relay from? And also exactly where it is located?

From: Fortune

Re: Mac Plus Accelerator

While at MacWorld I decided that I really need to do something to bring my Mac Plus up to date. I currently have 4MB of memory and an 80MB disk, so the logical improvements are an accelerator (and later, a larger display). The accelerator that most impressed me at the show was the Gemini board from Total Systems. This was a 16Mhz 68030 with 4 SIMM slots that could be addressed via a 32 bit wide data path (faster than trying to get to the motherboard memory they say). In addition, there is a socket for the math co-processor, a fast SCSI port (Mac II speed they said), and an SE compatible slot (great for when I finally ad the monitor). They also include a aux power supply and a fan. Total price was $1095.00 (till the end of this month). The big question: Has anyone had any experience/contact/ESP/etc. with this company or their accelerators? The package sounds pretty good on the face of it. If you don’t have any information on this accelerator, what other would you recommend? Dove Marathon 030? Radius? Thanks (in advance) for the help!

From: Billco

Re: PBDirCreate

Ok, how does one create a new folder? my call to PBDirCreate always returns DupFNErr.

From: Ronyd

Re: using the list manager for pallettes

I have created a scrollable palette with icons . The only problem is that the pallette is displayed without the scroll bars. I passed a value of TRUE fore the hscroll arg in LNew. Is there anything else that has to be done in order to get scroll bars?

From: Noisy

Re: using the list manager for pallettes

Did you remember to leave space for the Scrollbar(s) on the right and bottom side? IM-IV page261 reminds you that the scroll bar will be drawn OUTSIDE the rectangle specified. If this doesn’t solve your mystery, let me know...

From: Ronyd

Re: using the list manager for pallettes

Does this mean that I must allocate the exact number of pixels? When my pallette is displayed, the icons are displayed, and white space indicates that the space is allocated. I’ll check my code again. Any other ideas? thank for responding.

From: Harcoke

Re: appleshare bug ??

Anyways I found the solution, it is a simple typo in IM V 393. the bottom arrow should point both ways and all you have to do then is add this simple line LoginInfo.ioNamePtr := nil and it works without a single hickup (is that what you say over there ?).

From: Rguerra

Re: Hiding Res Maps/RAM cache

A couple of questions:

1) Is anyone familiar with the technique of “hiding” a files resource map behind the System Resource Map? In other words, the resource map is left open and easily accessible from patch code, for example. Probably the best examples of this technique are MasterJuggler and Suitcase which leave their files plus the online DA’s, Fonts, FKEY’s, sounds open for instant access.

Does anyone know what might be involved in implementing this scheme? Moving the handle to the resource map of one’s own file behind the System’s is no problem. Before I go patching up various Resource Manager routines does anyone know of any mega-pitfalls or “must handle” cases? I’d appreciate any advice on this.

2) Is there a way to determine not only whether the Apple RAM cache is active but also how much memory has been allocated to it?

From: Rguerra

Re: Standard FIle question

Does anyone have a reliable technique for differentiating files vs. folders that are selected in a standard file dialog AT HOOK TIME? At hook time, the reply record is partially filled in, but how can one differentiate between files and folders if you do not know the filetype of displayed files? I’d like the “Open” button’s title to toggle between different strings according to what is selected at a particular moment. Thanks!

From: Mward

Re: Fastback II Fails to Restore

I love Diskfit, but I *need* to be able to backup by selected folder. After getting fed up with Fastback, I went back to Redux. It’s not wonderful, but it works.

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

Latest Forum Discussions

See All

Top Mobile Game Discounts
Every day, we pick out a curated list of the best mobile discounts on the App Store and post them here. This list won't be comprehensive, but it every game on it is recommended. Feel free to check out the coverage we did on them in the links... | Read more »
Price of Glory unleashes its 1.4 Alpha u...
As much as we all probably dislike Maths as a subject, we do have to hand it to geometry for giving us the good old Hexgrid, home of some of the best strategy games. One such example, Price of Glory, has dropped its 1.4 Alpha update, stocked full... | Read more »
The SLC 2025 kicks off this month to cro...
Ever since the Solo Leveling: Arise Championship 2025 was announced, I have been looking forward to it. The promotional clip they released a month or two back showed crowds going absolutely nuts for the previous competitions, so imagine the... | Read more »
Dive into some early Magicpunk fun as Cr...
Excellent news for fans of steampunk and magic; the Precursor Test for Magicpunk MMORPG Crystal of Atlan opens today. This rather fancy way of saying beta test will remain open until March 5th and is available for PC - boo - and Android devices -... | Read more »
Prepare to get your mind melted as Evang...
If you are a fan of sci-fi shooters and incredibly weird, mind-bending anime series, then you are in for a treat, as Goddess of Victory: Nikke is gearing up for its second collaboration with Evangelion. We were also treated to an upcoming... | Read more »
Square Enix gives with one hand and slap...
We have something of a mixed bag coming over from Square Enix HQ today. Two of their mobile games are revelling in life with new events keeping them alive, whilst another has been thrown onto the ever-growing discard pile Square is building. I... | Read more »
Let the world burn as you have some fest...
It is time to leave the world burning once again as you take a much-needed break from that whole “hero” lark and enjoy some celebrations in Genshin Impact. Version 5.4, Moonlight Amidst Dreams, will see you in Inazuma to attend the Mikawa Flower... | Read more »
Full Moon Over the Abyssal Sea lands on...
Aether Gazer has announced its latest major update, and it is one of the loveliest event names I have ever heard. Full Moon Over the Abyssal Sea is an amazing name, and it comes loaded with two side stories, a new S-grade Modifier, and some fancy... | Read more »
Open your own eatery for all the forest...
Very important question; when you read the title Zoo Restaurant, do you also immediately think of running a restaurant in which you cook Zoo animals as the course? I will just assume yes. Anyway, come June 23rd we will all be able to start up our... | Read more »
Crystal of Atlan opens registration for...
Nuverse was prominently featured in the last month for all the wrong reasons with the USA TikTok debacle, but now it is putting all that behind it and preparing for the Crystal of Atlan beta test. Taking place between February 18th and March 5th,... | Read more »

Price Scanner via MacPrices.net

AT&T is offering a 65% discount on the ne...
AT&T is offering the new iPhone 16e for up to 65% off their monthly finance fee with 36-months of service. No trade-in is required. Discount is applied via monthly bill credits over the 36 month... Read more
Use this code to get a free iPhone 13 at Visi...
For a limited time, use code SWEETDEAL to get a free 128GB iPhone 13 Visible, Verizon’s low-cost wireless cell service, Visible. Deal is valid when you purchase the Visible+ annual plan. Free... Read more
M4 Mac minis on sale for $50-$80 off MSRP at...
B&H Photo has M4 Mac minis in stock and on sale right now for $50 to $80 off Apple’s MSRP, each including free 1-2 day shipping to most US addresses: – M4 Mac mini (16GB/256GB): $549, $50 off... Read more
Buy an iPhone 16 at Boost Mobile and get one...
Boost Mobile, an MVNO using AT&T and T-Mobile’s networks, is offering one year of free Unlimited service with the purchase of any iPhone 16. Purchase the iPhone at standard MSRP, and then choose... Read more
Get an iPhone 15 for only $299 at Boost Mobil...
Boost Mobile, an MVNO using AT&T and T-Mobile’s networks, is offering the 128GB iPhone 15 for $299.99 including service with their Unlimited Premium plan (50GB of premium data, $60/month), or $20... Read more
Unreal Mobile is offering $100 off any new iP...
Unreal Mobile, an MVNO using AT&T and T-Mobile’s networks, is offering a $100 discount on any new iPhone with service. This includes new iPhone 16 models as well as iPhone 15, 14, 13, and SE... Read more
Apple drops prices on clearance iPhone 14 mod...
With today’s introduction of the new iPhone 16e, Apple has discontinued the iPhone 14, 14 Pro, and SE. In response, Apple has dropped prices on unlocked, Certified Refurbished, iPhone 14 models to a... Read more
B&H has 16-inch M4 Max MacBook Pros on sa...
B&H Photo is offering a $360-$410 discount on new 16-inch MacBook Pros with M4 Max CPUs right now. B&H offers free 1-2 day shipping to most US addresses: – 16″ M4 Max MacBook Pro (36GB/1TB/... Read more
Amazon is offering a $100 discount on the M4...
Amazon has the M4 Pro Mac mini discounted $100 off MSRP right now. Shipping is free. Their price is the lowest currently available for this popular mini: – Mac mini M4 Pro (24GB/512GB): $1299, $100... Read more
B&H continues to offer $150-$220 discount...
B&H Photo has 14-inch M4 MacBook Pros on sale for $150-$220 off MSRP. B&H offers free 1-2 day shipping to most US addresses: – 14″ M4 MacBook Pro (16GB/512GB): $1449, $150 off MSRP – 14″ M4... Read more

Jobs Board

All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.