Dec 90 Mousehole
|Column Tag:||Mousehole Report
AFX and SuperDrives
By Larry Nedry, Mousehole BBS
Re: SuperDrive problem
Ive had some weird problems with my SuperDrive (SE/30). It wouldnt eject the disk when requested (by the software) to do so, and, after the failed eject, it would attempt to remount it. But the access speed reduced to a crawl!!! it would work, but in slow-motion. Almost 30 seconds for displaying the desktop, and minutes for launching any small applications.
The emergency cure was having the paper clip at hand, installing SoundMaster to signal the ejects, and at the sound, give the drive a hand at ejecting the disk. Reinserting after this led to normal mount, not snail-speed.
As a side effect, since the problem aroused, it would also fail to read DOS drives, be it from DOS mounter, SoftPC or Apple File Exchange.
I tried swapping the eject motor for one from another SuperDrive, and that didnt fix the problem.
What should I do? (by myself, not a dealer please!).
Re: SuperDrive problem
Gandalf-- had the exact same problem, found the answer, its easy!
Absolutely it will make you crazy, no way to stop it except the paperclip... it took many days of pleading to find out that:
The default action is for EVERY TRANSLATOR to examine EVERY FILE on the DOS diskette to see if it can translate it, WHEN YOU MOUNT THE VOLUME. This crazy default means that when you buy some extra translators (as I had done) you can have up to (say) 50 different programs run against every file on the diskette looking for God only knows what! The mount time can literally be hours!
The fix is: load Apple File Exchange, insert a blank diskette, FORMAT the diskette as MS-DOS, then tear off the MSDOS TO MAC menu.
Uncheck every one of the items in the menu and then SAVE the EXCHANGE SETTINGS under the FILE menu. Thereafter, restore the exchange settings as the first thing you do, or on the most recent updates of AFX, double click on the exchange settings file to restore them (early version didnt do this properly).
Now insert your DOS diskette and see it mount in a few seconds.
Re: Bypass Chooser
I am responding to your query for a way to change between two printers from within an application. I have written some externals for 4th Dimension which do just that. I realize that this type of feature violates the Apple User Interface Guidelines, but there are ways that this type of feature can be implemented without removing any control the user may have or want. For instance, these externals were designed so that the user could set up a list of reports to be printed and a list of printers to print them to and still print them all in a single batch process. The user still retains full control over which printer gets used when and for what, but he is not restricted by the Chooser interface. Anyway...
The printer type is stored in the resource STR with ID = -8192 in the system file. The currently selected printer is stored in the resource file named in this string. It is kept in the PAPA resource ID = -8192 of this file in the system folder. This resource contains the device name, the device type, zone, and network address. In the case of non-AppleTalk printers, this resource doesnt even exist (and doesnt need to). The device name, type and zone are standard Pascal strings except that only the space that is needed for each string is used. The next string follows immediately after the last character in the previous string. The device address is a LongInt which follows immediately after the device zone. The device address is obtained by doing a named look up over the AppleTalk network. I found an example of how to do this and went from there.
I am willing to send you a copy of my source files, but I would like to take some time to clean them up a bit. This source will consist of two externals which must be used together in a 4D database in order to switch between printers. I can include this database if you have 4D. If you want me to send you the source, just let me know.
P.S.Another alternative to the FKEY which was suggested to you is to use QuicKeys 2. QuicKeys 2 has several extensions now, one of which is called Choosy and allows you to select a print with a QuicKey.
I think HERMES10 is the best new bbs out there, but I now hear the author doesnt want to support it anymore.. I have no idea if this is true, but if so this is bad news.. cause I really like this bbs and been thinking of putting up a bbs with HERMES10.
Re: BBS Writing...
I been looking at the available bbs programs out there and decided that the only way I can get the features I want in a bbs is to write one myself. What I would really like to do is modify an existing one. Is there any bbs programs that have the code in the public domain? Some programs I have looked at are real good but out of date, and the authors no long support them.
Any help would be really appreciated. Also if someone is working on one and looking for a beta site. Id really like to help out. Before I got my Macintosh, I used to run a bbs for 2 years I wrote on the Apple //e. And really am eager to put up a bbs on the Mac.
Re: Whered my bitmap go?
Hey guys (and gals)...
I have a question I hope someone can help me with. I have some code that draws an image on the Mac screen, and then I copy a portion of the screen to a bitmap for placement on my screen at a later time. I can use CopyBits from the initial procedure and everything works fine, but if I leave that procedure, my bitmap data becomes garbage. I have tried making the variable global to the entire project, I have tried passing the variable from one procedure to the next till I need it again, I have tried giving a handle to the variable, locking the handle immediately, and then not unlocking it till I quit the application. nothing seems to work. I have other projects that uses bitmaps successfully, no problems. But this one has me baffled. I hope someone out there has run into this before, and knows of a fix, or at least something else I can try. I am at a total loss for explanation.
I have a Mac IIcx, System 6.0.4, no inits, and Lightspeed Pascal 3.0.
Re: MPW vs THINK
If you havent already found out here are some things Ive discovered about the Think vs. MPW question: Think is A LOT faster. MPW, especially when doing C++/MacApp stuff is quite slow (and a memory hog to boot! youll need 3MB minimum to do MacApp/C++ work.) Think gets along fine in 2.5MB
MPW is very expensive: $400 for the MPW/C bundle, $175 for C++, and another $275 for MacApp. $850.00 is pretty steep for most of us but could be a business expense for some.
Re: TCL question
The code for opening a window when the program starts up is located in CApplications method StartUpAction. To get rid of this behavior you would have to create a new method in CStarterApp.c. Just remove the line that starts: if (numPreloads...).
Re: B-Tree libraries
Has anybody had experience with the C-Tree or C-Index B-Tree libraries??
Re: Saving TEStyle stuff
I am trying to save a text edit record and its associated style record to disk for later access. I have no examples as to how to do this, and I was wondering if there was anyone out there who does. I understand how to do this for the old type text edit, but am unsuccessful with the new stuff. Any help would be appreciated!
Re: Pattern Alignment Question
Ive just bought a Mac. Im using Think C 4.0; Ive got Inside Macintosh I-V, most of the technical notes, and a borrowed copy of Macintosh Programming Primer (Dave Mark & Cartwright Reed.)
Im working on the EventTutor example from that book. This has a window that scrolls up continuously, listing the events that the program receives (shades of glass teletype), and another window displaying a picture. I was curious to see how the update region was maintained during scrolling when the window was partially obscured by another.
To see where the update region was, I added a FillRgn after the ScrollRect to fill the update region with the gray pattern. This worked sort-of OK, and verified that all the various areas uncovered by the scroll were indeed added to the update region. The glitch was in the gray pattern itself; each scroll operation in this program scrolls the screen up by a constant 15 pixels; this seemed to cause the 8x8 bit pattern to be misaligned with the previously filled areas.
While not directly related to what I was trying to find out (almost everything!) it seemed to me that there had to be a simple way to handle this. I searched through Inside Mac, for any references to alignment of patterns (or/and pens) and came up with nothing. I decided to experiment with SetOrigin, this being the only likely-looking area.
After a bit of trial and error (SetOrigin works relative to portBits.bounds, for instance), I got the result I wanted. I basically offset the origin by a value (modulus 8) that caused the coordinates to align correctly with the pattern; I kept a record of the offset and then applied this to all coordinates that I specified for drawing in the window.
I used modulus 8 on the offset because the continuous scrolling up would soon overflow the 15-bit limit on the coordinate system, which may cause other problems!
Now, what Im hoping someone can tell me ... is this the way to do it?? This method seems to work OK within this simple program, but could it cause more problems later? For instance, theres a warning (I-314) that the origin needs to be (0,0) for the Control Manager to work properly. Obviously, I could just change the origin for the duration of the drawing operation that needs to be aligned, and then set it back (this would also simplify other operations, I guess). Are there any other pitfalls using this technique?
One alternative (that I dont really like) would be to rearrange the pattern itself.
So, whats the usual method of handling this situation (other than ignoring it, of course!!)?
Another (probably dumb) question:
Why doesnt the background of the window get set to bkPat when the window is initially drawn, or when part of it is exposed? The ScrollRect and EraseRect use this pattern, but I cant find any documentation on what happens to these other regions. They just seem to get initialized to white ... which is just a waste of time if the next thing I have to do is overwrite them with another pattern ...
I been doing some small programming on the Mac in C, and want to work on a major project, but do not have all the tools and experience in C. Are there any good libraries that would be very helpful in writing a application? I would like some that have some simple data base functions and also some communication functions.
Re: Greying out popup menus
A quick way to do this is to ResEdit yourself another userItem in the DITL resource of your dialog. It should physical lay over top of the current pop-up menu and title. THIS new userItem should be what you send to DisableItem in your code. You should be successful using this method.
CtoPstr does the conversion inline. If you use the same string again in your C program you have to change it back to a C string using PtoCstr.
Re: TIFF FILES
TAG... YOURE IT!! CAN ANYONE TELL ME WHERE I CAN GET SOME INFO ON TIFF FILE FORMATS ETC??? THANK YOU AND GOOD NIGHT
Re: Resetting the Parameter RAM
Does anyone know how I force a reset from any application (by a key-combination ?) to the Parameter RAM to get back the initial value of 9600 Baud for portA and portB fields in the SysParmType record ?
Thanks for help!
Re: real-time animation
Hi. Im new here. I was told that MouseHole is one of the best places to get Mac technical info, so heres my problem: Im trying to do some simple animations with large color images in real time. Palette animation looks like the best way to go - its noticeably faster than offscreen bitmaps in this case. The problem is that its a little too slow.
It takes about 40-45 msec to execute a call to AnimatePalette with a 256-color palette on my IIcx (thats 3 video frames!). I could live with this speed for some things, but Im doing research on the visual system and its important that I know exactly whats on the screen at all times. My question is: What happens during that 45 msec?
Is the screen continuously updated over 3 frames or are other things being done in the background and the screen is then redrawn during the last 15-msec frame? If it takes 3 frames to redraw the screen then a moving image will break apart, and thats no good (it doesnt appear to be breaking apart, but its too fast to tell). I would also like to know if a faster machine and/or a QuickDraw accelerator would improve the speed of this particular operation? Would it be possible to get it down to the frame rate? Any info would be greatly appreciated.
Re: script manager
Hi, I am trying to set up a foreign language font that takes advantage of the Script Manager. IM vol 5 refers to a Script Manager Developer package that APDA no longer distribute. Can anyone tell me where I can find information regarding: font script, script interface system, key script, and double-byte character? Is key script the same as the KCHR resource? Thanks