America Online APPLE II DEVELOPMENT FORUM CONFERENCE LOG Tuesday, July 24, 1990 10:00 p.m. eastern time Topic: Getting the Most out of GS/OS Forum Leader: Dave Sugar (AFL Dyfet) AFL Dyfet Welcome to the Apple II Development AFL Dyfet Forum. Tonight's event is how to get the most AFL Dyfet out of GS/OS... AFL Dyfet The floor is now open to questions for tonights topic. AFL Dyfet Okay, Scott, you have the floor now...Go ahead... AFL Scott Ok... How do we get the most out of GS/OS? :) AFL Scott (Had to ask that! :)) AFL Dyfet Well, go ahead Gibb... A2Evanglst Write a HFS FST for it!!!!! A2Evanglst AFA Gary J :) Avery R C Twould be nice... T Dreamer amen to that!!! A2Evanglst Sorry... I had to do that... I am in a strange mood tonight] Doctor Why tonight??? AFL Dyfet I know Gibb... Doctor Why :) A2Evanglst <--- Still recovering from Kansas AFL Dyfet Would you care to comment on what you can comment on Kansas, Gibb?? AFA Gary J Yes. Please do. A2Evanglst Sure... Apple Flew out 31... countem 31 people to meet with us!!!!! A2Evanglst The IIgs College was a great Idea but I believe that to be really effective A2Evanglst there should have been 2 to 3 days of nothing but intense IIgs Classes A2Evanglst One of the Highlights of the conference was NiftyList 3.0!!!!!!!!!!!! A2Evanglst That thing is fantastic!!!!!!!!!!!!!!! Dave Lyons :) A2Evanglst (Buttering up David) AFA Gary J (good timing, Gibb :) Avery R C What's Niftylist? Dave Lyons (I also just uploaded it to AUT...anybody here who can release it?) AFA Gary J (Not AUT, Dave, but ADV :) GS Geek (it will be released in a few minutes :) A2Evanglst The most Impressive thing about Niftylist 3.0 is the ability to do Toolcalls A2Evanglst from the command line.... JeffreyH11 NiftyList is only the most useful CDA for a serious programmer I've ever seen! AFL Dyfet Okay, Dave, would you care to share a few words about Nifty?? Dave Lyons Sure: Nifty List started out like the Monitor's "L" command, to disassemble machine Dave Lyons code into something halfway legible. NL annotates the listing with the names and parameters for Dave Lyons toolbox calls being made, in the right margin. These days it knows about softswitches, OS calls Dave Lyons calls to Nifty List itself, and calls to bank 0, 1, E0, and E1 vectors. (That's all just in the Dave Lyons "L" command...there's a whole screenful of commands). Dave Lyons You can do quick-reference Dave Lyons stuff using the " command (type "mouse and get all the toolbox calls and vectors with the Dave Lyons word 'mouse' in them, for example--with parameters). Dave Lyons Then you can *make* the calls interactively, from the command line! Type _sysbeep, and the system Dave Lyons beeps at you. _NewHandle(_Multiply(#10,10),_mmstartup,0,0) and Dave Lyons you get a 160-byte handle ("Result = $00E01234"). Dave Lyons Lots more commands for dumping system data structures (see what's in the heartbeat queue, Dave Lyons what windows are open & what's in their interesting fields, etc). I'll stop & let you read the Dave Lyons docs if you're interested! Oh, there's a fast FIND command, and you can add yoru own command modules. Dave Lyons (done) MikeZip You said a mouthful Dave Lyons (All for $15 shareware! :) AFA Gary J We also covered some of the new features of Nifty List 3.0 last week. You AFA Gary J can download the log and check them out, if you'd like. AFL Dyfet Okay, before we continue, Marty has a short announcement to make. Go ahead, AFL Dyfet Marty, you have the floor now. AFL Marty Thanks... AFA Gary J Q = (Marty), RTAFT, DL Davies AFL Marty On Thursday, July 26 at 9 pm Eastern time... AFL Marty the Apple II Productivity Forum will host a conference.... AFL Marty focusing on INWORDS, Optical Character Recognition software... AFL Marty for the Apple II.... AFL Marty My guests will be Alan Bird and Rob Renstrom.... AFL Marty of WestCode Software, the developers of INWORDS. AFL Marty This will be a protocol chat. AFL Marty (done) AFL Marty Thanks Dave. AFL Dyfet Okay, thank you Marty! The next question is from RTAFT...Go ahead... RTAFT Any comments from Apple while at KC regarding the addition of GS courses in RTAFT Developer University? It's all Mac right now. AFL Dyfet GA GS Geek... GS Geek who'd pay so much money to fly out there, spend a few days learning about it? GS Geek the advanced sessions at KansasFest were EMPTY! ga AFL Dyfet Go ahead Dave... Dave Lyons Are you talking only about the advanced sessions at "GS College" (Thursday, when there were only the Dave Lyons 30 GS College attenders around)? People didn't want to miss the "main track" for those, I guess. GS Geek yes, thoisday. ga AFL Dyfet GA Gibb... A2Evanglst The Advanced Sessions were just Q and A sessions.... there wasn't a set A2Evanglst With no set schedule there really wasn't anything there to hold the people A2Evanglst at the advanced sessions... GS Geek i'd rather see kansasfest GS college & AppleFest seminars continue than have GS Geek Apple waste time setting up $1000 courses for 8 people. ga AFL Dyfet BillP, GA... BillP I would think any company doing any serious GS development would spend the money to send people... BillP they did for the first one I went to... BillP to tell you the truth, I don't think Kansas was publicized very well to BillP developers thru normal channels... BillP I would not have known about it if it wasn't for AO... RTAFT I would think it give a more positive signal to AIIGS developers. RTAFT If Apple offered them. BillP I did not get anything from Apple as a developer, telling me about kansas.. AFL Dyfet Neither did I, Bill... BillP good, I thought maybe they didn't like me anymore. :) AFL Dyfet Okay, Go ahead Gibb... A2Evanglst Kansasfest could have been promoted a number of ways... but I will bring up the A2Evanglst suggestion to some people that I talk to at Apple about getting it know through A2Evanglst DTS and other places that Apple has.... AFL Dyfet Okay, Ga A2GS... A2GS Now that I think about it, KFest had VERY little advertising and I think in A2GS general it would help the whole Apple community if even NON-Apple company's new A2GS that a Developer conf. strictly for II people which was backed by Apple whole- A2GS heartedly would indicate to these companies that II may be making a BIG A2GS comeback via NEW support from Apple among other things. GA AFL Dyfet Good point...Go ahead MikeZip... MikeZip I agree with A2GS about the advertising part.. I hardly heard about Kfest at MikeZip all.. I also think that a developer conference would need alot of advertising MikeZip and pre planning to insure it's not just a waste of time and effort.. there MikeZip need to be people interested MikeZip GA AFL Dyfet Actually, since Apple already does mailings to all developers, this would have AFL Dyfet been the place to mention it, and would be sufficiant to get the word out. AFL Dyfet Go ahead, Dave... Dave Lyons That's odd that nobody got info in the mailings...I was told one of the monthly developer mailings had Dave Lyons a page in there on Kansas. Don't remember if I got one in mine or not, though. Dave Lyons Anyway, I actually *liked* the size of KF this year-- Dave Lyons I don't want a 7000-person show, with whole auditoriums full of people to talk at. Having Dave Lyons 35 people in a room with meaningful Q&A sessions was great! ga AFL Dyfet I think we will wrap this up with Marty's comment...Ga Marty... AFL Marty KFest was listed on page 28 of Apple Direct (July issue) AFL Dyfet Okay, thanks....I think it should have been a page 1 or 2 item, then...well, I AFL Dyfet see that the ever patient DL has been waiting for his question...GA DL... DL Davies Anyone have any ideas on making ProDOS 8 calls from a CDA, so that my CDA... DL Davies is OS independant? DL Davies BTW...this macro brought to you using "El Macro", written by Doug Davies... DL Davies coming soon to AOL! :) AFA Gary J :) GS Geek :) MikeZip nice :) AFL Dyfet Go ahead GS Geek... GS Geek i thought lyons would jump at the chance. isn't there a technote? anyways, GS Geek you haveta check OS_flag, if = P8, look at $00BF00. If <> whatever is supposed GS Geek to be there, then assume its a new os. If it is P8, you haveta install some GS Geek P8 code routines in bank $00, jsl to it, which will handle the calls. of GS Geek course rtl back. the problem is WHERE to install the code...due to interrupts, GS Geek etc. ga DL Davies But your buffers for reads and write have to be in bank 0 right? what a pain AFL Dyfet Yes, DL...At best, you will have to use a block move to get the data where AFL Dyfet you want, just like old ProDOS 16 did... JeffreyH11 Your paramater blocks must also be in bank 0, and it has to be called in full JeffreyH11 emulation mode. Not only that, but bank 0 is ALL owned by whatever P8 program JeffreyH11 is running, and the Memory manager won't give you anything from there. DL Davies everyone think $00/0200 is safe? Dave Lyons (No!) AFL Dyfet I would copy the area of memory to a safe place, install my routine in, call AFL Dyfet it, and then copy the original contents back...Never assume ANYTHING is safe :) GS Geek (maybe the text page in bank $00...watch for screen holes) JeffreyH11 $00/0200 may be if you save its contents and disable interrupts. JeffreyH11 Text page in $00 is a bad idea; too many screen holes in the way. DL Davies I traced the $BF00 vector when you have appletalk installed....does some neat DL Davies stuff. AFL Dyfet Yes it does :) JeffreyH11 Also; P8 might be in use when you make your call; that would be real annoying DL Davies I've noticed not many CDA's do anything in P8. I think I've decide what to do DL Davies thanx! :) AFL Dyfet You can test the P8 busy flag and either sleep till the next heartbeat, or AFL Dyfet use Apple's suggested, albiet complex, way of aquiring control on P8's return AFL Dyfet from what it was doing last... JeffreyH11 Apple's way of getting control of P8 isn't of too much use; you can't have JeffreyH11 anything in Bank 0 when P8 returns. Sorry, GA Dave AFL Dyfet GA Dave...sorry about missing you there... Dave Lyons (Sorry, I was downloading last week's log at the beginning of this discussion!) Dave Lyons You guys have got most of the bases covered, but I Dave Lyons have a few things to add. Dave Lyons $0200 is *not* very safe, at least not the beginning of it--clock drivers use that for work Dave Lyons space, and most ProDOS 8 calls call the clock driver. Dave Lyons You *can't* disable interrupts during your P8 calls, at least not if you want to be AppleShare Dave Lyons server compatible. If you make a P8 call to an AppleShare volume, you will HANG solid. DL Davies Right now I just check $E100BC and if it's 0 then I just beep letting the... DL Davies user know they can't do that function Dave Lyons If you make a P8 call while P8 is busy, you'll trash the disk, probably, so be sure to check Dave Lyons that. Dave Lyons Once you're ready to actually borrow 1K of bank-0 space and open a file, you need to make sure those Dave Lyons bits are clear in the $BF-page bitmap. You can preserve the bitmap and clear the bits you want Dave Lyons (not guaranteed safe, but it works for some people now-a-days, at least). JeffreyH11 If you can't disable interrupts, then nothing in bank 0 is safe, is it? Dave Lyons Right. That's why I say "There's no clean way DL Davies You could use the stack! ;) chop off some for your use AFL Dyfet Ultimately, no, since you can not be certain someobody's irq handler isn't out AFL Dyfet in the middle of the file buffer you just chose, either :) Dave Lyons to make P8 calls from a CDA" every chance I get. The best you can do it make a good guess about Dave Lyons what memory is unimportant to the application's interrupt handlers. Dave Lyons (that's all I have...more questions?) SOMEWHERE there Dave Lyons is a text file with somebody's good info on all of these issues...maybe it was on CompuServe? ga DL Davies Sounds like too much of a pain to deal with...thanx for the input though! DONE AFL Dyfet The stack might be a good place to get the space for the front end interface to AFL Dyfet P8...but that still leaves the question of where to put the file buffer safely. JeffreyH11 Could Apple maybe do something with P8 in the future to make it easier - like JeffreyH11 maybe provide an entry that lets things be in other than bank 0 without JeffreyH11 breaking existing P8 software? DL Davies Ok...I'm done! :) DL Davies Look for "El Macro" real soon...cut and paste screens :) Dave Lyons Jeff, how could that work? Dave Lyons P8 would need to have an extra K of memory lying around it didn't need for anything, right? If Dave Lyons you can come up with a plan that'll work, I can see the the right people consider it. JeffreyH11 Maybe a second entry point to P8 that would allow the parm block and buffers to JeffreyH11 have 3-byte addresses instead of 2-byte. AFL Dyfet Actually, a P8 written in 65816 code would be nice :) Dave Lyons Uhhh...that's probably impractical. P8 has very *little* room to grow. Writing a "shell" around Dave Lyons P8 like that just begs the question of how to make P8 calls from OUTSIDE bank 0, where that shell Dave Lyons would be--how would it actually be implemented to avoid screwing up SYS-application memory? JeffreyH11 good question. If i think of anything revolutionary, I'll let you know. AFL Dyfet Go ahead, GS Geek... GS Geek i think using the DP is a great idea. 256 bytes would be plenty. sure, you GS Geek are gonna do only 10 byte reads (SLOW!) but it'd work, eh. ga Dave Lyons (See a late P8 Technical Note--DON'T put your parameter block on zero page!! It fries with Dave Lyons AppleTalk.) AFL Dyfet But you still need a 1K file buffer for the P8 file, Geek... AFL Dyfet Okay, Avery has the next question...Go ahead, Avery... Avery R C Has ANYONE ever gotten Leapfrog to work at all? AFL Dyfet Go ahead DL... DL Davies NO! And it never will! :) Avery R C DL Davies not reliably at least ;) Avery R C Oh well, one can always dream... AFL Dyfet I ran it once...it fried the system! I couldn't even reboot...the bar came AFL Dyfet up, slid a little, and then died :) AFA Gary J The sliding bar died? That IS serious :) DL Davies The tools just aren't designed for that. DONE: AFL Dyfet It turned out that it didn't like something I had open with a resource fork, AFL Dyfet and clobbered a system file! AFL Dyfet I since noticed that it confuses the resource manager, since it becomes the AFL Dyfet owner of the last open application... A2GS Anyone seriously interested in working on a GS Multifinder??? DL Davies I was working on a GS MultiFinder for WordPerfect...but it required DL Davies applications to make a few simple shell calls. Worked very WELL! :) AFL Dyfet Go ahead Scott... AFL Scott If anyone does make a Multifinder, please, please include a form of memory AFL Scott protection. AFL Dyfet Go ahead Jeff... JeffreyH11 As I see it, a good GS MultiFinder would have to have a provision for text- JeffreyH11 based programs to run in a window. (P8 too would be nice, but...). AFL Dyfet Go ahead A2... A2GS Although I personally think it's possible to do without breaking TOO many of A2GS Apple's rules (if any) I was wondering what Dave had to say on this?? I know A2GS the toolbox wasn't originally designed for this kind of environment... A2GS I have spoken to several Amiga (Ugh!) developers about how their multitasking A2GS system works and with some minor editions to future programs, they could all A2GS exist in harmony with the system under a multitasking OS. GA AFL Dyfet GA Scott.... AFL Scott Seems to me that most, if not all of the developer tools would have to be AFL Scott rewritten for them to be used under a "Multifinder", too. I mean, GSBug AFL Scott would probably go bannas... unless of course memory protection were implemented AFL Scott Done. AFL Dyfet Go ahead, Dave... Dave Lyons A year and a half ago, or so, we had a pretty long discussion, and I was arguing *for* GS/OS to run Dave Lyons P8 apps by simulating P8. In the end, I was convinced this could not be done to an acceptable Dave Lyons degree of compatibility. Dave Lyons On MultiFinder, I have little to say except: I personally want to have one, and I don't thinkit Dave Lyons can be done adequately in 6K, and there are a *lot* of issues that need to be dealt with. The system Dave Lyons software itself is the -best- place to deal with them. ga AFL Dyfet I was just about to make that same argument, Dave (over P8)!!! :) A2GS I was referring to a GS Multifinder running GS Apps Not P8! AFL Dyfet I understand AppleTalk also breaks some P8 rules...well, enough, Go ahead Bill. BillP Maybe if everyone donated $10 or so, we could convince someone to develop Multifinder GS... AFL Dyfet Okay...A2...Go ahead... A2GS As I said before, I was referring to a strictly GS multifinder, I wasn't even A2GS considering a P8 multifinder, I believe getting a GS multifinder to work is A2GS feasible and I truly believe investing time in a P8 type multifinder is a waste A2GS with all the memory probs. which would probably have to be dealt with from the A2GS start of the project. A2GS GA JeffreyH11 I agree. P8 programs expect to rigid an environment. About the closest we'll JeffreyH11 ever have to a P8 MultiFinder is SoftSwitch. Still, I would like to see a GS JeffreyH11 MultiFinder able to run text-based 16-bit programs in individual windows, at JeffreyH11 least the ones that behave and use firmware or Console driver for I/O AFL Dyfet Go ahead, A2... A2GS Well, is there any SERIOUS interest in a GS Multifinder as opposed to a P8 one? A2GS I think, using the existing OS, it is VERY possible to do. JeffreyH11 Absolutely. Esp. since the Memory Manager makes it all a little more feasible JeffreyH11 than with P8. You would have to use some kind of "virtual" start/stop JeffreyH11 mechanism for the tool sets, like we discussed last month. AFL Dyfet Go ahead Bill... BillP You mentioned the Amiga... 80% of everything developed doesn't even BillP take advantage of the multitasking. BillP Develeoper seem to always want to take over the machine. A2GS Use VBL's BillP I would guess we've have it a little better on the IIGS but... BillP there still would be loads of programs that just wouldn't be friendly. A2GS That's not the point...GS people are not like Amiga people (Fortunately :) BillP Does Rastan launch from Desktop? AFL Dyfet Go ahead Scott... AFL Scott The 80 percent are games, right? :) BillP exactly BillP good point A2GS What about all the educational programs and productivity and business programs A2GS which do launch from the Finder?? A2GS Those are the ones which you WANT to use under a multi(tasking)(finder) A2GS environment. JeffreyH11 And communications, utilities, programming tools, etc. not games! A2GS Exactly!! BillP ::hiding back in corner:: BillP :) JeffreyH11 :) A2GS So Bill, when can you have it finished by?? A2GS :) BillP hehehe AFA Gary J (go to your corner and program, Bill :) BillP it's on my list right after AOGS A2GS What decade would you estimate it'll be finished by??? BillP somewhere around rom 9 AFL Dyfet In time for the Rom 9 machine, I guess AFL Dyfet GMTA BillP :) BillP LOL!!! AFL Dyfet Oops, Bill, I think we now have started a rumor :) AFL Dyfet I expect to hear all about the rom 9 machine on ATB before midnight :) A2GS So anyone want to put together a team of people to plan out a GS multitasker/ A2GS finder??? A2GS Dyf????????????? JeffreyH11 Sounds like fun. AFL Dyfet I think that's Apple's job, A2... AFA Gary J Me too. JeffreyH11 Is Apple going to do it, though? A2GS Then we may never see it (no offense Dave :) They got their hands filled with A2GS other things. AFA Gary J It's gotta come with tool updates and that sort of thing, I'm sure. Dave Lyons Hey, you can never tell with Apple! Dave Lyons Maybe we'll surprise you some day. Dave Lyons (Maybe it will even be a pleasant surprise, for a change? :-) BillP yea... the new beginning! ;) A2GS A multifinder/tasker is a stand alone App. which launches other Apps. there's A2GS NO reason to completely rely on Apple to write it. JeffreyH11 If we can get a couple of people to figure out how to do it, maybe Apple JeffreyH11 will put higher on their list. It could be done as a standalone app., but JeffreyH11 I think it would be better if it had Apple's support. GA, Dave. A2GS I'm willing to help design it if 3-4 other people will also lend a hand. Dave Lyons The "Finder" part of a multifinder would be easy--just make the Finder do a "Quit" to a new Dave Lyons application, with a new bit to be defined in the Quit flags as "launch it but return control to Dave Lyons me"! All the hard stuff would happen behind the scenes, in the form of toolbox support for Dave Lyons multiple applications. This is where everything gets tricky, but not impossible. One of the best Dave Lyons things you can do is encourage everybody you see to make *intelligent* use of the toolbox! When Dave Lyons there's a toolbox call for something, USE IT, unless you have a compelling reason not to. Toolbox Dave Lyons calls have the flexibility to Do the Right Thing in possible future environments, but if you go right Dave Lyons to the hardware, you make it harder for stuff like multifinders to work acceptably. ga AFL Dyfet Two critical areas is tool call arbitration, and tool initialization/dp space. Dave Lyons (Dyfet, what's "tool call arbitration"?) AFL Dyfet Tool call arbitration: You don't want another task calling a tool while it's AFL Dyfet in the middle of use (like say the memory manager) :) A2GS It isn't necessary to shape the tools to work with the environment, the tools A2GS work perfectly as they are, what is necessary, is to get companies to put in a A2GS little extra code to check whether they are running under this type of A2GS multifinder environment and if so, don't do certain things like reopen the A2GS certain managers and when you want to pass info like setting up a new grafport, A2GS send it via a multifinder call not directly to the tool dispatcher, etc... GA Dave Lyons A2GS, I'm missing your point. Can you give an example of something that *is* appropriate to do Dave Lyons in a single-app environment that's not appropriate in a MF env? AFL Dyfet The problem there, A2, is that you are relying on the rewriting of appls to AFL Dyfet be compliant... Dave Lyons Dyfet, it's not a problem--the Memory manager, for example, already disables interrupts whenever it Dave Lyons is not safe to get a mem mgr call from an interrupt routine, for example. If app switching happens Dave Lyons during GetNextEvent or SystemTask time, it's almost a complete non-issue. A2GS Ah, well, there's the prob. it's nearly impossible to get programs not A2GS designed to work under a multifinder OS to work properly which is why AMIGA A2GS programs that are designed to work under it's OS will not work if they are A2GS run through the OS. AFL Dyfet One only needs to look at what happened to mac application programming to see AFL Dyfet what introducing multifinder specific app. requirements :) Dave Lyons I don't think I agree...for ex, when I wrote DIcEd I was *not* thinking of a MultiFinder, but I Dave Lyons didn't do anything "weird"...I don't write directly to the screen, etc. I don't see what the problem Dave Lyons would be for reasonable applications. Draw with QuickDraw, use windows, etc. JeffreyH11 Switching would almost have to occur at GetNextEvent or SystemTask time, and JeffreyH11 that would mean that to get switching just by clicking on windows to work, JeffreyH11 almost every application would have to use TaskMaster, or be tricked into Dave Lyons No!!! JeffreyH11 No, what? Is there another way?? Dave Lyons It only means the SYSTEM has to patch GetNextEvent so that it doesn't *return* to the app until much, Dave Lyons much later. This *works* on the Mac! AFL Dyfet That would work similar to Mac multifinder, which originally was driven off AFL Dyfet event manager. JeffreyH11 OK. I can see how that works w/TaskMaster; I just didn't see at first how to JeffreyH11 handle it elsewhere. Nevermind. Dave Lyons (BTW, when your app calls GetNextEvnet right now, for a mouse click in an NDA window, it passes Dave Lyons the event to the DA, which can handle it however it wants, and *then* the GNE call finally returns Dave Lyons with a null event to your app! The principle is the same--it could give control to another app.) A2GS Dave, the Toolbox wasn't designed to have multiple programs calling it, so if A2GS one program make a setbrush call and then another app. also running also makes A2GS a different setbrush call, the first app. will lose it's brush. The problem AFL Dyfet A2...event multitasking wouldn't have that problem....the program would release AFL Dyfet control during getnextevent... JeffreyH11 Not if each application issues the call only for its own GrafPorts. Dave Lyons Eh? Are you talking SetPenPat, A2GS? That exists Dave Lyons in *each port*, and two apps would *not* be sharing the same port. A2GS iyep. Dave Lyons Your point is valid, though: AFL Dyfet But this would require a redesign of event management, and tool initialization. Dave Lyons There *are* some toolsets where there is some considerable context switching to be done. SANE, Dave Lyons for example, has current settings for a single client on its direct page. Tool initialization Dave Lyons is something the system could do--just patch all the startup functions and shutdown functions to Dave Lyons "do the right thing" for each toolset. JeffreyH11 We discussed that topic about a month ago, about virtual startup/shutdown. Dave Lyons The window manager would have to be modified heavily, to give each app the illusion of having Dave Lyons its own window chain, while still keeping a "real" window chain so that all the vis regions and the Dave Lyons desktop region are Right. JeffreyH11 Couldn't it do what MF does on the Mac, where the active App's windows are JeffreyH11 all in front, so each app. appears to have a "layer" where all its windows are JeffreyH11 grouped together. Dave Lyons Sure. That's a very reasonable way. JeffreyH11 It works well on the Mac, though it takes some getting used to. Dave Lyons It still means you have to patch GetFirstWindow and GetNextWindow to "lie" to the app. AFL Dyfet To patch getevent wouldn't be so bad... AFL Dyfet (oops, getwindow) JeffreyH11 Well, if there wasn't a "next" window for that app., maybe, but the "first" JeffreyH11 window would always belong to the active app. if it had any windows. Dave Lyons Are you sure? :) Dave Lyons What if the app gets control at a time Dave Lyons when it is *not* the frontmost app? Isn't that the idea behind a multifinder? (Well, one of the Dave Lyons ideas?) Dave Lyons For example, when the app gets an Update event, it may or may *not* be the front app. You want all Dave Lyons the windows to update for all your apps, and this can be done. There are "major" and "minor" context Dave Lyons switches. Major = the apps windows come to the front, but minor = give the app control to update Dave Lyons a window, or to do some calcuations for a while, without moving the windows, but allowing the Dave Lyons app to see most of its environment (the Mac MF actually swaps in and out sets of toolbox patches Dave Lyons that each app has made, so they don't interfere with each other). When an interrupt routine Dave Lyons gets called, the right environment has to be set up, too. Same for Run Queue routines on the GS. JeffreyH11 True; I forgot about Update events and interrupts. You would need JeffreyH11 each application to have a "Layer" where it can only see windows in its own JeffreyH11 layer. Dave Lyons JH, Yes, exactly. JeffreyH11 And HeartBeat tasks, because some programs will still use them. Dave Lyons Yes--HB tasks are useful in *some* situations where RunQ tasks are useless. Dave Lyons (If you want to get control periodically in a text-based program, for example, or if you have Dave Lyons something to check for at times the system is *not* prepared for you to make most toolbox calls). A2GS You could also wait for any toolbox events currently being done within an app. A2GS to be finished before going over to a newly selcted app. (by the user). JeffreyH11 I forgot that Run Queue doesn't work if Desk Manager is not active, as from a JeffreyH11 text application. JeffreyH11 (just got my Vol. 3 a week ago; I've only read it once :) Dave Lyons :) Dave Lyons Yeah, but reading the *final* version once is good...I read about 6 bazillion drafts that were Dave Lyons all screwed up. A2GS So under a Multifinder environment. make ALL managers active. Dave Lyons Why make them all active? A2GS Well, at least the Desk Manager. Dave Lyons To stay compatible, I think you'll *have* to let application make LoadOneTool calls and Dave Lyons StartUpTools calls, even if the tool is already "really" there. Loading everything into memory Dave Lyons before it's needed is probably not a good idea--takes up a lot of RAM unnecessarily! As long Dave Lyons as you know who's using what, you can use no more RAM than necessary. I think "lying" with the Dave Lyons Status functions would work well there. Force an App to start a particular tool before it can tell Dave Lyons that it's available. JeffreyH11 Yes, only activate the ones that at least one application requests. Also, JeffreyH11 you would have to do some fancy stuff with the Resource Manager as well, so JeffreyH11 that applications would only see their own search path. Dave Lyons Uh... JeffreyH11 It's the job of the ToolBox to lie to applications in order to keep everything JeffreyH11 running smoothly, isn't it? Dave Lyons Jeff, read that Resource Manager chapter One More Time...I think the RM is the one toolset that is Dave Lyons *most* ready for a MF environment, because it *already* keeps separate search paths for every Dave Lyons user id that starts it up. Works great for NDAs, like the control panel. Go in Finder and then Dave Lyons open up the CP and a CDev; in Nifty List, type 1001r to see that Sys.Resources is the only thing Dave Lyons in the Finder's search path, but the CDev, the Control Panel, and then Sys.Resources are all in Dave Lyons the CP's search path [500x i]. JeffreyH11 Is that what Get/Set CurResourceApp does? Dave Lyons You betcha! Everybody using RM calls ResourceStartUp once, and then whenever they Dave Lyons want *their* search path they make sure they're the current resource app, restoring it to whatever Dave Lyons it was before. The Desk Manager actually takes care of this *for* you if you're an NDA, at least Dave Lyons in your Action routine and in Run Queue routines you've installed (will have to double-check the Dave Lyons run-q thing). A2GS Well, I've had enough hypthetical talk for tonite, tune in next week when Apple A2GS releases a protable GS capable of displaying 24-bit color on a color LCD screen A2GS costing only $500.00 AFL Dyfet and running at a phenominal 4.7 mhz?? :) JeffreyH11 Incidentally, I seem to recall an event code that was never really used which JeffreyH11 would make a MultiFinder easier for applications to support - the "switch" JeffreyH11 event. Aren't applications required to make sure that everything is still OK JeffreyH11 after they receive a switch event? Dave Lyons Yeah, there are a couple unused events that could be used for suspend/resume events. Dave Lyons Still OK how? Mostly apps want to use suspend events to publish their private scraps into the Dave Lyons real System clipboard, etc. JeffreyH11 According to the TB Reference page 7-14 (vol. 1), "Switch events were not JeffreyH11 implemented at the time of publication, however, when they are generated, ... JeffreyH11 your application should check to make sure that the environment is still the JeffreyH11 same as it was before the switch event occurred." I take this to mean, among JeffreyH11 other things, to dereference all handles again, reset the current GrafPort, JeffreyH11 etc. Dave Lyons Well, derefing handles needs to be done after almost *any* toolbox call. The system could Dave Lyons preserve the port with no difficulty. Dave Lyons (finding that page....) JeffreyH11 ("Responding to other events..." True, but it still provides some flexibility JeffreyH11 in how a switch is dealt with by the system. You were right; there are also JeffreyH11 2 "Undefined" events (#4 and 7) that could be used for suspend, etc. See page JeffreyH11 7-7. Dave Lyons Interesting--I'd missed that paragraph. Sounds cool, though. Dave Lyons BTW, when you hit Ctrl-T in NL to see the SHR screen, I want to give a visual indication that Dave Lyons it isn't the "real" app screen. What do you suggest? JeffreyH11 Also, since What is a word, isn't there room for zillions more event codes? Dave Lyons (I'm playing with the palette in various ways now.) JeffreyH11 How about an icon in the right end of the menu bar, like Timbuktu does on the JeffreyH11 Mac when you look at the other guy's screen? Dave Lyons Well, an *event code* is a word, but GetNextEvent and SetEventMask etc need an event MASK word, Dave Lyons limiting the number of types to 16. JeffreyH11 Sorry; forgot about that. Come to think of it, TaskMaster needs a mask as JeffreyH11 well. Dave Lyons There may not even be a menu bar...I tried eor-ing Dave Lyons [Yes, TaskMaster passes that very same mask to GetNextEvent...that's why it needs it.] Dave Lyons all the colors with $0fff, but that made the screen puke-green instead of desktop-blue, so I think Dave Lyons I'll try reversing all the colors 0..15 --> 15..0 instead. JeffreyH11 just modify a few pixels in one corner of the screen, and put them back when JeffreyH11 done. JeffreyH11 Just reversing 0 and 15 would do it for most apps. Dave Lyons Do you know of any apps where it wouldn't? Dave Lyons They'd have to have *symmetrical* color tables for it not to make a difference (colors 0 and 15 Dave Lyons match, 1 and 14 match, etc). JeffreyH11 Just ones where 0 and 15 aren't used a lot. Also ones that used more than JeffreyH11 one palette would add complexity, but not make it impossible. I'm looking JeffreyH11 forward to the new NiftyList; my $15 will be in the mail soon! AFA Gary J :) AFA Gary J The OLD NiftyList was well worth the $15. I can't wait for the new one.