778 lines
37 KiB
Plaintext
778 lines
37 KiB
Plaintext
|
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.
|