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 :)