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.