TweetFollow Us on Twitter

Jun 88 Mousehole
Volume Number:4
Issue Number:6
Column Tag:Mousehole Report

Scores Virus

By Rusty Hodge, SysOp , MouseHole BBS

Changes at the Mousehole: Rusty Hodge, Sys Op

MouseHole is now runing on an AT&T 3B1 Unix machine. It supports up to 8 simultaneous users, a mostly unlimited number of accounts, and access to the Unix UUCP and UseNet networks. What does this mean to you? No longer will new users get the annoying message, “Sorry, the system is full. Please try registering again in a few weeks.” Additionally, the system will be much easier to get through to at peak hours. Registration is a little bit different. When you call (714) 921-2252, you may have to hit return once or twice in order for the system to recognize the speed at which you are calling. When you get the login: prompt, type “hole”. At this point, you will get the BBS Login: prompt to which you should answer “none”. Follow the prompts and you will be assigned a login identifier. Hope to see you soon.

From: ericj (Eric Johansen)

Subject: Tops and Mac II

It’s not that the Tops Spooler doesn’t work with the II. It does. It just doesn’t work with the current version of Apple’s Laser driver, Ver.5.0. If you want the spooler to work, use the same system and finder that you’re using but use Ver. 4.0 of the Laserwriter driver and Laser prep file. They work fine with System 4.2 and Finder 6.0. How well these older drivers work with Multifinder I don’t know. Also, according to the Tops tech support people, a large number of 3rd party spoolers aren’t working with Apple’s Laserwriter 5.0. Supposedly both Tops and Apple are working to resolve the problem. We’ll see.

From: jvsossian (James Von Schmacht)

Subject: Re: Current Laserwriter version

Current version is 5.1 (for LaserWriter II’s) and reportedly has some of the spool problems fixed. Driver is available on MHDL.

From: adail (Alan Dail)

Subject: MicroSoft

Did anyone notice that Bill Gates said in the April issue of Byte that MicroSoft is planning to add Object Oriented Programming extensions to their languages. He goes on to claim that this is a MicroSoft innovation that is necesary to develop today’s complex applications and that the Macintosh people have yet to discover Object Oriented Programming. I guess he has never heard of MPW with Object Assembly Language and Object Pascal and MacApp. It’s no wonder MicroSoft is being sued by Apple. Next thing you know, MicroSoft will add AppleTalk to OS/2 and claim that they invented it.

From: adail (Alan Dail)

Subject: Scores Virus Got Me!

I have aquired a virus on my system that seems to replicate itself on all of my applications. It creates files called Desktop and Score in the system folder. It causes MPW to not find the Worksheet file and may do other things. Has anyone come across this virus and does anyone know how to get rid of it?

From: lnedry (Larry Nedry)

Subject: Scores virus Effects

This virus creates an invisible file call Scores. This is an RDEV resource which executes at boot time similar to an INIT resource. Another file is created called Desktop which is an INIT resource. The Scores virus also attaches itself to the Scrapbook File and Note Pad File. If they don’t exist they are created. These files need to be deleted. Also the virus attaches itself into the System file and every application that you run. The best way to get rid of this virus is to throw away the System Folder and replace it with a new one. The Vaccine INIT by Don Brown of CE software will notify you when this virus trys to add CODE resources to your applications. You can also use the Aask INIT to prevent the INITs from being executed while you are trying to rid your disks of this virus. I am writing an application this weekend to hopefully terminate this virus from your system. When it is completed I will post info about it here and upload it to MouseHole Download. [This virus has been well reported in the press in MacWeek and Macintosh Today as the ‘Scores’ virus. It is dangerous so watch out. It was originally written to attack two internal programs at EDS in Texas and is said to be rampant in the Dallas area. Larry was quoted in the April 26th edition of MacWeek extensively about this virus and his Ferret program which detects it. -Ed]

From: maxr (Max Rochlin)

Subject: Scores Virus Symptoms

The presence of the virus in the Macintosh memory does causes several symptoms, which have caused losses of data. These symptoms include difficulty running MacDraw, difficulty printing from any applications (especially MacDraw), difficulty using the “Set Startup” option, difficulty running Excel, corruption of Excel files, and frequent crashes when starting applications. This virus has existed since at last February, 1988, and may have been around as early as September, 1987.

It is possible to determine if this virus has infected your Macintosh with the following procedure:

1) Open the System Folder of the Macintosh and locate the “Note Pad File” and “Scrapbook File”.

2) Examine the icons used on these files and check that they resemble the small Macintoshes seen on the “System” and Finder” icons. If they do not, and instead resemble the standard Macintosh document icon (an upright piece of paper with the upper right corner folded forward), you are probably infected.

3) To verify infection, execute ResEdit or some other utility which can see “invisible” files. Examine the System Folder.

4) If the System Folder contains two invisible files named “Desktop” and “Scores”, you are definitely infected.

The virus transmits itself from Macintosh to Macintosh by invading a standard executable application file on a contaminated Macintosh. When this contaminated application is copied to a “sterile” Macintosh, the virus attacks the new system by making these changes to the System Folder:

• Three INIT resources are added to the “System” file. If the files “Note Pad File” and “Scrapbook File” do not exist in the System Folder, they are created. The type and creator fields of the “Note Pad File” are changed from “ZSYS” and “MACS” to “INIT” and “ZSYS”, respectively, and an INIT resource is added to the file. The type and creator fields of the “Scrapbook File” are changed from “ZSYS” and “MACS” to “RDEV” and “ZSYS”, respectively, and an INIT resource is added to the file.

• Two new invisible files are added to the system folder named “Desktop” and “Scores”, each with an atpl, DATA and INIT resource.

Note that, unlike the MacMag virus, no “nVIR” resources are used anywhere. The modified files, “Note Pad” and “Scrapbook”, still appear to function normally with the Note Pad and Scrapbook Desk Accessories, and any existing contents of the file’s Data Fork are not disturbed.

As each application is attacked, the virus installs a new CODE resource into the application. The identification of this new resource is variable, depending upon the existing resources within the application. The virus looks for the first available CODE resource slot, then places the new resource one position above that. For example, HyperCard contains CODE resources 0 through 20, leaving an ID of 21 as the first available resource ID. The virus placed the new CODE resource in the application as CODE ID=22.

The second step of the infection of the application is the modification of the CODE ID=0 resource of the application. The virus modifies the eleventh word of this resource, which is the start of the application’s jump table. Where the application would normally jump to the CODE ID=1 segment, the virus modifies this pointer to refer to the new CODE resource that has just been installed.

Note that the eleventh word has been changed from “0001” to “0016”, which points to the new CODE ID=22 resource (hex 16 = decimal 22). Also note that during our examination of suspected applications, we found that at least one compiler - LightSpeed C, I think - normally places non-”0001" values in the eleventh word of the CODE ID=0 resource. To verify infection if the eleventh word is not “0001”, check to see that the tenth word is NOT “4EED” and that the eleventh word points to another CODE resource. If both of these are true, then the application is infected.

The new CODE resource is a copy of the virus code, is of size 7026, and is executed when the infected application is invoked. When the virus completes execution, it returns to the invoked application, which appears to proceed normally. The first sixteen words of the virus are:

    0000 0001 xxxx 3F3C 0001 A9F0 4EBA 002E 204D D0FC 0020 43FA FFEC 
20D9 2091 204D     ... 

The third word of the virus code is variable, and appears to be based on the return address used when the execution of the virus is completed. The virus further modifies the code of the application in a manner which has not been fully deciphered.

If your Macintosh is infected, the contaminated system files and applications must be completely removed from the Macintosh, and new ORIGINAL copies should be installed. When removing the virus from the Macintosh system files, you cannot just go in with ResEdit and delete the offensive INIT resources - this virus is apparently intelligent enough to recognize this attempt, and modifies it’s resource identification and memory location when probed by resource utilities. ResEdit “thinks” that the virus resources have been deleted, but they have been renamed and will return when the Macintosh is restarted. The system must be sterilized by:

1) Examine EVERY application (including any in the System Folder, and on EVERY diskette you may have) you have with ResEdit, and check if a new CODE resource has been added and if the CODE ID=0 resource has been modified to refer to the new CODE. This is the most tedious part of the process, and will probably take quite a bit of time.

2) Using ResEdit, open the infected System Folder and locate the “Desktop” file. Select the file and use the “Get Info” option on the “File” menu. When the file information window opens, turn off the “Invisible” bit, then close the window and save the file information. Do the same for the “Scores” file.

3) Locate a sterile system diskette (preferably one of the “System Tools” diskettes from Apple), LOCK IT, and boot from it.

4) Throw away the following files from the infected System Folder: “System”, “Finder”, “MultiFinder”, “Desktop”, “Scores”, “Scrapbook File”, and “Note Pad File”. Once these files are in the Trash Can, EMPTY THE TRASH IMMEDIATELY! Note: this is the minimum required to remove the System portion of the virus - my personal preference is to delete the ENTIRE System Folder, not just the suspect files in it.

5) Locate all of the applications which you listed in Step 1. Throw them away, and empty the Trash Can.

6) Shut down the Macintosh, and turn the power off. Wait at least 30 seconds for memory to clear before rebooting again from the sterile diskette (this may not really be necessary, but better safe than sorry).

7) Reinstall the Macintosh operating system from the System Tools diskette to your Macintosh.

8) Locate your original copies of the deleted applications software. Before reinstalling the applications, examine each one with ResEdit to be sure that it is sterile. If there is no problem, reinstall the application.

A word of warning:

The Vaccine CDEV which is currently appearing on bulletin boards is only marginally useful in fighting this virus - if your system is already infected when you install Vaccine, you will not get any warning from Vaccine that the virus exists. If you have Vaccine installed on a sterile system, and this virus is introduced at a later time, Vaccine will only warn you of the virus attack, but will not prevent infection.

From: lnedry (Larry Nedry)

Subject: Scores virus Update

The previous description of the Scores virus is not entirely accurate. There are also a ‘DATA’ resource -4000 and a ‘atpl’ resource 128 that need to be removed. If you attempt to remove the virus and are unsuccessful it will modify itself and the previous instructions will no longer work.

From: isoemac (Devin King)

Subject: System 6.0b2

I have encountered a problem with RamDisk+ 2.05 and the new beta System 6.0b. Simply put, it doesn’t work. I receive an error stating that there was an “Unexpected Error”. I will have to wait for the release to report it to the programmer of RamDisk+. I have been using RamDisk+ because it works beautifully with MultiFinder. [Apple announced at the recent Developer Conference that a new system file version 6.0 would be forthcoming and available both electronically and packaged as a system update product. It includes a number of enhancements and bug fixes and we encourage everyone to migrate to it as soon as it is released. -Ed]

From: the_cloud (Ken McLeod)

Subject: Easter Egg!

There is a nifty “hidden feature” in the MacPaint 2.0 about box. Hold down the space bar and the tab key while selecting “About MacPaint...” and voila! something interesting is revealed... Maybe this is how computer viruses spread! [There ought to be a law against programs with hidden option key features. Paint is one of the worse! -Ed]

From: davidr (David F. Reynolds)

Subject: No RAM

RAM will get you through times of no money better than money will get you through times of no RAM. [I’ve been waiting since Febuary for my RAM from Apple. How about you? -Ed]

From: pcoffin (Patrick Coffin)

Subject: Spoolers

Thanks for the reply about the spoolers. Let me get a little more specific though. I am using a Mac II with 4megs of Ram & the LaserWriter & Quark Express. Quark says that their new version “2.0” will solve the problem, which is that you cannot print more than one document at a time using either Tops Spooler or LaserSpool or Apple’s Spooler. Also, if the document is complex in any way it just locks up the system on the first try.

From: rdclark (Richard Clark)

Subject: New Technical BBS

There’s a new Macintosh Programming BBS available on the West Coast. The board is still unnamed, but you can reach it at 714/731-1039 from 6pm-8am M-F and all day on Saturday and Sunday. 300/1200 baud. BTW -- it’s “written” in HyperCard!

From: wildman (Randy Saunders)

Subject: MacroMaker bug??

I just downloaded the 1.0b9 version of MacroMaker from MHDL. It seems pretty neat, much better than Tempo, but it did something wierd.

With MacroMaker in my System folder trying to print a MacDraw file causes an illegal instruction trap into MacsBug. Moving it out fixes the problem. I have: a) reloaded MacDraw 1.9.6 from my master disk; b) reloaded the Imagewriter driver (ver 2.6 4/17) from its disk; c) Throughly checked for viruses and found no unwanted visitors in my system. I am running System 4.2 and MultiFinder 1.0. I also have a number of other INITs, such as MFMenu, CPS Save Deletes, Front&Center, and of course Macsbug. Throwing out other guys does not fix the problem, although I did not try all the permutations. Is this a MacDraw 1.9.6 bug? (Other programs can print with MacroMaker installed) Is this a MacroMaker bug? If so, what could it possibly be doing to bust Imagewriter printing from MacDraw only?

From: jvsossian (James Von Schmacht)

Subject: Re: MacroMaker bug??

I had the same problem printing in SuperPaint and VersaTerm. Nuked the puppy clean off my disk, and then reinstalled IW driver AND System.

From: the_cloud (Ken McLeod)

Subject: System 6.0

Just how close is this to being official stuff? I understand it was covered in last week’s MacWeek, but I didn’t see it. There are supposed to be a raft of new cdev’s that incorporate functions of Tempo, QuicKeys, inLarge, etc. Oh yes, and a new version of MultiFinder, too. Anyone know the details? Is this going to be accompanied by the usual “sorry, your application will now break...” notices? Disclaimer: this information will not necessarily assist me in reaping vast corporate profits for Apple Computer, Inc. *grin*

From: rdclark (Richard Clark)

Subject: System 6

Well, for what it’s worth -- we’re developers and haven’t seen it yet (and Apple does tend to get new system SW to the developers a bit early (so that we get the unpleasant surprises instead of you -- or, at least, that’s how it’s supposed to work.) There has to be *something* new in the works as the invitations for the Spring Developer’s conference mention (in the description of the “Macintosh OS” course) “Interprocess Communications”, which apparently is not supported in the present MultiFinder. [IPC is being added to system 7.0. It will not be available in 6.0. -Ed]

From: powerhopeful (Power Hopeful)

Subject: A/UX and other complaints

[This post is an edited summary of two posts concerning Apple and A/UX. -Ed]

I resent the fact that Apple seems to becoming more and more interested only in big business or in big developers who can write software that sells lots of Macs. The individual programmer or technical user is being ignored, both by Apple, and by Apple’s inept dealer network, most of whom barely know how to turn on the machine, much less help the technically oriented consumer. If you don’t fit into Apple’s definition of a certified developer, you are treated as a second class citizen. This is especially true in the area of A/UX, which Apple is offering in very limited and expensive package bundles, the cheapest of which is $3500 retail and more typically, $5000 as a disk drive upgrade. Presently, Apple seems to have no plan for dealing with A/UX customers who are not tied to a large corporation or University or who are developers.

I at one time owned an IBM computer, registered with that company as a single individual. IBM is routinely put down for every conceivable reason, but my experience with them was quite positive. They made any and all technical information freely available to me in a most timely and convenient manner. I was shown this courtesy despite the clear fact that I would make no contribution to their profit margin. (ie I was not a ‘certified’ or any other kind of offical developer!) When I see all the stuff available for programmers of other computers (in InfoWorld, etc.), I’m not surprised that these other environments are more attractive to many people. The sustained challenge is one in which the answers can be easily found, not one in which the availability of information is related to some grandiose idea of how it should be used. People lose interest when their work is a constant obstacle course. At least this has been the case for me and some others I’ve talked with.

My last point concerns A/UX and the Mac II. For me the appeal and delight of that machine went beyond large screens and slots to the guts of the thing. Indeed, the 68020 and PMMU were emphasized by Apple in their Mac II marketing. But why? In the present OS the abilities of these advanced chips are irrelevant since none of their really unique and powerful features are even accessed. People are enamored of the ever newer version of whatever, but in this case it is a surface yearning only. The Mac II makes no use of the 68020’s real strengths - separate and enforced user/supervisor modes, virtual memory/machine capabilites, etc. Though the cache may speed things up, so would just a faster 68000. I can see no use or need for the 68020 in the Mac II as is. The PMMU is similarly useless. It has absolutely no function in the Mac II, and if you try to give it one, you will have a frozen machine. Even Macsbug has no way of handling PMMU errors.

So we have the Mac II, the advanced machine with the promise of advanced Macintosh computing. This promise, used as a marketing strategy by Apple to sell Mac II’s, is in fact an empty promise. Or, that is, unless you want to pay $5000 for

A/UX and its associated hardware. Apple sold the machine as a promise it will - oh, excuse me - cost you an additional five grand to realize. This additional expense is expected to be incurred easily by business, something which may or may not be true. But for an individual it’s outrageous and insulting.

So now take my point about what else $5000 could buy. Add the idea about the availability of information resulting in attractive and challenging environments for programmers. If you see the scenario of people taking that money and spending it for a system where technical information is complete and easy to get, you have raised a possibility that entered my mind on contemplating having to spend an additional $5000 just to make my Mac II able to utilize the potential I bought it for. This conclusion is inevitable. And there are many factors that individuals will consider when deciding whether it is really worth their while to stick with their Macs. For me the attitude of Apple toward its individual customers is high on the list - I have never been happy with the way Apple hordes and guards its information from those who are JUST interested. They have created another elite by pricing A/UX hideously expensive without a care in the world about it. These actions are arrogant.

[Since you feel that way, I guess I better not tell you that version 1.0 of A/UX does not print or use Appletalk! They are still working on that. However, you can hook your LaserWriter up as a serial device, and use a PC kludge from Adobe that allows Unix machines to talk to postscript machines! Apple is committed to the Unix market, but they have a way to go to get the Mac friendly capabilities we all love into the A/UX product.

The other problem of how to price and sell A/UX stems more from some giant holes in Apple’s product line. They don’t have a reliable tape product, so they have no way to distribute A/UX! Hence the bundling with a disk drive. But note that Apple also does not have a disk product suitable for A/UX either, since an 80 meg drive only leaves about 20 megs of useable disk space even after you take off the unnecessary libraries! A/UX is painfully showing the missing pieces in Apple’s product line, namely high density disk drives and high density, reliable tape subsystems. -Ed]

From: adail (Alan Dail)

Subject: Re: A/UX and other complaints

I think you are being a little hard on Apple. By my calculations, A/UX is almost free, you just have to have the hardware that it needs to run. Unix just happens to require a lot of hardware. Apple has A/UX bundles that don’t require that you buy the PMMU and RAM if you already have them. As far as 020/851 support in the Mac OS, you can be sure that Apple is working on those in future versions of MultiFinder. It is not available yet for a couple of reasons. First, the 851 is expensive and hard to get. Also, software takes longer to develop than hardware. Apple mentions the PMMU as future capabilities for the Mac II, not current. It wasn’t even offered by Apple when the Mac II was first released. Also, as a programmer, I would not trade the tools available to me on the Mac for the tools of any other computer in the world. I don’t know how you have decided that other computers offer better programming environments. I have long felt that the Mac has the best programming tools of any computer.

From: mikesteiner (Mike Steiner)

Subject: STR Resource help

I’m almost to embarrassed to ask this question, because I’m sure the answer is so simple, but I can’t figure it out. How do you change a ‘STR ‘ resource from within a program? I can read the resource, place it in a editable field in a dialog, but I can’t figure out how to write the change back to the resource file.

From: rdclark (Richard Clark)

Subject: Adding (and changing) resources

Mike, Take a look at Scott Knaster’s Book “How to Write Macintosh Software”. However, if you don’t have a copy handy, I’ll summarize what you need to do:

1) (This isn’t in the book). Take a look at the STR# format, and notice that it contains an integer (the number of strings) followed by a set of Pascal-format strings (strings with a length byte in position 0). If you want to do anything that will affect the length of any of these strings, then you should take the STR# resource apart, make your changes and then put it back together.

2) Now that you have a handle to your modified STR# resource, we can do the update. The simplest way is to call

ChangedResource(theResource: ResourceHandle),

then make a call to ResError() which should return noErr (namely, 0). You may then call

WriteResource(theResource: Handle)

to make the change *now*, or the Mac will do it for you when you close the resource file (such as when exiting the application.)

3) On the other hand, if you have a completely new resource, you’ll have to do something different. Take a look at the folllowing code-like example:

 myHandle = NewHandle(100);  /* 100 bytes... */        
 /* Fill in the contents of myHandle here */  
      
/* Now, we want to make this STR# resource #141, and 
completely replace anything that used to be there.  
So, we’ll have to delete the old resource.  
NOTE: if somebody goofed, we may have 2 or more copies of           
STR# 141 already present, so get rid of all of them */  
      
do {      
 quit = false;          
 if (scratch = 0)                 
 quit = true;          
 else           
 scratch = GetResource(‘STR#’, 141);           
 if (HomeResFile(scratch) = CurResFile()) {             
/* If the resource is in our current file, then delete it  */        
     
 RmveResource(scratch);  /* Bye bye! */     
 }
 else         
 quit = true;   /* Exit if resource isn’t in file */             
 DisposHandle(scratch);  /* Don’t clutter up memory */        
 } while (done = false);        
AddResource(myHandle, ‘STR#’, 141, ‘’); /* Add with no name */       
 
WriteResource(myHandle);       /* You now have a new resource 

From: mikesteiner (Mike Steiner)

Subject: Modifying STR resource

About 10 minutes after I posted that message, I found out what I had to do, and it worked. After getting a handle to the resource (TheHandle), I then did the following:

StrHdl := StringHandle (TheHandle); 
StrHdl^^ := Name 
{Name is the new string to go into the resource} 
ResourceChanged (TheHandle) 

Of course, I took care of resource purge and hLocks, etc. before and after doing the stuff, and I did have the proper semi-colons in place in the listing.

I need a bit more help. The method I stated in above works only if the replacement string is not longer than the original string. What do I need to do to be able to have a replacement string that is longer than the one it replaces in the resource?

I found my problem. I needed the following call:

SethandleSize (theHandle, sizeof (str255)); 

and that solved everything.

From: the_cloud (Ken McLeod)

Subject: Yet Another Resource Question

I wrote a little CDEV that, among other things, wants to display the current System and Finder version numbers. As best I know how, you get the Finder version by doing a GetResource (or Get1Resource) on the MACS ID=0 string, taking the handle it returns and coercing it to be a handle to a string. Now the problem: it works just great everywhere EXCEPT when the Finder is open (which happens if the Control Panel is pulled down while in the Finder, or when running under MultiFinder). In that instance, GetResource refuses to give me any kind of access to the Finder (“File open with write permission” error). How can I get the Finder version number???? Incidentally, I get the System version number by calling SysEnvirons, so I don’t have any open resource file problems there... Someone else has written CDEV called “Who’s Who” that basically displays all the info from SysEnvirons. I tried it while in the Finder, and it gives me “Finder Version: Unknown,” so apparently he didn’t figure it out either. Anyone see what I’m missing?

From: rustyt (Rusty Tucker)

Subject: Re: Yet Another Question

I found one way to get at Finder resources, not quite painless though. This is a C frag but should be easy to convert to Pascal:

OpenFinder() {         
int err, sysVRef;         
HParamBlockRec  myParam;         
Str255 myName; 
 err = GetVRefNum(SysMap, &sysVRef);         
 MemCopy( myName, “\pFinder”, 7 );         
 myParam.fileParam.ioCompletion = 0L;         
 myParam.fileParam.ioNamePtr = myName;         
 myParam.fileParam.ioVRefNum = sysVRef;         
 myParam.ioParam.ioPermssn = fsRdPerm;         
 myParam.ioParam.ioMisc = 0L;                  
 err = PBOpenRF( &myParam, 0 );         
 FileErrorDialog( err );         
 if ( !err )         {       
 ShowInt( “\pOpened the Finder “, err );                 
 err = PBClose( &myParam, 0 );                 
 FileErrorDialog( err );                          
 } 
} 

The Mac will allow you to open the finder at this level with read-only permission. Natch you’ll have to either copy the Finder RSRC fork into your own file then open it with the Resource manager, or parse the fork yourself and find the resource you want and make your own handle.

There is another way that should work, but I can’t find enough info on MF to verify it. Switcher used to set up a Global pointer to the APPL zones it set up at $282. The first 8 words in the deref’d table had Ptrs to the “base” of those APP’s. What in the heck does that mean? I don’t know. Is it a pointer to the Heap Zone? If it is and MF maintains it you could just loop through that table and make SetZone(THz) calls followed by GetResource? Now that would be a lot easier than copying the darn Finder then doing a GetResource. So where are the other App’s when your under MF? Inquiring minds want to know.

From: rickhyman (Richard Hyman)

Subject: CDEVs

Speaking of CDEVs (someone was), I created a small CDEV that included a EditText item in its DITL. This really screwed up the control panel; I took the edit item out and everything ran fine. Either the old RMaker is messing things up again or the control panel cannot handle all types of items possible in an appended DITL. I don’t know the source of the problem. Have other people found this to be the case? If so, is it documented anywhere??

From: wbigelow (Wendell Bigelow)

Subject: ‘BNDL’ resources and the missing Application Icon

I’ve created an application and added my own Application icon and icon for the files it will create. I do not see the fancy icon in the Finder when I view by icon, just the default application icon. I’ve read several places about removing the “Desktop” file and otherwise forcing FINDER to rebuild the desktop and go out amongst ye Applications and (re)built of BNDL resources. This worked for a previous version of the application (and the files it had created) that uses the same icon image but has a different resource type (4 character doo-dah). I’ve deleted that particular BNDL resource and even managed to set the “bundle” bit in the GET INFO dialog in ResEdit for my application and forced desktop rebuild....ALAS...to no avail...

From: the_cloud (Ken McLeod)

Subject: Finder BNDL checklist

Did you: Make sure your application ICN# (and any ICN#s for documents created by your application) have corresponding FREF’s? Make sure there’s a corresponding resource with ID=0 for whatever your application’s creator type is? Make sure the BNDL’s owner is the same as this creator type? Rebuild the desktop by holding down the Option and Command keys when quitting to the Finder? [The easiest way to get a new icon to appear is to use a new creator tag. Then the icon will be installed into the desktop file as soon as you use ResEdit to set the bundle bit. Otherwise, you have to get the desktop file to “forget” the previous icon for that creator tag, which is a pain to do. -Ed]

From: allanc (Allan Clarke)

Subject: palette manager blues

I have an application which uses the palette manager. I keep a clut around and simply peel off copies (which are palettes) and attach them to the new graphics window(s). Unfortunately, my call to the palette manager does not seem to work on one out of about twenty-five Mac II systems (4.2). The call is...

myPH= NewPalette(256,myCLUTmTolerant,0);   
if(!myPH) badnews(); 

I had my beta site do some testing for me. Here is the strange part. He boots off a generic system and runs a copy of the software off his hard disk and it works. He quits. He can now relaunch my application any time and it does not have any clut error.

When he restarts, though, back to square one. My application keeps ducking out with the Nil handle error.

What is the difference between booting off a floppy and moving to the hard disk versus booting off the hard disk? I have already had him pull all the INITs out of the way. MACDTS told me there were no error codes (QDError) usefully returned to give me a hint as to why the Palette Manager could not perform the call. [You might check with last month’s issue on Palette Animation to see if something is not being locked down properly. -Ed]

From: lsr (Larry Rosenstein)

Subject: Re: palette manager blues Comment: to #49 by allanc

One thing that is different about the two situations you mention is that system patches are installed at boot time. It could be that the hard disk does not have the correct system on it, while the floppy does.

From: matt (Matthew Snyder)

Subject: CP/M emulator for Mac

This message duplicates a message left in the wanted category. Forgive the redundancy, but I have a feeling I might get more interest (or perhaps abuse) if I leave the message here. - I am looking for a CP/M emulator for the Mac. - I have ported the Small C compiler and the Small Mac assembler and linker combination to the Mac. Small C and Small Mac are products of the Dr. Dobbs Journal guys, and they are small implementations of the C language and the Microsoft Z80 assembler and linker, respecively. - When I get these goodies compiled (they are completely in C... Read Dr. Dobbs == Like C), I will have a complete cross- development system. ( The only thing lacking, of course, will be an emulator... I’ll have to download the executable file after every change. ) At one time, there were at least two of these things on the market. The old Complete Macintosh Source Book lists two of them, and provides a rather condescending review of each. One interesting point from the review is that even with an emulator, CP/M on the Mac runs faster than CP/M on a native Z80 machine. And the storage media is much larger (800K > 128K). Does anyone have any comments or suggestions?

From: matt (Matthew Snyder)

Subject: system heap

The multitasker that I’m working on is written using a standard development kit, namely Mac C. Granted much of it is in assembly, I would still like to preserve the simplicity of using a standard compile-assemble-link-rmaker approach.

As it exists now, it is an OPTIONAL multitasker. You install it by double-clicking on its icon. It is loaded like an application into the application heap. It then does some extremely unmentionable things to move the barrier between the heaps and thereby sort of pull the covers up. It becomes part of the system heap and at the same time expands it.

Note: This is being used in an experimental and research-oriented environment, and there is really no intention of ever marketing it. As a result, I am not overly concerned with maintaining compatibility with future machines or future system software.

However, I am not happy with the complexity and the underhandedness of the whole thing.

The multitasker was originally ported from a different machine, where it also ran in the background, but where it used a native stay-resident facility. I was convinced that there must be such a native facility for the Mac.

I found that using resedit to mark the code resource as system- heap-destined would indeed cause the stuff to be loaded into the system heap, and I was trying to find out if I could turn this discovery into a stay-resident algorithm.

In response to your responses, I have another question. You say that the system heap can be expanded if you do it right, but that it can’t be expanded while an application is running. What is happening while the loader is placing the next application into memory? If I specify that I want my code resources to be placed in the system heap when I get loaded, will the heap expand to accomadate me or not???

From: rdclark (Richard Clark)

Subject: Re: system heap

If you are using System 4.0 or later, you can resize the system heap at boot time using an INIT. The system recognizes when an INIT requests a block in the system heap and expands the heap if needed. (However, this isn’t a nice thing to do as the Application heap shrinks. But, you already know that, right?)

And, I just remembered, there’s another thing you can do! Instead of placing your code in the System Heap (requiring System 4.0++ and an INIT, you can place your code at the TOP of memory, up where only globals, the stack, and the ROM jump tables dare to tread. Look at “How To Write Macintosh Software” for an example of this. (Some RAM disks use this area, which is guaranteed to stick around between launches and which can be modified by an application. But, once you allocate the memory, it’s unlikely you can ever deallocate it since somebody else may request a block below you and you don’t dare move them. I doubt that this will create a problem for you.) This program wouldn’t happen to be MultiMac 2.0, would it? <grin>

From: alpha (Jean Thomas)

Subject: XCMDS

Question: If you create a window with an xcmd/xfncs in Hypercard, how do you handle events in your window without calling GetNextEvent? Whenever I do, events in my window are handled correctly but HyperCard is frozen until xcmd. If I don’t call GetNextEvent, HyperCard is still active but I can’t handle my window events at all. Any ideas? It makes sense, ie freezing Hypercard if you call GetNextEvent yourself, but how else could you tell when you are in your window? I suppose FrontWindow might do it alone, but I’ll see. Any help appreciated. Has anyone else on this board written any Hypercard xcmds?

From: rickhyman (Richard Hyman)

Subject: Re: XCMDS

HyperCard was designed using its own event manager and memory manager; I’d like to know why because that really limits the kind of XCMDs you can build. You can handle events yourself by setting up a dialog for all of your user interface requirements. This points to the fact that XCMDs must be modal; i.e. anything your XCMD does must be completed, memory completely cleaned up, etc. by the time you complete your XCMD. Yes, you can use FrontWindow to find where you are, but there are situations where you can’t be sure the user hasn’t brought up the tool window, pattern window or message window. GetNextEvent doesn’t work if you are using HyperCard buttons and text fields because HC does its own event managing. You can get away with creating dialog boxes and the dialog manager calls because that should be totally self contained in a single XCMD. It seems to be a good idea to flush events before handing control back to HC. If you are using HC for all of your user interface requirements, you may be able to break your code up into a number of smaller XCMDs. After spending 4 months on a stack and *then* running into these kinds of problems, I’m pretty frustrated with HyperCard. Not only does it need to conform to Mac interfaces from a user perspective, it needs to conform to interface and ToolBox standards as well. Unless it is cleaned up quite a bit, it will never be what Atkinson intended it to be.

From: alpha (Jean Thomas)

Subject: Re: XCMDS

I agree with you about the limitations of XCmds and external programming in Hypercard. Unfortunately, if you create a window with scroll bars etc, there is no way, at least I can see, to update your window without calling GetNextEvent in your code. SelectWindow is not enough because I don’t know if HyperCard even knows when you have clicked on someone else’s window. Perhaps you can send a series of idle messages to Hypercard. I don’t know. Thanks for your help. I don’t really think HyperCard was written for the traditional programmer.

From: rickhyman (Richard Hyman)

Subject: Re: XCMDS

The only way I found of updating various portions of my card, or specific windows was to use a series of transparent buttons on top of the appropriate areas. I experimented with mouseUp and mouseDown handlers to call the appropriate XCMD. This worked reasonably well for a list for which I used List Manager. If you are using multiple overlapping windows on a single card, then it would be difficult. If you have a single window with scroll bars, et al, then the use of several transparent buttons might work. But then, ... the several XCMDs would all, by necessity point to the same data structure for your window. So, you’d like to keep this structure in memory between XCMD calls, which HC could clobber any time ... and now we seem to be going in circles. Yes, HyperCard needs some work yet to be easily extended by programmers. [Bill Atkinson demonstrated the next version of Hypercard at the Developer conference and indicated that a lot of internal bug fixes and changes have resulted in Hypercard both being much faster as well as the interface with dialogs being much cleaner. Some of these problems with XCMD’s will go away with the next release, which should be out shortly. -Ed]

From: lsr (Larry Rosenstein)

Subject: Re: Setting Startup from an app

Probably the safest thing to do is to write an application that launches another application based on some string resource. Then you should do Set Startup and choose the Finder (instead of MultiFinder) and choose to launch this application at start up.

By default, the string resource can specify MultiFinder, and then your machine will start up with MultiFinder. Later on, however, an application can change the string resource and have it start up with itself. You can make your startup program smart enough that it will default to MultiFinder if there is nothing else to launch. You might also make it do a sublaunch of the non-MultiFinder application (see Tech Note #126), and then launch MultiFinder when that application quits (or give the user a choice of another application).

From: lsr (Larry Rosenstein)

Subject: Tear Off Menus

I just read the Tear Off Menu article in the April MacTutor. It looked very complete and useful. I have only 1 minor complaint. On p. 32 the authors talk about the ToolScratch low memory variable, and the conflict between the Menu Manager and Lightspeed C. Inside Macintosh says that ToolScratch is not guaranteed to be preserved across calls to the Toolbox; it is designed to be scratch space for the Toolbox use. So the conflict is not the ROMs fault, it is LSC’s.

From: wbigelow (Wendell Bigelow)

Subject: MacPaint/MacDraw ‘PICT’ files

HELP! I’m in the middle of implementing a nifty user interface. Unfortunately, I needed to create graphical objects I’ll be displaying, in MacDraw and then save them as ‘PICT’ files. My hope was to somehow generate MPW compatible ‘PICT’ resource statements and manipulate these graphical objects as resources to be displayed in my nifty window design. I’ve got everything ready but I CAN’T FIGURE OUT HOW TO GET THESE MACDRAW GENERATED ‘PICT’s into the resource fork of the file I’m saving them in, so I can DeRez them in MPW.

From: the_cloud (Ken McLeod)

Subject: PICT moving

When all else fails, the Scrapbook desk accessory is a tried and true method of moving PICTS around. Try copying your MacDraw PICT and pasting it into the Scrapbook. Then go into ResEdit and open up the file you want to save the PICT into. Create a new PICT (select New, choose PICT from the scrolling list, and then select New again). Bring up the Scrapbook and select Paste! -k

From: andyc (Andy Cohen)

Subject: Hyperproblems

The discussions on the problems of building XCMDs and XCMDs over on the programming board have given some insight to problems in plain Hypertalking. Ever try to get the polygon tool to draw a polygon via “click at” or maybe try to get the freehand curve tool to drag to. Well, the poloygon tool ignores all click at commands (even though Hyper goes back to the browse command when told to) and the Curve tool draws only from one point to the next then closes the figure for each Drag. Hypercard only does things in a single minded serial manner. It can’t do anything else until the called job is done then control is given back. The best approach then is to keep any functions to be called extremely brief in their execution time.

BTW using card buttons (set the LOC property) one can actually do some slick animations. A hard to find fact that is easy to deduce; just as in all things in the Mac environment fonts, picts and icon resources can reside in files as well as apps. If you are producing a Hypercard stack which MUST have a certain font and size or requires customized icons use resedit and paste these resources into the stack. If the stuff is already there it just duplicates them while the stack is opened by a Hypercard which already has them. If you do this then your stack can be used by any Hypercard.

From: jimr (Jim Reekes)

Subject: Re: Seagate Drives

I believe that the new 40 and 80MB 3.5" drives coming from Apple will be the Quantums. The Segate 45 (ST157n) is a 47MB drive and fast. I have one in my Mac SE and love it. I haven’t seen the new Apple drives yet, but ask me next month and I’ll tell you all I can.

From: rsobel (Richard Sobel)

Subject: 68010 PROCESSOR

Can anyone out there give the pros or cons for switching the 68000 chip with a 68010. ie. speed, extra instructions, etc

From: frank (Frank Henriquez)

Subject: 68010

The 68010 is pin and instruction compatible with the 68000. The main difference is that the 68010 can support virtual memory and memory management chips better than the 68000. The added instructions are mainly to deal with these new features. Some of the looping instructions have been modified, so that short loops are executed from the instruction cache, without having to go out and fetch it each time throught the loop. This speeds things up for very small loops. Some other instructions may have been tightened up a bit too. As to replacing the 68000 with a 68010: Motorola claims up to a 30% speed improvement. It’s probably not much more than 10% for average operations. Since replacing the 68000 on a Mac means some *considerable* unsoldering (ever try to unsolder a 64 pin IC from a four layer PC board with really teeny traces?...) I don’t think it’s worth doing. If the 68000 were in a socket, then it might be worth the premium price of the ‘010.

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

Latest Forum Discussions

See All

Challenge those pesky wyverns to a dance...
After recently having you do battle against your foes by wildly flailing Hello Kitty and friends at them, GungHo Online has whipped out another surprising collaboration for Puzzle & Dragons. It is now time to beat your opponents by cha-cha... | Read more »
Pack a magnifying glass and practice you...
Somehow it has already been a year since Torchlight: Infinite launched, and XD Games is celebrating by blending in what sounds like a truly fantastic new update. Fans of Cthulhu rejoice, as Whispering Mist brings some horror elements, and tests... | Read more »
Summon your guild and prepare for war in...
Netmarble is making some pretty big moves with their latest update for Seven Knights Idle Adventure, with a bunch of interesting additions. Two new heroes enter the battle, there are events and bosses abound, and perhaps most interesting, a huge... | Read more »
Make the passage of time your plaything...
While some of us are still waiting for a chance to get our hands on Ash Prime - yes, don’t remind me I could currently buy him this month I’m barely hanging on - Digital Extremes has announced its next anticipated Prime Form for Warframe. Starting... | Read more »
If you can find it and fit through the d...
The holy trinity of amazing company names have come together, to release their equally amazing and adorable mobile game, Hamster Inn. Published by HyperBeard Games, and co-developed by Mum Not Proud and Little Sasquatch Studios, it's time to... | Read more »
Amikin Survival opens for pre-orders on...
Join me on the wonderful trip down the inspiration rabbit hole; much as Palworld seemingly “borrowed” many aspects from the hit Pokemon franchise, it is time for the heavily armed animal survival to also spawn some illegitimate children as Helio... | Read more »
PUBG Mobile teams up with global phenome...
Since launching in 2019, SpyxFamily has exploded to damn near catastrophic popularity, so it was only a matter of time before a mobile game snapped up a collaboration. Enter PUBG Mobile. Until May 12th, players will be able to collect a host of... | Read more »
Embark into the frozen tundra of certain...
Chucklefish, developers of hit action-adventure sandbox game Starbound and owner of one of the cutest logos in gaming, has released their roguelike deck-builder Wildfrost. Created alongside developers Gaziter and Deadpan Games, Wildfrost will... | Read more »
MoreFun Studios has announced Season 4,...
Tension has escalated in the ever-volatile world of Arena Breakout, as your old pal Randall Fisher and bosses Fred and Perrero continue to lob insults and explosives at each other, bringing us to a new phase of warfare. Season 4, Into The Fog of... | Read more »
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 below... | Read more »

Price Scanner via MacPrices.net

Free iPhone 15 plus Unlimited service for $60...
Boost Infinite, part of MVNO Boost Mobile using AT&T and T-Mobile’s networks, is offering a free 128GB iPhone 15 for $60 per month including their Unlimited service plan (30GB of premium data).... Read more
$300 off any new iPhone with service at Red P...
Red Pocket Mobile has new Apple iPhones on sale for $300 off MSRP when you switch and open up a new line of service. Red Pocket Mobile is a nationwide MVNO using all the major wireless carrier... Read more
Clearance 13-inch M1 MacBook Airs available a...
Apple has clearance 13″ M1 MacBook Airs, Certified Refurbished, available for $759 for 8-Core CPU/7-Core GPU/256GB models and $929 for 8-Core CPU/8-Core GPU/512GB models. Apple’s one-year warranty is... Read more
Updated Apple MacBook Price Trackers
Our Apple award-winning MacBook Price Trackers are continually updated with the latest information on prices, bundles, and availability for 16″ and 14″ MacBook Pros along with 13″ and 15″ MacBook... Read more
Every model of Apple’s 13-inch M3 MacBook Air...
Best Buy has Apple 13″ MacBook Airs with M3 CPUs in stock and on sale today for $100 off MSRP. Prices start at $999. Their prices are the lowest currently available for new 13″ M3 MacBook Airs among... Read more
Sunday Sale: Apple iPad Magic Keyboards for 1...
Walmart has Apple Magic Keyboards for 12.9″ iPad Pros, in Black, on sale for $150 off MSRP on their online store. Sale price for online orders only, in-store price may vary. Order online and choose... Read more
Apple Watch Ultra 2 now available at Apple fo...
Apple has, for the first time, begun offering Certified Refurbished Apple Watch Ultra 2 models in their online store for $679, or $120 off MSRP. Each Watch includes Apple’s standard one-year warranty... Read more
AT&T has the iPhone 14 on sale for only $...
AT&T has the 128GB Apple iPhone 14 available for only $5.99 per month for new and existing customers when you activate unlimited service and use AT&T’s 36 month installment plan. The fine... Read more
Amazon is offering a $100 discount on every M...
Amazon is offering a $100 instant discount on each configuration of Apple’s new 13″ M3 MacBook Air, in Midnight, this weekend. These are the lowest prices currently available for new 13″ M3 MacBook... Read more
You can save $300-$480 on a 14-inch M3 Pro/Ma...
Apple has 14″ M3 Pro and M3 Max MacBook Pros in stock today and available, Certified Refurbished, starting at $1699 and ranging up to $480 off MSRP. Each model features a new outer case, shipping is... Read more

Jobs Board

Omnichannel Associate - *Apple* Blossom Mal...
Omnichannel Associate - Apple Blossom Mall Location:Winchester, VA, United States (https://jobs.jcp.com/jobs/location/191170/winchester-va-united-states) - Apple Read more
Operations Associate - *Apple* Blossom Mall...
Operations Associate - Apple Blossom Mall Location:Winchester, VA, United States (https://jobs.jcp.com/jobs/location/191170/winchester-va-united-states) - Apple Read more
Cashier - *Apple* Blossom Mall - JCPenney (...
Cashier - Apple Blossom Mall Location:Winchester, VA, United States (https://jobs.jcp.com/jobs/location/191170/winchester-va-united-states) - Apple Blossom Mall Read more
IT Systems Engineer ( *Apple* Platforms) - S...
IT Systems Engineer ( Apple Platforms) at SpaceX Hawthorne, CA SpaceX was founded under the belief that a future where humanity is out exploring the stars is Read more
*Apple* Systems Administrator - JAMF - Activ...
…**Public Trust/Other Required:** None **Job Family:** Systems Administration **Skills:** Apple Platforms,Computer Servers,Jamf Pro **Experience:** 3 + years of Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.