America Online APPLE II DEVELOPMENT FORUM CONFERENCE LOG Tuesday, June 19, 1990 10:00 p.m. eastern time Topic: Assembly Language Programming Forum Leader: Gary Jacobson (AFA Gary J) AFA Gary J Let's see, have we had a banner yet? Doctor Why Are we starting now or can I sneak in the question AFA Gary J Why don't we start... (Dyfet's looking after the plumber for a minute :) AFA Gary J Good evening, and welcome to the Apple II Development Forum. Tonight's AFA Gary J topic is assembly language. We'll be using protocol starting NOW, so if you AFA Gary J have a question, type a "?" on a line by itself, or if you have a comment AFA Gary J on the current topic, type a "!" on a line by itself. I'll relinquish control AFA Gary J back to AFL Dyfet as soon as he returns :) AFA Gary J Looks like Doctor Why got the first question in :) GA, Doc. Doctor Why On Tech note 83 you mention a call to LGetPathName2. Where is that call Doctor Why documented? AFA Gary J GA, Dave Dave Lyons Well, I *know* it's in the version of the GS/OS reference that Dave Lyons you can't get just yet. Other than that, I believe it was documented in the release notes Doctor Why release notes? Dave Lyons that were sent *to developers* when 5.0 came out. Errr...maybe even 4.0: I think it was Dave Lyons invented then. GA, Coach...you probably know better than I do, since I get confused by Dave Lyons having 19000 beta drafts floating around. AFA Gary J :) AFA Gary J (Information overflow :) Coach101 LGetPathName2 is documented in published manuals.... I believe I found Coach101 it in GS/OS Reference Volume 2 from APDA Coach101 ga Dave Lyons Hey! Coach is right--it IS in the Dave Lyons 1/26/89 APDA draft of GS/OS reference Volume 2. Doctor Why Accckk. The one manual I DON'T have. :( Dave Lyons BTW, the Dave Lyons info is just this: call number is $2211, and it's just like Dave Lyons LGetPathname except the return value points to a GS/OS string instead of a Pascal string (a Dave Lyons length word instead of a length byte). done AFA Gary J Anything else, Doc? Doctor Why LGetPathName wouldn't be documented in the same manual? Would it? Dave Lyons Sure, among other places. Dave Lyons LGetPathname is in the ProDOS 16 Reference, too. Dave Lyons (I don't suppose you have that one either?) Doctor Why That one I have. Coach101 He said he was only missing one manual Dave :) Doctor Why (checking) Doctor Why it's not in the index. I'll keep looking. GA Dave Lyons Pass it a Memory ID and a file number ($0001), and get back a pointer, toolbox style. Dave Lyons LGetPathname is tool $1111, and LGetPathname2 is $2211. Dave Lyons ga Coach101 It would be in the system loader section Why Doctor Why Okay, thanks. AFA Gary J Ooops, lets' get Jeffrey's comment first.. GA, Jeff JeffreyH11 I just found Get Pathname in the System Loader section, page 242 in my book. Doctor Why I got it. Thanks. Seaspider Any idea when 6.0, New Sound tools and better graphics for the GS will be re- Seaspider leased? Dave Lyons (Sorry, I don't have any info on Seaspider's question.) Coach101 Seaspider, Coach101 By and large all Apple employees are bound by non-disclosure agreements Coach101 with resepect to developments that may or may not be underway at Apple... Coach101 So, anyone who knows, will not be able to comment on release date questions Coach101 , product directions, etc. ga Seaspider Thanks anyway Dave! Seaspider Coach101 Understood. Thank you. ga AFA Gary J Thanks, Coach. Ok, I have a question.... AFA Gary J In Lichtey and Eyes book under Absolute Addressing (mode)... it AFA Gary J documents the Data Bank Register (DBR) as being used "if locating data". AFA Gary J What exactly does that mean? AFA Gary J GA, Jeff JeffreyH11 The Program Bank is used for JMP and JSR; DBR is used otherwise AFA Gary J Ahh... yes. If I had looked at ALL the instructions that use it at the AFA Gary J bottom of the page, it would have made sense immediatly. GA, Dave Dave Lyons DBR supplies the high byte (bank byte) of addresses when the instruction supplies exactly two Dave Lyons bytes (not used for direct-page addressing or long addressing). ga AFA Gary J (I forgot that JMP/JSR was considered absolute :) AFA Gary J That's what I thought, but I thought ALL absolute addressing used DBR, (since AFA Gary J I forgot about JMP/JSR). GA, Coach Coach101 Its picky, but JMP/JSR don't quite fit Dave's precise description.... AFA Gary J :) Dave Lyons (you're right...oops) Coach101 I just use the old if it could be in a different bank its data, if it must Coach101 be in my procedure bank use K... So LDA #1234 (and its arguable whethere AFA Gary J PBR is used in the case of JSR/JMP Coach101 1234 is data or address) uses K but LDA 1234 uses DBR... ga AFA Gary J GA, Jeff. JeffreyH11 LDA #1234 is immediate, not absolute addressing AFA Gary J :) AFA Gary J Ok, Jeffery, you have the floor now. GA JeffreyH11 Does anyone know when Vol. 3 of the Toolbox Reference is due for release? JeffreyH11 I tried calling Apple today and they said it wasn't available yet. Matt DTS Is it my imagination or does this question get asked each and every week? :) AFA Gary J (not imagination :) Matt DTS It should be out any day now. GA. JeffreyH11 Thanks. AFA Gary J We get a different answer every week, however :) Coach101 We do it just for you Matt... Its a rotating question, different Coach101 people have the responsibility for asking it on differen weeks :) AFA Gary J (It makes things less predictable that way :) AFA Gene It sure looked neat when I saw it at AFest. Complete dox of MIDI Synth (yay!) JeffreyH11 I'll call back next week to see what the answer is then :) A GibberFC I have the question Next week, Matt..... so you can ready up for it :) AFA Gary J GA, Dave Dave Lyons Gene, I don't think there's a chapter by that name in TB Ref 3: there's the MIDI Tools, the Note Dave Lyons Sequencer, and the Note Synthesizer, though. ga AFA Gary J OK, the queue is empty!!! There must be TONS of assembly questions out there!! AFA Gary J (pounds, maybe?) Tamira no, Gary, we are waiting for your pearls of wisdom :> AFA Parik will orca/m v2.0 come with a label "some assembly required."? Tamira ounces???? Drams?? AFA Gary J heheh :) Tamira ML?? JeffreyH11 Ha Ha :? Tamira drops?? AFA Gary J Good assembly question, Parik :) A GibberFC This group is just a few JSL's from a full Stack AFA Gary J Ok, looks like Coach has a REAL question. GA, Coach Coach101 No, the label will read "Debugger included" Coach101 A very general one though.... I have a process that runs merrily for Coach101 hours in the background (exchanging tens of thousands of messages via Coach101 AppleTalk). But when I say something like "type src/listen.a" to ORCA, Coach101 the system comes down within a second... Coach101 The state of the system is full emulation, D=0, S=bank-0,page-1.... Coach101 Is there some place I can look to see how I got where I am (I am, of course, Coach101 off in limbo land executing garbage when the break takes place)... gs Coach101 ga AFA Gary J GA, Dave Dave Lyons Besides looking for return addresses on the stack, you mean? Dave Lyons Gee...it you can't tell from that, you've gotta get a logic analyzer or something. Coach101 Yes, the stack did not seem very helpful.. Not much that look like RTS Coach101 or RTL (unless I was JSR/JSL ing from bank-0,page-0) ga Coach101 Ok, I will go back to staring the code out and executing it in my mind Coach101 looking for that fatal bug..... I do play with the state register and Coach101 the state of the language card area within my Listen routine (invoked via Coach101 either SIGNAL or AppleTalk).. next ? AFA Gary J GA, Genoxor with your question. Genoxor Ok, well do you think Scott Patterson used pei to animate task force? ks AFA Parik no, tsb. Genoxor thanks AFA Gary J Ok. AFL Dyfet Okay, I guess the Q is empty again then....do we have any other questions out AFL Dyfet there for tonight? AFL Dyfet Okay Doctor Why, you have the floor now...GA... Doctor Why A question on Tech note #82 (working down the list) :) Doctor Why It says that your window (NewWindow2) should not have an attached control list Doctor Why If you create a window with controls with Genesys, I don't think there is a Doctor Why way to detach the control list from the window. Do I have to DEREZ it and Doctor Why make that change? AFL Dyfet GA Dave... Dave Lyons Hmmm...that's really a Genesys question. I don't know that part of the answer. Of course, Dave Lyons eventually the whole thing will become moot, when the system is fixed to always work right with Dave Lyons an attached control list. I would expect there's a way to do it nicely in Genesys, since I know Dave Lyons the Genesys folks encountered the problem in their own code and worked around it. ga Doctor Why (any hints on when.....nah I know the answer) Sir AWGS Can ToolStartup be used safely in an NDA? AFL Dyfet GA Dave... Dave Lyons What's ToolStartup? Dave Lyons Do you mean StartUpTools? Sir AWGS sigh... yes Dave.... A GibberFC (Can toolstartup be used unsafely in an NDA ) Sir AWGS (I know that answer already ! :) Dave Lyons I don't think so--the main Dave Lyons problem is that StartUpTools tries to do an OpenResourceFile on what is supposed to be Dave Lyons the pathname of the "application" that's making the call. The current implementation depends on Dave Lyons prefix 1 and the result of GET_NAME, so it's not going to be able to actually open your Dave Lyons resource fork for you, and it'll probably manage to open a 2nd read-only copy of the current Dave Lyons applicatin's resource fork, in your NDA's resource search path. Ick. Sir AWGS Consider it a suggestion then ;o. Dave Lyons So, I have to say No, ToolStartUp isn't supported from NDAs. Dave Lyons What do you want to start up Dave Lyons exactly? You want it mainly for opening your NDA's resource fork, or for starting lots of tools? Sir AWGS TE, FM, Sound Tools, QDAUX. And handle all the errors nicely. Sir AWGS Its not hard but is cubersome. Lots of tests for _toolErr Dave Lyons All *what* errors? StartUpTools doesn't even tell you what tools Dave Lyons were not found if there's a problem, and you have to be really careful Dave Lyons starting up tools from an NDA--you're going toave to shut them down at DeskShutDown time (when Dave Lyons your Init routine gets called), in many cases. Seems like doing them one at a time with Dave Lyons LoadOneTool is better. Dave Lyons (ga) Sir AWGS Oops - forgot we're assembling tonight! sorry. Sir AWGS Wanted to use StartupTools as an alternative to startig up the tools myself. Sir AWGS ga AFL Dyfet GA Nuzz Nuzz Could you use LoadTools instead? Dave Lyons Hmm-- Dave Lyons I guess that depends on whether LoadTools is defined as not causing any trouble if a tool Dave Lyons is already loaded. Otherwise building the table on the fly would be more of a pain than just Dave Lyons calling LoadOneTool for each one not already there. ga Nuzz GA Sir AWGS Well it would be nice to have a call that an NDA can make to startup a set Sir AWGS of the non-standard DA's @ open time and corresponding call to shut them down Sir AWGS @ close time. (and handle the memory allocation & error handling ). JeffreyH11 I don't see any reason you couldn't, unless LoadTools reloaded a tool that was] JeffreyH11 already in use by the current application or another NDA. Dave Lyons Problem--you can't in general start up a bunch of tools at Open time and shut them down at Close Dave Lyons time. Consider two NDAs that both do this: open A, open B, close A. If they need some of the Dave Lyons same nonstandard tools, B is open, but closing A shut down some of the tools. Ick. This is why I Dave Lyons say to start them up at Open time and shut them down at Init (DeskShutDown) time. And it can Dave Lyons still cause problems with applications, since they have the right to load and unload tools when they Dave Lyons feel like it (although it's recommended that they be careful about that, for NDA compatability). ga Nuzz _LoadTools_That_Are_Not_Already_Loaded :) Sir AWGS NO! The correct way would be to remember which tools are loaded, & started Sir AWGS up and only set them back. A GibberFC _Load_The_Tools_I_Want AFL Dyfet GA Jeff... JeffreyH11 There would still be a problem with NDA's remembering which tools were started JeffreyH11 if they close then down when closed, and another NDA is still using the tool.GA Dave Lyons (Yeah...I wish I'd said that. :-) AFL Dyfet Okay, do we have any other comments on problems with NDA's and tool loading? Sir AWGS Hmmm I guess you could do it on an Activate/Deactivate as well. Coach101 Naybe with a 400mhz cpu :) Dave Lyons That's a problem too--see at least one Technical Note with my name on it. It used to actually Dave Lyons recommend that, but it can still cause problems with applications that don't start up all their Dave Lyons tools at launch, since you can choose application menus while your NDA is in front, for ex. Dave Lyons (And for some tools it isn't terribly practical, like possibly the Font Manager.) ga Sir AWGS Well since its such a problem all the more reason for a tool call to hide it Sir AWGS from the rest of the app. That way you guys could muck with it and even have Sir AWGS the system jump into bed with itself if necessary. Matt DTS (This would probably be TN #53, "DAs and Tools".) Coach101 What is needed is a "system" facillity that counts the number of starts Coach101 and when a shutdown is done, decrements the count. If the count goes to Coach101 zero, then, and only then, actually shutdown the tool.... JeffreyH11 If you reloaded tools on every activate and unloaded on every inactivate, JeffreyH11 users would not be able to tolerate the delay. JeffreyH11 GA Matt DTS Let me get this straight, AWGS - you want the system software to take up *more* memory? AFL Dyfet ONE AT A TIME, please...Dave now has the floor... Sir AWGS Actually it will in the average case take up less. Because every DA won't be Sir AWGS duplicating this code. Dave Lyons Unfortunately, counting the xxxStartUp calls and xxxShutDown calls won't work too well. Consider Dave Lyons an NDA that calls FMStatus, says "Oh, the Font Manager is already started up," and proceeds to Dave Lyons use it without starting it up itself. That's correct behavior, and there is no record of the Dave Lyons fact that the NDA is "using" the Font Manager. Ick. ga AFL Dyfet GA Jeffry... JeffreyH11 Still an execellent idea. JeffreyH11 GA Sir AWGS So have everyone treat them as virtual tools - Everyone does a Startup & Sir AWGS Shutdown and the system resolves the rest. It could even lie in the "old" Sir AWGS status calls to be compatible with existing code. Coach101 The present situation and available tools, does not seem to present any Coach101 foolproof, or at least not extremely kludgey, solutions.... Coach101 If the problem is to be solved, and if it is worth solving, I really feel Coach101 that intervention at the system level (virtual tools sounds good) is Coach101 necessary.... And any change in the system means the possibility of Coach101 breaking some existing code for the advancement of the species :) ga AFL Dyfet GA Dave Dave Lyons Hmmm...I would like to see a longer discussion of this, since it almost sounds strange enough Dave Lyons to work (having Status lie, etc). Definitely need to give it some thought. Dave Lyons (Who wants to start the folder?) ga AFL Dyfet GA Jeffry... JeffreyH11 You would want to create a new Status call that returns the "real" statos of a JeffreyH11 tool, just so the feature is still available to new code that wants the info.GA Sir AWGS Probably... but the point is usually you shouldn't need it.. Like ReadMouse2 Sir AWGS All my DAs end up having this big chunk of common code to handle this stuff. Sir AWGS I think the savings would pay for themselves. Sir AWGS (not to mention the reduction in bug potential). Coach101 Thereby decreasing the cost of IIgs software Coach101 thereby, increasing the sales of IIgs software Coach101 thereby, decreasing the tendency to pirate... Dave Lyons (You probably have more of your NDAs installed than the average user.... :-) Coach101 thereby, increasing sales.... whew... It took a while.. Sir AWGS thereby, causing temporary unrealistic expectations... :) Coach101 :) Sir AWGS Dave: thats a safe bet... I haven't released most of them :) + >EGO< :) JeffreyH11 This whole idea sounds interesting. Dave, why don't you start a folder. Sir AWGS After all it may only toggle a pixel - but I wrote it DA*N it! :) Coach101 I will give you dispensation Dave, and not move it to the NDA folder :) Sir AWGS oooohhhhhh..... aaaaaaahhhhhhh....... Dave Lyons Okee dokee...looking for the right place.... AFL Dyfet Okay, do we have any other questions for tonight?? JeffreyH11 Is there a TechNote describing what you need to know to write a device JeffreyH11 driver for a block device (hard drive, etc.) ? AFL Dyfet GA Matt... Matt DTS No. That would be a book. JeffreyH11 Yuk. Thanks anyway. Matt DTS (It's called "GS/OS Reference, Volume 2" and will eventually be called "GS/OS Driver Reference".) Matt DTS Available from your local APDA. JeffreyH11 Is it released yet? Sir AWGS currently available in beta form. Sir AWGS from APDA. JeffreyH11 To anyone?? Matt DTS There has been a beta draft there since 4.0. It's available to APDA members. AFA Gary J Sure, it's released! JeffreyH11 Thanks. Coach101 It is an EXCELLENT book.... Answers almost every question you could ask Coach101 and contains sample "shell" code of different types of drivers ... ga Sir AWGS and poses many more you wouldn't have thought of :) AFA Gary J YOU can be an APDA member. AFA Gary J (If you aren't) JeffreyH11 For how much??? Coach101 It is $35.00 from APDA JeffreyH11 I meant how much to join APDA? AFA Gary J Free, but you have to pay $20 to get.. Coach101 $20 to join APDA AFA Gary J 4 quarterly issues of the catalog :) AFA Gary J ($5 per catalog) JeffreyH11 Well, I don't need the catalog - I know what I want! Coach101 Right, and first class mail is only a nickle, the other 20 cents is for storage Tamira storage??? Tamira oh of snail mail :> JeffreyH11 In the mailbox] Tamira what is APDA?? AFA Gary J Jeffrey, it's worth it if you want to get the info you need to do state-of-the AFA Gary J art programming. AFA Gary J APDA is an achronym standing for "Apple Programmers and Developers Association" JeffreyH11 You sure you can join free if you don't want the catalog, or were you just JeffreyH11 joking? I know it's worth it, but I'm on a limited budget. GA AFA Gary J :) AFA Gary J I think the catalog is "required" :) AFA Gary J That's more or less the way they put it when Apple took it over from AFA Gary J Tech Alliance. JeffreyH11 Just like storage is "required" on first class mail. Dave Lyons You can get CLASS 1 products without joining APDA, but most of the cool stuff isn't class 1 (i.e., Dave Lyons it's still "beta" or otherwise not fully supported). JeffreyH11 Can I get TB Ref. Vol. 3 Beta if I join? AFA Gary J Yep Coach101 You can send the application and order in the same envelop..... JeffreyH11 Where can I get an application? Dave Lyons (At this stage, you may want to wait for the final Addison-Wesley book, which is better than the Dave Lyons APDA draft.) JeffreyH11 Will A-W be selling it other than through APDA? Dave Lyons You can call 1-800-282-APDA...I'm sure they'll send you one. Dave Lyons Yes, you should be able to ask your favorite bookstore to order you one, if they don't have it Dave Lyons on the shelf. AFA Gary J You can't sign up by phone, though. JeffreyH11 So I have to call, get a form, wait for it, then order :) AFA Gary J Sounds that way. Coach101 Yep, thats the drill..... Export regulations I think.... AFA Gary J I got a sign up form from my user's group. AFA Gary J If you know someone who is a member, they can give you a form from their AFA Gary J catalog. JeffreyH11 My users' group doesn't have many programmers. AFA Gary J They should be able to get you the APDA form though. JeffreyH11 I'll give it a try. Thanks. AFL Dyfet Goodnight everyone...need to get on some dry ground :)