America Online APPLE II DEVELOPMENT FORUM CONFERENCE LOG Tuesday, May 6, 1992 10:00 p.m. Eastern Time Topic: Programming Shells and Environments Forum Leader: Gary Jacobson (AFL GaryJ) AFL GaryJ Welcome to the Apple II Development Forum. Tonight our topic is... AFL GaryJ Programming Shells and Environments. AFL GaryJ Let's not use protocol, at least for the time being. JWankerl Ironic that tonite's ORCA/GNO night - ORCA munched a chunk of my souce code the JWankerl other day... :-( Sheppy That happened to me once (er, twice... er, a few times)... really hated it! :) AFA Jay I hope some GNO/Person shows up. AFL GaryJ I hope so to, Jay. Sheppy That'd be nice. :) AFA Jay Yeah, I want to yell at them :) Sheppy Why? M Wolfgram Is GNO one here yet ? Sheppy Marc: :) AFL GaryJ (not to yell at them, but to talk about them :) AFA Jay Because I still haven't got GNO 1.0. AFA Jay I was a beta tester. AFA Jay Anyone can go out and buy it now, they'll get it before me. Sheppy Me neither. I have 1.0a4 still... doesn't work too well, either! Sheppy Annoying, isn't it? :) AFA Jay I know, I can't use what I have and they won't give me what I paid for. JWankerl I have 1.0 commercial alpha release - whatever that means. AFA Jay That's what we don't have. Sheppy Exactly. Sorta depressing. You can see how great it is, but can't actually Sheppy use it! AFA Jay Yes! AFA Jay It looks good, then it'll crash on you :) Sheppy ** sigh ** JWankerl Like, ya need ORCA in order to really get anything done. AFL GaryJ Hmmm.... I also expected to see a GNO person here tonight. AFA Jay They're hiding :) AFC DYAJim Their accounts got screwed up, didn't they Gary? AFL GaryJ Yes, but they're fixed now, Jim. AFL GaryJ (At least Jawaid's is working right) Sheppy They're GNOwhere in sight! AFL GaryJ Programming Shells and Environments is our topic - Shells = things AFL GaryJ like ORCA/M and GNO/ME. Although I've heard mixed reviews about AFL GaryJ GNO/ME being a "programming" shell :) AFA Jay Someone asked me this once upon a time, and I'm not sure if I ever found an AFA Jay answer... AFA Jay Is there an Orca call to make the cursor spin or the hourglass to appear AFA Jay or something like that? :) AFC SteveB Jay, nice question. ;) AFL GaryJ A shell call, for text mode, Jay? AFA Jay Yeah :) AFA Jay Steve must have asked me then :) AFL Marty Get yourself one of those chairs that spins around, Jay. AFL GaryJ (Spinning cursor :) AFA Jay :) AFL GaryJ BASIC.SYSTEM is a programming shell too :) M Wolfgram So is the monitor;) AFL GaryJ Hmmm.... Jay, have you checked the ORCA manual? :) AFA Jay Why yes, I have :) AFL GaryJ There must not be a call for it if you didn't find it :) AFL GaryJ <-- looking AFA Jay LOL :) Steve, wanna add to this, I'm feeling vague. AFC SteveB There is some sort of call... AFC SteveB Because once I compiled a C program... AFC SteveB That had a WaitCursor() in it. I realized I didn't AFC SteveB have the QD or QDAux Pragma, and added 'dem pragma's afterwards. AFC SteveB Curious to why it still compiled, I dissed the obj code to see it AFC SteveB made a "jsl WaitCursor". Strange. M Wolfgram Did it link? AFC SteveB When I added the QD Pragma, went to the good ol' _WaitCursor. AFC SteveB "I don't recall", Marc :) Matt DTS C does crap like that to you. AFA Jay Oh, it probably thought it was some external thingie... AFA Jay and was waiting for the linker to "resolve" it :) AFC SteveB Some library thing. AFL GaryJ It appears to be an "undocumented feature" :) Matt DTS I was writing a Mac program and typed "ClosePicture;" instead of "ClosePicture();"... Matt DTS ...and the compilers happily resolved it to the _address_ of the ClosePicture trap in the trap table. Matt DTS (Didn't function real well, but C never complained.) AFL GaryJ I just went through all the shell calls in the ORCA 2.0 manual, and didn't AFL GaryJ see anything that would do something to the cursor. Sheppy That's good ol' C for ya. :) AFC SteveB C's a real PITA language when you least want it to be :) AFA Jay If you want something that complains, use Pascal :) AFL GaryJ Didn't Mike Westerfield say something about that one time? Seems like AFL GaryJ he did, the last time he was here. (I'll have to check the log :) Sheppy And if you want something that REALLY complains, use BASIC! :) LL AndyW Anyone having any problems with the fixed version of FolderJump? AFC DYAJim no probs here Andy AFA Andy Not here either. LL AndyW Good.. I wonder if Joe learned anything from it... Matt DTS He should call the Developer Hotline, Andy. He has a tendency to call me, and I just ignore him. LL AndyW Like, make sure the tool is available before trying to use it.. Matt DTS ...that we can't work that way but he doesn't hear me.) you are LL AndyW Well, I'm not like that Matt. I'v asked a few things, but not many.. LL AndyW I know you are on here on your own time, not Apple's... Matt DTS Andy: Could be, but you don't call and demand instant answer? Matt DTS (You don't call me at home, either.) LL AndyW I don't call at all.. I ask through Email or when you are in an area such as LL AndyW this, but I wouldn't call for stuff that can wait... LL AndyW BTW, anyone, is the new IR (2.0 fixed, whatever the version is) available yet? AFC SteveB It's been available for a few days in ADV. AFA Jay 2.0.1 is availible in Sample Software LL AndyW OK.. It didn't show up in QF the other day, and I didn't have time to go look LL AndyW in the library.. I'll go find it tonight sometime... AFC SteveB Too busy disassembling other people's programs, eh? :) LL AndyW Who? Me?? :) LL AndyW Well, if I hadn't taken FolderJump apart, it still wouldn't work... AFC DYAJim Hey, if it's small enough, dissassemble it :-) AFC DYAJim (that's my motto :) LL AndyW Small enough Jim.. I started on UtilityWorks to fix it to allow attaching LL AndyW rBundles to any file, not just S16 files... LL AndyW Now, that's a big program... AFC DYAJim Hey Jim, working on an rBundle editor yet? ;) AFL Marty Why don't you just ask the author to incorporate that feature? Matt DTS I wonder if George will start using IR's features for inits/das/etc. instead of doing it himself. :) AFA Andy I think he has rewritten that part too, Matt. LL AndyW I did request the change from the author, but he is balking at it... LL AndyW Just to make sure I'm right.. Matt, rBundles should be able to be attached LL AndyW to any file, not just S16 files right?? Matt DTS Andy: Yes, but the Finder won't notice them until you "Get Info" on the file in question. AFC DYAJim I never knew that Matt.. AFC DYAJim interesting.. HURLANT Does anyone know if fillmode in the GS is as useful as it seems? It seems to HURLANT be used extensively in Rastan. AFL GaryJ Fill mode in Rastan? Sheppy Odd... AFL GaryJ (I didn't see it used there) AFC SteveB (That's a thing I like assembly -- the program may not work, but AFC SteveB it will assemble without bitching to you :) Sheppy ... and if it doesn't work, it gets REAL obvious REAL quick! :) HURLANT Yes, the active screen area is simple 16 color mode, but color 0 is white, HURLANT and is NOT in the picture! AFL GaryJ Depends on which palette you're looking at, HURLANT AFL GaryJ (color palette) HURLANT I used a screen capture program, then loaded it and analyzed it in superconvert HURLANT and color 0 or white, was 10 times more prevalent then any other. THAT'S HURLANT fillmode. AFL GaryJ And it reported that fill mode was in use? HURLANT No. AFL GaryJ I don't recall.... does anyone know if SuperConvert can handle 256 color AFL GaryJ pictures? HURLANT I believe the palette was palette 1. HURLANT Not palette 0 AFL Marty How do you mean "handle"? AFL GaryJ I'd almost bet that Rastan uses multiple palettes. HURLANT The score and beating heart are palette 0 HURLANT First screen is only 2 palettes. AFL Marty It will load them and convert them to something using fewer palettes. HURLANT I believe that by moving a matrix of pixels across the screen with fillmode HURLANT instead of the entire picture's data, you can scroll faster. AFL Marty (BTW, which screen capture program did you use?) HURLANT An old basic program from AOL. Just hit reset, and pop in the disk with this HURLANT basic program and run it. AFL GaryJ You can tell if fill mode is in effect by looking at the scan-line control bytes ($9D00-$9DC7). HURLANT I scanned the file and found lots of 0's by the way, and I can't believe it HURLANT could be scrolled that fast without it. AFC DYAJim I still doubt rastan would use it - as it does't meet the criteria for it. HURLANT What are the criteria? AFC DYAJim Long horizontal runs of the same color AFL GaryJ Hurlant, have you seen the program "Fill Maze"? HURLANT Oh yes. AFL GaryJ It's a good example of what fill mode looks like. HURLANT But would'nt fillmode help, even in a picture that had runs of 6 or 7 pixels HURLANT the same? AFC DYAJim I don't think it would be worth the bother in that instance. AFL GaryJ Rastan uses backgrounds that are bitmaps. Fill mode is used when AFL GaryJ plotting individual points, and want a particular color filled in between the AFL GaryJ points. HURLANT Also, is there a command that can zap a pixel or byte to zero quickly? AFC DYAJim STA, hurlant ;) AFL GaryJ You'd have to have billions and billions (well, maybe hundreds :) of points AFL GaryJ to plot for a background as detailed as what Rastan has. AFC SteveB Billyuns (tm Carl S)? :) AFL GaryJ I could have said trillions, but I didn't want anyone to think I was talking about the AFL GaryJ national debt :) HURLANT That is what we have used fillmode for so far. HURLANT In a question to one of you illustrious few I asked a question about pre- HURLANT compiled shapes for fast animation. What is that? AFL GaryJ HURLANT: I'm looking at the scan-line control bytes of a Rastan screen right now, AFL GaryJ and none of the fill-mode bits are set. HURLANT Oh, I would like to thank DYA Jim for the animation technote! AFC DYAJim Thanks Hurlant :-) HURLANT Look at the data. Why is color 0 most prevalent, but not existing in the HURLANT picture? AFC DYAJim whether color 0 is most prevalent or not has nothing to do with fillmode AFC DYAJim being used. AFC DYAJim Look at the border area - it's mostly black (color 0). HURLANT Maybe I am interpreting the palette backwards. HURLANT Dya JIm, where can I find out more about pre-compiled shapes? AFL GaryJ Pre-compiled? AFC DYAJim I will see if I have any info that I could share with you Hurlant.. HURLANT Yes. It was suggested that this was used in task force and sword of sodan demo. AFC DYAJim Yes, TF and SOS do use precompiled shapes AFL GaryJ Jim, explain what you mean by precompiled. AFC DYAJim precompiled, as in turning a shape into stuff like AFC DYAJim lda $2000,x AFC DYAJim and #$mask AFC DYAJim ora #$mask AFC DYAJim sta $2000,x HURLANT Does it have to do with a header to the pixel data for info about mask or not, HURLANT etc. AFC DYAJim (but that's very inefficient.. using the DP/stack would be much better :) DYA Derek Drawing shapes this was is much more efficient. DYA Derek You can optimize the code to for special cases like if the mask is solid or DYA Derek blank. HURLANT GREAT! I am studying Ball Bouncer by Stich and it uses DP/Stack to copy to HURLANT shadow memory. AFC DYAJim Ball bouncer uses dp/stack to do screen refreshes HURLANT Are using it for screen refreshes the best method of using the stack? DYA Derek Scrolling works well with the stack as well... HURLANT And what do you think of Parik's old Anim tool? AFC DYAJim Parik's anim tool has a few things going for it HURLANT The screen refresh technique seems quite generic. I have seen the same code in HURLANT several demos. DYA Derek The only way you can speed it up is to align the code so the DP is always DYA Derek page aligned. You only get a little speedup though. I did it in a demo. I DYA Derek should upload that with the code sometime. AFC DYAJim Actually, the dp/stack screen refresh is not entirely generic. AFC DYAJim It must be customized for the size and position of the "window" to be updated HURLANT But that doesn't have to be hard coded, does it? AFC DYAJim It pretty much has to be hard coded for the specific use. AFC DYAJim There are some generic reusable parts, but addresses have to be hardcoded. HURLANT What do you think of my configuration? Orca/m, Orca/c, Maxed, prizm, in the old HURLANT shell? Seems to work fine. I like Prizm for some stuff. DYA Derek I'm a Merlin man myself :) Sheppy Merlin... ack! I'm just getting started with Merlin, and it's driving me nuts! WinkieJim <--merlin man...but I do have Orca/M and Pascal...hate the Orca/M editor though Sheppy It's so different from Orca that I can't get used to it! :) HURLANT To me, a lot of Merlin source is very unstructured to read. LL AndyW Merlin'e easy.... WinkieJim prob will wait till Orca.m supports Prism before using it... DYA Derek Merlin's a lot faster and cleaner I think but ORCA will do the job just fine.. WinkieJim Hurlant, Depends on the programmer. (mine are VERY unstrctured) HURLANT It seems you just can't use Prizm with Orca shell 2.0 LL AndyW I have both Merlin and ORCA/M 2.0, and am waiting for C to arrive... LL AndyW Since when HUTLANT?? LL AndyW Some things don't work, but most of it does.... HURLANT That is what i was told. LL AndyW I have both shells installed, so everything works for me... DYA Derek Someone was saying that someone was trying to get gcc to produce GS code.. DYA Derek that would be nice. LL AndyW Try it sometime.. I'v used it, but I have problems with the linker accepting HURLANT Just wait till you make a shell call from Prizm, that is where you can die. LL AndyW the linkname parameter... LL AndyW I'v had it make shell calls.. No problem here... HURLANT What if the pathname exceeds the old length limit? LL AndyW I thought of that. I think the $ is getting handled improperly somewhere... LL AndyW So Marc, how's Foundation coming along??? M Wolfgram Sorry... on the GS and sleeping :) Foundation's fine... Optimize is done (nice too) only a few more M Wolfgram things to do and the shell is complete! Sheppy So, GNObody GNOws when GNO will be shipping to us alpha owners? Sheppy Tough to talk about when we don't have working copies... :) AFA Jay I know when it'll be shipping.... AFA Jay When other people order.