America Online
APPLE II DEVELOPMENT FORUM CONFERENCE LOG
Tuesday, October 30, 1990 10:00 p.m. Eastern Time
Topic: Open Topic
Forum Leader: Gary Jacobson (AFA Gary J)
AFA Gary J Ok. Let me start this conference officially....
AFA Gary J Good evening, and welcome to the Apple II Development Forum.
Tonight is
AFA Gary J an open topic, so feel free to bring up any development related
question you'd
AFA Gary J like. Let's don't use protocol just yet, unless things get out
of hand.
ShanoJ Dave, I think I found a bug in NiftyList. :(
Dave Lyons :( What?
ShanoJ Not a big one, though. :) If you type something like ?~s, it'll
give you the
ShanoJ description of the '~' commands, and then execute an 's' command,
rather than
ShanoJ give the description of the ~s command, which I would have
expected...
Dave Lyons Well...it's a feature.
Dave Lyons Yeah, the Help ("?" or "=") only eats one character, except for
the "\" command. The
Dave Lyons parsing for stuff like "~" and ";" and "_" and ">" is inside the
command itself. I suppose I
Dave Lyons should mention that in the docs, though. (Stuff like
"?_NewHandle..." should be really
Dave Lyons insteresting... :) )
AFA Gary J :)
ShanoJ Oh, okay, that's kinda what I thought. :)
ShanoJ BTW Dave, thanks again for the suggestion of saving the value of
$E0C000 and
ShanoJ seeing if ANY of it changes. I stuck that into Twilight and it
works REALLY
ShanoJ well! :)
Dave Lyons (good!)
Dave Lyons BTW, I've got a minimally-working version of "Nifty List NDA"
(needs some more tweaking before
Dave Lyons it's presentable, but the concept definitely works).
ShanoJ Hey, that's pretty awesome! I think I'll probably stick to the
CDA, though...
ShanoJ I find for development stuff I prefer having the separation
between the
ShanoJ application and the debugging utils. Can't wait to see it,
though!!
Dave Lyons Yeah, I'll keep using the CDA most of the time too, but when you
want to play with the toolbox and
Dave Lyons see the results on the screen, an NDA version is cool. Also, you
get cut/copy/paste editing in
Dave Lyons the NDA, so you can scroll around and even have little scripts you
load off disk or whatever (it
Dave Lyons executes as commands whatever text you select before pressing
Enter, just like MPW).
ShanoJ Ya, that sounds really awesome! I wish I had the skill to do
parsing like you
ShanoJ do in NL. Stuff like that is still beyond me. :(
Dave Lyons Which part of the parsing is hard? Doing "expressions" is a
little fun, but mostly it
Dave Lyons goes left-to-right and calls a command subroutine for each
different letter. It's built on top of
Dave Lyons two routines: get-the-next-character and get-the-same-character,
with the convention that
Dave Lyons when you get called you're already "at" the first un-parsed
character (this is just how Applesoft
Dave Lyons works, only it's getting "tokens" which can be characters or whole
reserved words).
ShanoJ Ya, mentally I can comprehend what you're doing, but how to
actually CODE
ShanoJ something like that... Especially expressions like:
ShanoJ _Call1(_Subcall1(_SubCall1a), _Subcall2(_Subcall2a(_Subcall2b)))
WinkieJim Looks simple to me :)
Dave Lyons It's not as bad as it seems--you're really just parsing
_call1(blah1,blah2), so you parse
Dave Lyons "_call1" and look for a "(". Then you call the *same* routine
you're already in to parse the
Dave Lyons first sub-expression; then you check whether you're at a "," or a
")" (otherwise it's an error). If
Dave Lyons you're at a ")" you're done, and if you're at a "," you munch it
and parse another sub-expression, and
Dave Lyons that's about it.
Dave Lyons The trick is to save the right stuff on the stack (or something
equivalent) when you call yourself
Dave Lyons recursively).
Dave Lyons (The other trick is to invent good data structures--then you
"just" have to
Dave Lyons write the code that uses them.)
ShanoJ Ya, I had to write a recursive quicksort in assembly the other
day, and it was
ShanoJ NOT fun.... :(
Dave Lyons Not even after it worked? :)
ShanoJ What makes you think it worked?! :) Actually, it does blow the
pants off of
ShanoJ my old bubble sort routine (right, Scott?! :), so I guess it was
worth it.
ShanoJ Biggest problem was that if and only if the array was already
sorted it would
ShanoJ overflow the stack. Took mbout two days to figure that out... :(
Dave Lyons Is that a stable sort? (That is, do "tied" items stay in their
original order?)
ShanoJ You mean if there's three 3's in a row will they still be in the
same relative
ShanoJ positions after it's done sorting?
Dave Lyons (Jonah, yes--that's what I meant by a stable sort.)
ShanoJ (Hmm, tell you the ruth I don't know. I wouldn't think so,
though.... How do
ShanoJ you test something like that? Uh, probably I could figure it out
if I thought
ShanoJ about it... :)
Dave Lyons (Yeah, you'd generally want to prove it rather than test it--just
wondering.)
Surak TFF Question: I am trying to play a sound from inside a CDEV. I have
the Snd Tools
Surak TFF started up, (after checking to see if they were ALREADY started of
course), and
Surak TFF I go to make my _FFStartSound call, when, right after the
_FFStartSound call,
Surak TFF I get an error $0012.... I can't find this error listed in any
book, anywhere.
Surak TFF And I am using the same procedure for playing a sound which worked
perfectly
Surak TFF in another part of the same program...
Dave Lyons Surak, sounds very strange. $0012 doesn't mean anything to me
offhand. Are you setting the
Dave Lyons Bank register in your CDev? Are you sure you're allocating
direct-page space properly and
Dave Lyons successfully starting up the Sound Tools?
Surak TFF Yes, there was no error on _SoundStartUp, and as far as DP space,
the rest of
Surak TFF the CDev seems to work right :) A strange thing is, if I take
out the error
Surak TFF check after the _FFStartSound call, the sound doesn't play, but
the machine
Surak TFF doesn't hang or crash either - it just doesn't do anything with
the sound at
Surak TFF all.
Surak TFF (So it's probably not that invalid data is in the parameter block,
as far as
Surak TFF I can figure)...
Dave Lyons Ah--does your "error check" consist of calling SysFailMgr with the
returned error code?
Surak TFF Well, basically...
Surak TFF (that will, of course, be changed when the program is finished
:)
Dave Lyons I've got a feeling the $0012 you got was supposed to be a $0812 (I
remember at least one Sound
Dave Lyons Tools bug like that, where it was failing to stick on the tool
number). I belive $0812 means you
Dave Lyons haven't started up the Sound Tools (even if SoundStartUp didn't
return an error, something
Dave Lyons could have gone wrong--like maybe you somehow passed zero for the
direct-page address).
Surak TFF $0812 is Sound Tools Not Started. But how can I start them up, if
SoundStartUp
Surak TFF doesn't do it?
Dave Lyons Check the values that are really getting passed--have it display
the direct-page value
Dave Lyons and see if it's valid! Maybe your NewHandle failed, or maybe
you're not dereferencing the
Dave Lyons handle properly.
Surak TFF Well, I used the Memory Manager to get a $100 byte page-aligned
locked block in
Surak TFF bank 0, dereferenced the handle, and then passed the low word of
the pointer I
Surak TFF got to the tools....
Dave Lyons Sounds right, but one of those steps isn't happening right.
ShanoJ Dan, why not pop into NiftyList after you THINK you've started the
sound tools
ShanoJ and see if they're actually started?
Surak TFF THe problem with that, Jonah, is that it happens so fast I have no
way of tell-
Surak TFF ing when they are started before the system "fails" :(
Surak TFF (I could put in a BRK or something)...
ShanoJ Why not put a brk 00 into the code and THEN pop into NL! :)
WinkieJim <---lives on BRKs :)
ShanoJ BRK's rule, especially with GSBug INIT installed!! :)
WinkieJim <---has a basket full of BRKs next to my desk :)
Nuzz I BRK for animals
ShanoJ Really Mike? I only BRK for bugs.... :)
Nuzz But my bugs are REAL animals to find
WinkieJim I see a bumper sticker taking form here...:)
WinkieJim I BRK for bugs!
ShanoJ Do you think anyone would understand a bumper sticker like that?!
LOL :)
AFA Gary J (Winkie: You'd sure find out who knows anything about 6502's
with a bumper
AFA Gary J sticker like that :)
ShanoJ Dave, are there any plans to create new official scrap types? I
would think a
ShanoJ sound scrap would be particularly suited to the GS...
Dave Lyons Jonah, a Sound scrap sounds cool to me...we should pound out an
exact spec.
Surak TFF (A sound scrap is a good idea.... It'd be quite useful)
Surak TFF Well, the routine I used in the same program to get DP for
Standard File was
Surak TFF copied EXACTLY (cut and paste) for this, and it works for SF....
Very strange..
Dave Lyons Obviously something is different in the environment--cut and paste
doesn't guarantee it's
Dave Lyons going to work in a different program. Do you have the B and D
registers set up when you use this
Dave Lyons re-used code?
WinkieJim Are you checking for an error from the NewHandle call?
Surak TFF Well, it is in the SAME program.... :) And the B/D registers
are set up
Surak TFF by the CDEV before the CDEV jumps to the various routines it
has...
Surak TFF (and yes, I am checking for a NewHandle error :)
WinkieJim Does your CDev set it's own Direct Page?
Surak TFF Yes, it does, Jim...
Surak TFF It is probably just a simple mistake I made somewhere (it happens
often enough,
Surak TFF anyway), it was just the $0012 error that threw me...
WinkieJim Hmmm, I've a NDA that I've worked on and I found that if I set the
direct
WinkieJim page that some tools calls behaved wierdly unless I restore the
direct page
WinkieJim that was active when I got control ...
WinkieJim might want to to try restoring the original DP before calling
tools...
Surak TFF Well, I haven't had any problems with the direct page before.... I
could check
Surak TFF that out, but first I could see if the sound tools are actually
getting
Surak TFF started....
Surak TFF (though I won't really know what to do if they're not :( )
Surak TFF (except check for typos ;)
Dave Lyons Nah, no tools require a special D value when you call them--and
they don't change it on you
Dave Lyons either. But you do need to put B and D back before you return
control to the system from your CDev.
Surak TFF Oh, yes, the CDev does do that...
Dave Lyons Surak, are you using $C015 for the attributes of your direct-page
handle?
ShanoJ Can you open a window from a CDEV with a NewWindow2 call? Probably
not because
ShanoJ it's an NDA, right?
Surak TFF Yes, $C015 attributes.....
Dave Lyons You can, but it has to stay modal--there's currently no way for an
NDA to have more than
Dave Lyons one modeless window.
ShanoJ Hmm.... That has some interesting possibilities... :)
AFA Parik would fakemodaldialog work?
Dave Lyons Yes, you should be able to use fakeModalDialog fine, as long as
you *don't* let it update
Dave Lyons background windows or open NDAs from within the modal window.
Dave Lyons (The restriction on updating is because it would call Application
content-draw routines without
Dave Lyons setting the ResourceApp correctly.)
ShanoJ Okay, color me stupid but what's fakeModalDialog?
Surak TFF Good question, Jonah... Sounds familiar but I can't place it...
:)
Dave Lyons Do you want that, Matt?
Matt DTS FakeModalDialog is a tool provided in the latest round of Sample
Code from DTS.
Matt DTS It allows you to implement modal dialog boxes without using the
Dialog Manager. This means you
Matt DTS can use all the facilities of System 5.0, including extended
controls and windows.
ShanoJ Ah, I KNEW I'd seen it somewhere! Thanks for coloring me stupid,
Matt! :)
Matt DTS You create the window, tell FMD to treat it as a Modal Dialog and
it does the rest.
Matt DTS (It can also deal with "movable modal dialogs", a new interface
component.)
Matt DTS Partners, Associates and KFest attendees got a manual on the
tools; it's not otherwise available at
Matt DTS this point. If you REALLY DESPERATELY need it, send me some US
Mail with your address and appropriate
Matt DTS groveling, and I'll forward it to the Take Pity committee.
Matt DTS (GA)
WinkieJim BRIBE?
WinkieJim :)
ShanoJ Okay, thanks Matt!!
ShanoJ How does Glen Bredon do those's Text/SHR 'screens' for ProSEL?
AFA Parik overscan
ShanoJ No, I mean how does he shadow the text screen to the SHR screen?
Guess he
ShanoJ 'just' loads the characters from the text screen and draws them
back to the SHR
ShanoJ screen? Sure s QUICK.
AFA Parik or his COUT prints to both shr & text if shr active (otherwise
only text)
AFA Gary J Probably that, Parik.
A2GS Personally, I think he uses the heimlich menuevar.
AFA Parik anyone know what "My Word" is? Heard its a word-processor by (!)
gary little
Matt DTS It's a WP based on TextEdit that reads "Teach", AppleWorks WP and
text files. It's included on the
Matt DTS latest Developer CD ("Night of the Living Disc") so we could ship
some online docs for things like
Matt DTS Universal Access with styles in them.
AFA Parik is it on the Prodos partition?
Matt DTS Yes, it's in the "Utilites" folder if I recall.
Matt DTS (the icon points to it so you can use DIcEd to find out from the
ICONS folder)
ShanoJ (Where'd the name "Teach" come from?)
ShanoJ Any word on the release of 5.0.3? Is that why Platinum Paint is no
longer being
ShanoJ distributed?
Matt DTS 5.0.3 is Golden Master and is available to Partners and Associates
on AppleLink right now.
Matt DTS It will get to the general public in a few weeks, after developers
have a chance to make sure it works
Matt DTS with their software before they get flooded with phone calls.
AFA Parik is the CD-version golden-master? (hi joey)
A2GS Correct me if I'm wrong...was Hypercard GS released on the Dev.
CD?
AFA JoeyS (woo)
ShanoJ "Golden Master"?
WinkieJim Shano, Golden Master is one step before the public gets it.
Matt DTS No, the CD version is *NOT* Golden Master. For your usage
purposes, the only thing that changed is
Matt DTS the LaserWriter driver. However, as always, you may not ship
anything other than what Software
Matt DTS Licensing sends you.
ShanoJ (Thanks, Jim)
WinkieJim (Unless it goes backwards :) :)
AFA Parik ok. great! no lw here :)
Nuzz I licensed 5.0.2, does that mean that I can ship 5.0.3 or do I
need another one
Nuzz for that
Matt DTS Your license covers 5.0.x, Mike, but you have to wait for the
disks from Licensing.
Matt DTS Further information is on AppleLink in the AIIDTS folder, along
with the 5.0.3 package itself.
Matt DTS (further licensing information)
A2GS BTW...I'm not sure if this falls within Non-Dis., but Matt, have
you started
A2GS work on 6.0?
Matt DTS We haven't announced any 6.0 project, A2.
A2GS ok, thanx
AFA JoeyS So what's after 5.0.3, then?? :)
AFA JoeyS (preparing to dodge pies)
WinkieJim 5.0.4
WinkieJim :)
AFA Parik a big vacation I imagine
AFA JoeyS Oh, thank you... :-)
Nuzz Why did I expect that answer :)
AFA Gary J :)
AFA JoeyS <tiddy-boom>
WinkieJim or m aybe 5.0.3.1
AFL Scott I got a question... why are control def procs so fast! I've got
beta testers
AFL Scott complaining of scrollbar ping pong!:)
AFL Scott I had to put a delay in just to slow it down...:)
Dave Lyons Is your delay based on the tick count, Scott?
AFL Scott Yessir!:)
Dave Lyons Good! Yeah, Mac people had the same problem. Scroll bars that
worked just great on a Mac Plus
Dave Lyons sometimes went a little too fast on a IIfx. :) Tognazini claims
in an Apple Direct article that
Dave Lyons Inside Mac told folks from the beginning to max their scrolling
speed by the tick count, but nobody
Dave Lyons I know has found evidence of this.... :)
AFL Scott LOL!:) That's a good one!:) Seriously, though....
AFL Scott Hey, BTW, the access to control actions procedures is really clean
using Windows instead of Dialogs..
AFL Scott It was a problem that I never in my life anticipated. People on
unaccelerated GS'
AFL Scott were complaining... I knew I did it right then. I truly love the
new way to do it. It's nicer
AFL Scott to operate using part codes instead of messages.
A2GS How does one remove a device (ex. 5.25 drive) from the active
device list, I
A2GS would assume it involves deavtivating the appropriate DIB,
right?
AFA JoeyS Under P8 or GS/OS, A2GS?
Dave Lyons Nope, you can never remove a device from the device list.
Dave Lyons (Except by rebooting, of course.)
Matt DTS You can add new ones, but you can't remove ones that are there
without rebooting the system.
Dave Lyons (These answers are for GS/OS, by the way.)
A2GS under GS/OS...
A2GS You can add a DIB, but not remove it?
Matt DTS Yes.
Dave Lyons A2GS, Yes. It makes sense, too--what if a program got the device
number from somewhere and
Dave Lyons decided to do some operations with it later--it wouldn't be good
if some other device was
Dave Lyons there then.
A2GS What about making a Driver Shutdown call?
Matt DTS 1) You can't make a driver shutdown call.
Matt DTS 2) That still doesn't stop the problem of other people trying to
use the device.
AFL Scott I have another question... What is the apple preferred way to
handle a preference selection...
AFL Scott Currently, I'm just opening up a "Modal" window and getting the
selections, then writing them to disk.
AFL Scott Creation is another story. If no file is found, I ask the user if
creation is desired, if not, I just
AFL Scott use defaults and don't tell them... is that ok?
Matt DTS That's fine, but some preferences are best represented by
"checked' menu items.
Matt DTS As for creation, you don't have to ask permission to create a
preferences file. Just don't complain
Matt DTS if there's an error. (And be sure to get an auxtype from DTS
before shipping.)
AFA Gary J :)
AFL Scott OK, Matt, will do! Where is the _proper_ place to put a
preference file? In the system folder as on
AFL Scott Macs?
Dave Lyons (BTW, I think you *should* warn the user if you're unable to save
their non-default preferences.)
Dave Lyons 9/blahblah.config is the best place. There's
Dave Lyons even a technote that says so.
Matt DTS No, "@:blahblah" is the best place if you're an application.
(Shame, shame, Dave. You even wrote
Matt DTS that note.)(
AFL Scott Ok... Thanks!:)
AFA Gary J Which note is that?
AFA Gary J (Do you know off hand?)
Matt DTS (GS/OS #11, "Using the @ prefix." I think.)
AFA Gary J (Ah, ok. looking)
Dave Lyons (That's what I meant. Sorry, I hurt my elbow.)
AFA JoeyS :)
AFL Scott Nice article on printer drivers, Matt!:)
Matt DTS Thank you. It was written on no sleep, but they wouldn't let me
print that.
Matt DTS (I love being a martyr.)
AFA Gary J :)
Dave Lyons Matt, aren't Martyrs supposed to die?
Paladin13 I got a question
Paladin13 if you use a loop with Gettick as a time delay will that work with
accelerator
Paladin13 boards too
Dave Lyons Yes. There are always 60 ticks per second, no matter what
accelerators are around.
Matt DTS Only if you base your loop on the tick count. :)
Dave Lyons (Or maybe it's 50 in Europe, but it still doesn't depend on the
system speed.)
Paladin13 Great thats how I wrote all my delay stuff
A2GS try basing your ticks on Scan Line interrupts :)
Paladin13 I was hoping the accelerators wouldn't throw it off :)
AFA Gary J Find someone with a Transwarp to beta test for you.
Paladin13 Why A2GS?
A2GS Should speed things up immensly :)
Paladin13 Actually I was thinking of purchasing it I know someone who is
dumping his for
Paladin13 $200
A2GS only kidding...stick with what works...60 ticks per sec.