Jan 90 Mousehole
Volume Number: | | 6
|
Issue Number: | | 1
|
Column Tag: | | Mousehole Report
|
Mac IIci and TE Word Selection
By Larry Nedry, Contributing Editor
From: Wildman
Re: Mac II ci
Hey, my new Mac II ci just showed up. Did anybody else buy one of these? It is plenty fast at running programs, but Lots of programs that run on a Mac II cx dont run on the ci. Saddest, in my opinion, is Macsbug 6.1B1. It installs with no errors, but push the programmer button and BANG your new Mac is dead in the water, cycle power switch to get things back. I suspect it is that the new wizzy video-card-on-the-motherboard circuit is not compatible with real video cards because I also have a couple of games and graphics demos that also offer one way trips to Tumbolia. Any ideas when a new debugger might be available? Any compatibility notes that I can use to spare my programs the fate of Macsbug? Anybody got a list of what works/doesnt work with a ci, or even a list of things that Apple tried to run on it before it was sold to us public dudes?
From: Greg
Re: Mac II ci
We have six cis that just came in so heres what Ive found. Youre right about MacBugs there is a version around Apple that works, but I dont have it. As for programs that wont work they are limited to those that make assumptions about hardware (particularly the screen or video) because of 32 bit Quick Draw being in the ROM any program that would bomb with the 32 bit QuickDraw INIT on a II will not work in a ci for the same reason. Some games also want the CPU to run at a set speed and thus will fail on the ci. Hope this helps
From: Wildman
Re: Mac II ci
OK, A couple of further updates on MacIIci compatibility.
a) I just got MPW version 3.0, It works pretty well and is really plenty fast enough to do real work with.
b) The TubeTest sample program, which is a demonstration of how to use the Palette Manager, doesnt work. It draws black circles regardless of the number of colors enabled. So much for examples to show you the way.
c) The other Apple debugger, SADE version 1.0, doesnt work either. If you try to run it with the MultiFinder that came on the ci installation disks (6.0.4 I think) it gives you a Bad MultiFinder version error message. If you try to run the MultiFinder included with SADE (6.1b7) as the SADE manual tells you, it puts up trashed windows and repaints the desktop in black and white and in 5-10 clicks bombs your ci. Setting the screen to black and white mode has no visible impact.
d) It seems that some of my problems are 32-bit clean-ness problems. The Mac I use most of the time is a Mac128->2M+SCSI Frankintosh which can pass itself off as a Mac+ with new ROMs to most software. Some tools which run on it still have dirty high order bits. They run on no machine with a 68030 in it. I will try to compile a full list and type it in soon. If you have any data, please help me and put it in here.
What do folks do for a debugger? Right now I compile programs on the ci and put them on floppies and debug them on the other Mac. I cant really use SADE in 2MB, so I use my old buddy Macsbug. Does TMON work? Id buy it but if Apples two debuggers dont work what is the chance that somebody elses does?
From: Walshag
Re: Patching Traps
Where should I begin to learn trap patching? I am competent with Pascal (I use LSP 2.0 for most projects), but not overly confident with the intricacies of the Mac. I own Inside Mac (I-V), a handful of MacTutors, a few Macintosh reference manuals, and a dozen or so bottles of Tylenol. I am READY!! After reading last months MacTutor article on INITs in pascal, I was inspired. I have worked out a plan to patch a trap (in an INIT):
1. Should say that in my INIT code, include the procedure that should be executed after the patch. Name this procedure MyTrapex. (ex. When another program calls Sysbeep, the MyTrap procedure is the one actually executed).
2. Move that code into system memory:
oldZone:=GetZone;
SetZone(SystemZone);
SizeNeeded:=Longint(myTrap); {does this work?}
RervMem(SizeNeeded);
PatchPtr := NewPtr(SizeNeeded);
BlockMove(@myTrap,Pointer(ORD(PatchPtr)),SizeNeeded); {How bout
this?}
SetZone(oldZone)
3. Use NGetTrapAddress & NSetTrapAddress:
**HELP HELP HELP!!!**
I dont want to spend my life trial and erroring these procedures, so I need some advice.
From: Inbox
Re: Patching Traps
Read p. 83-89 of October 89 MacTutor. That should give you all the help you need.
From: Tomt
Re: printing ???
Im having a bit of trouble printing a graphics image in LSP 2.0. Im trying to follow the example in Macintosh Revealed VIII but I run into a problem,
Theprintrec := ThPrint(NewHandle(sizeof(Tprint)));
Hlock(handle(theprintrec));
PrintDefault(Theprintrec);
goahead := PrStlDialog(ThePrintRec);
on the last line I get an address error. Im sure I skipping something simple but I dont have the foggiest. Thanks for any help.
From: Dhands
Re: printing ???
You may have not called PrOpen prior to the printing calls. I added the call and the code below worked
{1}
Theprintrec := ThPrint(NewHandle(sizeof(Tprint)));
Hlock(handle(theprintrec));
PrOpen;
PrintDefault(Theprintrec);
goahead := PrStlDialog(ThePrintRec);
PrClose;
Also, occasionally Ive had LSP continue to encounter address/runtime errors even after fixing the source code. If youre really stumped try remove objects command and/or quit and relaunch LSP.
From: Tomt
Re: printing thanks
Thanks David for the info. I too have seen problems where I had to either rebuild the project or quit LSP and then restart it. I also got a rather strange error saying that there was insufficient memory for internal tables that got fixed by quitting and restarting or rebuilding. Very strange.
From: Siegel
Re: printing ???
1) Dont lock your print handle.
2) Before calling PrintDefault, call PrOpen, and when youre done printing, call PRClose.
From: Sonny
Re: PASCAL BOOKS
Hello! Attention all Pascal programmers. I am fairly new to programming and want to learn more. Can anyone suggest some really good books about Pascal? I was in a college library recently and saw that there are a lot of books on Pascal, but many of them seemed somewhat mediocre. I plan to post this message on a number of BBSs, so I will be posting another message later on to let yall know the results of this survey. By the way, I have a Mac SE and plan to use Lightspeed Pascal v2.
From: Ears
Re: PASCAL BOOKS
You might want to check out Just Enough Pascal - it covers the basics in and interesting fashion and is compatible with LSP 2.
From: Sherpa
Re: PASCAL BOOKS
I can suggest two that have helped me immeasurably: Oh Pascal! and Scott Kronicks Fear and Loathing Guide. Lots of humor and good examples.
From: Dhands
Re: C books
What books would any of you recommend for an introduction to C in general, and C on the Mac in specific? Ive been programming the Mac for several years using Pascal and assembly and decided to look into C. So, any suggestions?
From: Tron
Re: C books
A good introduction book on the Mac using (specifically) LightSpeed C (now called THINK C) is Macintosh Programming Primer by Dave Mark and Cartwright Reed. Addison Wesley Publishing. All of the examples are written in THINK C 3.0, although it will work with any C development system with a few translations here and there.
Oops. I just noticed that you were looking for books on C, not just books on Mac C. Well, one that I found helpful is Programming in C by Stephen G. Kochan. Hayden Books. This book, coupled with The Macintosh Programming Primer should set you on your way.
From: Tron
Re: PICT resources in dialogs
I ran into an interesting problem when I added a PICT resource to a (previously) perfectly working dialog box. I wanted to spruce up the look of the box so I created a PICT and added it to the background of the dialog. After doing so, my routine (which uses DialogSelect to receive the itemHit) no longer correctly returns the itemHit for editText items. Running through the debugger, I discovered that the itemHit returned is undefined, even though I clicked the mouse in an editText item. I made sure that the PICT resource was sent to the back using ResEdit, and when I enable the PICT, DialogSelect returns the item number for the PICT when I click anywhere in the box. A friend of mine tested the problem using buttons instead of editTex items and had the same results...incorrect item numbers being returned.
Has anyone ever dealt with PICT resources in Dialog boxes that are directly behind other items and how do you get around the problem?
A side note: I shortened the rect of the PICT rsrc. so that it was still in the dialog box but not directly behind my editText item and mouse clicks began working perfectly once again.
From: Apage
Re: Scrolling Window
Best advice I can give off the top of my head is to use ScrollRect (I-187) to scroll off the old data and make room for new. this will save time in redrawing(bit xfer operations are usually quite fast msec should give enough time to do so). Maintain a running buffer of data, and keep grabbing the new stuff to paste in as it is read.
From: Mward
Re: Need CDEF example
I would like to know where I can get an example of the source code for a dial type CDEF - something like the volume control in the control panel DA. I am using Think C, so any C or Pascal code will do.
From: Inbox
Re: Need CDEF example
Read MacTutor. They have loads of CDEF examples.
From: Mward
Re: Need CDEF example
Ive been reading MacTutor since about April, and I havent seen what I am looking for. Can you think of any particular issues that might have an example of a dial type CDEF?
From: Inbox
Re: Need CDEF example
OK.. Nov89 - Alternate Scroll Bar CDEF, in C. Youd probably be able to convert something like this into what youre doing. April89 - Designer CDEFs, in Think Pascal. There are some more in The Volumes of MacTutor from previous years.
From: Mward
Re: Need CDEF example
Thanks for the info. The April CDEF article dealt with checkbox variants, and I read the tables of content in the four volumes of previous MacTutor and couldnt find an article on CDEFs. So, Im waiting eagerly for the November issue to hit the stands. Waiting eagerly for the issue to hit the stands is a sure sign that its time to subscribe.
From: Wlp
Re: LSC version for SE?
I am thinking of getting Lightspeed C. I have an SE with a 20 Meg hard drive - nothing extra. Will 4.0 run on my machine or should I try to find 3.0x? This is my first time on this BBS. I dont know when Ill be able to check back. If anyone still uses the US Mail to communicate, I would appreciate a written reply, giving your opinion or problems you may have encountered using an SE and Think C.
Warren Pollans
Route 2, Box 440
Orangeburg, South Carolina 29115
From: Siegel
Re: LSC version for SE?
4.0 will run fine on your machine, but to use the source debugger, you should have a minimum of 2MB. 2.5 MB is really the practical minimum, and 4MB is ideal.
From: Grendel
Re: Text Edit and word selection
I have a vexing problem. I want to write a hypertext environment which will facilitate working with texts in foreign languages. To do so, I need to have the ability to double-click on a word to select it. Of course, TextEdit can handle this just fine - for English text in a Roman script. The problem is that I need to use foreign language fonts, and especially fonts with diacritical marks - accents, umlauts, etc., created as zero-width characters. Except for the few (inadequate) diacritical characters which the Roman script system knows about, TextEdit selection routines routinely balk at these characters, so that only part of a word is selected by the double-click. How can I teach TextEdit to select the whole word in these non-Roman script systems? I would like it to be simply space delimited, except for certain punctuation characters. Ive looked at the documentation for the Script systems in Inside Mac V, but it seems that one must depend on Apple to write the systems for you. Help!!!
From: Btoback
Re: Text Edit and word selection
If you want to write your own word break routine, you can do it by using the SetWordBreak routine or stuffing a pointer to your word break routine into the TERec at the appropriate spot. This is documented in IM-I, p. 380. Of course, you still have to write the word break routine, but presumably you can use the Script Manager for help. Also, according to IM-V (the Script Manager chapter), you can get some kind of special documentation from MacDTS for writing your own scripts.