AppleLink APPLE II DEVELOPMENT FORUM CONFERENCE LOG February 21, 1989 10:00 p.m. Eastern time Topic: Apple II Operating Systems Forum Leader: James Luther (Jump Long) AFA Gary J Tonight's topic is Operating Systems. DennisDoms (Operating Systems, I think) AFA Gary J Hi Dave DennisDoms It just seemed to be a good, friendly RT with some good info. Matt DTS I'm glad to hear it! Matt DTS Hi Dave, Doug, Everyone Else. Dave Lyons Howdy, all. Jump Long Hi all! HeckOfAGuy wehn do we start? AFA Gary J Hi Jump! Jump Long <- AFL Jim left his disk at work. AFA Gary J :) SEGlass Whats the topic tonight? HeckOfAGuy bye AFA Gary J Operating Systems. Matt DTS Jim left here right around an hour ago, like a good little soldier (OSs, Steve) SEGlass I guess I'll stick around. I might know a thing or two. Matt DTS I've heard that. Jump Long I wonder how many times I'll have to tell who I am tonight... SEGlass Thats the one about Dorthy and a wizzard, right? AFA Gary J heheh... AFA Gary J Jim IS here! Jump Long <- AFL Jim (really!) SEGlass where? Jump Long Anyway... Welcome to the Apple II Development Forum. Tonight's topic is AppleII Jump Long Operating Systems. Jump Long I guess we'll start off with no protocol until things get going. Jump Long (here Steve) SEGlass Now I see. Jump Long The floor is open... AFA Gary J I've got one, (if nobody else does...) Jump Long Hi Guy AFA Parik why does GS/OS replace the control panel vector? Jump Long GA Gary Guy Rice Hello JML. AFA Parik (bugs in the ROM version, etc) AFA Gary J What is it about the GetFileInfo call that could cause a "Block number out of Dave Lyons A better question is DOES GS/OS replace the control panel vector, I think. AFA Gary J range error" in GS/OS? Jump Long <- Jim M Luther Guy Rice I'm sure it does... AFA Parik it does, I've got two GSs, one w/ ProDOS 8 and one w/ GSOS and one points to Dave Lyons Gary, it reads the bitmap and finds that there's a free block past the end Dave Lyons of the volume! AFA Parik routines in bank $14 and one points to routines in $FE. I disassembled them SEGlass ! Guy Rice GS/OS replaces it I think so that you can't get in while the Busy flag is set. Dave Lyons (I tried it a little bit ago & posted a msg in your folder in ADV:OS.) AFA Parik both and they seem to be the same except for a few minor differences. AFA Gary J Yes, but doesn't ProDos 8 read the bit map as well? AFA Gary J Ok, Thanks Dave! Dave Lyons Parik, do you have SoftSwitch installed? AFA Parik nope SEGlass Wow, this all went by too fast!!!! AFA Parik (Hi Scott) Jump Long Maybe we better go to protocol... ScottG25 (Hi Everyone) Jump Long Q= Parik, Gary SEGlass Please AFA Gary J Q = Parik Dave Lyons ! AFA Parik :) Jump Long GA Steve AFA Parik Question again: GS/OS replaces the Control Panel vector ($E1/0048) with its AFA Gary J Q = Parik (Steve, Dave) AFA Parik own routine in bank $14. Is there some bug in the ROM version which is AFA Parik located at bank $FE? SEGlass GSOS does not replace the vector. Guy Rice It does. SEGlass The event manager does replace the vector. SEGlass It always has replaced since the very first ROM. SEGlass It has nothing to do with the OS. AFA Parik ok, thanks. AFA Parik (any particular reason why? :) SEGlass The idea was that the CDA request should be an event, not always an Dave Lyons Well, I just checked (event mgr off), and there is indeed a RAM-based version Guy Rice Right. SEGlass interrupt. SEGlass That way an event based program could control whats going on Dave Lyons installed there (I hadn't noticed before). It's a patch on the System Disk, SEGlass a little better. GA. Dave Lyons but it isn't actually part of GS/OS. (Just TOOL.SETUP / TS2.) Guy Rice In other words, System 4.0 replaces it. Guy Rice ? AFA Gary J Q = Parik (Dave) Dave Lyons Correct. AFA Gary J Q = Parik (Dave), Guy AFA Parik GA Dave Lyons I haven't compared the ROM version w/ the RAM version, but Jump Long Guy, GA Guy Rice Ooops - sorry, that was a mistake... ga Dave Lyons I remember there were some (relatively harmless, but ugly?) bugs in the ROM. Jump Long ooops Dave Lyons (Ken Kashmarek rewrote the thing as SOFTSWITCH.INIT or something, too.) Dave Lyons (ga) Jump Long Guy, was that a question or not at question? Guy Rice Nope. sorry. AFA Parik They're both almost the same BTW. Is it safe to put a $00 in $E01D67 to Jump Long OK, Gary, do you want to repeat your question or did you get enough of an Jump Long answer? AFA Parik disable the control panel? This fools it into believing its being re-entrant. AFA Parik re-entrant = re-entered. AFA Gary J I think Dave answered my question. He was nice enough to test my situation. SEGlass ! Jump Long GA Steve AFA Gary J I was getting a "block out of range" error on my hard drive when doing a AFA Gary J GetFileInfo call on the volume. SEGlass I think I just remembered why we patched it. AFA Gary J GA SEGlass There was a problem if you went into the CDAs and an NDA was the SEGlass front window. The event manager would pass all keystrokes to SEGlass the NDA even though it was not on the part of the screen you could see. SEGlass We fixed it by telling the system that the CDA menu was active and not allowing SEGlass keystroke events to passed on to NDAs at this time. Leaving the CDAs SEGlass activated the NDAs again. SEGlass GA Dave Lyons ! Jump Long GA Dave AFA Gary J Q = Parik (Dave) Dave Lyons I don't understand...did it pass the keystrokes _only_ to the NDA, or would Dave Lyons they also get seen by a CDA doing ReadChar calls? (I've never had trouble Dave Lyons typing in Nifty List with NDAs open, on any version of the System Disk.) Dave Lyons (ga) SEGlass The way GetNextEvent works is that before the event is returned to the SEGlass calling routine, SystemEvent is called. SystemEvent looks at the SEGlass top window. If it is a system window, then it sees if that system window SEGlass wants the kind of event that is being looked at. If it does want the AFA Gary J Q = Dave (Steve) SEGlass event, then it passes it on the the NDA and the event manager returns SEGlass a null event. If the NDA does not want that kind of event, the event SEGlass manager returns it. An NDA that does not accept keystrokes would not SEGlass have caused a problem. Dave Lyons Well...I'm still baffled, then. I'm pretty sure I have a lot of NDAs that have SEGlass Does that help? GA. Dave Lyons -1 (all events) for their event masks, even though they don't actually do Dave Lyons anything with keyDown events if they get them. I'll look into it some more. Dave Lyons (done) Jump Long For those that just wandered in, I'm AFL Jim (really!) Matt DTS He is not! I'M AFL JIM! Guy Rice Heheh... AFA Gary J Sure you are.. :) And I'M Steve Wozniak! JSchober :) SEGlass I thought you were John Scully Jump Long haha, Matt - You could be if you went a couple of cubes over! Jump Long (and knew the secret code :) Jump Long Anyway... back to OSs SEGlass ! JSchober (did I miss anyone's FN?? %) Coach101 ? Jump Long GA Steve AFA Gary J Q = (Steve), Coach SEGlass Just an interesting point to note: we have not yet been talking about SEGlass anything relating to an OS on the GS. SEGlass This desk manager stuff and event manager stuff is all independent of Jump Long Gary was... AFA Gary J :) SEGlass the OS. The patch may have first appeared on the 4.0 disk which SEGlass is so well noted for GS/OS, but many people have trouble distinguishing where SEGlass the OS starts and stops. Not that I'm complaining, the same problem happens SEGlass inside Apple for all our product lines too. GA. Dave Lyons [No problem: The OS starts at $E100A8 and B0. :) ] AE JohnS :-) AFA Gary J Q = Coach Jump Long GA Coach Coach101 With regard to disk caching, Coach101 When I set the size with the Apple Nda, when is that emory actually Coach101 used, what can cause a release of that memory, and what happens if Coach101 the amount of memory is not available at the time that GsOs goes Coach101 to do a Cache operation (presuming that the memory is not a hard Coach101 set aside from the time the value is set in the Nda) GA Jump Long I think that was covered in the message boards several months ago... Dave Lyons ! Matt DTS ! (Since no one else is) Dave Lyons (ga Matt) Jump Long GA Dave Matt DTS (dave, quit that) AFA Gary J Q = Coach (Dave, Matt) SEGlass I knew Dave and Matt could answer! AFA Gary J :) Jump Long Let's all answer... Matt DTS The cache size set by the Disk Cache NDA is the maximum size that the cache may grow to. AFA Gary J Q = Coach (Matt OR Dave..both at the same time) Jump Long If the memory isn't available, GS/OS won't get it. Matt DTS It is not all allocated when you set the cache size (which is done through a mostly-undocumented... Matt DTS ResetCache call), but is allocated as drivers and FSTs request that blocks be cached. Dave Lyons ! --> ? Matt DTS It is only released when a driver/FST asks a particular cached block to be flushed from the... Matt DTS ...cache or a ResetCache call is allocated. (GA, Dave) Dave Lyons I would have got that mostly wrong, BTW. Anyway, now I have a question Dave Lyons instead: What is the difference between a 0K and a 16K cache setting? I read Dave Lyons that the cache is always at least 16K. Does that mean it's setting+16K, or Dave Lyons min(16K,setting) ? SEGlass 16K or is this a trick question Dave Lyons (I mean the "maximum cache size", of course.) SEGlass ! AFA Gary J Q = Coach & Dave (Matt) Matt DTS The OS has an internal cache that FSTs may use that is at least 16K, regardless of the NDA setting. Jump Long GA Steve Jump Long and Matt Dave Lyons Okay, so the effective maximum is 16K more than the setting. Got it. SEGlass The settings above 0 are in addition to what the OS will do anyway. Matt DTS (Steve will correct me if I'm wrong.) SEGlass There are other times that the cache is flushed. AFA Gary J Q = Coach & Dave (Steve & Matt) SEGlass Most specifically, when the disk from which the blocks came from is Matt DTS That's true. I forgot about that. SEGlass ejected. SEGlass Caching also works differently depending on whether or not SEGlass sessions is on or off. SEGlass I'm not sure of the details, but generally, many more blocks are cached Dave Lyons ? SEGlass if sessions is on. Also, applications can get involved in caching, but again SEGlass I don't know the details. GA. AFA Gary J Q = Coach, Dave Jump Long Coach, is this enough or do you have a follow-up question? Matt DTS ! Matt DTS ! = "Do you want more details or is that enough?" Jump Long GA Matt, give us details. Coach101 A ? and ! Matt DTS I'll let Coach go first since he has the floor. GA. Jump Long OK, GA Coach Coach101 first the comment. Since re-booting a II-Gs is an infrequent Coach101 happening, and I never eject my hard-disk (intentionally), it Coach101 is reasonable that I could accumulate some long unused cache Coach101 blocks from an application that ran an hour ago. Now I come Coach101 along and have a memory hungy application that does not have Coach101 much need for disk cacheing. Is there a provision for an application Coach101 to cause the cache to be flushed? Now I forgot the second ? Ga SEGlass ! Jump Long GA Matt or Steve AFA Gary J Q = Coach (Matt/Steve), Dave Matt DTS (GA Steve - researching) SEGlass Unless an application does something special, there are not SEGlass many blocks that the OS will cache by itself. The exception to this Dan Burton ! SEGlass is the sessions call which causes the cache to be flushed when Matt DTS ! SEGlass sessions are turned off. But there is still the potential for problems. The AFA Gary J Q = Coach (Steve/Matt, Dan), Dave SEGlass cache is not purgable. GA Coach101 So, Dan Burton It would be nice to be able to turn cache off or bea able to fulsh it for us Jump Long Matt, GA Coach101 BeginSession followed by EndSession will effectively reduce the Dan Burton Crazy people that use 1 CMS drive on 2 IIGSs Coach101 current cache to its smallest size (16k) ? Dave Lyons ! Matt DTS (everyone else GA - I just wanted to stick my foot in the door) Dave Lyons Dan, write your own device driver that never caches any blocks on your drive. Dan Burton I thought about it. SEGlass I don't know if the session calls will flush any more than what is collected SEGlass during the time sessions is on. An easy FlushAll is a good idea. I don't SEGlass know if it is easy to do, but Matt is researching... Any news matt? AFA Gary J Q = Coach (Steve), Dave SEGlass GA Matt DTS Hold on - let me find the latest question... AFA Gary J (he must be multi-tasking again :) Coach101 Applicatiion level Flush All --- I think? Jump Long Steve, are cache blocks purgable at any level by the Memory Manager? Matt DTS Ok. First, ResetCache will flush the cache. We didn't document this call in Volume 1 mostly... Matt DTS ...of time constraints. We'll try to get it in the Final (A-W) manual, and probably a tech note too. Jump Long (never mind) Dave Lyons (It's in NLIST.DATA, tho, I think.) Matt DTS Second - a Session in progress effectively directs all blocks that are written as cached NOT to be... Matt DTS ...written to disk as well, until an EndSession is encountered. Since the ProDOS FST automatically... AFA Gary J Q - Coach (Matt/Steve), Dave Dave Lyons ! Matt DTS ...caches (or requests caching for) "system blocks" (directories, bit-maps, etc.), this has the effect AFA Gary J Q + (Dave) Matt DTS ...of writing just the data blocks to disk immediately, and not writing all the directory... Matt DTS ...updates until the end of the session. This keeps the drive head from moving around so much... Matt DTS ...and increases speed. The whole scheme fails if the application asks that all the files it's... AFA Gary J Q = Coach (Matt/Steve, Dave), Dave Matt DTS ...reading/writing be cached as well, since those will kick out all the system blocks in the cache... Matt DTS ...unless the cache is big enough to hold EVERYTHING, and things will be around normal speed. Matt DTS For more information on this, I strongly recommend (since I was strongly suggested to write it)... Matt DTS ...GS/OS TN #3, "Pointers on Caching", which should be right here in the ADV library. GA. (Whew!) AFA Gary J Yes, it is in the library. Coach101 I read Tn 43. It did an outstanding job of discussing and Jump Long I might note that Gary Little's new book has the ResetCache call documented in Jump Long it. Coach101 explaing when to use cacheing. It did not address the items that AFA Gary J Q = Coach (Dave), Dave Coach101 have come forth in this discussion. Thanks for all the information. Coach101 That finishes my questions ... Ga.... Dave Lyons Does ResetCache flush the internal 16K, too? Jump Long Dave GA Dave Lyons :) Dave Lyons (No big deal--just wondering if Doug is going to fry his drive trying to use Dave Lyons it.) Jump Long ResetCache resizes the cache to the battery RAM setting. Dave Lyons Mmmm. So it doesn't necessarily remove all blocks from the cache, right? Jump Long I would _guess_ that flushes it in the process (I don't know). ScottG25 ? Dave Lyons Okay, a more interesting pair of questions: Does the Finder use Sessions? and AFA Gary J Q = (Dave), Dave, Scott Dave Lyons is the cache limited by its set size even during a session? SEGlass Yes and I thing no. DaviesDoug ! SEGlass thing should be think Jump Long GA Doug DaviesDoug Think I've seen a couple of SESSION calls in FINDER (kludging through it... DaviesDoug one day) AFA Gary J Q = Dave (Doug), Scott Dave Lyons Okay, good. Dave Lyons Well, let me throw out 2 more things quickly: Dave Lyons Can generated drivers generate disk-switched events, or whatever the right Dave Lyons terminology is? For example, what about a Laser 3.5 drive on a UDC card or Dave Lyons something? (Somebody on Info-Apple was complaining that GS/OS would prompt Dave Lyons for a disk & never notice that he switched disks.) Matt DTS Stupid Macintosh crashes all the **** time... Matt DTS ... SEGlass Use a real system! Jump Long Turn off intermail, Matt ;) Dave Lyons Nobody tackling that one? Matt DTS What Matt DTS ('s the question?) Jump Long Repeat it, Dave Dave Lyons The ? was can a generated device driver come up with disk-switched events, like AFA Gary J Q = Dave (??), Scott Dave Lyons for a 3rd-party 3.5" drive on a 3rd-party interface card. A user was Dave Lyons complaining that GS/OS never noticed he switched disks & kept prompting for Dave Lyons the one he had already inserted. Jump Long on what drive and card, Dave? (you'll like this Matt) Matt DTS A generated driver never generates disk-switched EVENTS, to the best of my knowledge. However... Guy Rice Heheh! Dave Lyons I think it was a Laser 3.5 drive on a UDC card, but that might be wrong--I can' Dave Lyons t check the msg right now. AFA Gary J Q = Dave (Matt), Scott SEGlass Did he crash again? Matt DTS ...a generated Extended SmartPort driver can return disk-switched errors when they occur. GA. JSchober ...let me try to hunt down Dave's message on info-apple here... hang on... Dave Lyons While Joe's doing that, I want to take a quick poll: How many people here Dave Lyons are reasonably sure they've had a volume damaged because a buggy 3rd-party Dave Lyons utility accidentally overwrote part of GS/OS's cache? I have. (Some Apple Dave Lyons people already know how I feel about this.) JSchober (Dave: got an approximate date-posted on that message?) Dave Lyons (Yeah, approximately yesterday or today, I think.) JSchober Ok... AFA Gary J Q = Dave, Scott Matt DTS {S About Applelink} Coach101 Getting at checksumming, Dave? Dave Lyons Yes, Coach, I'd like to see the OS do some checking when reading from the Dave Lyons cache to make sure it hasn't been tromped over. SEGlass If you run something that trashes random memory, check summing the cache Coach101 I see the problem Dave, but that little old 65816 is very SEGlass is not going to make it safe to run that application. Coach101 overworked. But, it would protect the inexperienced appliance Guy Rice It will prevent that application from destroying the disk, though... Dave Lyons Right, I don't mean that checksumming would make me feel safe using a buggy Jump Long It could be tromping on the OS in many other places. Dave Lyons application--only that it would point out the problem in some cases! I'd want Coach101 user. I would probably turn it off and take my chances with DaviesDoug Welcome back matt!!!!!!!!! DaviesDoug hehe AFA Gary J Q = Dave, Scott Dave Lyons it to cause a fatal error giving the address of the trashed block, and there'd Coach101 _better_ software. Or...... Hardware memoryp protect!!! Dave Lyons be some chance of identifying the culprit from the data it stored over the Dave Lyons cache. SEGlass The only time that cached memory is written is when the JSchober (stupid ALINK software... BUFFER FULL on the catalog... sorry...) SEGlass application uses the sessions call. Matt DTS Not exactly, Steve. Dave Lyons No, Steve: Here's what happened to me. Something overwrote the last 1/4 of AFA Gary J Careful, Joe. BillP is here :) Coach101 WRITE-THROUGH I DEARLY HOP!!!!!! Dave Lyons the cached image of the first block of my *:system directory. Some change SEGlass The one exception is the bitmap and directory blocks. BillP :X AFA Gary J Q = Dave, Scott JSchober (oops! uhhh... HIII, Bill.... %) Dave Lyons was made to some file in that dir block (file added or deleted, or locked or Guy Rice That's some exception! Dave Lyons unlocked or whatever), and the damaged block was read from the cache, changed, Dave Lyons and re-written. Presto! Lots of warnings to move the data to another disk. Dave Lyons Ick. I realize checksumming would decrease performance, but not all _that_ Dave Lyons much. It could be limited to system blocks if that would help, and it could Dave Lyons be a configurable option (which I would leave ON most of the time, but which Dave Lyons could default to OFF for people not developing software). Matt DTS On the other hand, protecting developers makes it much easier for them to accidentally.... SEGlass Could be an interesting Programmer preference. Matt DTS ...release buggy software (bugs they didn't find because they had checksumming on). AFA Gary J Q = Dave (Matt/Steve), Scott Dave Lyons Matt, WHAT? How could that happen? Dave Lyons They would FIND bugs that they otherwise would miss. A checksum failure, in Dave Lyons my plan, would cause a fatal error, not a re-read from disk. SEGlass Not the way I'd put such a feature in. Disks would not get trashed but Matt DTS It couldn't if your suggestion of a fatal error for bad checksum was taken. That's the first I've... Matt DTS ...heard of it. SEGlass the App would not keep running! Dave Lyons Well, maybe I didn't make my vision clear enough when I mentioned it before, SEGlass There are things that can be done now to simulate something like this. AFA Gary J Q = Dave (Matt/Steve), Scott Dave Lyons but that's what I've wanted all along--something to make SURE you notice when Dave Lyons something bad happens. SEGlass One could write a heart beat task that checksummed blocks that it owns SEGlass and put up messages when the mem is trashed. It would use memory but it SEGlass would be a good test. You could even link it into the Tool Dispatch vector SEGlass so it would run more often. (It would slow things down a lot so you'd SEGlass probably want to make it part of a CDA so you could turn it on and SEGlass off). SEGlass GA Dave Lyons Yes, that's a good idea. I may do something like that sometime. But Murphy's Dave Lyons Law says that the GS/OS cache is going to get trashed, and the blocks my Jump Long How would you get it to take care of the Cache blocks? Dave Lyons heartbeat routine checks are not. :) AFA Gary J Q = Dave (Matt/Steve), Scott Dave Lyons After my latest debugging experience last night, I'm also considering something Dave Lyons to check the current QD port for validity on all appropriate calls. (I found Jump Long Would it cause an check of some kind everytime the cache blocks changed? Dave Lyons a formerly-mysterious Finder problem.) SEGlass Necessity is the mother of invention. Matt DTS (GA) SEGlass Jim, the heartbeat task would only check its own memory, hoping that if SEGlass an application is going to trash something, it will trash the blocks being SEGlass checked. It is not bullet proof, but very little is. It would just be AFA Gary J Q = Dave (Jim - Matt/Steve), Scott SEGlass a tool to help find problems earlier. SEGlass GA Jump Long OK Dave Lyons (done) Jump Long Scott, GA ScottG25 What does GS/OS Error 54 mean besides out of memory... Which memory, main? Dave Lyons What led to that error, again, Scott/ Dave Lyons ? DaviesDoug ! Matt DTS It quite often means that you've used a length byte instead of a word on a class one call. Dave Lyons (That's just a question mark, not a question.) DaviesDoug main? a thought all memory was created equal DaviesDoug matt, protocal! ScottG25 An _OpenGS call.... AFA Gary J Q = Scott (Doug, Dave, Matt) Dave Lyons (By _OpenGS do you mean call number $2010?) ScottG25 Plenty of memory in the machine... SEGlass Bye all. JSchober CUL Steve. Matt DTS G'night Steve. Dave Lyons Bye, Steve. Jump Long By Steve ScottG25 Yep, Dave... BillP Good to see you online Steve! Matt DTS Scott, are you sure you have a length word on the pathname string in the parameter block? BillP they always leave before I can type :( ScottG25 I can't say 100% sure, Matt, but if I substitute a P16 Open and change the ScottG25 param block it works... I will have to be 100 sure... Dave Lyons Example: ABC = $03 $00 $41 $42 $43. BTW, it should be _OdysseyII. ScottG25 though. Matt DTS What error $54 means is that GS/OS tried to allocate some memory and couldn't get it. Dave Lyons By "change the parm block" what do you mean exactly? Are you also changing ScottG25 100=100% sure. Dave Lyons the string? Matt DTS However, this doesn't always occur exactly like you might think it would. Matt DTS GS/OS allocates all of it's own memory that it asks for at run-time in discrete 8K blocks. ScottG25 Nope... Same string.... just substituting what a P16 open wants... and comment- AFA Gary J Q = Scott (Doug, Matt/Dave) ScottG25 ing out the GSOS stuff.. Matt DTS Are you changing the string to have a length WORD for GS/OS instead of a length BYTE for P16? Dave Lyons You have a problem, then. DaviesDoug .done. ScottG25 No, Matt... should I? Matt DTS (don't mean to repeat myself, but I'm a mite confused) JSchober (just looked at the GS/OS Open in NList... Christ, what IS all that?!) Dave Lyons P16 "ABC" = $03 $41 $42 $43, but GS/OS (class 1 string) "ABC" = $03 $00 $41 $42 Dave Lyons $43. Matt DTS Yes! That's the cause of the error. ScottG25 Aha! thanks!:)) Matt DTS GS/OS is taking the first word of your string and trying to allocate memory to process it. Dave Lyons That's the parameters, Joe! Luckily, only 2 of them are required (that's what Dave Lyons the "2-15" means at the beginning). AFA Gary J Q = Scott Matt DTS If the first character of the pathname has ASCII value greater than $20, GS/OS will think the... Matt DTS ....pathname is longer than 8K, and will be unable to allocate memory to process it. Error $54. JSchober Yeah, I know THAT! :) But ... "+GET_FILE_INFO"... oh oh OH! ScottG25 in the pathname? Dave Lyons Yeah, +GET_FILE_INFO means all the parameters GET_FILE_INFO returns. Too Dave Lyons many to list there. Matt DTS SFGetFile returns length byte. Standard File returns all Class Zero structures. JSchober Yeah, that just hit me. Like I said, pretty nifty addition... :) So what's JSchober "acc"? ScottG25 Thanks! Guys! Matt DTS If this out-of-memory problem happens at a particularly bad time, GS/OS will have a... Dave Lyons Acc=access, I think. It lets you specify what you're going to do with the Matt DTS ...Fatal System Error (GS/OS dialog shows up, the error number is 2). Dave Lyons file. If you're just going to Read from it, say so with the Access parameter, Matt DTS HINT HINT HINT HINT HINT HINT HINT Dave Lyons and it will have a nice effect on what other users can do with the same file Dave Lyons in a shared environment. Matt DTS What Dave just said. JSchober OIC... hmmm! Now I REALLY gotta get the Ref -- that sounds terrific... Matt DTS ProDOS, as a file system, is pretty wimpy about access privileges. Other file systems (and maybe... Matt DTS therefore future FSTs) aren't. Programmers need to be able to handle error $4E (access error) in a... Matt DTS ...better way than trying to set the access bits to something they can work with. In some file... Matt DTS ....systems, you will be unable to set the access to a different value. So get used to it. Matt DTS Also... Matt DTS ...what Dave says about requesting access is a very good strategy. If you are in a file system... Matt DTS ....where you have permission only to do certain things (like read, not write), then if you try... Matt DTS ....to write to the file, you'll get an error $4E. If you OPEN the file with request_access = $00... Matt DTS ....you'll have to be able to handle $4E on every system call. If you OPEN with request_access = ... Matt DTS ...just what you need (read and write but not rename, if that's what you're going to do)... Matt DTS ....you'll get an error $4E on the OPEN if something's not going to work. Handle it one... Matt DTS ...place instead of twenty or thirty. Good idea. Matt DTS (GA) JSchober Hmm. NICE, indeed!! :) Thanks for the info. Gotta run, folks -- thanks for JSchober the chat. See yuz... Coach101 ?, $0000 on Acc promotes to all bits stored in the files Matt DTS (lots of typing for me tonight) Coach101 directory entry as opposed to what is currently possible? Matt DTS Yes, that's true, Coach... Matt DTS ...but an FST has no way to tell you what access you really GOT, where by asking specifically... Matt DTS ...it can return error $4E if you asked for something you can't do. Coach101 Huh?, somebody knows that I can not get Write at the present Coach101 time, that person would return a $4E (if the FST does not know)? Matt DTS If I OPEN a file that I have only read and rename access to, but I ask with request_access = 0... Matt DTS ...the FST has no way to tell me "Hey, you got read and rename but that's it!". If I try to WRITE... Matt DTS ...or anything else I don't have permission for, I'll get error $4E. HOWEVER... DaviesDoug ! Jump Long You can always do a GetFileInfo before opening a file to see that access. DaviesDoug the open call doesn't give you the error? Matt DTS ...if I OPEN with request_access = read+write, and all I have is read+rename, the FST will return... Coach101 Ok, finally it penetrates the gray material... ScottG25 (night!) Guy Rice :) Matt DTS ...error $4E on the OPEN call, instead of when you try to WRITE when you don't have access to. Matt DTS Doug: No. The FST doesn't know what you're going to try to do; it can't return an error just... DaviesDoug answered my question Matt DTS ...because you have less than full access. You just get an OPEN file with permission to do... Matt DTS ...whatever you can. (Sorry, I was already typing, and I don't think I can stop now!) Guy Rice ::watches Matt's fingers sizzle:: AFA Gary J Matt DTS Quick! Get me to a piano! Guy Rice hehe! Coach101 Matt, in a shared file environment, can one _opener_ lock Matt DTS Geez...I've been at work for nearly 12 hours now... Coach101 other _opener_'s by type of open request? DaviesDoug did matt mention he was at work? Dan Burton We do that all the time here Matt Matt DTS Be quiet, Doug. Matt DTS Coach: What?? Coach101 Matt.... Work????? Whats Ripleys address?? Matt DTS I'll pretend I didn't read that. Coach101 In a shared file environment, can one _opener_ specify access Coach101 permissions for future _opener_s (as in till the original _opener_ Dan Burton If you were at HOME you wouldn't need to answer the hard questions Coach101 closes the file) as a function of the next _opener_'s access modes? Matt DTS Can't speak for all shared systems. I can speak for AppleShare as a model, though it doesn't... Matt DTS ...run under GS/OS (just P16) at this time. Matt DTS Under AppleShare, the *owner* of the file (the person who created it) has the right to determine Matt DTS who has what privilges to the file or folder. The three privilege levels are... Matt DTS See Folders, See Files, Make Changes. (Hold on just a second here...) Dan Burton Does AppleShare allow you to set defaults for privilges? Matt DTS Those privileges can be granted or denied for "everyone", "owner", or "group" (a list of people put Dan Burton I get tired of having to change them every time I create a new folder. Matt DTS put together by the server administrator). So I could make a folder that I, the owner... Matt DTS ....could have all privileges to, but set "make changes" only for everyone else. Guy Rice (Shades of Unix... :) Matt DTS Since they can make changes, they can put files in the folder, but they can't see inside the folder. Coach101 Wath your language Matt DTS That makes it a "drop box". They can put files in it for me, but no one but me can get to them. TimH06 Dan, no there is no provision for default privileges. Although it's not... TimH06 impossible to do. Coach101 Matt, what I was looking for was an ability at _open_ time to lock Dan Burton How do you do it? Coach101 other users from the file (during a master file update for Coach101 example). TimH06 Dan, it would be something that we would have to add to the system software. Matt DTS In AppleShare, there's a facility to lock ranges of the file from others. Also... Matt DTS ...files opened for one person to WRITE to are closed to the rest of the people on the server. Matt DTS (in AppleShare at least) Coach101 Which, going back about three pages or so, means that someone Dave Lyons Tim, are you saying simply that any software that creates new folders is free Coach101 (maybe) should pass out the $4E to me at open time. Not read time Coach101 since the error is found at Open time. Dave Lyons to set the access rights during what the user sees as a single "create folder" Dave Lyons operation? TimH06 Dave, yes that's possible. TimH06 Coach, if someone has opened the file on the server for write access.... TimH06 you'll get the access error when you try to open it while he still has it open. TimH06 Huh? TimH06 Does that make any sense to you? Coach101 Ok, I thought it was said earlier tht the error would get Coach101 to me when I tried the _not valid_ operation (i.e., the read). DaviesDoug he said WRITE ACCESS DaviesDoug in the open call Matt DTS yes, that's true, Coach - OPENing a file that someone else has open with WRITE ACCESS is invalid. Matt DTS (in AppleShare.) Coach101 (and interesting in GsOs?) TimH06 Matt, if an Application opens a file for write access, can an NDA open it TimH06 again for read? Coach101 Now if only ALPE did not barf everytime something happened on my Matt DTS Not as far as I'm aware. Coach101 II-Gs AppleLink connection..... Coach101 Applelink === Appletalk DaviesDoug turn appletalk off...I do TimH06 Blasphmey! (spelling?) Coach101 Na.... ALPE is from Apple... AppleTalk is from Apple.... They Coach101 support their pure-Apple stuff.... They will fix it in the end.... DaviesDoug yes THEY SHOULD Matt DTS ALPE is more from Quantum than it is from Apple, but leave complaints and they'll work on it. TimH06 That was Blasphemey TimH06 Opps, blaspheme. DaviesDoug they never answer ours very well DaviesDoug they think we're real idiots DaviesDoug and try to tell us something that makes absolutely no sense or was totally DaviesDoug obvious Coach101 Quote.... sort of.... AppleLink does not support networked Dave Lyons Did anybody answ your question Tim? Yes, if a file is open for writing, it Coach101 computers.... Of course the fact that what blows ALPE up is when Dave Lyons can still be opened again for reading, and any part that is not actually Dave Lyons range-locked can be read, too. Coach101 my wife prints to a printer (I do nothing) seemed to be Coach101 un-impressive to ALPE/Quantum/Apple (whoever actually answers DaviesDoug I was talking about Quantum Matt Coach101 the questions/complaints). Matt DTS (Whew!) DaviesDoug you guys are great DaviesDoug when your at WORK DaviesDoug not at HOME Jump Long hehehe DaviesDoug did I mention matt wasn't at HOME Dan Burton downd Doug! AFA Gary J Dave: Thanks for the help with my problem on the message boards. TimH06 Dave, what!? If someone opens a file for writting, I don't think anybody else DaviesDoug ruff ruff, growl.... TimH06 can open it at all. TimH06 I'm talking ProDOS here. DaviesDoug did I mention dan was listening to the Police? Dave Lyons No problem, Gary. Jump Long I'll bet Matt is wearing a hat right now... Jump Long ...a blue one. Dave Lyons Oops, I thought you were talking about GS/OS & AppleShare, Tim, and I just Dave Lyons learned that you wouldn't have asked that question if you were. :) Dave Lyons Under ProDOS: No, once a file is open, any other open will just give you an Matt DTS What? GS/OS and AppleShare don't work together! Is your head on straight, Dave? Dave Lyons already-open error. ProDOS can't tell the difference between an application Dave Lyons and a DA.... Dave Lyons I meant System Disk 3.2, Matt. Sorry. Matt DTS If you opened it read-only first, though, you can open it read-only again. Jump Long Take one step back, Dave :) Matt DTS Oh. That makes more sense. (and say "Mr. Glass, May I?") Coach101 Or is that steps into the future... Dave Lyons Or the lower level AppleTalk protocols--whichever ones it is that let you Dave Lyons specify access rights when opening a shared file. I've never done it, only Dave Lyons read about it. Matt DTS Gee, after destroying two motherboards, I'm getting better at this chip-pulling business . DaviesDoug is that a new olympic event? Coach101 Matt, have you had mmuch positive reaction to the new DaviesDoug I've heard of chip throwing Coach101 Apple Partners/.... program? Matt DTS Coach, I personally have seen about 5% positive reaction. DaviesDoug apple partners? TimH06 What do you guys think about the new program.......Bye Matt. Nice knowin' ya. Matt DTS He asked a question, I answered it. Coach101 I think its good.... Does that mean I have to leave? DaviesDoug Anyone put that neat graphics demo out here yet....the ray tracing one TimH06 No!!!!! Sign him up Matt! Coach101 Look at it this way.... Apple is in the business of selling Coach101 appliances in the II market place (as opposed to programming Coach101 environment machines). $675 just cannot cover the costs they Coach101 must expend in the developer support area. Now if $675 (if I remember Coach101 the correct number) breaks a developer, then that developer is Coach101 not selling much software.... ergo, is not contributing much to DaviesDoug Bang! Bang! Bang! Bang! Bang! Bang! Bang! Bang! Bang! Bang! Bang! Bang! Bang! TimH06 Well I don't know. Matt, you're up to 10 peanuts a day. Peanuts aren't cheep Coach101 Apple's profit picture.... Nasty, but I think the logic is TimH06 you know. DaviesDoug Bang! Bang! Bang! Bang! Bang! Bang! Bang! Bang! TimH06 Just kidding folks. DaviesDoug 21 gun solute to the death of PROTOCOL (spelled right) Coach101 correct..... Now, $675 is less than $60 per month. I know a Coach101 lot of hobbyists in golf, tennis, ..... that spend that much on Dave Lyons _I'm_ not selling much software, but.... :) DaviesDoug salute was spelled wrong though Coach101 their hobby a month. Why not pay apple if what I am really doing Coach101 is supporting a hobby? Matt DTS ($600, Coach. $50/month.) Coach101 Sorry about any protocol violation..... The fingers were working Jump Long Try to find a racket club for that... DaviesDoug protocol is dead AFA Gary J Protocol is dead for the night.. Coach101 the eyes on the tube were dis-engaged. Coach101 Ah, but Dave, I thought you were a _national treasure_? Dave Lyons :) Jump Long Do you think the amount or support from Apple through non-developer services Dave Lyons Coach, even _without_ the $50/month Partners fee, a lot of developers Jump Long channels is enough (help to users groups, information on services such as this, Jump Long etc)? Dave Lyons _already_ spend a lot of money on their "hobby." If the $600/yr meant you Dave Lyons got all the stuff you wanted FREE from APDA, that'd be a different story! Jump Long amount or = amount of Dave Lyons I agree that devs who can't afford the $600 can do okay with APDA membership Coach101 The unmentioned item in Apda, is what the _discount_ on Coach101 Apple material is. Dave Lyons and online (but non-guaranteed) help. Coach101 On the other side, the support through non-developer channels Coach101 (speaking for ALPE only) is OUTSTANDING.. All knowledgeable Coach101 sources (Dave Lyons, AFLs, AFAs, etc.) should get _FREE_ Coach101 status in the new program.... They are in effect promoting Coach101 Apple by helping people...... AFA Gary J Great idea, Coach! :) Dave Lyons Wouldn't bother me, either. :) AFA Gary J (heheh :) Coach101 I come from a __large__ mainframe environment, where I pay Coach101 lots of money for support (support is not free even when you Coach101 buy the multi-mega-$$ iron)..... Goes back to an _unbundling_ Coach101 loss on IBMs part some ~20 years ago!!! Coach101 Oops.... Sorry about the languague Jump Long I think the government had something to do with that, Coach. Something related Jump Long to third-party maintenance. Coach101 Disagree...... Coach101 The initial thing that caused software (and software support) to Coach101 not be free was that a leasing company sued IBM on the basis Coach101 that IBM would only provide software on machines that they (IBM) Coach101 installed. Thereby destroying any after/re-market in the hardware Coach101 arena. Prior to that loss (after which you started paying for Jump Long (the third party) Coach101 software and software support, immediately from IBM other Matt DTS Well, gang, I have to keep a private engagement in PC, so I'll see you all later (and some sooner). Matt DTS G'night all. Coach101 companies fell in line). The maintenance issue, came about a Jump Long Bye Matt Coach101 little later. I think the leasing company was .... na... I am Coach101 not sure so no name