SHULMAN@RED.RUTGERS.EDU (Jeffrey Shulman) (10/03/86)
Delphi Mac Digest Friday, 3 October 1986 Volume 2 : Issue 48 Today's Topics: Windows (4 messages) PAGEMAKER support MacApp status ? Excel Question Keeper Plus Is there an HFS wizard in the house? (5 messages) HyperNet HyperDrive 2000 (4 messages) Hyper2000 vs. TurboCharger 2.0 TOPS on HyperDrive 2000 HyperDrive 2000 and MIDI (2 messages) DiskTimer Results MacPaint/Clipboard patch? DiskExpress vs. HyperDrive 20 (5 messages) new Apple IIgs RE: chinese word processor Report on LightspeedC 1.5 ----------------------------------------------------------------------- From: MACINTOUCH (13131) Subject: Windows Date: 27-SEP 16:20 Business Mac I got a chance to play with Windows on an IBM AT clone yesterday, killing time at the local dealer's while they didn't get the HyperDrive fixed. It was running on a color graphics system, which looked to be fairly high resolution for color. Basically, I thought the system was rather disgusting in comparison to a Mac. Part of it was the color display, which was ugly and unreadable. Part of it was the response of the cursor and controls to the mouse. It felt a little like a fast car with poor handling characteristics. Part of it was user interface things where you had to go back to text, instead of having a graphic interface. This was true at the system level, with directories, and also at the application level, where most applications didn't support graphics at all. I found using the system confusing, partly because of different interface conventions and partly because there seemed to be no corollary to the Mac's filters which let you choose documents to open from a list of only appropriate types, not ALL files on the silly disk! Prices for an AT/hard disk/display combo are probably similar to a Mac/hard disk combo, but you'd never get me to trade. The day another system is BETTER is the day I will. Ric PS. Yes, it multi-tasks, and, yes, I'd like to see that on the Mac. It isn't enough. ------------------------------ From: LOGICHACK (13264) Subject: RE: Windows (Re: Msg 13131) Date: 30-SEP 00:17 Business Mac Ric: Considering the rather primitive resources Microsoft had to work with, I'd say Windows is pretty awesome. I can't figure out why some enterprising soul hasn't written a Finder for it yet... Isn't the AT + EGA color setup much more expensive than a Mac+? I thought the card and monitor were at least $600 to $1000 a peice. Also, Windows is pretty sad without a high performance hard disk. Paul :) P.S. I absolutely concur: the day a better system appears is the day I switch. ------------------------------ From: MACINTOUCH (13271) Subject: RE: Windows (Re: Msg 13267) Date: 30-SEP 01:22 Business Mac I didn't mean to imply that a _color_ AT was comparable in price to a Mac. I thought the color EGA stuff alone was about the price of a Mac Plus. or more. Ric ------------------------------ From: MACINTOUCH (13340) Subject: RE: Windows (Re: Msg 13323) Date: 2-OCT-17:13: Business Mac Well, I got a look at an AT running Windows on the color graphics adapter thing today. Yeah, the resolution is a lot better. But I think after an hour or two, my eyes would be rather tired. It still doesn't seem to have the sharpness of the Mac screen. Give me a Radius for the same money. Ric ------------------------------ From: MACMAG (13133) Subject: PAGEMAKER support Date: 27-SEP 16:26 Business Mac I am inquiring about Aldus's support. Here's the background: We purchased a few PageMakers some time ago. Around here they cost about $600 to $700. We did encounter many bugs and Aldus was unaware of them. It seems to me that when a company calls you back to help you out, you get the impression of getting a good service... but it always turned out that they really couldn't help us at all. In fact it sometimes took 5 calls to them in order for them to admit that there was actually a bug in their software ( I am referring to the fact that you can't write a capital accented "A" properly... a constant thing in non-US countries) .... They also have the gull of asking you to pay $75 in order to get help (which never seems adequate). Sure it's nice that they call you back, but I get the impression they don't eeven know their own software. Has anyone experienced such a thing or it is only a freak nuclear accident that everytime we call they never can seem to give us "straight" answers... Rich. ------------------------------ From: ROWLAND (13137) Subject: MacApp status ? Date: 27-SEP 18:50 Programming Could some one brief me on the current status of MacApp - in particular with reference to TML version 2 ? I recently got Schmucker's book on Object-Oriented Programming for the Mac and haven't had so much fun since Abelson/Sussman's book. Mike Burns ------------------------------ From: JEFFS (13145) Subject: Excel Question Date: 27-SEP 19:47 Business Mac Is it possible to "compute" an external reference? What I mean by this is that instead of hardcoding "=File1!A1" I want the "File1" name to be either a defined constant or the value of some cell. I tried defining a name to be "File1" but it kept using the defined name as the file name. I also tried writing a macro that concatenated the string "='File1'!A1" together but non of the Excel functions would "eval" that to be an external reference. Can it be done? It will save me LOTS of work if it can be done. Jeff ------------------------------ From: MACINTOUCH (13178) Subject: Keeper Plus Date: 28-SEP 10:48 Business Mac Along with killing time looking at Windows the other day, I also spoke with Sherman Uchill, the owner of Sherman Howe computer stores in Boston. He had just seen a demo of Keeper Plus, now being sold by Reach Technologies (800-523-8392 or 512-280-1977 in TX) and he was very impressed with it. It's apparently a true file server along with a hard disk, and he claimed that it was much faster than other AppleTalk networks he'd seen (he was pretty unhappy with Mac/Serve for a variety of reasons). He also said it was exceptionally easy to use. Keeper Plus seems to have the advantages of Mac/Serve's print spooling and backup utilities, along with a file server architecture partially based in hardware for performance. This one might be worth a look. Ric Ford "MacInTouch" ------------------------------ From: BRUSSES (822) Subject: Is there an HFS wizard in the house? Date: 27-SEP 20:43 Programming Techniques In an application I've been working on, I want to have some of my "SFGetFile" calls do some additional filtering through the use of the optional filter procedure. However, I've currently run into a stumbling block. My procedure decides which files to select by scanning a table of entries, where each entry consists of a volume reference number and a filename. I obtain these entries from previous calls to SFGetFile. Since I'm using HFS, these reference numbers are apparently "working directory reference numbers". When my filter procedure is invoked, the parameter block passed to it contains an actual volume number instead of a working directory reference number. Needless to say, my procedure only works if the files I am attempting to filter out live in the root directory of the volume. In order to make things work properly, how do I make the translation from volume number to working directory number in Lightspeed C? Bob ------------------------------ From: PEABO (823) Subject: RE: Is there an HFS wizard in the house? (Re: Msg 822) Date: 27-SEP 22:12 Programming Techniques You need to have (1) glue routines for HFS, which don't exist in the April release of LightspeedC, but which have been developed independently by Dave Berry (DWB) and posted in the database here (or perhaps in the MacSIG database under the topic Programming), and (2) an understanding of HFS, which you can get from the HFS Programmer's manual and a bunch of Tech Notes that pertain to the Standard File Package and access HFS catalogs. The Tech Notes are online here in the Developers' SIG database, if you don't have them. I think that you would be better off buying the HFS Programmer's Guide from Apple than downloading it here (it's huge) unless you are under a time constraint. If I am not mistaken, SFGetFIle returns the directory ID (a 32-bit number) in a global variable in low core, and you can translate that into a WDRefNum by calling the right HFS File Manager function. peter ------------------------------ From: DWB (827) Subject: RE: Is there an HFS wizard in the house? (Re: Msg 823) Date: 28-SEP 23:22 Programming Techniques Essentially, peter is correct. The dirID of the directory SF last loocked at is stored in the low memory variable, CurDirStore. It is the long at address 0x398. It is also valid while your filter routine is being called, (I think) and is definitely valid during event filtering. A dirID can be turned into a wdRefNum with OpenWD. GetCatInfo can be used to turn a wdRefNum into a folder name and dirID. Good luck, let me know if you need any more help. David ------------------------------ From: BRECHER (828) Subject: RE: Is there an HFS wizard in the house? (Re: Msg 822) Date: 29-SEP 05:38 Programming Techniques A DirID (and vRefNum) can be used to make a new WD via OpenWD, but there is no way to "look up" an existing WD via a DirID alone. Pack 3 creates new WDs to return to its caller. At the time you create your table, it would be better to translate the WDRefNum from SFGetFile to a vRefNum by calling GetWDInfo (not GetCatInfo). It would be even better still to also include the DirID (also returned by GetWDInfo) in the table, to accommodate multiple files with the same name on the same volume. ------------------------------ From: DWB (829) Subject: RE: Is there an HFS wizard in the house? (Re: Msg 828) Date: 29-SEP 21:59 Programming Techniques OpenWD will return an existing wdRefNum instead of creating a new one if one exists with the proper dirID and WDProcID. Most applications use 0 for the WDProcID, while SF uses something else. I forget exactly what it is but it's talked about in one of the Tech Notes. Probably the best way to uniquely identify a file is the triplet <vRefNum,dirID,name>. While we're at it, the quickest way to open a file or do any operation on it by name is to use the dirID and the name. That combination can be looked up directly in the catalog file. Anything else will have to go through at least one translation along the way. The worst possible way to perform a named operation on a file is via an absolute path name. Each component of the path has to be separately looked up in the catalog file. David ------------------------------ From: MACINTOUCH (13257) Subject: HyperNet Date: 29-SEP 22:48 Business Mac There are two crucial things about HyperNet that I think people might want to know about. The first is that it only supports MFS volumes! A file-server client cannot access the file-server host's HFS volumes. The second limitation is that HyperNet permits only _internal_ HyperDrives to act as hosts. This means that even the HyperDrive FX/20 external will not run HyperNet in host mode. There are some advantages to HyperNet that make it a _possible_ alternative to TOPS, but these will take some more exploring. Stay tuned. Ric "MacInTouch" ------------------------------ From: MACINTOUCH (13258) Subject: HyperDrive 2000 Date: 29-SEP 22:51 Business Mac The Hyper2000 (Mac Plus version) is working rather well. I've tried a variety of Telecomm. and also audio programs with it, as well as many other, and haven't encountered significant compatibility problems. It can be quite fast, especially using RAM disks or cache. One runs into configuration problems trying to use it with an external SCSI drive, however. It becomes impossible to auto-mount drawers (the SCSI drive boots first, and becomes the startup drive, and must have had HyperInstall run on it), and the RAM/cache is no longer configurable. While the RAM disk contents remain across SCSI-startup boots, they disappear if you then boot from the internal disk. Ric ------------------------------ From: HSTARR (13299) Subject: RE: HyperDrive 2000 (Re: Msg 13258) Date: 1-OCT-02:35: Business Mac If you remove the system and finder from the external SCSI drive(s) they will not boot, but be available on the Hyper-2000 ------------------------------ From: MACINTOUCH (13307) Subject: RE: HyperDrive 2000 (Re: Msg 13299) Date: 1-OCT-12:23: Business Mac Harry, Thanks for the tip! You're right of course -- don't know why I didn't think of trying that. The other thing I discovered is that you can run the FX Manager application from the Hyper to mount the FX/20. The FX Manager seems like a neat little application. It's also the means of setting the SCSI address for the FX. Interesting. It really _is_ done all by software. Ric PS The FX/20 external Hyper is _externally_ terminated, so you have to have the terminator along with your SCSI-Mac cable. All together though, the FX/20 is friendly to other SCSI devices connected to the same Mac becuase of the external termination and address selection ability... something we've missed on other drives. ------------------------------ From: HSTARR (13313) Subject: RE: HyperDrive 2000 (Re: Msg 13307) Date: 1-OCT-23:09: Business Mac Ric, Unfortunately, GCC have written their own SCSI manager, which replaces the one in the Apple roms. The result is that the FX20 WON'T WORK on a Prodigy 4. And while on the subject -- GCC haven't returned my calls regarding this problem. Oh yes, they are very polite -- the Fx20 Project manager is always in a meeting, and he WILL ring back. I often wonder why I have this misplaced sense of loyalty to that bunch of hackers!!! -- Harry ------------------------------ From: MACINTOUCH (13263) Subject: Hyper2000 vs. TurboCharger 2.0 Date: 29-SEP 23:43 Bugs & Features Yes, I know it's an odd thing to do, but, I _like_ TurboCharger. Altho the Hyper2000 has its own cache, I tried to use Turbo with it. A strange bug shows up: an ID=02 whenever you access a floppy disk. Otherwise it seems OK. Ric ------------------------------ From: MACINTOUCH (13272) Subject: TOPS on HyperDrive 2000 Date: 30-SEP 01:26 Business Mac Well, _this_ HyperDrive 2000 is running TOPS fine. It's running over to a Hyper20 512E and saved me a lot of aggravation by letting me copy 10MB of files from an _HFS_ volume over to the other Mac. (Hyper2000 is in a Mac Plus). The only glitch, which I haven't completely figured out, is that you sometimes have to Set Startup to the Start TOPS application (as described in the TOPS docs). Ric ------------------------------ From: MACINTOUCH (13274) Subject: HyperDrive 2000 and MIDI Date: 30-SEP 02:01 Business Mac Looking for possible bugs, I hooked up the Hyper2000 Plus to a MIDI synth ( thanks to Thunderware for making it possible) and the sucker seemed to work fine. Ric ------------------------------ From: LOGICHACK (13324) Subject: RE: HyperDrive 2000 and MIDI (Re: Msg 13274) Date: 2-OCT-00:45: Business Mac Ric: I'm kinda curious about the performance of the Hyper 2000 compared to the 3 to 1 TouchBoard from Human Touch. Any info there? Paul :) ------------------------------ From: BRECHER (13277) Subject: DiskTimer Results Date: 30-SEP 03:08 Hardware & Peripherals These are reported results from the DiskTimer program as of Sept. 29, 1986. DiskTimer measures performance on large (32KB) data transfers and on access time (seeking, head movement). The results are independent of the file system, amount of free space, System and Finder versions, etc. There is no direct translation of these results to perceived performance in ordinary Mac usage. Multiple results from the same drive by the same submittor which vary by not more than 5% have been combined into one report by taking the best result for each of the three tests. Where three or more reports from different submittors on the same drive were available, I have omitted those having results on all three tests which fell between the best and worst shown below for that drive. Additional reports are welcome on hard disks not shown below or those which have only one report so far. Please disconnect Appletalk or other networks for the test, since network activity generates interrupts that temporarily suspend execution of the disk driver software. ----- time in seconds ----- 100 32KB 100 32KB 80 1MB Model, Vendor [Note] Reads Writes Seeks Reported by --------------------- -------- -------- ------ ------------ Bernoulli Box 10+10 SCSI, Iomega 26.4 26.5 3.7 Netman, MacInTouch DataFrame 20, SuperMac 33.6 33.5 6.9 Robert Wiggins DataFrame 20, SuperMac 33.6 33.3 7.1 RONB/Delphi DataFrame 20, SuperMac [1] 29.0 29.1 4.2 DWB/Delphi DataFrame 40, SuperMac 13.4 13.7 3.8 Norman Fong Easy Drive 40MB, DC Systems [2] 56.4 59.5 3.7 Tim Smith Easy Drive 40MB, DC Systems [3] 18.2 42.3 3.7 Tim Smith Easy Drive 40MB, DC Systems [4] 24.2 24.4 3.6 Tim Smith Hard Disk 20, Apple 115.6 130.9 6.1 Steve Ellett Hard Disk 20, Apple 162.5 166.7 6.1 Robert Wiggins HD20SC, Apple (SCSI) 20.5 20.5 3.8 Norman Fong HD20SC, Apple (SCSI) 20.5 20.6 3.9 P. Williams, Apple HyperDrive 10 (64K ROMs), GCC 132.1* 131.8* 5.4** Harry Conover HyperDrive 10 (64K ROMs), GCC 25.1 25.1 7.8** L. Randy Lee HyperDrive 20 (64K ROMs), GCC 26.5 25.0 2.9 Steve Ellett HyperDrive 2000, GCC 14.8 12.9 2.9 Harry Starr HyperDrive FX20 (SCSI), GCC 20.5 30.5 3.8 Harry Starr LoDOWN 20MB, LoDOWN 16.5 18.2 4.0 David Dunham LoDOWN 20MB, LoDOWN 16.6 16.9 3.8 Steve Ellett LoDOWN 20MB, LoDOWN 18.4 18.3 3.9 Michael Klickstein LoDOWN 20MB, LoDOWN 16.5 17.0 3.5 Bill Steinberg MacBottom (serial port), PCPC 68.0 112.8 9.1 Steve Ellett MacBottom (serial port), PCPC 68.8 113.6 9.3 Robert Hafer, BCS MacBottom HD21 (SCSI), PCPC 21.4 21.6 4.9 Steve Ellett MacBottom HD21 (SCSI), PCPC 21.7 21.6 4.8 Bill Steinberg MacDrive, Tecmar 100.2 111.3 5.9 Chip Nicolais Magic 20, Rabbit Industries 18.4 42.8 3.8 Larry Halff MicahDrive 20 AT, MICAH 8.2 8.5 8.2 Rob Hahn MicahDrive 20 AT, MICAH 8.2 8.2 7.2 Ted May OverDrive 20/Prodigy 4, Levco 51.4* 142.9* 4.7 Harry Starr Photon 20, Warp Nine Engineering 23.4 28.7 3.9 Duane Williams ProApp20, ProApp 13.3 24.0 3.3 L. Randy Lee S-20+, Peachtree Technology, Inc. 21.6 21.6 4.9 L. Randy Lee note 1: 512E with Levco SCSI add-on and MonsterMac RAM upgrade note 2: 1:1 interleave (as shipped) note 3: 3:1 interleave note 4: 4:1 interleave * This result appears anomalous; it should not be taken seriously pending some explanation of what might be the cause, as it diverges widely from other tests of this model and/or experience in its use. ** On HyperDrives, the seek test provides meaningful results only when run from a drawer which is contiguous for more than 1MB. Whether this was the case for these results is not known, but the results suggest it was not the case. ------------------------------ From: MACINTOUCH (13278) Subject: MacPaint/Clipboard patch? Date: 30-SEP 16:23 Bugs & Features Does anyone have a (Fedit) _patch_ to work around MacPaint's problems with finding the Clipboard in HFS volumes?? Ric ------------------------------ From: MACINTOUCH (13279) Subject: DiskExpress vs. HyperDrive 20 Date: 30-SEP 16:26 Bugs & Features I made a real mess out of a Startup drawer by setting the default to a different drawer and running DiskExpress on Startup from the other drawer. All the files got trashed, not just the System or Finder, although they sort of _looked_ OK. I don't know what went wrong, but I'm not anxious to spend more time on more "experimenting" Running DiskExpress on the HFS non-Startup drawer seemed to go OK. Ric Ford ------------------------------ From: HSTARR (13300) Subject: RE: DiskExpress vs. HyperDrive 20 (Re: Msg 13279) Date: 1-OCT-02:39: Bugs & Features Use Hyper tools instead -- it is safer. ------------------------------ From: MACINTOUCH (13308) Subject: RE: DiskExpress vs. HyperDrive 20 (Re: Msg 13300) Date: 1-OCT-12:24: Bugs & Features The thing about DiskExpress is that it allows you to _really_ optimize the disk, separating applications and data and placing them where they belong for best performance. Ric ------------------------------ From: HSTARR (13314) Subject: RE: DiskExpress vs. HyperDrive 20 (Re: Msg 13308) Date: 1-OCT-23:12: Bugs & Features This really only applies to a normal SCSI of other drive. With the Drawer scheme used on the Hypers (and I guess on the MICAH's), there is an extra layer of fragmentation we have no control over. DiskExpress's optimization cannot guarantee physical drive optimization. However, it can reduce file processor overhead by reducing the allocation clump numbers, possibly reducing the number of C-File lookups to 0. -- Harry ------------------------------ From: BRECHER (13333) Subject: RE: DiskExpress vs. HyperDrive 20 (Re: Msg 13314) Date: 2-OCT-08:14: Bugs & Features MicahDrive subvolumes are contiguous; HyperDrive drawers are not necessarily contiguous. The drawers scheme provides more flexibility, at the expense of complexity. Why did GCC bypass the SCSI Manager? FX20 DiskTimer results do not indicate the reason for doing so. ------------------------------ From: PIZZAMAN (13284) Subject: new Apple IIgs Date: 30-SEP 20:38 Hardware & Peripherals Note on the Apple IIgs. Got a chance to play with one today at my Apple dealer. Was very impressed with the color and sound, but was pretty dissapointed in the user interface. The little gem had two external disk drives, and didn't seem to recognise anything that was placed in them. You had to hold down three different keys in order to boot what was in the drive, and it wasn't very intuitive. In fact, it didn't even work the first two times the dealer tried to boot the demo's. The second thing that was immediately obvious was the slowness to do anything. In the color macpaint facsimile, it took what seemed like minutes to load in the different demo scenes that it had. Very slooooow! The music demo was pretty impressive with the Bose speakers. However, again, the user interface was for the birds. You couldn't easily figure out how to get the disks ejected, and the icons were totally insane. Couldn't tell what any of them were for. You get pretty spoiled with the Mac, what with every program working under the same guidelines, including the simple task of quiting the program and ejecting the disk. I don't think the Mac has anything to worry about, unless you want to sit in front of the screen going ga-ga over the pretty color pictures. Barry ------------------------------ From: BMUG (13285) Subject: RE: chinese word processor Date: 30-SEP 21:18 Network Digests TO: AEBERSOL%WILLIAMS.BITNET@WISCVM.WISC.EDU Subject: chinese word processor Dennis - At last week's BMUG meeting, we saw a demo of FEIMA, a Chinese word processor. It appeared to be TERRIFIC for entry of Chinese text. I'll UL a file containing some pictures as soon as I can find it. -- Raines Cohen SYSOP, BMUG BBS ------------------------------ From: PEABO (13318) Subject: Report on LightspeedC 1.5 Date: 1-OCT-23:42: Programming The Boston Computer Society MacTechGrp had as its feature presentation tonight the public premiere of LightspeedC version 1.5. Michael Kahl of THINK Technologies, the author of the compiler, presented the product on the 6-month anniversary of the first shipments of version 1.0 There are many enhancements in version 1.5, and I'll mention them in the same order as they were demonstrated. First, many people have noted that the most time-consuming part of a test cycle seems to be relaunching Lightspeed after quitting the application. Version 1.5 provides instant "relaunch" by sensing when it has been initiated under Switcher and using Switcher to launch the program being tested in another partition. This means returning to LightspeedC takes place without noticeable delay when the application exits, and that if the application being developed is working well enough to run its event loop reliably, that you can switch back and forth betweeh LSC and the application at will if you need to look at source code. The audience got quite a charge out of seeing LightspeedC running a development copy of LightspeedC, which in turn was running a small test application! (It requires quite a bit of memory to do that though, since it means having two copies of LSC plus the application in memory at once ... use at least one meg.) Next we saw a demo of the DA Shell, which is a small program that is automatically launched for testing Desk Accessories. It seemed to work very well (a similar program is used by Lightspeed Pascal to test DAs). One nice feature that was included is a Relaunch item on the menu of DA Shell, good for testing "goodbye kiss" logic. The Editor has a large number of nifty new features, many of them based upon taking advantage of the integrated edit-compile-link environment. Undo works! Mac Plus cursor keys work, with variations based on using shift and/or option. Syntactic checking is enhanced by use of a Balance command that hightlights the portion of text that contains a balanced pair of parentheses, brackets, or braces. Combined with the Find command (on the { character) it can be used to step through your program text one function at a time, for example. Doing an option-double-click on the name of a globally defined variable causes the file containing the definition of that variable to open and the search function to be initiated for it. This uses information known to the linker for determining which module to open. Option-click on a source window title bar causes a scrolling menu of filenames included in the module to drop down from the title bar so you can open an included file without losing your insertion point (a problem with the Open Selection menu item of the original release). Zoom boxes are implemented on all windows, and there is a new Windows menu containing commands for bringing windows to the front (command key equivalents are Cmd-0 for the Project Window and Cmd-1 though N for the source windows). The Windows menu also contains clean up, zoom, close all, and save all. The Project window has some standard-file-like keyboard navigation tricks. Typing the first few characters of a module name selects the first occurence of a matching name, and Tab alternates among all names matching. Cursor arrows go up and down in the list, and Return opens the module for editing. HFS support has greatly improved. Where the original version LSC would search in only 3 HFS directories (the one containing the source file, then the one containing the Project file, and finally the one containing the compiler), the new version treats the subtrees anchored at those directories as the set of places to look. When a file is first found in this fashion, its directory location is remembered in the project so that it can be found more quickly the next time. If you subsequently move it, the tree search will be repeated to find it again. If you move a large number of files, or transport a whole project to another directory structure, you can easily rebuild LSC's recollection of the location of files by using the Use Disk option in Make to find all the files. You can also shield subtrees which would ordinarily be included in the search by placing them in directories wholes names begin and end with parentheses (like "(backup)" for example). The full support of Inside Mac vol 4 HFS libraries, included definitions, and glue routines is now standard, and the UNIX-like stdio package has been modified to work in a Macish windowed environment in lieu of the white screen. The compiler's code generator has been improved by 4-8% space efficiency though the use of short branches. All backward branches are shortened if possible and the great majority of forward branches are as well. The compiler now supports inline assembly in a particularly slick fashion. Rather than just emiting assembly code in between #asm ... #endasm as most compilers do that have separate assembly phases, LSC integrates the semantics of assembly language into the syntax of C. The construct is asm {...} in the form of a block that can be used anywhere a C statement can, and the assembler code can reference global variables, local variables, function parameters, and even offsets into structures (using the macro OFFSET(structure-tag,field-name) in place of the byte offset in an instruction). Macro substitution uses normal C language preprocessor macros. We didn't see enough of the code to tell if there were any major syntactic differences from normal assembly language code, but there are a few nice things, like being able to omit the reference to A4/5 or A6 if the compiler sees the name of a global or local/parameter. You can even reference register variables by using the name of the variable! You can write your own glue routines by using the trapnames for register-based traps. A dc instruction is available for imbedding constants into the code segments. Jump and goto statements can be used to transfer between sections of C code and sections of assembler code. Break, continue, and return act as they would if they were used outside the asm block. Either C-like or assembler-like comment conventions can be used. The compiler also interprets and enforces function prototypes like extern pascal Handle abcfunc(short, char **, Handle); and checks calls to the function declared as a prototype for number of arguments, type mismatch, and need for coercion (i.e., longs and shorts will be coerced appropriately, so you don't wind up with strange errors in argument list offsets). A function prototype can also specify a tail of zero or more unchecked arguments, as is needed by the stdio routines fprintf, etc. The declaration void * is accepted as a pointer of unspecified and universally compatible type. Functions defined in a module which contains a previous prototype declaration get validated to be sure that the definition matches the declaration. There is not any way of emiting a prototype file of all the defined functions in your module though. You have to do that manually. The Options dialog (which used to be a separate menu item) now has some options to control whether protypes are required or not and whether type checking of pointers is done. While there are no prototype definitions for the Mac Toolbox, the validation used by the original LSC version still applies, and in addition the stdio functions have had prototype declarations included in include files. LightspeedC 1.5 is being shipped to selected beta test sites next week, and with any luck will be available to registered owners around the end of October. The upgrade is FREE to all registered owners of LightspeedC, in appreciation for their early support. peter ------------------------------ End of Delphi Mac Digest ************************ -------