America Online
APPLE II DEVELOPMENT FORUM CONFERENCE LOG
Tuesday, October 23, 1990 10:00 p.m. Eastern Time
Topic: Pascal and C Programming
Forum Leader: Gary Jacobson (AFA Gary J)
AFA Gary J Ok. I see it's now 10:00 P.M. Eastern time (Mickey's hand is
straight up)
AFA Gary J and time to start this evening.
AFA Gary J Welcome to the Apple II Development Forum. Tonight's topic is
Programming in
AFA Gary J C and Pascal. I see Scott and/or Dale has the first question
here... (now
AFA Gary J that we're started officially :)
DaleK20 Is it true that a week ago APPLE announced discontinuing AppleII
line
AFL Marty No Dale.
AFL Marty That is not the case.
DaleK20 I heard from someone who has had good info in the past, but I
recognized some
DaleK20 of your names, thanks
Dave Lyons No, there is no announcement of "discontinuing the Apple II."
There has been at least one
Dave Lyons somewhat misleading statement (I forget who made it), and I
believe a clarifying statement is
Dave Lyons going to come out.
DangardAce Pruett? He probably got a raise.
AFL Scott Is AlertWindow supposed to make itself the current GrafPort? If
so, are there any problems
AFL Scott using Resources with AlertWindow?
AFL Scott Ok..... If I use Alertwindow while another window is on the
desktop, and
ShanoJ Scott: Why do you need the current port set to the Alert's window?
It's not as
ShanoJ if you can draw into it between opening and closing it....
Dave Lyons Scott, I don't know of any problems with AlertWindow relating to
grafports or resources. What's
Dave Lyons happening for you?
AFL Scott Ok.... I'm getting update events going to the alertwindow. Either
that or AlertWindow is ignoring
AFL Scott the null terminator.
ShanoJ Genesys messes up the null terminator, if that's a
consideration....
Dave Lyons Scott, I don't understand--what is "you"? Are you a DA, an
application, or what? The actual
Dave Lyons AlertWindow window has just an RTL for a content-draw proc,
currently.
AFL Scott We are Nomad... :) Seriously, I think Jonah got it
AFL Scott I used Genesis to create this particular resource. :(
AFA Gary J Nomad :) (I remember that episode :)
Dave Lyons ("The Changeling")
ShanoJ Ya, go through the Rez source and stick in a \0x00 at the end of
the rAlertStr.
AFA Gary J Ok. I guess Scott got his question answered. GA with your
question, Windrider
Windrider5 I would like to use the TEGetText call where my bufferd
Windrider5 descriptor is saying that the bufferRef is a pointer to a buffer
Windrider5 to recieve a handle to the output text
Dave Lyons ("refIsNewHandle," yeah)
Windrider5 how do I indicate this in C i.e. &myTextBlockHandle?
Dave Lyons Yes.
ShanoJ (Dave, have you memorised all of those oneWordConstants or do you
have a list?)
Dave Lyons (That one I remembered.)
Windrider5 nothing I done seems to work
Dave Lyons Windrider, what goes wrong? Does it crash?
Windrider5 all I get is garbage in my text window ie. inverted ?
Dave Lyons Check all your parameters carefully to make sure they're the right
length, especially if you're
Dave Lyons using APW C. (Does ORCA force everything to be the right size?)
Windrider5 I'm using APW/C what parameters do you mean? bufferRef?
Dave Lyons I mean all the parameters to TEGetText--if one of them is, say, a
word instead of a long, then
Dave Lyons the toolbox is getting completely bogus inputs and may trash a lot
of stuff & not even cause a
Dave Lyons crash (C "fixes up" the stack when you leave a function, so you
don't necessarily crash).
AFA Gary J GA, Coach
Coach101 Never mind.... I was about to put my foot in my mouth.... ga
AFA Gary J Ok, anything else, Windrider?
Windrider5 No I'll just keep trying
AFA Gary J Jonah has the next question then. hanoJ AG
ShanoJ Do I have to type my whole question backwards?! :)
AFA Gary J Na, :)
Coach101 Yes!
Dave Lyons (What does Sodium have to do with it, Gary?)
AFA Gary J :)
ShanoJ I was wondering if ANYONE has gotten ORCA/C to work with Prizm
properly? Or,
ShanoJ if anyone has gotten Prizm to work properly by itself. :) Since I
take it the
ShanoJ answer to that is 'no', I was wondering if anyone knows of an bug
in the
ShanoJ editor that comes with ORCA/C (the text based one, and not the one
that comes
ShanoJ with APW--they're different). I keep on having a problem that
after hitting
ShanoJ OA-Q and S to save, the screen clears and then the GS just sits
there.
AFA Gary J GA Coach
Coach101 I have had good success with PRIZM by itself...
Coach101 That is using the graphics based editor with multiple
windows....
Coach101 As far as invoking the compiler form within PRIZM..
Coach101 or debugging with the source level debugger...
Coach101 Almost no success.... ga
ShanoJ Sometimes the file is saved, sometimes not, and sometimes it just
erases the
ShanoJ old one. I was wondering if this is a known bug, or if it's
probably that my
ShanoJ program is trasking some memory and messing the editor up....
AFA Gary J GA, Scott
AFL Scott I've had some strange problems like that, Jonah, come to think of
it...
AFL Scott It's probably a combination of things. For example, if you use #
pragma optimize -1,
AFL Scott you can expect the stack to be trashed. Also, there
AFL Scott are bugs with fseek. In short, I've seen what you've seen, Jonah.
MikeW50 Howdy, folks.
ShanoJ Hey Mike!
AFL Marty Hi Mike
ShanoJ Ya, but I've ALSO seen it when I'm working on an assembly program
(it doesn't
ShanoJ just happen in C development)...
AFL Scott (Well, Mike's here... care to repeat the question?)
ShanoJ So, if we assume ORCA/C massing up the stack is leading to the
problem, then
ShanoJ must we also assume that my Asm program is doing the same thing?
:(
ShanoJ Sure. Mike: I've had a problem that on exiting the editor that
comes with
ShanoJ ORCA/C, the screen clears and the GS crashes, sometimes after
saving my file
ShanoJ but just as often before or, even worse, erasing the old
version....
ShanoJ Is that a known bug with the editor?
MikeW50 No. Are you using PRIZM or the text editor? ga
ShanoJ The text based editor. PRIZM's a WHOLE 'nother story... :)
MikeW50 :) True... one with a happy ending, I hope. No, I have never had
the text
MikeW50 editor crash saving a file. The only known bug in the text editor
that is at
MikeW50 all nasty is a bug in copy/paste that you run into if you are
dealing with
MikeW50 copies or pastes of 32K or greater.
ShanoJ Would something a s16 program be doing possibly crash the editor?
I could
ShanoJ understand if it were an EXE file, because then the editor isn't
reloaded (as
ShanoJ I understand it). But with a s16 file, I would think it would have
to be...
ShanoJ No, don't think I've ever tried to copy half of one program into
another, so
ShanoJ that's probably not it... :)
MikeW50 With an S16 file, the entire ORCA environment is reloaded when you
return.
MikeW50 That leaves 4 possibilities:
MikeW50 1. You trashed GS/OS
MikeW50 2. You trashed some other part of the O/S, or some critical
setting
MikeW50 3. There's some bug I don;t know about in the editor
MikeW50 4. Hardware problems
MikeW50 5. OK, one more: cosmic rays.
MikeW50 done
ShanoJ 1. Always possible, but I doubt it...
ShanoJ 2. ditto
ShanoJ 3. Hmm...
ShanoJ 4. Oh no, not again... :)
ShanoJ 5. That's probably it! :)
AFL Scott Jonah, have you run diskcheck lately?
ShanoJ Ya, just the other day. All four partitions are fine...
AFA Gary J I'm having a similar problem with a trashed memory handle that I
can't seem to track down.
ShanoJ Also, it doesn't do it with any consistency, which is
annoying...
ShanoJ It'll do it once today, not at all tomorrow, but then every time I
use the
ShanoJ editor on Thursday...
AFA Gary J Jonah: Don't program on Thursdays.
ShanoJ Can't Gary: I'll go into withdrawl! :)
AFA Parik (I had the prob till I started using rose & now maxedit..no
probs)
ShanoJ I can never get ROSE to work properly... (are the macros not
implemented or was
ShanoJ I just being a bonehead? :)
MikeW50 $10 question: can anyone reproduce it? I've simply never seen
this happen!
AFA Parik come to my house and stay for a while :)
ShanoJ Mike, we're not allowed to talk about reproducing on line. Its a
violation of
ShanoJ the TOS... :)
AFA Gary J There are many kinds of reproduction, Jonah :)
MikeW50 Without reproduction, bugs aren't real... ;)
AFA Gary J Ok, you done Jonah? We'll move on to Parik's question if you
are...
AFA Gary J :)
ShanoJ Yuppers, that's it for me...
AFA Gary J Ok, Parik GA
AFA Parik oh, my Q...
AFA Parik is TaskMaster supposed to keep returning WinContent if the mouse
is held down
AFA Parik inside the window? It returns it once, but I want it to keep
telling me if
AFA Parik the mouse is held down... whats a good way to do it? _GetButton
won't tell
AFA Parik me if the mouse is in the window. :(
Dave Lyons How 'bout FindWindow?
AFA Parik (flipping thru book...)
ShanoJ Ya, I don't think it'll repeatedly give you wInContent, but you
can do a
ShanoJ _button and then a _GetPortRect and then a _PtInRect to see if
it's still in
ShanoJ the window (I think...)
AFA Gary J I've been doing something like that with _PtInRect, but I don't
think it'll
AFA Gary J work for a window.
AFA Parik (my THIRD torn book...grr)
AFA Parik (argh, F before G)
Dave Lyons Jonah, FindWindow is better--why don't you like that?
AFA Parik aha! looks like FindWindow will work. thanx
Dave Lyons (Windows don't *have* to be rectangular, you know! Examples: a
custom
Dave Lyons window, or one that has been mutilated by my Puncture NDA (chops a
weird-shaped region
Dave Lyons out of the structure and content regions).)
ShanoJ True, I thought you said _FrontWindow, which wouldn't work at
all... Thinko, I
ShanoJ guess... :)
Dave Lyons BTW, if you wind up using Button to see if the button is "still
down," consider using StillDown
Dave Lyons instead. This way if the user lets up and presses it again, you
won't think it's still down.
AFA Gary J Ok. Does that do it for you then, Parik?
AFA Parik thazzit for me! _StillDown and _FindWindow will be grueato.
thanx
Dave Lyons (That is, if they do it quickly & you don't see it while it's
up.)
AFA Gary J grueato?
AFA Parik sorry, just got back from japanese
ShanoJ A combination of grusome and neato? :)
AFL Marty (sounds like some health food)
ShanoJ Can I ask a resource question?
AFA Gary J GA, Jonah
ShanoJ Anyone know WHEN THE UPDATE TO GENESYS WILL BE READY?!? Uggh...
AFA Parik its shipping
AFA Parik v1.2, $15
AFA Gary J GA Matt
ShanoJ It is?! Really!! And it fixes all the bugs?!?!?!?
Matt DTS I heard SSSi was waiting on us to get 5.0.3 out the door first,
since Genesys 1.2 needs it. In that
Matt DTS case, it's our fault. We hope (I know you've heard this before)
to get 5.0.3 out the door this week,
Matt DTS so it shouldn't be much longer if that is the case.
Matt DTS (GA)
ShanoJ Okay, I've got another ?
AFA Gary J GA Again, Jonah :)
ShanoJ (BTW, that's great to hear, Matt!! :)
ShanoJ Doesn anyone have Complete Pascal, and if so, is it worth me
upgrading to it,
ShanoJ or should I just cut my losses and go for ORCA/Pascal, instead? (I
already have
ShanoJ TML II, BTW).
AFA Gary J GA Mike :)
AFA Gary J (I can guess his answer :)
MikeW50 What's their upgrade price? I haven't heard...
ShanoJ It's about $29, if I remember correctly....
ShanoJ But it still isn't OMF compatible.... :(
MikeW50 Pretty good for a new company, especially if that's with a
manual.
MikeW50 (I'd cut your lossed, though. ;) )
AFA Gary J (Ahhh, I knew he'd say that somewhere in there :)
ShanoJ So I take it no one here has it? Okay, GA Scott...
AFA Gary J I have ORCA/Pascal. GA Scott
AFL Scott Anyone have problems with either Orca or APW hanging when opening
a file for editing after
AFL Scott launching any program that uses resources besides "start"?
ShanoJ Well, I've had a problem recently that it wouldn't recognise files
on the
ShanoJ disk that WERE there (it'd give me file not found errrors). Don't
know if
ShanoJ that's what you meant, though....
AFA Gary J I have that problem with a program that doesn't use resources,
Scott.
AFA Gary J "Invalid Text Data", and "Invalid handle", or something like
that.
AFL Scott No, this actually loads the file, then when you'd think it'd be
time for it to appear, the program
Dave Lyons Scott, EXE or S16?
AFL Scott (editor) hangs.. S16, Dave.
MikeW50 Invalid text data is garbage in -- possibly a RAM error, disk read
error, etc.
AFA Gary J (Would seem so, Mike, but doesn't apply in my case)
MikeW50 For those seeing hangs: 1) How much memory do you have, 2) What
program
MikeW50 launcher are you using, 3) What O/S version?
AFL Scott 4 megs. Either Wings or Finder. 5.0.2.
ShanoJ 1) 2.25 Megs; 2) The Finder; 3) Latest 3.0.?
AFA Gary J Hmmm, program launcher? That could make a difference, eh? I'm
using Squirt-16
AFA Gary J and 5.0.2.
AFA Gary J (3.25 megs with a 1.25 meg ROM disk on Memory Saver)
KentHayden I read in the Prosel section that someone thinks Prosel 16 may be
causing a
KentHayden problem with the Orca shell environment..
MikeW50 (Some versions of ProSel had problems... I always wondered if Glen
put in a
MikeW50 whale check...)
AFA Gary J Interesting. I'll launch from Finder next time and see if it
makes any
AFA Gary J difference.
MikeW50 Look folks -- I'm working on an ORCA/M upgrade right now, for
release very
MikeW50 very soon. If ANYONE can pin this down, please let me know so I
can fix it
MikeW50 (if it's my problem).
AFA Gary J I'd like to find it. Especially if my program is causing it.
Dave Lyons Can anybody fry it reliably on a FLOPPY?
Dave Lyons (If so, send it to me & I can logic-analyzer it.)
AFA Gary J (I'll send you a copy Dave :)
ShanoJ Can I ask another non Pascal & C question? :)
AFA Gary J Why not, Jonah. GA
AFA Parik (remember, dana carvey;thursday,9:00pm, center stage!)
ShanoJ Okay, for Twilight I need to see if a key has been pressed from an
interrupt
ShanoJ that executes once every 5 heartbeats. Reading $E0C000 doesn't
work very well,
ShanoJ and $E0C027 (KMSTATUS) doesn't always work well, either. Is there
any good
ShanoJ way to do this?
AFA Gary J GA Dave
Dave Lyons As long as you don't care *what* key was
Dave Lyons pressed, you can do what I do in "Dimmer" (a CDA that ships as a
freebie along with P8CDA from
Dave Lyons Roger Wagner Publ): I watch for $E0C000 to *change*, and I watch
for certain bits in
ShanoJ (subtle plug... :)
Dave Lyons $E0C025 (modifiers) to change, taking any change as a signal that
I shouldn't dim the screen.
ShanoJ Ah, so you don't just peek at the top bit, you look at the whole
thing? Ya,
Dave Lyons Even though the Event Manager grabs the keys away from C000 during
its own heartbeat task, this
Dave Lyons still changes bits most of the time (for some reason it even works
if you keep pressing the
Dave Lyons -same- key; not sure why).
Dave Lyons (Yes, I watch all 8 bits of $E0C000.)
ShanoJ that sounds like it'd work well! Thanks a lot--that's a real
lifesaver! :)
ShanoJ (New version of Twilight coming soon! Everyone remember to enter
the contest!:)
AFA Gary J Interesting.
AFA Gary J GA, ShanoJ
ShanoJ Got one last one: Anyone here tried porting large amounts of UNIX
C source to
ShanoJ ORCA/C? How hard is it?
AFA Gary J GA Matt
Matt DTS I'm currently in the process of porting small amounts of
Unix/MS-DOS source to ORCA/C, and so far
Matt DTS have run into only one major problem - a semi-standard library
routine (vsprintf) that is
Matt DTS not part of ANSI (or most Unix) C but is in this program.
Matt DTS Fortunately, Mike sells the library sources for about $30 so you
can add such things if you need to.
Matt DTS GA.
ShanoJ Okay, that's hopeful, I guess. I was thinking the other day that
there's a LOT
ShanoJ of neat UNIX warez out there that the GS could REALLY benifit
from, and if it
ShanoJ wasn't a HUGE chore it might be neat to port some of them....
Dave Lyons (Oh, and "FILE *blahblah = stdin;" didn't compile either.
Anybody know if that's supposed to
Dave Lyons work in ANSI? stdin was an external, so it wouldn't work as an
initializer.)
Dave Lyons ("FILE *blahblah; ... blahblah = stdin;" worked fine, of
course.)
Dave Lyons (Oh, Coach is gone. <dead silence> )
ShanoJ (Heh, got another ? for Matt & Dave: does a HeartBeat task really
get kicked
ShanoJ out of the queue if it's period is set to 0? The TB ref seemed to
say that...)
Dave Lyons No, it just doesn't get called any more.
Dave Lyons (Until somebody sets it back to nonzero.)
ShanoJ Okay, that's a relief. Thanks again!
Dave Lyons (Use Nifty List! ~h will show you your task is still there, even
after you store NOPs over
Dave Lyons the part of it that resets its own count.)
ShanoJ Was it supposed to get tossed, and that was never implemented, or
am I just
ShanoJ reading the TB ref poorly? :)
Dave Lyons Probably the TB Ref is just doing a mediocre job of trying to
describe reality. The
Dave Lyons toolbox is working as designed, and as moderately-well described.
:)
Dave Lyons (Only DelHeartBeat and ClrHeartBeat [don't call ClrHeartBeat!]
remove tasks from the hb queue.)
ShanoJ Oh, here's one for Matt: In the new APF file format with the
MILTIPAL (spelled
ShanoJ that wrong in the header, BTW) block, should the NumScanLines
field in the
ShanoJ MAIN block be set to 200 or to 0 or what?
Dave Lyons (Depends on whether you've got actual data in the MAIN block,
eh?)
Matt DTS Don't have the note in front of me - it does depend on what you
have in Main, though. (It should be
Matt DTS spelled MULTIPAL, I believe. Kept trying to spell it MULTIPAT for
some reason.)
ShanoJ Okay, but does that mean that you should ONLY use MULTIPAL if
there's no MAIN
ShanoJ block, and if there is a MAIN block, there doesn't need to be a
MULTIPAL block?
ShanoJ Kinda like a PALETTES file without a MAIN block and a MAIN file
without a
ShanoJ PALETTES block?
Matt DTS No, I don't think so. The MULTIPAL block gives up to 200 color
tables to be used instead of what's in
Matt DTS MAIN, if I remember correctly. MULTIPAL is not like PALETTES -
MULTIPAL supplements MAIN; PALETTES
Matt DTS gives similar information to MAIN for when MAIN is not there (If
there's both MAIN and PALETTES,
Matt DTS you're supposed to use the palettes in MAIN).
ShanoJ But I couldn't figure out what was supposed to go where: If there
are 200
ShanoJ palette, why not just set the NumPalettes field in the MAIN block
to 200 and
ShanoJ toss the MULTIPAL block? Or is this a no-no and I should set the
NumPalettes to
ShanoJ 0. Or should I put the palettes in BOTH places?
Dave Lyons I don't think you should put more than 16 color tables in the MAIN
block--we considered
Dave Lyons that, but I think we decided existing applications wouldn't deal
with it appropriately, if at all.
Dave Lyons BTW, where is MULTIPAL misspelled? I can't find it wrong anywhere
in the final copy.
Matt DTS That sounds familiar. (You have to realize Dave and I intend to
invent these things late on Saturday
Matt DTS nights, although this one was mostly John Maclean's invention.)
Matt DTS (I think it's in the abstract)
Dave Lyons OOPS! Never mind--in the note's synopsis. MUILTIPAT.
Dave Lyons (yea)
ShanoJ Okay, then I set the NumPalettes to 0? That leads me to another
question:
Dave Lyons Yes, you can make Main have 0 color tables, as long as you really
have 0 color tables stored there.
ShanoJ The note says PaletteArray [0..NumPalettes] of Palette. Now, if
NumPalettes
ShanoJ is 0, that's [0..-1] and if NumPalettes is 1 thats [0..0], right?
Isn't
ShanoJ that wrong?
ShanoJ Wait, you mean I have to acutally store a color table there even
if I set the
ShanoJ NumPalettes field to 0? Wont that mess things up MAJORLY?!
Dave Lyons What?
Dave Lyons What's the date on your note? It says "color tables" everywhere
on the Sept 90 version.
ShanoJ Hmm... I think I have the Sept '90 note... Wait, I'm wrong, the
one on disk is
ShanoJ Sept '90, but the one in front of me is Nov '88. Guess I'll have
to print out
ShanoJ the new notes soon... :)
Dave Lyons No, if you put NumColorTables=0 and have no color tables following
it, that's fine. Isn't that what
Dave Lyons I said?
Dave Lyons 0..NumPalettes-1 is correct. How many numbers are in the range
0..0? One.
Dave Lyons How many numbers are in the range 0..-1? Zero. Perfect.
ShanoJ Oh, I always thought there were 0 numbers in the range 0..0. Guess
you're
ShanoJ right, though... Okay, I'm beginning to make no sense so I think
I'll go to
ShanoJ sleep now. :) Thanks for the help, Dave and Matt, and I hope I
don't sound
ShanoJ like a COMPLETE idiot! :)
Matt DTS Jonah, it's acceptable to have not gotten new notes yet but not to
have them and not have looked at
Matt DTS them. :(
Dave Lyons (Yeah, "Pascal-style" ranges are inclusive on both ends. So there
are N numbers in 1..N or 0..N-1.)
ShanoJ (juse a partial idiot... :)
ShanoJ No, I have the new notes, and I've looked at them and they're the
ones I refer
ShanoJ to, but I also have a binder with some of the important ones
printed out, and
AFA Gary J (And the new index makes them all the more easier to use)
ShanoJ since the notes are on my third partition, I can't look at them
while online,
ShanoJ so I was just looking at the old version I had printed out. I DO
use the new
ShanoJ ones, though--otherwise I wouldn't know about the MULTIPAL block.
:)
AFA Gary J You're not using the GS/OS version of AO?
ShanoJ No, Gary, I'm using the P8 version. The GS/OS version can never
connect for
ShanoJ me....
AFA Gary J Hmmm. Ok. (Works great for me)
Dave Lyons (Yeah, that index was fun. Some weird Dave Humor is in there,
too.)
AFA Gary J :)
Matt DTS True. I missed a concert (accidentally) to do that index.
AFA Gary J Weird Dave humor seems to be invading the universe :)