America Online APPLE II DEVELOPMENT FORUM CONFERENCE LOG Tuesday, December 22, 1992 10:00 p.m. Eastern Time Topic: Developer Wishes & General Questions Forum Leader: Gary Jacobson (AFL GaryJ) AFL GaryJ Welcome to the Apple II Development Forum! AFL GaryJ Tonight, I thought we'd do something different, and kick back and AFL GaryJ talk about what we'd like to see in the way of development tools and AFL GaryJ software for Apple II programming. AFL GaryJ ...things that we don't have yet, or things that we'd like to see improved, whether it AFL GaryJ is realistic or not :) AFL GaryJ Jim's folder fit right in with the topic of tonight's chat... AFL GaryJ Jim, what kinds of things did you have in mind for menubar arbitration? How AFL GaryJ would you like to handle such a thing? Are you wanting some sort of AFL GaryJ protocol, some way to know if someone is already using space, so as AFL GaryJ not to mess things up on the menu bar? AFC DYAJim My only idea was to use SendRequest to notify all message procedures that AFL Marty I take it there's no way to tell is another program is using the space? AFC DYAJim when the menu bar is redrawn. Tell them how much space is available. AFC DYAJim then one by one they can make a call back to allocate part of it for their AFC DYAJim use. that type of thing. AFL Marty Couldn't you make provision to allow the user to place the icon in the AFL Marty menubar? AFC DYAJim in what way? AFL Marty Perhaps something like option-click to drag to a new position. Developer1 Chronos II does that quite well. Developer1 but Chronos II doesn't actualy remember the position after you quit or shutdown AFL Marty (That's what programmers are for, Evan.) AFC DYAJim yeah, not that bad an idea, but you might have to do it a lot :) AFC DYAJim The only troulble I could think is if you didn't like the order the AFC DYAJim whitespace was assigned. And you could easily run out and squeeze some display AFC DYAJim s out of some programs.. but it's better than overdrawing everything like AFC DYAJim now. AFC DYAJim I think that this probably could be implemented without Apple backing if AFC DYAJim everyone cooperated, but it would be much easier with system support. AFC DYAJim You don't notice inits,etc overwriting each other on the Mac (at least I AFC DYAJim haven't) AFL GaryJ Yeah, if enough noise is made about the problem, the programmers who AFL GaryJ write such things could police their own stuff. AFL GaryJ Generally, when things get messy, it's time to take something off :) AFL GaryJ (the way it is now) AFC DYAJim Well, maybe it's just a pipe dream. If you like it, post :-) Maybe someone AFC DYAJim will notice. Shiraz Ak I've been trying to install the modem manager toolset by Jawaid (it's a user toolset). I am using the Shiraz Ak _InitialLoad call to load it from disk, however Shiraz Ak I continue to receive GS/OS error 40 (ba paht syntax)... Shiraz Ak I've checked my pathname (it has a leading string lenght byte, not word, but I've tried that) Matt DTS What's the pathname you're passing? LL AndyW What is the parameter list you're using too? Shiraz Ak I've tried "/vulcan/system/tools/tool.mm" and "1/tool.mm" Shiraz Ak I don't have any manuals with me right now, so I think I may be passing the parameters to the stack Shiraz Ak incorrectly. LL AndyW They're to the stack, but what are you passing, and what order? Shiraz Ak here's the order: PushWord #$0, PushWord #$0, PushLong #$0, PushWord #$0, PushWord UserID, Shiraz Ak PushLong #string, PushWord MemoryFlag, _InitialLoad - and then I get an error of $0040 LL AndyW Should be PEA string|-16, PEA string LL AndyW BTW, what assembler? AFC DYAJim Andy-Pushlong should do that for you Shiraz Ak I'm using Merlin 16+ AFL GaryJ yes Shiraz Ak Could somone look up the call to check that I'm pushing everything correctly LL AndyW You have the right order.. AFL GaryJ And mystring str "1/tool.mm", right? Shiraz Ak yes. AFC DYAJim General chat and "Developer product dreams/wishes" Shiraz Ak What about the UserID? Does it matter what value that is... right now I've tried making one up, using Shiraz Ak my programID and setting it to 0 and 1.... no luck any which way... AFC DYAJim doesn't the userID have to be a real id? LL AndyW You can use $1000, and an ID will be made for you.. LL AndyW It will be returned on the stack.. AFC DYAJim oh yeah, Andy's right :-) but the new ID will be in the $1xxx range. Shiraz Ak OK, let me try that now. LL AndyW Which is proper for applications Shiraz Ak nope, same error $0040... AFL GaryJ But, I'm not sure why that would produce a $0040 error. LL AndyW You shouldn't be getting a bad pathname syntax error though.. AFL GaryJ (yeah, didn't work) AFL GaryJ Right LL AndyW Check to see if the pathname is being created properly. LL AndyW It has to be a pString.. Shiraz Ak I'm defining the string as str "pathname" which should make it a pstring... FredW GS Could someone explain what a Pascal String is? LL AndyW A string of chars with a leading length byte FredW GS That's all...no ther special formatting? LL AndyW a GSOS string is a string of chars with a leading length WORD LL AndyW No other formatting.. FredW GS That's easy enough. LL AndyW It should, but you should check it to make sure.. Try replacing the /'s with : Shiraz Ak Ok, hold on a sec, I just tried it again and it appears to work... I just replaced the pathname with AFL GaryJ Do you have GSBug, Shiraz? Shiraz Ak "tool.mm" and left out the "1/".. I'll run it through my debugger (the Apple one) AFC DYAJim 1/ will get the tool from the same directory as the application Matt DTS If you're using Merlin and if you're using a non-ProDOS volume, make sure the high bits are clear Matt DTS in the string or you'll confuse the heck out of HFS and AppleShare. (and use 9 instead of 1). Shiraz Ak It's a GS/OS volume, but it appears as though it it is getting a file not found error now. LL AndyW To do that, you'll need to use 's instead of "s... AFC DYAJim Yes, Good point Matt. Shiraz - try AFC DYAJim str '9/tool.mm' Shiraz Ak ok, let me try it. LL AndyW str '9:tool.mm' AFL GaryJ Use the apostrophy instead of the quote Matt DTS (If it wasn't a "GS/OS" volume you couldn't use it under GS/OS. That doesn't say what file system it Matt DTS is. AFL GaryJ Probably means ProDOS volume? Shiraz Ak no, It still is giving me a file not found.. yeah it is a prodos volume.. LL AndyW Maybe you should do a GetPrefixGS call and find out what it is... AFC DYAJim (or set a brk, enter GSBug, then pop into the Exerciser CDA and GetPrefix) AFL GaryJ Good idea, Jim Shiraz Ak well, let me go ahead and mess around with the prefix.. and I'll check in later.. thanks Shiraz Ak ga LL AndyW (me, I'd use InitialLoad2).. Shiraz Ak How is InitialLoad2 set up AFC DYAJim (niftylist can tell you the parameters (basically) to almost anything :) AFC DYAJim 2011 (01B42C) InitialLoad2(MemID,@in,F,Type):dpsSz,dps,@l,MemID AFC DYAJim 0911 (01B413) InitialLoad(MemID,@path,F):dpsSz,dps,@l,MemID AFC DYAJim with initialload2 you can use all different types of pathnames LL AndyW Same as InitialLoad, but an extra parm of inputType. LL AndyW InputType=0, path is pString, 1=GSOS string Shiraz Ak ok, thankyou. AFL GaryJ Well, at least you got past the bad path name error - should be able to take similar AFL GaryJ steps to figure out the file not found error. AFL GaryJ GSBug could help out a lot in solving this too. AFL GaryJ Ok, Fred... what two wishes for software do you have? FredW GS A toolbox call to display 3200's... FredW GS and a toolbox call or softswitch which will allow you to check on the DOC's FredW GS interrupt status. AFL GaryJ An Apple System software toolbox call for 3200's? AFC DYAJim define "DOC's interrupt status" ? AFL GaryJ Or, third party toolbox? FredW GS Either Gary. FredW GS The DOC generates an interrupt when in swap mode when it switches Barnabas I dunno... you think Apple will ever ship softswitches on 3.5" disks? :) FredW GS between buffers if I understand correctly...I don't have any way to check if FredW GS this interrupt has occured. AFC DYAJim yeah, off the bat, I think you've got to be the DOC interrupt handler AFC DYAJim in order to be notified of this interrupt. AFC DYAJim it only notifies the handler, because it's supposed to be doing it in the AFC DYAJim background.. AFL GaryJ Since you are "wishing", I was just wondering how far you wanted your wish to go :) FredW GS That's what I've found and this is not accessible from anything but FredW GS assembly. AFC DYAJim as for 3200's, there are many different routines and ideas people use for it.. AFC DYAJim most 3200 color routines are customized for certain uses; a generic one would AFC DYAJim probably be possible, but its usefulness would be severely limited FredW GS Even if I coded it in C I can't check on this interrupt. AFC DYAJim why do you need to know if the doc has swapped? FredW GS How so customized?? It would seem to be a 'generic' procedure. to swap palettes AFC DYAJim Well, people swap palettes in different ways.. I can't remember them all FredW GS I want to play sounds LARGER than availiable RAM... to sync HD loads AFC DYAJim offhand, but there are a few different ways to skin the chicken. if you want AFC DYAJim to do things like fades or other special stuff, you probably couldn't use a AFC DYAJim generic routine :) FredW GS I need to know how fast it is playing. AFC DYAJim Well, Fred.. back to sound - yeah, the only way I can think of is to patch FredW GS I meant just throw a picture on the screen. AFC DYAJim out the soundint vector via assembly. And even that could get rather messy. FredW GS It would be easy (I would think) To provide for a toolbox call that simply said FredW GS ("The interrupt has occured since you last looked") Barnabas Ahh, but who is "you"?!? Barnabas What happens if many folks are looking? Matt DTS It's also easy to call BindInt on the IRQ.Sound vector and do it now, Fred. FredW GS Explain Matt. Matt DTS GS/OS Reference, "Interrupt handling". Buy. Read. Produce. AFL GaryJ :) AFL GaryJ Yes, you could write your own routine that would tell you exactly what you're looking for. AFC DYAJim ahh, I never did understand BindInt (never read much on it either :-) Looks AFC DYAJim like I've got my reading work cut out for me during xmas break! FredW GS Have GSOS Reference read...do not understand...can you be more specific? Barnabas GS/OS Ref. Say: Look at Device Driver Ref. No have Device Driver Ref. LL AndyW You'll need the firmware ref for the vector ref too.. Matt DTS Can you ask a specific question other than "How do you do it?" Matt DTS There are vectors in the system for various interrupts. BindInt lets you add a routine that's Matt DTS called when a given interrupt happens. Add your routine to the sound vector, you'll get called when Matt DTS sound interrupts happen. LL AndyW You pass the vector number of the IRQ.Sound vector, and your routine's LL AndyW pointer... AFC DYAJim ahh.. nifty, Matt :-) AFL GaryJ See page 97 of GS/OS reference manual AFL GaryJ Also, page 268 FredW GS Much better...that was relatively painless. AFC DYAJim BTW, while we're wishing... AFC DYAJim I'd like to see a version of Orca/M that is debugged :) AFC DYAJim and fast. AFC DYAJim I'd like to se a version of Orca/M written entirely in itself. AFL GaryJ Jim :) AFL GaryJ (All good wishes :) AFC DYAJim I'd like to see Jawaid finish porting lcc :) AFC DYAJim Or a real MPW IIGS C written FredW GS Nope BindInt doesn't do it either. AFC DYAJim why doesn't BindInt do it? FredW GS You've got to write the whole service routine with it. FredW GS I just want acknowledgement the the interupt has happened. LL AndyW No you don't Fred.. LL AndyW Just set a flag and return.. AFL GaryJ Service routine should be a cinch. AFC DYAJim Fred.. I still don't see why you can't use bindint to bind a routine that AFC DYAJim just sets a flag to TRUE and then returns. FredW GS Will the NORMAL interupt routine execute then? LL AndyW Didn't I say something like that Jim? AFC DYAJim yes, Andy :-) LL AndyW Sure, just make sure you do a CLC prior to returning.. AFC DYAJim The normal soundinthandler will execute after or before you do, right Andy? LL AndyW Hopefully after... FredW GS CLC is an assmebly op code? AFL GaryJ CLC = CLear Carry FredW GS OK...I have a good idea as to how to do this from assembly... FredW GS What I was "wishing" for was a way to not have to code in assembly... FredW GS thus the toolbox call to tell me if the interrupt had occured. AFL GaryJ My wish is for a software development program that would read my mind, and do what I want it to do, AFL GaryJ not what I tell it to do. FredW GS Like GetDOCInt returns a boolean for if the interrupt has occured since last FredW GS call.