textfiles/apple/ADC/adv.900724

778 lines
37 KiB
Plaintext
Raw Normal View History

2021-04-15 11:31:59 -07:00
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 <grin>
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 <grin>
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 <heh!>
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.