364 lines
16 KiB
Plaintext
364 lines
16 KiB
Plaintext
|
America Online
|
||
|
APPLE II DEVELOPMENT FORUM CONFERENCE LOG
|
||
|
Tuesday, August 21, 1990 10:00 p.m. Eastern Time
|
||
|
Topic: BASIC Programming
|
||
|
Forum Leader: Dave Sugar (AFL Dyfet)
|
||
|
|
||
|
AFL Dyfet Okay, good evening and welcome to the Apple II Development Forum.
|
||
|
Tonight our
|
||
|
AFL Dyfet topic centers on programming in Basic, and we will begin
|
||
|
shortly...
|
||
|
AFL Dyfet Okay, we will be using protocol starting now. If you wish to ask
|
||
|
a question,
|
||
|
AFL Dyfet enter a '?' on a line by itself, and if you wish to comment on the
|
||
|
current
|
||
|
AFL Dyfet question being discussed, enter a '!' on a line by itself. The
|
||
|
floor is now
|
||
|
AFL Dyfet open for questions.
|
||
|
AFL Dyfet Go ahead, AFC TAP, you have the floor now.
|
||
|
AFC TAP thanks... simple one...
|
||
|
AFC TAP will th new basic system fix the bug in the chain code??
|
||
|
AFC TAP ga
|
||
|
AFL Dyfet Go ahead Dave...
|
||
|
Dave Lyons What bug? I thought that was fixed in 1.4, but maybe my brain is
|
||
|
toast.
|
||
|
AFC TAP ok, I run 1.3 and it crashes on accasion during chains...
|
||
|
AFA Gary J I think Dave is correct.
|
||
|
Dave Lyons Crashes?? Ouch. Are you talking about a bug that's been
|
||
|
discussed
|
||
|
Dave Lyons in A2-Central a lot, or something else?
|
||
|
AFL Dyfet That old bug was squashed in 1.4 :)...I recall a work-around I had
|
||
|
to do for it
|
||
|
AFL Dyfet in the old days when I was programming UBBS :)...Okay, GA
|
||
|
Rosen...
|
||
|
RosenNeil isnt 1.3 the one that had the bug with BLOAD and BSAVE..if so
|
||
|
trash it!
|
||
|
AFC TAP I heard it was the variable squashing or somethiong like that...
|
||
|
Dave Lyons (Yes, 1.3 had a bad BLOAD. But that's the only thing fixed from
|
||
|
1.3 to 1.4; the CHAIN stuff
|
||
|
Dave Lyons should be okay in 1.3)
|
||
|
AFC TAP thanks...
|
||
|
AFL Dyfet Go ahead Joey
|
||
|
AFA JoeyS Yeah... I've got the patch laying around somewhere, Scott; the BI
|
||
|
that comes w/
|
||
|
AFA JoeyS EBBS has the patch installed... compare it to a normal
|
||
|
BASIC.SYSTEM to see
|
||
|
AFA JoeyS where the changes are... <shrug> :) GA
|
||
|
Dave Lyons (BTW, P8 Technical Note #24 has the revision history for
|
||
|
BASIC.SYSTEM.)
|
||
|
Dave Lyons (done)
|
||
|
AFC TAP thanks (ga)
|
||
|
AFL Dyfet Okay, I believe Tamira has the next question/comment and the floor
|
||
|
now...GA
|
||
|
Tamira This has nothing to do with ADV but since all my friends are here
|
||
|
I thought I would share some good
|
||
|
Tamira news before I go....As of Sept 1st you are looking at the new Head
|
||
|
Innkeeper at the Red Dragon Inn and
|
||
|
Tamira the writer for Lifestyles for the Phantasy Guild.....an kinda
|
||
|
proud of it BTW :D
|
||
|
RosenNeil Congratulations.....
|
||
|
A2GS Congrats Tam!!
|
||
|
AFL Dyfet Great!!
|
||
|
Nuzz good news Tamira, and well deserved
|
||
|
Tamira BLUSH thanx all
|
||
|
Tamira I was just BURSTING with the news and had to tell SOMEONE!!!
|
||
|
AFA Gary J That's good news, Tamira!
|
||
|
Arc42 I've got a big Shrinkit problem, guys
|
||
|
Arc42 I only have one disk drive, and the Shrunk file won't fit on the
|
||
|
disk with
|
||
|
Arc42 the unshrunk file. Am I doomed?
|
||
|
AFA JoeyS (unless you have a RAM disk large enough to hold the shrunk file,
|
||
|
yes, Arc, :(
|
||
|
AFL Dyfet Okay, Joey, go ahead...
|
||
|
AFA JoeyS Okay, here's a fun one: I'd like to write a configuration program
|
||
|
that defines
|
||
|
AFA JoeyS a series of variables in memory. These variables, unfortunately,
|
||
|
AREN'T nice
|
||
|
AFA JoeyS and tidy (i.e. array format) -- just different names all over.
|
||
|
What's the
|
||
|
AFA JoeyS best way to do this?? I was thinking of storing tokenized
|
||
|
assignment strings
|
||
|
AFA JoeyS in a datafile and poking them into the middle of the basic
|
||
|
program, but that
|
||
|
AFA JoeyS seems awfully messy... any other ideas??
|
||
|
AFA JoeyS GA
|
||
|
AFA JoeyS LOL, no one has an answer to my question?
|
||
|
AFL Dyfet You are trying to initialize an array in memory, Joey? You could
|
||
|
try to locate
|
||
|
AFL Dyfet it in memory by the descriptor table and then bload what you need
|
||
|
into it...
|
||
|
AFA JoeyS No, it's got nothing to do with arrays. I've got an arbitrary set
|
||
|
of variable
|
||
|
AFA JoeyS names (OP$, SY$, G0$, etc) that I'd like to assign with a
|
||
|
configure program,
|
||
|
AFA JoeyS but I don't want to have a huge set of OP$=I$:RETURN lines thrown
|
||
|
into the code
|
||
|
AFA JoeyS GA
|
||
|
AFL Dyfet There is also the VAR filetype, which could be used to hold inital
|
||
|
var values.
|
||
|
AFA JoeyS Right; the results of the variable assignments will be going into
|
||
|
a VAR file.
|
||
|
AFL Dyfet Okay...um, what exactly is the problem you are having then...I
|
||
|
think I've
|
||
|
AFL Dyfet missed something in your comments...
|
||
|
AFA JoeyS Okay. I have a set of 50 or so variables that I'd like to assign
|
||
|
in a BAS
|
||
|
AFA JoeyS program. I COULD do something like...
|
||
|
AFA JoeyS <get variable to assign>: ON <varnum> GOSUB 1000,1100,1200,1300,
|
||
|
.......
|
||
|
AFA JoeyS 1000 INPUT "Value of Var #1",G0$:RETURN
|
||
|
AFA JoeyS And do that 50 times, but I'd rather have one general-purpose
|
||
|
subroutine to
|
||
|
AFA JoeyS retrieve the value of the variable... make sense?
|
||
|
AFL Dyfet OH!! I see!! I was looking at the wrong end of the problem!
|
||
|
AFL Dyfet GA AFC TAP...
|
||
|
AFC TAP Joe, have you thought about using an array top build the arbitrary
|
||
|
list
|
||
|
AFC TAP and then pass the array to a small ML poster routine which will
|
||
|
stuff the
|
||
|
AFC TAP values into memeory and then you can save the VARS...
|
||
|
AFC TAP use the varname in the array as a prompt if you want...
|
||
|
AFC TAP ga
|
||
|
AFA JoeyS Ummm... no, I hadn't thought of that... but it'd work... 'cept how
|
||
|
do you
|
||
|
AFA JoeyS retrieve the variable address unless the varname was passed by the
|
||
|
BASIC host?
|
||
|
AFA JoeyS (GA)
|
||
|
AFC TAP you should know ahead of time all of the varnames right?, so pass
|
||
|
a array
|
||
|
AFC TAP with the varnames in a string and the value as a number, the
|
||
|
poster will
|
||
|
AFC TAP just go thru and locate each varname and poke the correct
|
||
|
value...
|
||
|
AFC TAP works for any arbitary list of names...
|
||
|
AFC TAP ga
|
||
|
AFA JoeyS Oh... okay, I see what you're saying... yeah, that'd work, okay...
|
||
|
thanks,
|
||
|
AFA JoeyS Scott :) {S GA}
|
||
|
AFL Dyfet Any further comments?
|
||
|
AFA JoeyS (no one EVER likes my questions, :)
|
||
|
Nuzz but we like YOU
|
||
|
AFA JoeyS Awww... <blush> Thanks, LOL
|
||
|
AFL Dyfet Okay, who has the next question?
|
||
|
AFP TimB What's the word on TML Basic?
|
||
|
Matt DTS The word in the press release was that TML will keep selling it
|
||
|
until Complete has a new version.
|
||
|
AFL Dyfet TML Basic has been aquired by Complete Technology, as has TML
|
||
|
Pascal. They
|
||
|
AFL Dyfet are planning to fix it up a lot before re-releasing it as Complete
|
||
|
Basic.
|
||
|
AFP TimB Who owns Complete? VC?
|
||
|
AFL Dyfet Yes.
|
||
|
AFA JoeyS Yeah
|
||
|
AFA Gary J (Hmmmm I didn't notice that VCooper left).
|
||
|
AFA JoeyS (he left right when I came in... coincidence?)
|
||
|
A2GS VC?
|
||
|
AFP TimB VC = Vince Cooper.
|
||
|
AFP TimB TML has left a real sour taste in MY mouth.
|
||
|
A2GS New company?
|
||
|
AFL Dyfet TML had no interest in what they were doing in the IIgs market,
|
||
|
period.
|
||
|
AFP TimB Least I feel Mike Westerfield has some commitment to excellence.
|
||
|
AFL Dyfet We will be discussing TML Pascal (Complete Pascal) with Vince
|
||
|
Cooper next week,
|
||
|
AFL Dyfet and that would be a good opertunity to find out about TML Basic as
|
||
|
well...
|
||
|
AFL Dyfet Okay, who has the next question?
|
||
|
AFL Dyfet GA Gary...
|
||
|
AFA Gary J I don't remember if I asked this here before, I posted it over in
|
||
|
Byteworks
|
||
|
AFA Gary J a couple of months ago.... and I think Mike lost track of it.
|
||
|
AFA Gary J I'm writing an assembly program (sorry, not BASIC :) that must be
|
||
|
leaving
|
||
|
AFA Gary J something amiss when it quits. (Yes, I do remember asking it
|
||
|
here, but I still
|
||
|
AFA Gary J don't know the reason :). Anyway, after running my program, it
|
||
|
causes the
|
||
|
AFA Gary J ORCA editor to produce an "Invalid Text Data" error when trying
|
||
|
to edit a
|
||
|
AFA Gary J source file (ANY source file). It hangs at that point, and I
|
||
|
have to re-boot.
|
||
|
AFA Gary J The trouble is that it doesn't always go away on a warm re-boot.
|
||
|
I have to
|
||
|
AFA Gary J power off.
|
||
|
AFA Gary J Does anyone know what could cause such a mess?? :)
|
||
|
AFL Dyfet GA Dave...
|
||
|
Dave Lyons Gary, it sounds like you're trashing memory semi-randomly
|
||
|
somewhere. The invalid text
|
||
|
Dave Lyons data message could mean you're trashing the fast-file image of
|
||
|
some file in the fastfile
|
||
|
Dave Lyons system.
|
||
|
Dave Lyons The reason you would still
|
||
|
Dave Lyons have problems after an Apple-Ctrl-Reset is if you trashed some
|
||
|
actual Memory Manager data structures.
|
||
|
AFA Gary J That's what I thought too (that's why I was happy to get Big
|
||
|
Brother to test
|
||
|
AFA Gary J the situation).
|
||
|
Dave Lyons The Memory Manager doesn't *really* get restarted on that kind of
|
||
|
boot--remember
|
||
|
Dave Lyons for example that /RAM5 uses the memory manager & lives across
|
||
|
Resets.
|
||
|
AFA Gary J A Memory Manager data structure? Like a trashed handle?
|
||
|
Dave Lyons So BB didn't find any damage? (If you always trash *used* memory,
|
||
|
BB never helps!)
|
||
|
Dave Lyons Yeah, a trashed handle...actually a trashed "handle chain"--each
|
||
|
handle points (currently) to a 20-
|
||
|
Dave Lyons byte structure called (at least by me!) a Master Pointer Record,
|
||
|
which includes links to the
|
||
|
Dave Lyons previous and next handles in the chain.
|
||
|
AFA Gary J That's interesting. I hadn't thought about the Memory Mangager
|
||
|
re-start
|
||
|
AFA Gary J business. That tells me where I need to look, in fact I can
|
||
|
probably guess
|
||
|
AFA Gary J the problem already! Thanks Dave.
|
||
|
Dave Lyons If you're ever *failing* to dereference a handle, and storing
|
||
|
stuff through it as if it
|
||
|
Dave Lyons were a pointer, that's a *really* good way to have hard-to-find
|
||
|
bugs (hard to find because you crash
|
||
|
Dave Lyons so quickly after it screws up, and you can't necessarily even get
|
||
|
into NL or GSBug). ga
|
||
|
AFA Gary J My program hasn't really crashed, just the problem with the
|
||
|
editor.
|
||
|
AFA Gary J The ORCA editor is the only place it's showed up. The memory
|
||
|
manager
|
||
|
AFA Gary J business is probably it, because sometimes the ORCA editor will
|
||
|
produce a
|
||
|
AFA Gary J memory manager error instead of the invalid text data error.
|
||
|
Dave Lyons (Okay, it wouldn't *have* to crash right away...it's just more fun
|
||
|
that way.)
|
||
|
AFA Gary J Thanks. GA
|
||
|
AFL Dyfet Okay, that Q needs some questions :)
|
||
|
BurgerBill Does anyone know anything about MIDISynth?
|
||
|
AFA JoeyS Yuppers, Bill.
|
||
|
AFL Dyfet Yes! Avery, go ahead, you have the floor now...
|
||
|
Avery R C Is there a BASIC compiler that deals with the GS/OS tools?
|
||
|
Avery R C Or has that already been answered? =P
|
||
|
AFL Dyfet Well, Micol Advanced Basic can perform tool calls...
|
||
|
AFL Dyfet GA Dave...
|
||
|
Dave Lyons Okay...I haven't used them, but there are Micol Advanced BASIC and
|
||
|
TML BASIC. They can
|
||
|
Dave Lyons let you do GS toolbox calls, but I -believe- neither of them is as
|
||
|
convenient as Pascal for
|
||
|
Dave Lyons doing toolbox stuff. Especially because you want "records" for
|
||
|
dealing with toolbox data
|
||
|
Dave Lyons structures (so you can refer to pieces of the data structures by
|
||
|
name, rather than by byte offsets).
|
||
|
Dave Lyons ga
|
||
|
AFL Dyfet (my preference is C, Dave L :)
|
||
|
Avery R C Ok, I was thinking of ORCA/C anyway.
|
||
|
Dave Lyons (should have said "as convenient as Pascal or C"--sorry!)
|
||
|
Avery R C over and out
|
||
|
AFL Dyfet Okay...Who has a question then :)
|
||
|
BurgerBill Does anyone have information about the MIDISynth tool from
|
||
|
Apple?
|
||
|
BurgerBill I am interested in writing music using it.
|
||
|
AFA JoeyS What kind of information?
|
||
|
AFP TimB Its awesome.
|
||
|
BurgerBill Well, how do I call it and use it in my own programs?
|
||
|
AFL Dyfet GA Joey...
|
||
|
AFA JoeyS Ummm... rough outline: Open sequence file. Get instrument
|
||
|
(waveform) file,
|
||
|
AFA JoeyS load that in, and define the instruments to use with
|
||
|
_SetInstrument calls.
|
||
|
AFA JoeyS Set up your tempo, tuning table, and anything else you need
|
||
|
(optional,
|
||
|
AFA JoeyS depending on your sequence)... then pass _SeqPlayer the address of
|
||
|
the
|
||
|
AFA JoeyS sequence data buffer. It takes over interrupts and plays the tune
|
||
|
in the
|
||
|
AFA JoeyS background; you can request that the tool call you back on each
|
||
|
note, on
|
||
|
AFA JoeyS instrument changes, at end of song, etc etc etc. Pretty nifty.
|
||
|
I've got some
|
||
|
AFA JoeyS not-yet-finished source (for a highly rumored MIDI Synth NDA, LOL)
|
||
|
that I'd
|
||
|
AFA JoeyS be willing to share with ya'. GA...
|
||
|
BurgerBill Thanx, I need all the help I can get! :)
|
||
|
AFL Dyfet Any other comments??
|
||
|
AFA Gary J That sounds great, Joey!
|
||
|
AFA JoeyS No sweat -- scream a reminder to me in mail if I forget, okay? :)
|
||
|
(I'm
|
||
|
AFA JoeyS notorious for forgetting... uhh... everything!)
|
||
|
BurgerBill Well I got some info that I need, thanx alot anyways!!
|
||
|
AFL Dyfet GA Nuzz
|
||
|
Nuzz Just a comment on Joeys answer. That sequence PLAYS songs, writing
|
||
|
them is
|
||
|
Nuzz quite different
|
||
|
Nuzz GA
|
||
|
AFA Gary J Joey missed your comment on his answer, I think :)
|
||
|
AFA JoeyS I think so, yes... :-)
|
||
|
Nuzz I just said that you described palying songs, not writing them
|
||
|
AFA JoeyS Oh... I thought Bill asked how to play them back in his programs.
|
||
|
....
|
||
|
AFA JoeyS Errr, to be honest, I haven't tried doing a MIDI recorder, but it
|
||
|
looks
|
||
|
AFA JoeyS as easy as playback.
|
||
|
AFP TimB My suspicion is that playback is real easy, but a fully fledged
|
||
|
sequencer is a lot more diff. Yes?
|
||
|
Nuzz right Tim
|
||
|
AFA JoeyS Yes, Tim -- <shrug> depends on the amount of sophistication in
|
||
|
your sequencer,
|
||
|
AFA JoeyS too.
|
||
|
|
||
|
AFL Dyfet GA Tim...
|
||
|
AFP TimB Dave, Matt you know the current story on APDA and MIDISynth and a
|
||
|
release date?
|
||
|
Dave Lyons (Nope, just watch your APDAlog...that's all I know.)
|
||
|
Matt DTS Same here.
|
||
|
AFP TimB Last I heard Tim Swihart was fighting with APDA on pricing.
|
||
|
|
||
|
AFL Dyfet GA Scott
|
||
|
AFL Scott Has anyone noticed problems with window paramlists generated by
|
||
|
Design Master
|
||
|
AFL Scott in C?
|
||
|
Dave Lyons (What kind of problems?)
|
||
|
AFL Scott Ok... Under ORCA/C, I kept getting type conflicts in the record
|
||
|
where ever a
|
||
|
AFL Scott NULL was inserted... I looked at the record both in the header
|
||
|
file and in the
|
||
|
AFL Scott generated record and I can't see a problem.
|
||
|
Dave Lyons (How is NULL #defined in your program?)
|
||
|
AFL Scott 0x0L
|
||
|
Dave Lyons Hmmm...I suppose changing it to ((void *)0) would cause other
|
||
|
problems?
|
||
|
AFL Dyfet But perhaps more correct a representation, Dave...
|
||
|
AFL Scott I can do that... I didn't do it, yet, though. I was just fiddling
|
||
|
to see if
|
||
|
AFL Scott ORCA/C could get past the error.. it did, eventually, but now it
|
||
|
errors out on
|
||
|
AFL Scott the DefProc. :(
|
||
|
AFL Scott (which btw is a VoidProcPtr).
|
||
|
AFL Dyfet Hmm...
|
||
|
Dave Lyons Shouldn't (void *)0 be a valid value for type void (*)() ? I
|
||
|
thought void * was supposed to be
|
||
|
Dave Lyons a pointer to *anything*, including a function.
|
||
|
AFL Scott Looking...
|
||
|
AFL Scott Your definition agrees with Harbison & Steel, Dave. Whether it
|
||
|
agrees with
|
||
|
AFL Scott Orca is up for tests after this conference.
|
||
|
Dave Lyons (Gee...didn't mean to kill the discussion. Too many paentheses?
|
||
|
:-)
|
||
|
Matt DTS They're intimidated by you.
|
||
|
AFL Dyfet NiftyLyons strikes again :)
|
||
|
Dave Lyons (Data types are evil. You never have to type-cast a value in
|
||
|
Nifty List. :-)
|
||
|
|
||
|
AFA Gary J Thanks for the tip on my problem, Dave. I was wondering what
|
||
|
could possibly
|
||
|
AFA Gary J be still messed up after a warm re-boot.
|
||
|
Dave Lyons (Yer welcome)
|
||
|
Matt DTS Ask Dave sometime about leaving little handles around between
|
||
|
reboots.
|
||
|
AFL Dyfet :)
|
||
|
Dave Lyons (Or ask Matt.)
|
||
|
AFA Gary J Now's a good time :)
|
||
|
AFL Dyfet Yes, it is :)
|
||
|
AFA Gary J What happened, Dave???
|
||
|
Dave Lyons I -think- this is what Matt's referring to...a good way to
|
||
|
accidentally leave "permanent" handles
|
||
|
Dave Lyons around is to use the high word of a pointer as the memory ID! If
|
||
|
they wind up with ID $0xxx, they
|
||
|
Dave Lyons tend not to go away (this isn't a guaranteed system feature--it's
|
||
|
just what happens today).
|
||
|
|