|
Volume Number: | 4 | |
Issue Number: | 2 | |
Column Tag: | Letters |
Readers Respond to Editorials
By David E. Smith, Editor & Publisher, MacTutor
Making WriteNow MultiFinder Friendly
Mr. Sleazy Hacker
Boulder, Colorado
Here’s a very sleazy patch to get around WriteNow’s habit of blasting a ruler across the entire screen (assuming a Mac II sized screen of width 640 pixels). The patch was applied on a Mac II with B/W monitor, and version 1.0 of WriteNow.
Using Fedit or equivalent, search for:
A91B 2F0C 2055 3F28 FF92 5557 3F3C 002C
And replace with:
A91B 2F0C 3F3C 0258 4E71 4E71 3F3C 002C
There’s one occurrence of the pattern. What we are doing here is replacing:
movea.l (a5),a0 move.w ff92(a5),-(a7) subq.w #2,(a7) ... _SizeWindow with: move.w #$250,-(a7) nop nop ... _SizeWindow
In other words, the code fragment that calculates the width of the ruler as (screenBits.bounds.right -2) is replaced with one that supplies a constant value of $258 (decimal 600). [Note to developers: they never should have used screenBits.bounds for this calcuation. Since their ruler is in it’s own window, as David Dunham points out below, it should have been defined as a fixed size window or better still, growable. -Ed] The largest argument that subq will take in this form is 8, hence the substitution with a constant. Of course, once you’ve done this screen-size independence flies out the window, so don’t do it to an original...(You can find this peice of code with TMON by putting a trap intercept on GetNewDialog, launching WriteNow and waiting for the first intercept. GetNewDialog is immediatly followed by a MoveWindow and the SizeWindow shown above.)
When the ruler is shortened by 40 Pixels in this fashion, there’s just enough room for part of the top Finder icon to peek through.
Since this trick is so sleazy, I think I’ll request anonymity of you decide to publish it! [Granted! -Ed]
By the way, there’s one MacWrite feature that I especially miss under MultiFinder when using the newer word processors - its ability to put formatted text on the clipbord (the ‘MWRT’ scrap format). Microsoft Word, WriteNow (at least the version I tested) don’t do this, so you’re cutting and pasting plain text. Since PageMaker seems to understand this scrap format, that’s a pity. The ‘MWRT’ format isn’t perfect -- you can’t pass leading values, specify baseline offsets or odd-ball styles like strike-through, but it’s better than nothing. I’m hoping that there will be some improvement in this area in 1988. [We agree! The whole point of developing a new Text Edit was to support a new formatted text type for the clipboard, but no one is using it yet! We encourage developers to standardize on support for the new formatted text type in cutting and pasting across applications. How about an article to encourage this someone? -Ed]
C String Library Corrections
Doug Beck
Los Altos, CA
I keyed in the “Pascal String Library for C” from the November, 1987 issue. My Version (2.13) of Lightspeed C reports problems in some of the routines. Specifically--
• Page 39, right column, line 6 reads -pos; [This should have been --pos; in PStrCopy.c]
• Page 40, right column, line 23 reads While (*-sp != c && -n >=0); [This should have been (*--sp != in PStrFindLC.c]
• Page 40, right column, line 42 reads -sp; [This should have been --sp; in PStrFindLS.c]
• Page 41, left column, line 13 reads *-d =*-s; [This should have been *--d = *--s; in PStrIns.c ]
• Page 41, left column in procedure ShowVars(), variable wp not declared. The line as printed reads: auto WindowPtrwp, savedPort; [This should have been auto WindowPtr wp, savedPort; in ShowVars.c]
Most of these have obvious solutions with the exceptions of the first and last. If you could peek at the orginal and let me know what pos was being subtracted from, and what wp should be declared as I would appreciate it. Thanks and a fine 1988 to you all. [Thank you for bringing this to our attention. Using the operator -- as in --pos can sometimes lead to confusion when source code is placed in Pagemaker columns. We apologize for the inconvenience.]
Nice to Get Paid!
David Dunham
Goleta, CA
Picked up my MacTutor yesturday along with the check. thanks! JIm was amused that you him living in Goleta (he’s living in Dayton OH), and I’ll have to split the check with him but no problem.
Once again, I exhort you not to smooth screen dumps! The illustrations looked much better in my print out of the article. Also you forgot to use the [option] key while placing the document, and pagemaker curved all the quotes which weren’t supposed to be curved. In my article, this just made everything ugly (since I’d already used typographer’s quotes), but in the MPW article, it makes things confusing, since MPW uses various sorts of quotes already.
By the way, PageMaker does use something very like Acta ‘s format drivers. They’re called filters, and they’re part of PageMaker, rather than separate resources files. Somewhere I have a tech note from Aldus on writing them. (I found out about them long after I’d design Acta ‘s format drivers. It seems like everyone’s headed in the same direction -- Apple has a very similar concept in their format exchange program.)
I was amused by your editorial -- looked suspiciously like a review to me (and aren’t reviews fluff?). Also it’s inaccurate -- WriteNow ‘s is indeed a window. [Your right! I never realized you could move it! -Ed] This is readily apparent when you grab it by the numbers and move it. I grant you, it’s a somewhat MultiFinder-unfriendly window (Hypercard’s windoids and Superpaint ‘s palettes are the nicest, since they disappear when the application’s juggled out ). On the subject of Multifinder design, how about interface? Programs like Pagemaker orWord which use weird keybord equivalents for frequently used operations are especially egregious when used next to other programs which perform the same functions with standard equivalents. [Hear, hear! -Ed]
As for Mousehole Report, desk accessories have always been multiasking. They still are under Multifinder, though they don’t seem to get quite as much processor time. By the way, DAs are just one out of six ways you can multitask without MultiFinder or Switcher. These are:
• programmed support (a la Works ),
• VBL tasks (JClock ),
• DAs (Alarm Clock is an obvious example),
• GetNextEvent patching (BackDown ),
• FKEYs,
and disk initialization (purhaps stretching the definition here, but the system does run a special program for you -- a separate program in most systems). I have a half finished article on the subject, probably made obsolete by the release of MultiFinder.
Reflex Plus Comments
Kenelm W. Philip
Fairbanks, AK
It was with great interest that I read your editorial on Reflex Plus in the January ’88 issue of MacTutor. After reading it, however, I wrote the enclosed letter in the attempt to urge Borland to fix two defects (one annoying, one serious) in the existing versions of reflex Plus.
P.S. If you will reread my previos letter ( which you printed in the January issue), you will see that I was talking only about Mac II systems with two monitors when I mentioned the “COMMAND-Grow_Box” method of expanding windows. Both Reflex Plus and MS Word, for example, will not allow you to expand a single window to cover two mmonitors without using this handy trick.
I am glad to see your editorial on Reflex Plus in the January issue of MacTutor. I have been using Reflex intensively since it first came out from Singular Software as Interlace in 1085, and I Have found the program to be almost ideal for my purposes ( which involve maintaining data on a research collection of Alaskan insects). However, I think your readers should be aware of a couple of disturbing problems that have emerged, one involving the use of Reflex with Apple System versions 4.1 and later, and the other involving Reflex Plus.
Date Formatting Limited
Problem # 1 has to do with the formatting of fields declared to be of type ‘date’. According to the manual (for both Reflex and Reflex Plus) there are three date formats:
• short: 12/31/84;
• long:December 31, 1984;
• abreviated: Dec 31, 1984.
Unfortunatly, this is not the case with System 4.1 or 4.2, where both the Long and Abbreviated formats add the weekday name, becoming:
• Monday, December 31, 1984
• Monday, Dec 31, 1984
I have verified this problem for Reflex 1.00 and 1.01, and Reflex Plus 1.00 and 1.01, with Systems 4.1 and 4.2.
For my work on insects, dates are very important but weekdays are not. It was disconcerting to find that all my carfully formatted reports were fouled up by the addition of an extraneous and unwanted weekday name in date fields as soon as I upgraded to System 4.1. It occurred to me that the problem might very well lie in the International Resources in System 4.1, and that it might be possible to hide the weekday by activating the ‘supress dayname’ byte in those resourses. I ran into some problems trying to do this, so I sent a request on AppleLinkfor help with this operation. To my vast astonishment (remember that Apple and Borland are currently engaged in a joint promotion campain for Reflex Plus!) the reply was, in essence: “We do not recomend using ResEdit on applications. We suggest you try another database.” I had not even suggested using ResEdit on Reflex Plus.
I then wrote Borland. They replied that the problem lay entirely with Apple’s System software. Somehow, I was expecting them to say that-- But the problem remained. It also looked as if the technical support people at both companies were totally unaware of the Apple/Borland joint promotion campaign.
I was able to elicit a workaround for the problem. If you declare the field to be of type ‘text’ in your report, you can constuct a formula which will put the date into any form you like (without weekday names)-- and Borland was kind enough to supply me with such a formula. I reproduce it below for the benefit of other people who have run into this other wise intractable problem. Assume that your date field is named ‘WHEN’, and you would like dates in the format: 31 Dec, 1984. Use the following formula in the report, where the new date field is a text field:
DAY(WHEN)” “&IF(MONTH(WHEN)=1,”Jan”IF(MONTH(WHEN)=2,”Feb”, IF(MONTH(WHEN)=3,”Mar”IF(MONTH(WHEN)=4,”Apr”, IF(MONTH(WHEN)=5,”May”,IF(MONTH(WHEN)=6,”Jun”, IF(MONTH(WHEN)=7,”Jul”,IF(MONTH(WHEN)=8,”Aug” IF(MONTH(WHEN)=9,”Sep”,IF(MONTH(WHEN)=10,”Oct”, IF(MONTH(WHEN)=11,”Nov”,”Dec”)))))))))))&”, “&YEAR(WHEN)
A slightly different version of this formula is available from Borland as Tech Info note #370, “Truncating the day of the week”, date 28 september 1987. [We used a better refinement of this method by setting up a look-up table file to associate the month name with the month integer. This is a more elegant approach than the massive If Then Else statement. -Ed]
We are not out of the woods yet. A date field in a report so formatted will not sort by date. If you need to sort your data in chronological order, and you have Reflex(rather than Reflex Plus) you are out of luck. In Reflex Plus you can do the following: create one report in which the date field is of type ‘date’, and sort that report on date. Create another report in which the date field is declared to be of type ‘Text’, using the formula above--and then call the repeat rectangle from the first report in the second report (see page 184 in the Reflex Plus manual: “accessing Data in other reports”). This cumbersome workaround will take care of the problem--but it’s a kludge! Apple and Borland should get together and solve this problem. [Borland is right in saying that Apple modified the International date routines, which many companies use as is to avoid having to duplicate functions already done by Apple. But Borland should add to their built-in function list to include more date formatting functions. However, this is minor compared to the limitations of the exportation of reports I reported last month! My brain-damaged report exportation fix should be at the top of their ‘things to do’ list! -Ed]
Header and Footer Problems
Problem #2 is one that Borland introduced with Reflex Plus (both version 1.00 and 1.01). Something went wrong with the formatting of headers and footnotes in reports, and they now take up the entire space within the header and footer boxes even if they are only one line in length. that in : a one line header will be separated from the body of the text by about 1 3/4" of blank space; and a one line footer will have about 1 3/4" of blank space between itself and the end of the page, leaving about 6" of space for the text of the report. I have not yet verified this problem with all concievable configurations of hardware, but it has turned up with the following: Macintosh+, System 4.1, 15" ImageWriter; Macintosh II (2 MB RAM), System 4.2, 15" Image-Writer; Macintosh II (5 MB RAM), System 4.2, LaserWriter-from which I conclude that this is almost certainly a universal problem with Reflex Plus.
I called Borland about this situation, since I found Reflex Plus essentially unusable when it came to printing my data in properly formatted reports. The first response I received from Tech Support was that I had run into a problem that sometimes occurs when you take a Reflex database into Reflex Plus, and that I should throw away the existing headers and footers and re-install them from within Reflex Plus. That accomplished nothing-so I created a new test database file from within Reflex Plus, and, as I suspected, the exact same problem turned up. I called Borland again, and Tech Support now (reluctantly) admitted that they had received a number of angry calls about this problem. Nothing was said about when or if a fix would be made available.
I find it impossible to believe that beta testing did not expose this problem (unless Borland does not do beta testing). I am thus forced to the unpalatable conclusion that Borland released Reflex Plus unfinished, knowing it was not in fact yet suitable for the business environment for which it had been targetted. I had written Borland earlier to inquire if the major price increase in Reflex Plus would be accompanied by a proportional improvement in their user support, since their previous policy had been not to notify registered owners of upgrades. They assured me that I would be seeing a totally new level of support for Reflex Plus. It seems to me that one of the first steps in user support might be to provide customers with a business database that could print proper headers and footers...
I totally agree with the main thesis of your editorial-Reflex Plus is potentially a fantastic program, and would be my preferred database environment if it could only print decent reports. For the time being, however, I have archived Reflex Plus and returned to Reflex, which can handle headers and footers. [If my export problem were fixed, then you could export the report to Pagemaker and format it anyway you like! -Ed]
More Postscript Articles
Michael Gibson
Placentia, CA
I’ve just finished reading the article by Nocholas Pavkovic in the January issue of MacTutor. I thought it was great. Since I am just beginning programming in PostScript I think it would great to have more articles on PostScript Programming. I need all the help I can get. Keep up the good work.
Color Scanning
Douglas K. Beck
Los Altos, Ca.
As to things that seem to work on the Mac II: The PCPC IHD 144 internal disk installed the first time with just a screwdriver, came up with no trouble and has performed with speed and efficiency, 10 hours a day and more, for a couple of months now.
The RasterOps (Cupertino) 24 bit RGB controller is also performing up to expectations. I have written some display programs for it and it works up to the book with few misunderstandingsl I scanned some 1024 x 768 pictures from some 8x10 color positives that look fine. One picture of the Stanford Chapel, full of textures and fine detail, a bouquet of flowers and some color test patches, including the Macbeth color test pattern. I am driving a Mitsubishi HG6905BK 20 inch color display with the RO board. I am less enchanted with the monitor. All common adjustments require dismantling the thing since they are buried on the main pc board. A long insulated screwdriver is required, and you must fish down past the second anode terminal to get to them. Sigh.
I have received the National Instrument DMA controller, but have not tested it. Looks interesting, and uses an Intel chip to do the transfer thing.
Still to be received are the National Semi 16 Megabyte board and the Optronics 400 meg WORM unit. I will report how they work if desirable.
One thing that is causing pain right now, is having to convert from Megamax C to Lightspeed C to gain access to the color stuff on the II. Megamax is not going to support their Mac product any longer, and have orphaned the product just as it is coming of age on a machine that has the speed and multitasking capability to make it viable. Lightspeed is a nightmare. The inconsistent handling of strings is pitiful. With Megamax, all strings were C strings and the compiler took care of all the conversion work. Lightspeed lets you guess, Pascal or C this time? Bah. Can’t someone lean on Megamax and get them back in the game?
Spleen vented. Flame off. [A better approach would be to lean on Think to enhance their very popular C compiler to make string handling easier. -Ed]
I agree on WriteNow. I recommend it without reservation for all but the heaviest of duty tasks.
Incidentally, making mailing labels with HyperCard has been a pain. The ImageWriter is just not up to the task. However, if you get some Avery 5331 liquid toner copier labels (for use with the Cano Engine) the LaserWriter does a very creditable job. Looks neat on the Christmas Cards. [I use a very solid NEC Spinwriter for mailing labels for MacTutor’s 13,000 cirrculation. Apple simply does not make a business printer that can do labels reliably in the volume we need. The Spinwriter, however, is a truck. It can run all night and never jam. But it was a pain to get it working with the Mac! -Ed]
Speaking of Christmas, a Merry one to you and the very best for the New Year.
Postscript Projects
Nicholas Pavkovic
Chicago, Il.
Now that the PostScript article is out of the way, I thought I’d let you know about some of my more recent work. I’ve postponed QuickScript, my PostScript editor/downloader, and am finishing up a new program that’s similar to FindsWell. You’ll find a spec sheet enclosed. If you know of any publishers who are actively looking for products, let me know and I’ll send them a copy.
Another program I’m working on is a PostScript page layout program. No flashy graphics - this is a code-based program like JustText. What makes it unique, though, is that all of the processing is done on the LaserWriter in PostScript rather than on the Mac. Here’s what I do: I trick the PostScript interpreter into reading the text that’s sent over as text, not PostScript code. It’s put in a string buffer. Whenever the user encloses anything with square brackets, though, the text within the brackets gets treated as PostScript. Coded text might look like this:
[heading]PSText [left]
[body] [italic] PSText [plain] is a new page layout program that uses PostScript to perform the linebreaking and formatting that is normally done by the Mac’s processor [left].
body, italic, left, etc. are defined in a library of PostScript procedures, much like LaserPrep. The library can be added to by any PostScript programmer. There could also be additional libraries for typesetting tables, special effects, graphics placement and so on. Though this isn’ the sort of thing your average PageMaker user would pick up, I think it has some potential:
• It will be shareware, so it won’t cost an arm and a leg. Additional libraries for handling special typesetting needs could be public domain.
• It would offer a great deal of control over type, so it will appeal to people who are frustrated with some of the limitations of the current WYSIWYG programs.
• Its files can be generated with any word processor or editor. They can be downloaded to the LaserWriter or Linotron using a public domain downloader or even from the editor itself via the Postscript escape font.
I’d like to introduce it in a MacTutor article. Though it’s a PostScript hack, I’m hoping that it will give me some credibility with Adobe. I’d like to approach them about funding the rest of the development and marketing of my PostScript editor/downloader. Let me know if you think it’s something you’d like to run and I’ll start working on the article. Thanks. [I’d like to run it if you publish a program source showing some tricks on how to implement your idea, rather than just a review or press release. -Ed]
- SPREAD THE WORD:
- Slashdot
- Digg
- Del.icio.us
- Newsvine