mirror of
https://github.com/opsxcq/mirror-textfiles.com.git
synced 2025-08-07 00:26:34 +02:00
451 lines
21 KiB
Plaintext
451 lines
21 KiB
Plaintext
|
|
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.
|
|
|