America Online APPLE II DEVELOPMENT FORUM CONFERENCE LOG Tuesday, February 23, 1993 10:00 p.m. Eastern Time Topic: Operating System Programming Forum Leader: Gary Jacobson (AFL GaryJ) AFL GaryJ Welcome to the Apple II Development Forum! AFL GaryJ Tonight our scheduled topic is Operating System Programming. AFL GaryJ (Or rather, make that.. "Programming with Operating Systems"... we're AFL GaryJ not writing a new GS/OS here :) Sheppy Sez who, Gary? }:> AFL GaryJ Special guest Sheppy is going to lead our discussion tonight... Sheppy Pfft. Yeah, right... ;) AFL Marty lol AFL GaryJ :) AFL GaryJ Well, we are glad you are here. AFL GaryJ (I think) Sheppy I'm glad I'm here, too. Can't imagine what life would be like if I weren't. AFL GaryJ Ok, anyone working on any programs? :) AFL GaryJ Eric is writing a new operating system, right? Sheppy I'm working on, er, four programs. Well, the OS is a "paper project" at the Sheppy moment. Spottysoft [Tel-OS] ;D Sheppy Heh, Spotty. That's a better name than the one I was using ("Fred"). :) AFL GaryJ ?Tel-OS? Spottysoft TELOS.... sequel to The Fahr Side. :) AFL GaryJ Fred is about as good as FID, and look how far FID went :) Sheppy Terminally Elusive Software Operating System? :) Sheppy Translation: vaporware. AFL GaryJ (Course "FID" isn't an operating system, it just utilizes it :) Sheppy FID was cool! I have maybe six copies of it here... AFL GaryJ Anyone have a question or comment to start off with this evening? Sheppy The great-granddaddy of disk utilities. AFL GaryJ Dan has a question! GA, Dan DanP18 Anyone out there have any good Orca/Disasm templates of GS/OS components? Sheppy Which components? I've got partial disassemblies of a few of things. DanP18 Any components. I, too, have a few partials, but would like *more*. AFC DYAJim I haven't looked at GS/OS, but I've looked at enough other things with orca/disasm Sheppy Ah. So would I. I think most of my partials are of 5.0.4 anyway. AFC DYAJim (incl a few drivers) Sheppy I once spent two weeks trying to decipher the GS/OS direct page and some of Sheppy the other internal data structures. DanP18 I did quite a bit on the HS.FST, and I started doing the drivers and Prodos. DanP18 Matt, how familiar are you with the hs.fst? Matt DTS Marginally. DanP18 Do you know why the fst provides a mapping mechanism for filetype, but not DanP18 auxtype? Matt DTS Because it was designed and implemented before auxiliary types had the role they do today. DanP18 It makes it hard to use my CD-ROMS with source code on them, because I DanP18 can't convince the system that they are in source format. DanP18 Hmm. How long has that FST been around? AFL GaryJ I think that was out with 4.0, wasn't it? Matt DTS Since the beginning of GS/OS. August 1988. AFL GaryJ Yes. DanP18 Are there plans to upgrade it? (He said, hopefully) Matt DTS Not at this time. DanP18 Thanks. AFL GaryJ Ok, anyone else with a question or comment? Matt DTS I'd like to remind you that the prevailing sentiment at the time was "Why didn't Apple ship Matt DTS this with the IIgs in 1986?" (People are never satisfied, which is generally good but frustrating.) AFL GaryJ :) Sheppy I was there the day after the release, and I didn't say that... :) AFL GaryJ Yeah, I was just about to qualify my statement "way ahead of it's time" in design, not in AFL GaryJ release. (Although, it was worth waiting for) Sheppy I said something more like: "Wow!" AFL GaryJ If people were always satisfied, we'd still be using an abacus. Spottysoft If I remember... the Mac OS wasn't all that "robust" when it came out in '84 Spottysoft either. :) Sheppy Spotts: still isn't. }:> Spottysoft Gary.... any idea yet on what happened with the new P8 System Disk? AFL GaryJ I haven't received a response to my e-mail yet. AFL GaryJ Still no idea. AFL GaryJ (Let me check to see if it's been read yet :) Matt DTS I answered the one you sent me. AFL GaryJ Yes, you did. My last e-mail was directed to someone at AOL who would know if AFL GaryJ we received our licensed copy. AFL GaryJ Andy has a question! (And he has his hand up politely :) GA, Andy LL AndyW Is there any documented way to get the current prefix and application name for LL AndyW P8 apps?? LL AndyW If not, am I safe in getting the prefix from $200, and app path from $280?? LL AndyW (which is where I found them).. This is assuming a launch from GSOS... DanP18 !doesnt the get_prefix call work? LL AndyW That will get the current prefix, but it doesn't help for application names.. Dave Lyons Andy, this is documented: On P8 application *launch*, the partial or complete pathname Dave Lyons of your application is at $280. Nothing documented at $200. GET_PREFIX gets you the current prefix, Dave Lyons which is not required to be anything in particular. LL AndyW Where is it documented? I must have missed it.. Dave Lyons (Don't trust me on the "partial or complete pathname" part--that's from memory, not 100% sure.) Dave Lyons Hmmm, looking... AFL GaryJ Interesting question, Andy LL AndyW It is either/or Dave.. LL AndyW If the app is in the current prefix, it will be partial, if not, it will be LL AndyW the complete pathname of the app.. LL AndyW I ran across this problem when I wrote a p8 app that I needed to store some LL AndyW data in... LL AndyW (why use separate files when I don't have to!).. Dave Lyons Andy, there is no guarantee on *when* it will be partial and when it will be complete. For example, Dave Lyons in Davex it may be whatever pathname the user typed to launch your app, which could be complete even Dave Lyons if it's in the current prefix. LL AndyW Well, it's more consistant when P8 was launched from GSOS.. Dave Lyons Okay, ProDOS 8 Technical Reference, page 86 (in Chapter 5, Writing a ProDOS System Program), Dave Lyons says "The complete or partial pathname of the system program is stored at $280, Dave Lyons starting with a length byte...." LL AndyW Anyway, it doesn't really matter.. I check for a leading / to tell me if LL AndyW it's complete or partial.. AFL GaryJ But you can't bank on it being launched from GS/OS all the time. LL AndyW I don't have a current P8 manual.. LL AndyW Never got anything on updating it either.. Dave Lyons (Yes, the tech ref goes on to say to check for a slash.) Dave Lyons By the way --> BUY THE MANUALS. DanP18 ! thats in the 1988 manual. LL AndyW Well, I guess I did it right anyway.. M Wolfgram So if it doesn't have a slash at $281 then GetPrefix and concatenate them. AFL GaryJ Yeah, I knew the manual wrath would come down on Andy for that statement :) Sheppy Yeah, yeah. I have that one. I still don't have the //c ref with //c+ info, Sheppy though. AFL GaryJ Yeah, I need that one too, Eric :) Sheppy I got like 16 Apple-written manuals here, and the only one I don't have that LL AndyW As I said.. I have the manual.. It's just an older one...!! AFL GaryJ (I always thought the IIc Tech Ref was one of the most helpful manuals) Sheppy I could use is the //c with //c+ ref. I got the old //c ref, though. :) AFL GaryJ (And I don't have a IIc :) LL AndyW I even have a draft copy of the ProDOS tech manual.. AFA Jay I've got 4 ][+ books :) Sheppy Really? Which ones? LL AndyW This manual I have doesn't even have a date in it.. Matt DTS Get over it, Andy. You've sold a program; update your tech docs. :) DanP18 Beneath Apple DOS. AFA Jay Reference, Tutorial, Basic and something else :) LL AndyW I haven't sold one yet.. LL AndyW At least, not that I'm aware of.. M Wolfgram (I wonder if Matt gets a cut of tech doc sales :) LL AndyW I have all of those Jay.. AFL GaryJ He should, Marc :) M Wolfgram :) Sheppy The oldest Apple manual I have is "BASIC Programming with ProDOS". :) AFL GaryJ I have the Red Book :) AFL GaryJ (That's older :) LL AndyW I have the red book too.. DanP18 DOS Programmers Manual, 1982 Sheppy I've been looking for the DOS Programmers Manual, actually. I've needed/ Sheppy wanted a copy for years now. DanP18 Resource Central has them. AFL Marty I have one on Mac System 7, Shep. :) Sheppy Right about the time I was ready to buy it, APDA gave up on me. I need to Sheppy contact RC. M Wolfgram I've got one buried somewhere, Eric... you really serious? AFL GaryJ DOS Programmers Manual for System 7? Sheppy Yeah. I seriously would like to have the DOS 3.3 Programmers Ref. AFL Marty lol LL AndyW I have a 3.2 ref Eric. M Wolfgram If I can find it, I'll bring it along to SF :) Sheppy I once added date/time file stamping and file password protection to DOS 3.3. Sheppy :) Sheppy Cool, Marc. AFL GaryJ Beneath Apple DOS was glued to me for a year or two, there. Sheppy Yeah. :) Sheppy That was right after I got the IIGS, but before I switched to ProDOS. GNO Jawaid oh, _file_ password. Cool. DanP18 Too bad they stopped with the Beneath Apple ProDOS Supplements. Sheppy Yeah. I don't think I even have it anymore. GNO Jawaid I almost wrote a put-DOS-on-3.5"-disk program. Sorta worked. :-) AFL GaryJ I still have my printed out source listing (hand documented) of DOS 3.3. (had to type AFL GaryJ "LLLLLLLLLLLLL" a bunch of time from the monitor to get that :) LL AndyW I have a much more complete source list of DOS 3.3.. Sheppy I never disassembled all of DOS 3.3, actually. I just pulled apart the bits LL AndyW It was in EDASM.. Sheppy I needed to do to add my stuff. LL AndyW Complete source, completely commented.. DanP18 Anyone remember SourcerorFP? M Wolfgram Yes - old history night or what? :) LL AndyW Came with Merlin.. Sheppy Fun stuff! :) DanP18 In a curious twist, that was the first program I completely disassembled. Sheppy I replaced the BASIC.System CATALOG command once so that it would recognize Sheppy invisible files and more filetypes... AFL GaryJ I don't know if we could count the cassette tape input as an "operating system", could we? AFL GaryJ (Want to get REAL old? :) Barnabas Hey, Dave and Matt... we'd like to see P8 be able to read/write to/from the Barnabas data fork (only) of extended files. Barnabas What do you think? Matt DTS I'd like to see monkeys fly, but the sky has more free room than P8 does. Barnabas (Show of hands?) Sheppy P8 is _packed_, Greg! There ain't room for more code in there? What would Sheppy you like to have removed? CATALOG, maybe? SAVE? What, what? :) DanP18 (swapping) James S WI I thought it was pigs that fly. Barnabas Only needs to happen on a GS, since only GS's commonly have files with Barnabas resource forks lying around. AFL GaryJ Seems like that would take a hunk of code too. LL AndyW P8 probably has about 3 or 4 free bytes scattered around it somewhere.. DanP18 (dynamic load segments) AFL GaryJ Not true, Barnabas. DanP18 (paging) Dave Lyons Greg, ProDOS 8 is not a democracy, sorry. -- I certainly want that feature, but we are not AFL GaryJ Someone on a IIe could have a GS/OS disk in their 3.5 drive. LL AndyW Eric, CATALOG and SAVE are functions of the CI, not P8.. Dave Lyons presently contemplating making P8 have different file access capabilities on a GS vs. a non-GS, and Dave Lyons there is no room to grow the P8 kernel within the areas it now owns (and expanding into the auxmem Dave Lyons language card tosses compatibility completely out the window). So the short-term Dave Lyons answer is "Get over it." :-) LL AndyW Actually, the BASIC CI has a fair amount or room, especially when compared to LL AndyW P8.. Sheppy Er, right, Andy. My mistake (duh- I know that... I just screwed up. :) Barnabas Well, if you finished converting to 65c02, you'd have more space, I suppose. LL AndyW DON'T EXPAND INTO AUX RAMCARD!!! You'll break my programs!!!! AFL GaryJ A little bit, anyway. Sheppy Not much more, Greg. I think P8 is cool the way it is, mostly. Barnabas And if you pulled... say... 5.25" support... or broke AppleWorks (it breaks the Barnabas rules, after all), it could be done! :) JWankerl stz stz instead of lda #0 sta sta? just a few bytes saved. :-) Matt DTS Even though that memory has been reserved for nine years, some people "knew better" and stole it. Matt DTS Present company included. :) Sheppy I take "reserved" very seriously, thank you very much. :) Matt DTS So now Apple can't expand into it without breaking many of your popular apps. What goes around comes Matt DTS around. LL AndyW True.. However, who else uses it besides SANE??? Barnabas Well, so why not take the AppleWorks space and free it up for everybody now? Barnabas Apple can't use it anyway. Matt DTS We may. We're discussing it. Matt DTS AppleWorks uses it, for one. LL AndyW 9 years huh.. That means it's been reserved since the release of ProDOS.. Matt DTS Eric Soldan, when he was an app developer, didn't even _blink_ about stealing it. "It was the best Matt DTS memory in the system and no one was using it." Dozens of others did the same. Sheppy I know every ref. I've seen labels that space as "reserved", so I kept my LL AndyW Like me.. Sheppy hands off it. Sheppy (Good little programmer that I am... ;) LL AndyW I knew it was reserved too, but I needed it!! Spottysoft (koff!) Barnabas Sheppy, hands off means "Untrained, non-programming hands" :) Matt DTS Yeah, but reserved is a cooperative venture. If everyone doesn't, there are problems. LL AndyW At least no one seems to be using it for resident stuff!! Barnabas True. What Apple should have done was had P8 constantly clearing reserved RAM. GNO Jawaid I want to develop a parallel directory structure for keeping track of GNO Jawaid such neat things as file links, and extra information to be kept with files. GNO Jawaid So, i.e., Matt beat me over the head enough that I'm no longer considering GNO Jawaid modifying ProDOS to do the job. GNO Jawaid (although that would still be ideal). GNO Jawaid So, what do y'all think would be a good data structure to keep this GNO Jawaid in? Obviously, there will be a cache of some sort in memory to speed things GNO Jawaid up, but I'm thinking along the lines of how to maintain the disk database GNO Jawaid efficiently. Dave Lyons Greg, constantly clearing reserved areas might or might not be a Good Thing...it depends on what Dave Lyons you eventually wind up unreserving the memory for, which you don't know in advance. Could be Dave Lyons something we would want to survive across boots.) GNO Jawaid (off my topic) : Bill Gulstad wrote a P8 emulator that maps P8 MLI calls GNO Jawaid to their GS/OS equivalents. Matt DTS Jawaid: Yeah, and it was probably _almost_ as reliable as LeapFrog (read: not very). Dave Lyons Greg, my point is that I personally would not have done it even back then. A more striking example Barnabas You know, Jawaid, I think the answer to both our questions is the same way Barnabas Apple did AppleTalk. Dave Lyons is Battery RAM: Should System 4.0 wipe out all parts of Battery RAM that were reserved at the time, Barnabas (in P8) Dave Lyons causing you to lose your 6.0 settings every time you boot an old disk? Sheppy Good point, Dave... Matt DTS (By the way, Jawaid meant the "ProDOS FST". He's not discussing P8.) JWankerl Dave: YES! (If you use 4.0 when you have 6.0, you deserve to get toasted... ;-) Barnabas Not really, Eric... BRAM is permanent stuff, but ANYONE can use ANY part of RAM DanP18 ! Jawaid, please restate what you wish to accomplish? Dave Lyons Well, annoyingly enough, there are apps that tend to only work when you boot the disk they came Sheppy That's true, actually, but some programs don't run under 6.0 (sloppy Barnabas on a IIe type machine (as long as they don't use ProDOS). Dave Lyons on. Typically the developers didn't understand segmentation, and their apps only work when the JWankerl Yeah, I know... but still... :-) Sheppy programming of the type we're discussing). LL AndyW Greg, AppleTalk was done by patching the P8 vector at $BF00... GNO Jawaid I want to keep extra information with ProDOS/HFS files, and have it be Dave Lyons segments load in the same arrangement as when they were developing it. Ick. GNO Jawaid transparent to existing applications. I want stuff like owner/group/other Barnabas Yes, such as the FutureSound software? Expects different segments to always GNO Jawaid permissions, extra status/information bits and fields, and other nifty GNO Jawaid stuff that comes in really handy when someone you don't know is using your Barnabas load into the same bank (among other rotten programming practices). GNO Jawaid computer. :-) Barnabas Yes, Andy, exactly. Sheppy Sounds cool, Jawaid. I haven't the foggiest on how to implement that, though. Sheppy Write a new FST. :D GNO Jawaid AppleShare keeps a parallel directory structure in a database of sorts. DanP18 Whats wrong with using resources? Sheppy "ProDOS 1993". GNO Jawaid Way too slow. GNO Jawaid (Resources are too slow) LL AndyW BTW, Anyone know what memory is used by the //e AppleTalk card?? Sheppy You lose P8 access, too, if you care about that. Matt DTS Andy: Very little. It broke too many programs (like maybe yours). GNO Jawaid It's been mentioned to me that a spot I could put the info is in the GNO Jawaid resource fork key block. Matt DTS Almost all the AppleShare stuff in P8 is on the card itself. M Wolfgram Resources are not slow, Jawaid... LL AndyW Well, I don't use anything above $FF00 in aux memory.. Sheppy Eeeew. You'd hafta beg for Apple's permission on that one. Barnabas :\_ Dave Lyons The workstation card has memory on the card & patches $BF00 to jump to $Cnxx...and it accesses M Wolfgram ...but they don't work w/P8 :) GNO Jawaid Okay, Marc. Pretend I'm reading a directory and I have to open each file's GNO Jawaid resource fork and pull the info out... Dave Lyons $BF00 page and whatever memory you ask it to read/write through P8 calls, and that's about it. GNO Jawaid Like I said, resources are slow. :-) LL AndyW Then LLUCE is completely safe for both forms of AppleTalk.. GS and //e.. Sheppy Read: too slow to open all the resfiles in a directory just to list the Sheppy directory. Barnabas :\_ DanP18 what's wrong with a "desktop" file like the finder uses for rBundles? Matt DTS Andy: The _original_ AppleShare implementation used the reserved memory. Too many illegal programs Matt DTS crashed it when it used the memory that was reserved (specifically for AppleShare, as it turns Sheppy That's a thought, Jawaid. A "Desktop"-type file might work. AFL GaryJ (What is .:\_?) Matt DTS out) so they redid the whole thing at considerable delay and expense. They originally wanted to ship Matt DTS it several months before it did. GNO Jawaid That's what I mean by "parallel directory structure". James S WI Is there any way to use AppleTalk on a IIc or IIc+? GNO Jawaid But ideally the optionList could be used. :-) GNO Jawaid (i.e. the resource key block). Matt DTS James: No. LL AndyW Well, it broke AppleWorks, and AW was being converted while ProDOS was still Sheppy Right. That would be the best way, if you can arrange to do it without LL AndyW in beta.. Sheppy busting something. Matt DTS Jawaid: You can't use any existing file system structures to hack your own stuff in. Get over this Matt DTS idea right now and you'll be happier in the long term. James S WI There is a lot of AppleTalk stuff in the ROM. What happened? GNO Jawaid In fact, at a minimum I only need a few bytes. No chance of adding a few Matt DTS No adding to key blocks, option lists, extra forks, nothing like that. So quit it while you still Matt DTS have your health. GNO Jawaid optionList fields? :-) :-) GNO Jawaid (I mean Apple adding some) Matt DTS Which part of "NO" don't you understand? GNO Jawaid Hmm. Good point. LL AndyW The N or the O :) Matt DTS (And people think supporting developers is an easy job) JWankerl Saying NO sounds easy to me... ;-) LL AndyW Well, at least I only violate those areas that everyone else violates!! :) DanP18 (And people think supporting an O/S is an easy job) Barnabas Well, it might be, if you were SUPPORTING as opposed to REJECTINGI Matt DTS Joe: Getting people to _understand_ NO is hard. I cringe to think of what would happen if we went to AFC DYAJim Jawaid - have you thought about storing everything in an extended option list? Matt DTS _three_=letter words. AFC DYAJim (And yes, resources are very slow when you have to open up a whole directory's worth of files .. AFC DYAJim .. and read one resource from each file before closing them. yech, slow slow slow!)