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