America Online APPLE II DEVELOPMENT FORUM CONFERENCE LOG Tuesday, January 22, 1991 10:00 p.m. Eastern Time Topic: Programming in BASIC (and mostly other stuff) Forum Leader: Dave Sugar (AFL Dyfet) Tenore I have a question about AC/BASIC by absoft, does that qualify? AFL Dyfet Yes, I guess that qualifies just fine, Tenore :)....What is your question? Tenore I have a Prodos 16 version, I want to convert it for GSOS 5.0 Tenore I have the conversion program but It sayes it's already patched but it wont Tenore work. any idea? AFL Dyfet I have not personally worked with AC/BASIC, but I do recall that the older AFL Dyfet version had to be patched just to run under GS/OS. I do not know if the AFL Dyfet patched/updated version will run on 5.0 or not, though. Perhaps somebody that AFL Dyfet will be on later can answer that for you, or you can leave a message in the AFL Dyfet message base... AFA Gary J E-mail Airship. He lives by AC/BASIC. He may show up later. Tenore I have talked to him he gave me the patch program Tenore Anyone have any good refrences for a IIGS basic compiler besides AC/BASIC/ AFL Dyfet Well, Complete software is intending to re-release TML Basic (as Complete AFL Dyfet Basic) at some point in the future... AFL Dyfet There is also Micol Advanced Basic for the IIgs.... AFL Dyfet Micol and AC/BASIC both presume their own way of handling graphics/the desktop, AFL Dyfet though Micol does allow you to access the IIgs native tools more easily.... Tenore Anyone here use Micol? AFL Dyfet Do we have any other questions on Basic for tonight then? ShanoJ I've got a non BASIC question, when we're ready for them... Tenore Are we talking about Applesoft basic or just basic in general? AFL Dyfet Basic in general, including the A word :) AFA Gary J :) Tenore Well I'll hold my questions till Airship gets here, if he does. AFL Dyfet Okay Tenore....anyone else?? AFL Dyfet What was your question Jonah?? ShanoJ Okay, here's my question, mainly for DaveL: ShanoJ In Twilight (a CDEV) I want to call _DrawMenuBar. However, whenever I my ShanoJ code gets control, IT is the a) active resource application and b) the active ShanoJ resource file. This means that if the host application's menu bar used ShanoJ resource ID's 1-5 for it's menu titles, Twilight's PString's 1-5 are used to ShanoJ draw the title of the menu bar!! If I do something like a _CloseResourceFile ShanoJ on Twilight's resource fork, I get a Resource Manager $1E06 (resNotFound) ShanoJ error. Any ideas what I should do here?! Surak TFF CDev's can't close their own resource files, can they? Surak TFF (legally, I mean) ShanoJ Sure, if they open them up again.... AFL Dyfet GA Dave...:) Dave Lyons Good point. There's no way to determine what the "application's" resource app is, Dave Lyons but here's a hack that ought to work: Dave Lyons When you start up the Resource Manager, don't do it with your NDA's memory ID. Allocate a different Dave Lyons one with GetNewID($5000) and start up the resource manager with that, instead. ShanoJ Thing is, I DON'T start it up--the Control Panel does... Dave Lyons This way the Desk Manager will be unable to switch Resource Apps when it gives control to your Dave Lyons NDA, and if you pray real hard maybe it will always be the application! :-) Dave Lyons Of course, this means you have to use Get/Set...SetCurResourceApp around uses of your Dave Lyons own resource fork. Sound good? Dave Lyons Oh, you're a CDEV... Dave Lyons How fun. Dave Lyons Hmmm... AFA Gary J :) Surak TFF (Aren't CDev's grand? :) Dave Lyons Well, that's more interesting, isn't it? Foreigner1 :> Dave Lyons Actually, CDevs *are* pretty slick (very modular). Surak TFF LOL... Not quite what I meant... :) Dave Lyons So far, though, nothing hits me on how you can make a DrawMenuBar work right.... ShanoJ Ya.... I had a whole progression of calls worked out (GetNameGS, GetUserID,...) ShanoJ but it didn't work quite right... There's no way to assiciate a UserID with ShanoJ it's resource file ID's (if you're looking for things to add to the toolbox, ShanoJ that might be an awesome one... :) Dave Lyons What do you want, exactly? You can already SetCurResourceApp to a user ID & use Dave Lyons GetCurResource file.... (True, that doesn't necessarily give you the whole search path.) Dave Lyons In the case of window update routines, I hope to have the system take care of resource app Dave Lyons switching so that DAs can let app windows update in the background if they want (behind modal NDA Dave Lyons windows). Dave Lyons I will investigate whether something similar can be done (in the system) for menu bars...but in Dave Lyons general there's not a simple answer. Dave Lyons (ga) ShanoJ So there's no easy way to find out what the 'next' file in the search path is? ShanoJ Grumble, grumble, complain.... :( Dave Lyons Mmmm...I think the only way is to examine the resource map, at the moment. Dave Lyons (That is, do a GetMapHandle & look at the record.) Dave Lyons Would it be useful to be able to walk the resource search path? ShanoJ Ya, I think that would solve a LOT of my problems... I'm looking at the ref ShanoJ right now... Gimme a sec and I might figure it out all by meselfishness... :) ShanoJ Let Foreigner ask his ? and we can get back to me in a bit if I'm stuck... :) Dave Lyons GetMapHandle only gives you the *current* resource file's map; doesn't Dave Lyons help you find other folks' search paths. done AFL Dyfet Okay, go ahead Foreigner... Foreigner1 Alright, I feel like an idiot for questions like this, BUT... Foreigner1 Using NewControl2, (in OrcaC1.1) I told it I wanted a pointer to an icon Foreigner1 but, when I give it the address of the icon, it responds with a type conflict. Foreigner1 What sort of type casting do I need to do?? AFL Dyfet This sounds very familiar :)...GA Dave... Dave Lyons You need to look at how NewControl2 is declared in the interface files (probably "Control.h"?) and Dave Lyons model it after that. If it's the parameter I'm thinking of, it's of type "Ref" (at least in the Dave Lyons Pascal intefaces--I believe they're very similar). Does that help? Foreigner1 yep.... Going through the dispatcher when I looked at it.. Foreigner1 I don't think it is Ref Foreigner1 Any clues Dave? AFL Dyfet What are you assigning it to? You can always 'cheat' and re-cast it into AFL Dyfet a void pointer :) Dave Lyons I'd have to see the declaration--I don't think I've got ORCA/C 1.1.... Foreigner1 I'm typing something like this: NewControl2(windowPtr, 0, &item_Template); Foreigner1 (Rez is in the mail, that's why I'm not using it yet :) ) Coach101 Are we talking about NewControl2's type? Dave Lyons And then assigning that to a variable is giving you the type conflict? (What Coach said.) Foreigner1 No, the type conflict is at the &item_Template. (sorry bout that) AFL Dyfet What do you have item_Template typed as? Dave Lyons And how is NewControl2 declared in Control.h? JWankerl There should be no conflict there, the calls aren't prototyped! Dave Lyons Oh! So how is item_Template declared? Foreigner1 extern pascal CtlRecHndl NewControl2 () (inline(0x3110, dispatcher); Coach101 Wait one..... Coach101 If there is no prototyping why how can there be a Coach101 complaint on the NecCXontrol2 function invocation line Coach101 at the &Itemrec parameter? Foreigner1 Item_template is a standard item template (IconButtonTemplate) AFL Dyfet If there is no prototyping then maranda prototype rules take effect in an ANSI AFL Dyfet compiler. Generally, everything is presumed to be of type int until otherwise AFL Dyfet proven.... Foreigner1 (didn't know that!) Coach101 No..... Otherwise you could not compile old Foreigner1 I tend to get two errors saying the same. I think one is what I am assigning Foreigner1 it to, the other must be in that statement... Coach101 C code with an ANS compiler!!! Dave Lyons (So what? "&" still makes a pointer, which should be fine.) Again, how is item_template declared? AFL Dyfet If the function is declaired first, then that declaration is used to presume AFL Dyfet the prototype, Coach, but in an ANSI standard compiler, by default, if the Dave Lyons WHAT'S THE OTHER ERROR? It could be the "real" one. Foreigner1 IconButtonTemplate item_template AFL Dyfet function is used before called, its presumed at that point to be passing ints, AFL Dyfet and when declaired later, will have a type mismatch with the maranda prototype. Foreigner1 They are the same-> type conflicts... Foreigner1 Orca C tends to grumble at all type conversions... JWankerl Just curious, what is type of the variable you are assigning the result of JWankerl NewControl2 to? Coach101 The function has a type of INT, but are you sure about the type of the arguments/parameters? Foreigner1 That is one of the type conflicts, (in retrospect) Foreigner1 The more I think about it, I think I may be able to fix it. I think I'll go Foreigner1 try, and then come back on if I can't. Sound good? AFL Dyfet Orca C really needs warning level options, so you can stand back and ignore AFL Dyfet some of the innocious type casting errors when your initially writing something AFL Dyfet until you are ready to clean-up and finalize the code. At least that's the way AFL Dyfet I tend to work :). Foreigner1 Thanks all!! (again...) (ga!!)) JWankerl What? You mean your code doesn't work on the first try? ;-) AFA Gary J :) Foreigner1 (Yeah... RIGHT!) Foreigner1 :> AFL Dyfet Type casting control for pointers is more critical in model'd systems, where AFL Dyfet they can very in size in the same program :)...But then maybe I should just be AFL Dyfet cast back into the void :) AFL Dyfet Go ahead Joe.... JWankerl With the LGetPathname2 call... what is the fileNum parameter? AFL Dyfet GA MAtt Matt DTS To my knowledge, the file number is for some kind of Loader support for multiple files under the same Matt DTS user ID, with the file number referring to the order in which they were InitialLoaded. Matt DTS This doesn't happen very often, and I have no idea whether it works or not. Usually "1" is the only Matt DTS fileNum you'll ever need. GA. JWankerl So right now it really doesn't mean much, right? Matt DTS Already answered. GA> JWankerl Thanx. Dave Lyons (Wasn't watching. Yeah, use 1.) AFA Gary J :) SPW hello. What is the topic tonight? AFL Dyfet Basic programming, actually :) SPW :) oh, can I ask a question off the subject? AFL Dyfet That's okay SPW :) SPW ok- what I need to know is if anyone here knows if ProTERM Special Emulation SPW is Copyrighted. Since it is an extension of Datamedia 1500 it doesn't seem SPW ;like it should be... AFL Dyfet Definitely off subject, SPW :)...I do not believe it is....I recently wrote a AFL Dyfet termcap for it on my UNIX box :) SPW I need to know if I should have legal permission before releasing a ProTERM SPW compatible term program Dave Lyons (*Can* you copyright a protocol??) SPW good question.... SPW is ANSI copyrighted? AFL Dyfet Okay, do we have any more questions for tonight? AFA Gary J Dave, I thought of a good module for Nifty List. The TaskMask CDA gave me the AFA Gary J idea. There ought to be a way to have Nifty list tell you bit meanings, for AFA Gary J things like event masks, and that sort of thing. JWankerl Ya know, with a little work, I could modify my Templates module to do that. Dave Lyons Go for it, Joe! (I was just playing with it, finally. Cool beans!) ShanoJ Dave: put a command into NiftyList to turn the SHR screen on, but leave ShanoJ NiftyList active. That way if you do something like _RefreshDesktop(0) you can ShanoJ actually see it working. (It took me forever to find out that _HideMenuBar ShanoJ resets all of the SCB's, but that would have made it EASY!) Matt DTS Jonah: It already has that in 3.0. Try pressing Ctrl-T at the command line. Dave Lyons ShanoJ, you can always hit Ctrl-T right before you hit Return to execute your command, then Dave Lyons hit Ctrl-T again (that's what I usually do). ShanoJ Duhhh... It probably says that in the docs, huh? (ducking from Matt's swing. :) ShanoJ Okay, how 'bout an extension to Goodies that shows you the handles allocated by ShanoJ \getmem. I often forget to write them down and then loose them... :( Dave Lyons ShanoJ, if you can remember the auxiliary ID it uses, you can get them with 5x00i...just a sec. Dave Lyons 5500. Although you may get a few other things, too-- Dave Lyons like Joe's Templates file. :) The \getmem doesn't attempt to keep a list of them right now, and Dave Lyons it would be a little weird if it did--what if you passed one to a tool and the tool disposed of it? Dave Lyons \getmem would have no way of knowing (at least once the handle got re-allocated), so it could kill it Dave Lyons by accident if it tried to clean up. ShanoJ Well, a \findmem could just use the MemID it's using to look for all handles ShanoJ with that ID... Then again, it'd probably be easier for me to just remember to ShanoJ write 'em down, huh? :) Dave Lyons (I *do* need some sort of variables, though, to let you keep track of misc. info like that.) Dave Lyons (I don't like having to write things down. Distracting & slow.) AFA Gary J Same here JWankerl Hey Dave, any idea when we'll be able to pull up a NL command history? ;-) Dave Lyons Like in 3.1? Oh, I haven't uploaded that have I? Shame on me.... AFA Gary J Yes, shame on you :) JWankerl Thanks for teasing me... :-) AFA Gary J :) Dave Lyons Problem was right after I finished that, I got inspired to make the text output go fast (a couple Dave Lyons people complained) & now it _really_ flies. On a TransWarp machine you really can't tell what's Dave Lyons scrolling by on a ;h dump.... Dave Lyons (I wrote some simple blast-to-the-text-screen routines & use those instead of the Text Tools Dave Lyons now!) JWankerl So... my first question still stands (sort of)... when will I be able to get it AFA Gary J Neato. Is 3.1 firm? Dave Lyons Firm? Sure, but I'm about ready to give y'all 3.2 instead. Has been stable for a few days now-- Dave Lyons hopefully no embarassing bugs. AFA Gary J Sure, I'll take 3.2 instead :) Dave Lyons Hmmm...how 'bout tomorrow night? Will upload it then.... JWankerl Sounds good to me. AFA Gary J Great, Dave :) Matt DTS 3.2 is really neat, actually, even if Dave did write it. AFA Gary J :D AFA Gary J I can tell Matt appreciates it, as he answers Nifty List questions faster than AFA Gary J Dave does :) ShanoJ What'd happen if I went into NL now and did a Ctl-T? ShanoJ Nothing good, I assume? Dave Lyons I think that's in 3.0, ShanoJ...doesn't it work? Matt DTS You'd see the SHR screen, which if you're using the GS version of AOL is probably the sign-on screen. Dave Lyons In previous versions, it would have put a "^T" on your command line (which doesn't help a lot). JWankerl Yep, ya see the main open-apple-D screen. AFA Gary J Yep ShanoJ Oh ya, I'm using the 8bit version (big difference...:) AFA Gary J Yeah, that would make a difference. AFA Gary J I finally got the new Device Driver Reference (yesterday). Good stuff. SPW anyone know for sure if CirTech is going to release it's MAC emulator? Matt DTS About CirTech: Matt DTS After getting to within two weeks of their scheduled ship date when no one in the world had Matt DTS even seen evaluation, pre-pre-release units, and they still said they'd ship in two weeks... Matt DTS ...they announced the product was cancelled because Apple didn't market the Apple II enough. Matt DTS (It just seems awfully convenient to me.) SPW &%^&$#^#!!!! That is why Apple ][ users would buy it!! ShanoJ Anyone know about a Nintendo emulator for the GS? Now THAT would boost sales!:) AFL Dyfet ::choke:: AFA Gary J I'd much prefer a IIGS enhancer. AFA Gary J (Speed/graphics) ShanoJ Ya, there's a thought...a IIgs emulator for the GS! Just what we need! :) AFA Gary J Otherwise, I'm very happy with the IIGS the way it is. ShanoJ (BTW, I know you didn't was emulator...I'm just goofing off again... :) AFA Gary J Yes, exactly, Jonah :) AFL Dyfet I'm holding out for a virtual reality interface and cyberspace :) AFA Gary J Is there a way to set the modem port to non-buffered without accessing the AFA Gary J firmware? (via device drivers). I want to be able to wait for a character AFA Gary J from the serial port, rather than having it there for me already. Matt DTS No: buffering is handled by the firmware. AFA Gary J That's what I thought. So, it would be better for me to use firmware rather AFA Gary J than Devices, for my application, I guess. AFA Gary J (If I have to use firmware for one part, I might as well use it for the rest) AFL Dyfet You can install your own buffer handler through the firmware.... SPW ohhhh- I just thought of something I need help with..... SPW If I need to write a CDA that 'intercepts' characters coming out and in a seral SPW port what locations do I neeed to check (in Assembly) SPW ?? Matt DTS You have a rather simplistic idea of how the serial firmware works. :) AFL Dyfet You can only really reliably intercept activity with an interrupt handler, AFL Dyfet otherwise it might be gone before you get there....and reading input ports when AFL Dyfet no characters are yet processed can be bad for the UART/incomming data :) Matt DTS You need to read the Serial I/O chapter in the Firmware Reference and the Technical Notes. ShanoJ READ YOUR TECH NOTES!!! :) AFA Gary J Yes. (Firware Reference describes the operation rather well, IMO) AFA Gary J Firware? sheesh. I need to learn how to type :) SPW what if the program running with the CDA puts in its own interrupt handlers? AFL Dyfet The firmware does allow one to insert their own handler for the IIgs serial AFL Dyfet ports.... AFL Dyfet This sounds like what you wish to do, as your handler will be called when AFL Dyfet incomming data appears, or when ready to send... SPW hmm...maybe I could read the address of the current interrupt handler and SPW change it to my handler which jumps to the original one when finished..? AFL Dyfet But again, you should read the Firmware reference manual :) SPW yea yea- I know- the reference manuals :) SPW they come in handy AFA Gary J they go out handy too :) ShanoJ I just got new TB Refs! It's really nice to have them all in ONE piece! :) AFA Gary J You could have just hole punched you're old set, Jonah :) SPW I just told Addison Wesley mine were falling apart and they sent me new ones SPW :) ShanoJ Yuppers, me too! Didn't even want the old ones back.... AFA Gary J AW is good about that.