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 :)