284 lines
13 KiB
Plaintext
284 lines
13 KiB
Plaintext
America Online
|
|
APPLE II DEVELOPMENT FORUM CONFERENCE LOG
|
|
Tuesday, October 2, 1990 10:00 p.m. Eastern Time
|
|
Topic: Assembly Language Programming
|
|
Forum Leader: Dave Sugar (AFL Dyfet)
|
|
|
|
AFL Dyfet Tonight's topic is assembly language programming.
|
|
AFL Dyfet Yes, Surak, that would be a good place to start...go ahead with
|
|
your question.
|
|
Surak TFF OK... 1) When does the Control Panel NDA expect you to return it
|
|
something
|
|
Surak TFF other than a 0?
|
|
Surak TFF It doesn't really say much in the technote about returning
|
|
values.
|
|
Surak TFF (make that filetype note)
|
|
Matt DTS I believe it says either "reserved" or "unused" all the places
|
|
you're supposed to return zero.
|
|
Matt DTS No one here has the functions memorized so we can't answer that
|
|
off the tops of our heads, but you can
|
|
Matt DTS look at the sample CDEV in the latest sample code batch if
|
|
something's really confusing you.
|
|
Dave Lyons Yup, that's safe. Return 0 unless it says you should return
|
|
something different.
|
|
Surak TFF OK...And Part 2) Can a CDEV install an interrupt handler as part
|
|
of its boot
|
|
Surak TFF procedure?
|
|
Surak TFF (Say, a SysBeep procedure, or something of that type)
|
|
Matt DTS You'd have to allocate new memory under a user ID that's not the
|
|
CDev's, but yes, it can be done.
|
|
Matt DTS The Control Panel reserves the right to shut down your CDev and
|
|
purge all memory with its ID when it
|
|
Matt DTS feels like it, so you'd have to give it memory with some other
|
|
user ID (get a new one from GetNewID)
|
|
Matt DTS so it would stick around. (GA)
|
|
Surak TFF OK, thanks... I guess I'll have the CDEV out soon then :)
|
|
GA...
|
|
AFL Dyfet GA A2...
|
|
A2GS This is really a Q....wouldn't shutting down a CDEV where the CDEV
|
|
has
|
|
A2GS installed an Interrupt Handler be kind of dangerous? You'd have
|
|
this loose
|
|
A2GS handler picking interrupts with no CDEV making use of it.
|
|
AFL Dyfet GA Winkie :)...
|
|
WinkieJim The CDEV would have to put the code that handles the inturupt in a
|
|
separate
|
|
WinkieJim memory handle.
|
|
WinkieJim ga
|
|
A2GS I know that...but still the interrupt would be handled with no
|
|
application
|
|
A2GS making use of the info provided by the handler..if nothing else,
|
|
it's a waste
|
|
A2GS of CPU time.
|
|
Matt DTS That's why you have to have separate code that *won't* go away
|
|
claiming the interrupts.
|
|
Matt DTS You have to use the system's communicative facilities (like
|
|
MessageByName) to set flags that the
|
|
Matt DTS CDev can read when it's ready.
|
|
Matt DTS And sometimes you want separate code doing things when the CDev is
|
|
not around. For example,
|
|
Matt DTS a "SoundMaster" CDev should patch out the appropriate vectors and
|
|
play sounds when disks are
|
|
Matt DTS inserted (or whatever) even if the CDev isn't open. The CDev
|
|
communicates with the other code to let
|
|
Matt DTS it know what sounds to play at the appropriate times. (GA)
|
|
AFL Dyfet GA Surak...
|
|
A2GS Ok. But since no actual application is making use of the
|
|
Interrupt...there's
|
|
A2GS no Direct to now that it exists and shut it down when it's not
|
|
useful anymore.
|
|
Surak TFF OK, well, my CDEV doesn't do ANYTHING with the interrupts - the
|
|
interrupt hand-
|
|
Surak TFF ler does everything with them... It's just a SysBeep-type
|
|
routine... And others
|
|
Surak TFF So, there shouldn't be any problem of that kind, A2... :)
|
|
Surak TFF Matt, you picked me out exactly.. :) [GA]
|
|
AFL Dyfet GA Winkie...
|
|
WinkieJim Matt, isn't there a shutdown command sent to a Cdev when the
|
|
Control panel
|
|
WinkieJim closes or switches Cdevs?
|
|
WinkieJim that would seem to allow for shutting off the various intrupts.
|
|
WinkieJim ga
|
|
Matt DTS Yes, that's true...
|
|
Matt DTS ...but if you're trying to write something that stays around in
|
|
the background all the time...
|
|
Matt DTS ...you want it to stay around *AFTER* the shutdown command is
|
|
received. If you're writing a CDev that
|
|
Matt DTS lets you pick a sound file to play instead of the normal beep, you
|
|
probably still want to hear it
|
|
Matt DTS after you close the CDEv or the Control Panel! (GA)
|
|
A2GS Including for ex. the Ensoniq interrupts?
|
|
AFL Dyfet GA Jeffry
|
|
JeffreyH11 A2, If the interrupt routine was something you would need to shut
|
|
down before
|
|
JeffreyH11 reboot, you would have to write it such that the CDEV could tell
|
|
the interrupt
|
|
JeffreyH11 routine to shut itself down, possibly through MessageCenter as
|
|
Matt suggests.
|
|
JeffreyH11 GS
|
|
JeffreyH11 (OOPS: GA) :)
|
|
AFA Gary J :) GS is fine :)
|
|
JeffreyH11 :)
|
|
A2GS Exactly...but that requires specific code....the original Q was
|
|
whether it
|
|
A2GS was "Dangerous to write an Interrupt Handler which ALWAYS hung
|
|
around,
|
|
A2GS assuming that a Handler need not always be active (barring the
|
|
sysbeep example)
|
|
JeffreyH11 The answer to which is "No, not if it needs to to do its job."
|
|
JeffreyH11 P.S. And it's done properly. GA
|
|
A2GS "Dangerous" also includes wasted CPU time.
|
|
A2GS Not necessarily a possible Fatal error.
|
|
AFL Dyfet Go ahead Jeffrey...
|
|
JeffreyH11 Something that only needs to be active while the CDEV is visible
|
|
should be
|
|
JeffreyH11 installed when the CDEV is selected, not at boot time.
|
|
JeffreyH11 GA (or GS :)
|
|
AFA Gary J :)
|
|
A2GS Forget it...we're talking about theoretical problems/wasted
|
|
time.
|
|
WinkieJim Please kill me if I'm wrong, but couldn't the Intrupt handler take
|
|
itself out
|
|
WinkieJim of the intrupt queue when it's finished?
|
|
JeffreyH11 (Yes. )
|
|
A2GS Yes...But that wasn't brought up..because it also requires special
|
|
code.
|
|
AFL Dyfet I think we will now get to Nuzz's question, and maybe move this
|
|
discussion
|
|
AFL Dyfet into the message area :)...Go ahead Nuzz...
|
|
JeffreyH11 Good idea.
|
|
Surak TFF Yes, good idea.
|
|
Nuzz I see that the latest source code is also in tool form. Can I
|
|
include that in
|
|
Nuzz an app. Does it need a license, or whhatever
|
|
Nuzz GA
|
|
AFL Dyfet GA Matt :)
|
|
Matt DTS "the latest source code" is not in "tool form" - One of the
|
|
twenty-four things we just released is
|
|
Matt DTS a set of tools we include in both linkable library and user tool
|
|
set form (mostly because some
|
|
Matt DTS languages don't let you link in external code). You're free to
|
|
use this in an application without
|
|
Matt DTS licensing, WITH THE EXCEPTION OF pixelMap2Rgn, which is part of
|
|
the Pixel Map Tools. That covers
|
|
Matt DTS the patented region structure so we have to license it, just like
|
|
BitMap2Rgn on the Macintosh.
|
|
Matt DTS GA.
|
|
Nuzz You mean I can use all the PixelMap tool but use the pixelMap2Rgn
|
|
call. GA
|
|
Nuzz but not use call. Sorry
|
|
Matt DTS You can use everything for free, but there's a modest license fee
|
|
(I think it's like $25) if you
|
|
Matt DTS use pixelMap2Rgn in an application you distribute. If the call is
|
|
useful to you then it's probably
|
|
Matt DTS worth the fee. FakeModalDialog and the rest of the PM tools have
|
|
no license for their use. (GA)
|
|
Nuzz Sounds good. Thanks Done
|
|
AFL Dyfet GA Tamira...you have the floor now...
|
|
Tamira My only ? centers on whether anyone has seen CHERNISS
|
|
Tamira doing something and need some feedback
|
|
AFL Dyfet Go ahead Winkie :)...
|
|
WinkieJim No. GA
|
|
AFL Dyfet Jim, 10 yard penalty :)
|
|
Tamira thanx anyway :(
|
|
WinkieJim Sorry...couldn't resist
|
|
Tamira jim :P to you so there
|
|
WinkieJim It just seemed a wierd question to come up here :)
|
|
AFL Marty (Seen it? I don't even know what it is.)
|
|
AFA Gary J :)
|
|
Tamira forget it then!
|
|
AFL Dyfet Okay, I believe Surak is next...Go ahead Surak...
|
|
Surak TFF OK...
|
|
Surak TFF In the SysBeep-type routine I mentioned before...
|
|
Surak TFF Is it possible to play a digitized sound (from within the vector
|
|
call to BELL1)
|
|
Surak TFF while the Sound Tools are already being used? I know Desk
|
|
Accessories can't do
|
|
Surak TFF it because interrupts could try to use the DOC while they're using
|
|
it... But
|
|
Surak TFF if I saved DOC RAM around it, I am already an interrupt, and thus
|
|
can't be
|
|
Surak TFF "interrupted"... Correct me, please, if I am way off base... :)
|
|
Surak TFF GA
|
|
AFL Dyfet Go ahead Jim...
|
|
WinkieJim Nope...if the sounds tools are in use...you shalt not use them
|
|
thyself. GA
|
|
Matt DTS What he said. If the Sound Tools are started, only the
|
|
Application can use DOC RAM. (GA)
|
|
WinkieJim (you might notice that SYSBEEP doesn't work when an application is
|
|
using sounds)
|
|
Surak TFF OK, thanks... That actually makes it a bit easier... :) I know
|
|
SysBeep doesn't
|
|
Surak TFF but I thought maybe it could.
|
|
Dave Lyons (Meaning SYSBEEP the Utility, not SysBeep the Misc Tools call.)
|
|
AFL Dyfet Okay, do we have any other questions for tonight??
|
|
AFL Dyfet GA Winkie
|
|
WinkieJim I have a NDA with a menu bar in it's window with the menus in
|
|
resources. The
|
|
WinkieJim menu comes up right when the window is opened and I can use them,
|
|
but when I
|
|
WinkieJim resize the window or move the window it crashes in the Info bar
|
|
drawing routine
|
|
WinkieJim any ideas? ga
|
|
AFL Dyfet Go ahead Dave...
|
|
Dave Lyons The info bar drawing routine is handled more strangly than the
|
|
content-draw routine. For a
|
|
Dave Lyons regular content draw, there was an Update event that SystemEvent
|
|
gave to your DA, and SystemEvent
|
|
Dave Lyons set the current resource application to be your NDA before calling
|
|
you. Life is good.
|
|
Dave Lyons But info-bar drawing routines are getting called more
|
|
directly--you need to call GetCurResourceApp,
|
|
WinkieJim Ah.....:)
|
|
Dave Lyons keep the result, do a SetCurResourceApp to your own ID (the one
|
|
you called ResourceStartUp with), and
|
|
Dave Lyons set the current resource app back to what it was before you
|
|
exit).
|
|
WinkieJim Should have figured that out since the info update is outside the
|
|
NDA code
|
|
WinkieJim technicaly...
|
|
Dave Lyons This way the menu mgr will be able to find your resources, since
|
|
it will be looking in the right
|
|
Dave Lyons search path.
|
|
Dave Lyons (done)
|
|
WinkieJim Thanks.
|
|
WinkieJim <---happy camper
|
|
AFL Dyfet Go ahead, Parik...
|
|
AFA Parik any e-z way to have the scroll bars in a window not go inactive if
|
|
another
|
|
AFA Parik window is selected? not controls, just standard window vert/horz
|
|
scrollbars.
|
|
AFA Parik ga
|
|
AFL Dyfet Go ahead Winkie...
|
|
WinkieJim There is a flag that allows a window's controls to be the same
|
|
state as the
|
|
WinkieJim window or not (you want not the same state) but the
|
|
WinkieJim window will still have to be activated to use the scroll bars
|
|
WinkieJim ga
|
|
AFL Dyfet Go ahead Dave...
|
|
Dave Lyons Yeah, that flag applies to *content* controls. I believe you're
|
|
talking about "frame" scroll
|
|
WinkieJim PS it's the wFrameBits parm
|
|
Dave Lyons bars, which are always deactivated when the window is deactivated.
|
|
You should be able to call
|
|
Dave Lyons TrackControl on an active scroll bar in an inactive window with no
|
|
problem, although I'm not sure
|
|
Dave Lyons you can get TaskMaster to do it for you.
|
|
Dave Lyons ga
|
|
AFA Parik okedokee. thanks dave & jim (done)
|
|
AFA Parik (yes, you're right - frame scrollbars :(
|
|
A2GS Why would you want 2 window scroll bars active at once...you can
|
|
only work on
|
|
A2GS one at a time anyways.
|
|
JeffreyH11 To be able to scroll a window you're looking at without making it
|
|
active and
|
|
JeffreyH11 then having to switch back to the one you're typing in.
|
|
AFA Parik " " "
|
|
AFL Dyfet Okay, I think that we have reached the end of our queue :)
|
|
A2GS good point
|
|
JeffreyH11 You noticed.
|
|
JeffreyH11 :)
|
|
AFA Parik (ditto, what he said, etc, etc)
|
|
AFA Gary J Oh! :)
|
|
A2GS hey, let's not get carried away...one good point per nite from me
|
|
is enough :)
|
|
JeffreyH11 Wow! I must be psychic.
|
|
JeffreyH11 :)
|
|
AFA Gary J Q = WinkieJim
|
|
WinkieJim Anyone have any idea when 5.0.3 will be shipping
|
|
WinkieJim ga
|
|
A2GS Yeah when 7.0 Mac OS ships
|
|
AFA Gary J 5.0.3 is no secret to the tech notes.
|
|
AFL Dyfet :)
|
|
JeffreyH11 What happened to the fabled System 6.0 ?
|
|
Dave Lyons (Yeah, but did the technotes say when it was shipping?)
|
|
A2GS I here it's been delayed ANOTHER 6 months!! (7.0 that is)
|
|
Tamira right A2
|
|
AFA Gary J No, that WAS left out, for some reason, Dave :)
|
|
WinkieJim <---desparately need the fixed resource manager in 5.0.3
|
|
WinkieJim ah well, I'm used to waiting :)
|
|
AFA Parik (I heard 5.03 ships next week...but i also heard elvis is alive)
|
|
AFA Gary J :)
|
|
JeffreyH11 :)
|
|
|