America Online APPLE II DEVELOPMENT FORUM CONFERENCE LOG Tuesday, July 17, 1990 10:00 p.m. eastern time Topic: Getting the Most out of SHR Programming (also, features of new Nifty List 3.0 were discussed) Forum Leader: Gary Jacobson (AFA Gary J) AFA Gary J Ok. I guess we'll get started (officially). AFA Gary J Welcome to the Apple II Development Forum. I'm Gary Jacobson, standing in AFA Gary J for Dave Sugar for a few minutes, until he gets home from work. :) AFA Gary J Tonight's topic is "Getting the Most out of SHR". AFA Gary J We have a small group, so lets dispense with protocol (unless things get AFA Gary J really out of hand). AFA Gary J Do we have any questions to start out this evening? AFL Marty I have one. AFA Gary J GA, Marty AFL Marty I'm studying Pascal and working on programming the standard desktop... AFL Marty Can you explain in layman's terms what a grafport is? AFA Gary J GA, Matt Matt DTS Check out Apple IIgs TN #80. That, with the Toolbox Reference, discusses the matter thoroughly. Matt DTS GA AFA Gary J GA, Coach Coach101 In a IIgs you never really draw on the screen. What Coach101 you do is set bits in memory, that if the memory you are playing with was the super hi-res Coach101 buffer, would cause some pattern (hopefully the pattern you wanted) on the screen. Coach101 A GrafPort is a collection of values that QuickDraw uses to determine what bits to set in what memory. Coach101 ga AFL Marty Thanks. GA SPW Is every GS supposed to have at least ROM 02 by now? SPW The tech notes discuss it but I have ROM 01 AFA Gary J GA, Matt Matt DTS The tech notes do *not* discuss "ROM 02", because no such thing ever existed. Matt DTS There was ROM 0, ROM 1 and ROM 3. We skipped to three for people who couldn't figure out the version Matt DTS was zero-based. GA. AFA Gary J :) A2Evanglst (rom 02 is a figment of our imagination SPW hmmm... well they say that you should not have to program around some ROM 01 SPW modem firmware bugs because it is resonable for GS users to have upgraded to SPW ROM 02 SPW It's on tech note disk 1 Matt DTS We occassionally refer to ROM 01 as "ROM 2.0", but those are not the same numbers. GA. SPW hmmm... ok AFA Gary J Let's go to Doctor Why's question. Doctor Why Executing a rCodeResource, I was wondering if there is a way to retrieve the Doctor Why direct page for Quickdraw if you didn't start it up. I need it to change Doctor Why graphic modes. AFA Gary J GA, Dave Dave Lyons Errr...changing graphics modes from an NDA is probably Dave Lyons OH! Dave Lyons Wait, you didn't say from a NDA, did you? (My mind is multitasking with leakage... :-) AFA Gary J (Dave "DA's are my life" Lyons :) Doctor Why :) Dave Lyons Okay, let me start that again, then. Your application Dave Lyons wants to know the direct page that it used when it started QuickDraw somewhere else in the code, Dave Lyons and you just don't have easy access to that information. Doctor Why yes. Dave Lyons The best way is to *provide* that information to the code resource when you call it--for Dave Lyons example, pass it on the stack. Can you do that? Doctor Why not at the moment. Dave Lyons How come? Does the rest of your app have access to that value, or did you use Dave Lyons StartUpTools to start QD? Doctor Why Well, let's just say that it isn't being passed and let it go for the moment. Doctor Why :) Dave Lyons (The GetWAP function will get your the work area page for QD, but I *don't* recommend you use Dave Lyons this--note what happened with the Control Manager--it uses its WAP for something OTHER Dave Lyons than the value you pass to CtlStartup, and QD could conceivably do the same thing in the future). Doctor Why I'm not sure that it is legal, but I thought I would check to see if there was Doctor Why a way. Dave Lyons (I don't have a good way other than passing the value.) ga Doctor Why okay, that's what I thought. AFA Gary J Ok. Thanks, Dave. Anything else Doctor? Doctor Why I'll take another approach. Thanks AFA Gary J GA, Coach Coach101 What does the term "linearize memory" mean, what are its advantages? Is it the default? AFA Gary J GA, Dave Dave Lyons It's not the default; it applies only to the super-hires screen memory ($e12000 through Dave Lyons $e19fff). It's a strange remapping of logical addresses into physical addresses in the RAM chips, Avery R C ? Dave Lyons and it is always on while the SHR screen is actually visible. QD turns on the linearize Dave Lyons bit so that it's on even while the screen isn't, while QD is started up. Dave Lyons I don't know what the disadvantage is to having it on all the time--but flipping it on or off *does* Dave Lyons remap the contents of the addresses in question, *I think* (would have to double check that), so youy Dave Lyons don't want to be flipping it on or off while you care about the contents of that memory. Dave Lyons Did that answer the question? Coach101 Sort of... Its a kinky manipulation of address bits but Quickdraw is kinky so its all straight :) Dave Lyons something like that... Coach101 It was just one of those, "why is the ...." questions. Thanks for the info... AFA Gary J I DON'T understand (exactly) non-linearization. Linearization simply means AFA Gary J that all SHR screen memory is addressed sequentially. AFA Gary J I assume non-linearization makes screen memory mapped similar to the way it AFA Gary J used to be on the Apple II Hi-res screen, but I've never verified that. Coach101 Ahh... The hardware is kinky :) So that the video circuitry is simpler Coach101 done... Avery R C Something like the interleave-or-straight thing in GIF files? Dave Lyons Yeah, with linearization OFF things are weird...like Hires, in principle. The color Dave Lyons tables aren't even at $E19E00 with linearize off. ga AFA Gary J Ok, Scott. You're up next. GA AFL Scott Is it possible to switch palettes in the middle of a scanline trace? The ... AFL Scott reason I'm asking is.. Parik posted a message in my message boards the other AFL Scott day about the French, who seem to have done it. And... I was talking to AFL Scott Bill St. Pierre the other day, and he's under the impression that SCB's are AFL Scott read by the hardware at the start of a trace so switching them in the middle AFL Scott would have no effect. Who's right? AFA Parik you could change palettes halfway through also. AFA Gary J Try it and see. :) Dave Lyons Yeah AFL Scott You could but would the effect be visible? AFA Gary J Anyone know? AFA Gary J GA, Coach AFL Scott I don't have time to experiment.. I'm in the middle of a project. Coach101 It would seem to me that since we are dealing with 1mhz memory, the video circuitry would not be Coach101 spending cycles checking for changes with every "data" byte... Just a thought... ga AFA Gary J GA, Dave Dave Lyons I'd be surprised if the thing actually read a color table & copied it somewhere, so I bet changes to Dave Lyons Hmmm...well, I don't know what I think now. Somebody's going to have Dave Lyons to try it (I'm looking in the Hardware Ref for clues about how the VGC knows what all the color Dave Lyons tables and SCBs are). Dave Lyons There are at least 2 Dave Lyons things in question here: when do changes to color tables take effect, and when do changes to the Dave Lyons SCBs take effect (for example, change the line to use a different one of the 16 color tables in Dave Lyons your palette). [Note the correct use of "palette" above. :-) ] AFA Gary J Even if those answers were known, Dave, it seems like it would be extremely AFA Gary J difficult to manage the effect in a practical application. AFA Gary J GA, A2GS A2GS I believe I once tried it and did not get the desired results, so NO I don't A2GS believe changes made to a palette while drawing a SL will not immiediately A2GS effect the scan line. (But I won't swear that it can't be done :) AFA Gary J Parik, do you have a sample application using this technique, or know where AFA Gary J one could be obtained? AFL Scott Thanks... it's an interesting topic... Bill said he was going to try it. A2GS Please ignore the "not" above :) AFA Gary J Ok. :) AFA Parik the acs demo does a "ham" mode (look in ams/agr, or the hidden libs of agm :) AFA JoeyS LOL A2GS Parik, why don't you look at their code. AFA Parik the demo only does 32 "greyscale", that means its a joke or there is some AFA Parik reason that its very limiting. I would think it can be done since the vert AFA Parik count does read horz? ga AFA Gary J Thanks, Parik A2GS BTW, saying it's a "ham" mode is probably not accurate if you referring to the A2GS grey scale demo. AFL Scott Yes, but isn't it updated too quickly to be usable? AFL Scott The horizontal, that is... A2GS Yes, but notice how few scan lines are used in the demo. A2GS Probably VERY time consuming. A2GS yup. AFA Parik if you're in France it seems usable. AFL Scott I mean the horizontal frequency is way more than the vertical frequency. A2GS Good for use as a Random # generator though :) AFA Gary J Must be the French assemblers they use, or something. A2GS Keep in mind they're using PAL not NTSC. Coach101 Isnt PAL more demanding than NTSC? A2GS More SL. AFA Gary J Ok, anything further on this? AFA Gary J GA, Scott AFL Scott So.... how do we get more out of SHR? :) AFA Gary J :) AFA Gary J (Now I understand the reason for your questions :) A2GS get a TurboRez :) AFL Scott right. A2GS Any word on it? AFA Gary J You want more pixels or more color, right :) AFA Parik put the word Apple IIgs in front of a Cray. AFL Scott I mean, I think I'm doing ok squeezing 16 colors for all they're worth! :) AFA Parik (anyone know whatever happened to GASP?) AFA JoeyS GASP? AFA Parik Geeks Are Super Programmers AFL Scott Plenty of words, A2... It'll be in a log in AGR. AFL Scott LOL!!!:) AFA Parik (better known as Graphics & Sound Program or something. shown at AppleFest, AFA Parik done on a cray->mac->gs, 3d sorta demo. real neat!) A2GS Never heard of it? What kind of 3d? A2GS rather, Never heard of it! A2GS :) AFA Parik ask Matt DTS, he was there the day it was demo'd, I remember. I just saw it AFA Parik for a few mins :( A2GS Well, wait till some 3D solid object programs hit the libs!] AFA Gary J I guess everyone else here has already gotten all they could get out of SHR AFA Gary J also. Any other SHR questions (or normal programming questions??) AFA Gary J (Or abnormal programming questions :) AFL Scott Any chance of Carosel of Impossible Physics being released? Matt DTS It's "Questionable", not "impossible", but it is unlikely. AFA Gary J I'd like to see those too, Scott. Ok Nuzz, GA with your question. Nuzz I have 2 questions on Resources. 1st. When Loading a res. is there a way to Nuzz tell if _I_ loaded it, or if it was loaded? Nuzz 2nd, can I change the search path of resources Dave Lyons Mike, I don't think there is a reasonable way to find out if a resource has already been loaded Dave Lyons or not, unfortunately. You can do it by walking through the resource maps in memory, but this Dave Lyons is tricky and *might* (not sure) cause you problems if the format every changes. Dave Lyons What do you mean exactly by changing the search path? Nuzz If I set the File Depth to 1, I would still want the system resources available Dave Lyons Well, that could be a problem. Why do you want to do that? Nuzz Well, there could be duplicate Id's in the path.. Dave Lyons How? Nuzz and I only want to look at the current file Dave Lyons Oh, duplicate resource IDs in other files, ok. Dave Lyons You only want to look in the current file *and* the system file? Nuzz If you do a tool call with Depth to 1, bad news Nuzz right Dave Dave Lyons Right. Dave Lyons So, when you do an operation when you actually want a resource from a partiular file, set it to Dave Lyons be the current one and set the depth to 1, do the operation, and restore the depth and the current Dave Lyons file. What's the difficulty? Nuzz If you do many calls, especially error checking, the code starts mounting up Dave Lyons SUBROUTINES! Dave Lyons (Macros are evil, subroutines are good, macros are evil, subroutines are good.... :) Nuzz LOL, you have me there Dave Lyons By the way, when you create toolbox things from Dave Lyons resources, the resources you created them from have to be available--just having Sys.Resources is not Dave Lyons necessarily good enough. For ex, a control created by resource might want to load its resources Dave Lyons when it gets redrawn, so that file has to be in the search path then. Nuzz That was the problem I was having Nuzz Ok. Subroutines for me. GA and thanks Dave Lyons I still don't see why you want a particular file + Sys.Resources, excluding other files in your Dave Lyons ...chain...search path. Whatever. Nuzz because there is occasion for duplicate Id's, and if I call upon one, I want Nuzz the one in the current file. For example, an rIcon Nuzz I could easily draw the wrong Icon Dave Lyons Ummm...are you making a NewControl2 call to create an icon button control by resource ID? Dave Lyons I think I see your the difficulty.... Nuzz Yes Dave Lyons Well, okay: If the control template is in the *current* resource file, then it will get used, Dave Lyons no problem. The defproc will come Dave Lyons from Sys.Resources. Dave Lyons Or, as Matt suggested to me (and which I was going to suggest next anyway), you could load the Nuzz Right, that's why I wanted the system resources available Dave Lyons control template yourself AFA Gary J :) Nuzz Hmm, how Dave Lyons and DetachResource on it, and then do a NewControl2 by handle on that. Dave Lyons (Sorry, got interrupted.) AFA Gary J sei AFA JoeyS :) Dave Lyons (Well, it was my manager, and SEIing your manager isn't polite. :-) Coach101 no, php sei ..... plp Dave Lyons :) Coach101 Who runs the show anyway Dave :) AFA Gary J Ok, does that answer your question, Nuzz? Nuzz Ok, I think I understand (a little) Thanks. GA AFA Gary J :) AFA Gary J Ok, Scott has the next question. GA, Scott. AFL Scott Are $C1 pictures guaranteed to stay in the same format? If hardware changes AFL Scott won't most applications that save C1 pictures be broken? AFA Gary J Good question, Scott. I would assume that IF another video mode is AFA Gary J *created*, and the old mode didn't change, then we'd just have a new type AFA Gary J of screen image file to deal with. AFA Gary J But somehow I doubt that the actual layout of screen memory AFA Gary J would change, but possibly the memory ADDRESS. AFL Scott Is the recomended practice to keep a copy of all screen memory in an AFL Scott offscreen area? Dave Lyons When there's a filetype like $C1;0000, which is Dave Lyons guaranteed to be a certain length, that format will not change. It's better to use the more Dave Lyons flexible formats, like Apple Preferred. Coach101 Hey, maybe we could have a "hyperbolize memory mode" Dave Lyons What would happen if an old program tried to load an old picture in a new video mode? Good Dave Lyons Question! A2GS Well, what happens? :) AFL Scott I'm just wondering, as trying to plan ahead is an exercise in guessing... Nuzz You get an old crash :) AFA Gary J It would be nice if we would have to worry about these things some day. A2GS :) Dave Lyons Scott, I don't understand the question...why should you do all your work offscreen? AFL Scott It seems to me that the only way to be safe is to use Toolcalls to offscreen AFL Scott grafports to get the contents rather than assume everything is where it is. Dave Lyons If you want to know where the screen is, you can open a new port and look at the LocInfo at the Dave Lyons beginning of the port. Coach101 Scott, if there were a new video mode, then your program would be aware of it and your program Coach101 would be aware of the file type, so your program Coach101 could do the conversion, if there was a conversion to do in whatever way it wanted.. Dave Lyons (In the case of a machine with multiple screens, I believe this will get you the "main" screen.) A2GS Why should any OLD program even end up in a NEW video mode to begin with???? Dave Lyons A2GS, good point--it probably shouldn't. (Now, an NDA is more interesting....) AFL Scott Just so happens that part of what I'm doing is an NDA, Dave... and format AFL Scott of memory is important and it's wasteful to depend on a copy of the ENTIRE A2GS Well some if not all of us have seen what happens to a 640 pic when 320 mode A2GS is turned on. AFL Scott contents of screen memory for compatibilities sake. Just wondering what the AFL Scott line is on things like this... Use tools to get screen memory to offscreen AFL Scott areas or blast straight from Screen memory when writing? Dave Lyons The safest way is, of course, to use tools. Like PPToPort. Dave Lyons For example, if QuickDraw ever supports the 400-line mode that's available with the video Dave Lyons overlay card, screen memory would no longer be linear (so that would be a major rev to QD!). Dave Lyons That would definitely mean you couldn't do a GS/OS Read or Write directly to/from screen memory any Dave Lyons more...in fact, you couldn't even figure out where all the memory is by looking at the LocInfo for Dave Lyons a port. That would be weird. AFL Scott Ok... What do most commercial apps do? Do they build a screen in offscreen AFL Scott memory to save from or write from screen ram? AFL Scott (for the $C1 case) Dave Lyons What kind of apps, Scott? If they have a scrolling window for the pixel map they're displaying Dave Lyons then they must have a copy offscreen somewhere. AFL Scott Ok... just wondering... I know it must seem stupid, but I'm trying to be as AFL Scott safe as possible here. AFL Scott (For the record, most I've looked at save from an offscreen area).. There's AFL Scott a way to tell with out disassembling the Application if you have AO GS..:) AFA JoeyS LOL AFL Scott For the record, too.. PWG saves straight from screen memory. :) A2GS AO GS? AFA JoeyS AO.SYS16. It's a fascinating bug. :D Dave Lyons It does? Wow...they have lots of copies offscreen, right? AFA Gary J Hmmm... How can it do that, when the menu bar and tools are on screen? (PWG) Dave Lyons (Good question.) AFL Scott The pixmap is from offscreen, the other parts are straight from SHR memory. AFL Scott (in the C1 case)... I should have been clearer. Sorry. A2GS You mean the drawing area AFL Scott Drawing area is saved from offscreen, yes. Dave Lyons What's the AO bug, Joey? AFA JoeyS Scott was responsible for finding it -- wanna take it away, Scott?:) AFL Scott Naw, you do it, Joe... :) AFL Marty :) AFA Gary J I'd like to hear this :) AFA JoeyS LOL... okay: AFA JoeyS Seems that BOOT.PIC was saved by SHRConvert, which you'll know (if you've ever AFA JoeyS looked at an SHRC $C1 pic) contains "[=- Saved by SHRConvert 2.1 -=]" (or AFA Gary J yes AFA JoeyS similar) in the SCB area, after byte 200. Seems that Bill loads that pic in AFA JoeyS its entirety (including SHRC credit line) into screen RAM. Since the system AFA JoeyS doesn't normally use that part of memory, that text stays foreverrrr (nearly), A2GS Not a very smart thing to do on Jason Harpers part! AFA JoeyS getting transferred also into any other full screen pic you save. Crazy. :) AFA JoeyS Nope, it wasn't, A2GS... A2GS But cute. AFL Scott Some $C0's too.. depending on the app. AFL Marty Does it mess up any applications? A2GS shouldn't AFA JoeyS It shouldn't. AFL Scott Not yet, but the potential is there, that's why I'm really concerned about AFL Scott writing $C1's right. AFL Scott Oh, BTW, Nifty List made tracking this down really easy. Dave Lyons Hey, Nifty List 3.0 is "done" ("done" because I said "Okay, no more time...gotta give this out Dave Lyons at KansasFest!). I probably won't get a chance Dave Lyons to upload it till after the show (gotta finish preparing presentations yet!) AFL Dyfet Okay Dave...What's Nifty in the new Nifty List?? :) AFL Scott Oh... darn! I won't be at the show. :( AFA JoeyS Me either :(Dave Lyons Major features are: command modules work (you can write your own, with what I hope turns out to Dave Lyons be usable documentation on that subject), and you can make toolbox calls from the command line! AFA JoeyS Neato! :) AFA Gary J E-mail it to me, and I'll upload it then!!! :)Dave Lyons Gee Gary, would that save me time? :-) AFA Gary J :) AFL Scott Upload it on the Mac using Scheduled E-Mail, Dave... Gary can use AFE AFL Scott to move it... That way you can do it while you're asleep... if you do that, AFL Scott these days. :) AFA Gary J Yep, Scott. (I've had to do that before ) Dave Lyons I wrote a \find command in the "Goodies" module...for example 5000\find "Lyons" searches Dave Lyons all handles owned by a Desk Accessory ID for my name (probably shows more matches on my machine Dave Lyons than most people's....) Dave Lyons Oh, how 'bout 0\find [A2 #NewWindow2] ? Nuzz Now that is NIFTY AFL Dyfet :) AFL Dyfet I want a Nifty Rom :) AFL Scott It really is!!! AFA JoeyS :) me too AFA Gary J I like that feature, Dave. Can you make it search non-claimed memory as AFA Gary J well? AFL Scott But does it disassemble to disk? Had to throw that in! :) AFA JoeyS The only big thing I'd like NiftyList to be able to do would be to keep a table AFA JoeyS of user-defined labels. AFL Scott That'd be nice, too, Joe. :) AFA JoeyS It'd help a ton when disassembling AO.SYS16. :-) AFA Gary J Yes, it would. As an external file to the current data file. AFL Scott But Orca/Disassembler generates all those real nice L000xx labels! :) AFA JoeyS Ugggh, Scott. AFA Gary J Scott, how do you like Orca/Disassembler overall? (I've only used Merlin's) AFA JoeyS ORCA/Disasm is great! (even though I'm not Scott) AFL Scott I think it's pretty good, but it's prone to crashing or hanging at times. AFL Scott But then ever since I put a Visionary board in my system, I've been having AFL Scott a lot of weird things happening. Dave Lyons Scott, you can search non-claimed memory by specifying a range of addresses (but that Dave Lyons way you have to be careful to skip over $00Cxxx, $01Cxxx, $E0Cxxx, and $E1Cxxx. (I don't Dave Lyons search those with 0\find...it skips all handles with ownerID=$0000. Dave Lyons Sorry, no disassembly to disk yet--I plan to add that eventually. AFA Gary J Sounds like what I've been waiting for, Dave!! Dave Lyons No user-defined labels yet either, but I definitely want that too. Nuzz The ability to make tool calls is fantastic AFA JoeyS Agreed, Mike... I'm gonna LIKE that. Dave Lyons Yes! I love it myself, and I'm pretty adept at using \...\U from the monitor. This is a BIG Dave Lyons improvement! (Although it would help a lot to be able to hit up-arrow and go correct a typing AFL Scott Same here...it opens up a new era of experimentation! ;) Dave Lyons error on a long toolbox call. History will be in 3.1.) AFA Gary J Wow. AFL Scott NL is getting pretty big now, eh? Dave Lyons (Yeah, you can *do* toolbox calls from the monitor, but NL is less annoying, so you wind up Dave Lyons actually *doing* the experimentation, instead of considering the theoretical possibility of doing Dave Lyons the experimentation. :-) AFA Gary J :) Dave Lyons Yes, it's pretty big--on my system right now, AFA JoeyS I assume you can do something like \0 0 grafon\u (as a simple example) in NL3-- Dave Lyons it's taking up 35K for Nifty List, 58K for the data file, Dave Lyons and 2.5K for "Big Brother v0.5" and 10K for Goodies. AFA JoeyS it fills in the tool number, yes? AFA JoeyS Big Brother? Dave Lyons Joey, even better: You do _GrafOn and hit return. Dave Lyons You don't even have to capitalize it right. AFA JoeyS Rockin'! Nuzz WoW AFA JoeyS (yeah, NL never =was= case-sensitive, thank God) Dave Lyons "_" is an operator in my "expression" syntax, and you can nest them, like AFA JoeyS How do you handle return parameters on the stack? Dave Lyons _NewHandle(_multiply(3,5),_mmstartup,0,0) AFA Gary J Wow! Dave Lyons The returned parameters are the expression result, and at the "top level" (the command line) I Dave Lyons just display them. For ex, Dave Lyons _MMStartup Dave Lyons Result = $1234 AFA Gary J Nifty :) Nuzz That was the best 15 bucks I ever spent.... AFL Scott Most triumphant!!! AFA JoeyS Ooooh... {S I like it!} Dave Lyons Later it will name the parameters for you when there are several, AFL Scott Same here! Dave Lyons but now it shows them all. Like _ReadTimeHex prints Dave Lyons Result = $12341234123412341234 or something like that. AFA Gary J Hmmm. I guess I better find a ticket to Kansas real quick... :) Nuzz So, what's Big Brother? AFA Gary J The part that trashes your memory (on bank boundries :) Dave Lyons Big Brother v0.5 is HALF of what I want for Dave Lyons BB 1.0. This half that I've got so far Dave Lyons does the checksumming stuff for you (on demand, not automatically): Dave Lyons You type \addfree and it allocates most of your free memory in purgable chunks & remembers their Dave Lyons checksums. Later, after you run an app that may trash memory, you type \check and it tells you Dave Lyons if any of the areas changed (they shouldn't, because NL owns them!). 'course, it also tells Dave Lyons you that some of them got purged, if the app allocated much memory. AFA Gary J I need that feature BAD!! Dave Lyons The OTHER half of BB will be "discipline" for toolbox calls--automatic checking of the Dave Lyons parameters for most toolbox calls, warning you when something is screwy BEFORE it hoses your system Dave Lyons so bad you can't figure out what went wrong. AFA JoeyS AFL Marty ::handing Joe a tissue:: AFA JoeyS Thank you. AFL Scott When I trash memory, I trash it soooooo bad that I seldom can return to a AFL Scott DA. Dave Lyons (Also alerting you to potential problems that aren't actually causing you crashes, like Dave Lyons NDAs calling TLShutDown, or your code disposing of the handle that contains its stack, etc.). Dave Lyons Oh, Gary, I fixed my stupid bug that was trashing memory...did I mention that? I had left out a Dave Lyons carry-the-addition-to-the-high-word thing one place. It's solid now. AFA Gary J Yes, you did mention that it was fixed. AFA JoeyS May I ask a silly question? Dave Lyons yes AFA JoeyS How does Nifty-List (or MacroMate, the only other CDA that I know of that does AFA JoeyS such a thing) load a datafile(s) at install time?? Dave Lyons Easy: The system calls the CDA's "shutdown" Dave Lyons routine (the second of the two addresses in the CDA's header) whenever DeskShutDown is called, Dave Lyons and the system ("GLoader") calls DeskShutDown after it installs all the CDAs and NDAs at boot time. Dave Lyons (BTW, NL has the option of NOT loading the data file at boot, starting with 2.90.) AFA JoeyS ...and you have a flag saying if the file has been loaded. AFA Gary J Ahhh, yes. AFA JoeyS Neat! It's so obvious. THANKS! :) Dave Lyons Yeah, I have a handle to the file, and if it's NIL or if the handle has been purged I try to Dave Lyons reload it (the thing is purgable in 2.90 and later, if you configure it that way). Nuzz When Dave Updates, he UPDATES.... Those are some additions.. AFA Gary J Really. Dave Lyons (bow, bow :) AFA JoeyS {S Applause} Dave :) AFA Gary J (I can't wait!!) AFL Scott Dave, use scheduled Email... you'll save time! Nuzz you deserve the bows. I can't imagine not having NL installed AFA Gary J :) ;) Dave Lyons (Well, my plane leaves in 14 hours & I'm not ready, so I probably won't get to upload it tonight :( ) AFL Scott And we'll get Nifty List 3.0 earlier! :) Dave Lyons (I don't have it packed or anything, Scott....) AFL Scott :(((( Well, I guess we'll have to wait! Enjoy Kansas, though, Dave! Matt DTS He left out a stack warning and won't put it in, declaring 3.0 "final". :P Dave Lyons Yes, I think I will...I just hope people bring lots of good questions for me to answer, given the Dave Lyons probably-relatively-sorry-state my presentations are going to be in. Dave Lyons Matt wants me to point out that NL can't always Dave Lyons get a 2K stack when you enter, so you may have a 1-page stack, which is inadequte for *some* Dave Lyons toolbox calls. Dave Lyons NL 3.1 is going to print a warning whenever you enter, if it couldn't get the stack. Dave Lyons Other stuff... \files shows open files (name and refnum and access), \oomq \runq \notifyq for Dave Lyons dumping the out-of-mem q, the run queue, and the OS Nofity_Proc queue. Dave Lyons \map for dumping resource maps. AFL Scott And the doc is only 1000 pages, right? :) AFA JoeyS LOL AFA Gary J How many of these features already exist to some degree in the current version, AFA Gary J and just aren't connected? AFA Gary J (You must be really hammering out the code, otherwise :) Dave Lyons In 2.92, Gary? The *services* used by command Dave Lyons modules were partly there in 2.92, but I added a lot more while writing BB 0.5 and Goodies 1.0. Dave Lyons I don't *think* I had any Expression stuff in 2.92...can't even remember now! AFA Gary J It sounds like you've added some really useful features. AFL Dyfet Yes, perhaps a few :) AFA Gary J (I'm impressed) AFA JoeyS :) Dave Lyons Did I mention the ":" command for storing into memory? AFA Gary J Ahhh! I was just going to ask about storing into memory :) AFA JoeyS YAYYYYY! Dave, THAT'S yet another thing you desperately needed... terrific! Dave Lyons address: expression-list Dave Lyons 0/300:1 2 3 4 "hello" 5 6 _MMStartUp 8 9 A :-) AFA JoeyS Dave Lyons Yeah, all I need now is a \fill command (not written yet) and I may not have to drop in the AFA JoeyS Can you also do something like 0/300:JMP 0300 ? AFL Marty You need a splash guard for that keyboard, Joe. AFA Gary J (I've had to use * many times in and out to get done what I need to do) Dave Lyons monitor much at all any more, except when I crash during boot before NL gets loaded in.... Dave Lyons Joey--nope, sorry. I have *definitely* thought of that, though! Some day maybe an Dave Lyons allowable expression form will be 'ldx #NewHandle' or whatever--anything I can "miniassemble"--but AFA Gary J Just hook up with the mini-assembler. Dave Lyons right now I don't have a miniassembler. AFA JoeyS Right, what Gary said -- can't you pass something to the mini-assembler, or Dave Lyons I don't think there's a relaible way to call the ROM miniassembler...anyway, I would want to AFA JoeyS copy the algorithm used in there? Dave Lyons suport my expression stuff inside the operand fields (as in 'ldx #NewHandle' --> ldx #$0902). Dave Lyons There are also problems with relative branches--how can I evaluate 'BRA $1234' if I don't know where Dave Lyons it's going to be stored? I suppose I can require Dave Lyons the operands to be relative, but that's boring and somewhat annoying. Dave Lyons Are there any other Monitor features I'm missing? AFA JoeyS The better question is, why doesn't Apple REPLACE the monitor with Nifty-List AFA JoeyS on the ROM 04 GS?? AFA Gary J :) Dave Lyons (Hmmm, that sounds like a multi-part question, Joey.... :-) AFA JoeyS LOL... no, I'm not leading the witness, your honor. :) AFL Dyfet Shh...you weren't supposed to leak that yet, Joey! ;) Dave Lyons Anyway, I still *want* the monitor...there are times you couldn't use NL reliably the way it Dave Lyons stands now--it allocates memory on entry, for example (for a stack). Dave Lyons It also makes quite a few toolbox calls, so it might be hard to debug an Alpha toolbox or ROM Dave Lyons using Nifty List. Dave Lyons I wouldn't mind having NL in ROM though...may have to look into making myself one (as a ROMDISK Dave Lyons ROM, for example.) AFA JoeyS :) AFA Gary J :) Nuzz How about a DEC to HEx to Bin converter Dave Lyons .) = ). AFL Scott To tell you the truth, I'm surprised Apple hasn't bought it from you, Dave. Dave Lyons Hmmm...gee, I guess I don't have a way to display expressions in decimal right now, do I? AFA Gary J It SHOULD be shipped with GSBug Dave Lyons I know Mike, how 'bout when you get your hands on the Module Writing docs, you write a little AFA Gary J Yes, Mike's suggestion could be useful. Dave Lyons \dec command that calls nlGetAGlobal or nlEvalExpr and prints the result in decimal? Nuzz I'll give it a try Dave Lyons :) (I'll do it for 3.1, too, or Goodies 1.1, or whatever.) AFA Gary J How long ARE the docs? AFA Gary J (is 1000 pages that far off? :) Dave Lyons Let's see... Dave Lyons 2.5 pages release notes from 2.92 to 3.0, and Dave Lyons 11 pages in the "manual" (pretty crappy manual, really--almost all the info is straight from Dave Lyons the online help), and Dave Lyons The docs for writing modules are currently 6 pages, which is not a lot, but you get an example Dave Lyons module (4 pages) and an Equates file (1.5 pages), so it should be Dave Lyons doable. AFA Gary J You can just update the docs with Nifty List Tech Notes as you have time to AFA Gary J do so :) Dave Lyons (The sample is in MPW IIgs Assembly...so shoot me. :) Nuzz I'll take it even if its in Logo AFA Gary J :) AFA Gary J Right, Mike. Dave Lyons Actually, I *sort of* have a decimal converter...like this: Dave Lyons _Int2Dec(xxx,300,10,0) 300;h Dave Lyons (Well, it works, but it's harder than dropping into the monitor and typing xxx= and then =xxx to see Dave Lyons which one of those is h>d and which is d>h. :-) Nuzz LOL I always get them confused AFA Gary J Yeah, me too. Dave Lyons (Me too!) AFA Gary J I ALWAYS have to do both. AFA Gary J :) Nuzz Sometimes I do both Twice to make sure Dave Lyons For the record, it's HEX=DECIMAL, so you type 100= and get 256 or =256 and get 100. Dave Lyons But I never remember that. AFA Gary J (I generally pick the WRONG one I'm looking for first :) Dave Lyons Oh, I forgot to mention I *definitely* have a decimal to hex converter. I guess I never Dave Lyons thought of using it that way! Dave Lyons In an expression, #xxx is a decimal number (well, if it doesn't start with a digit it's a Dave Lyons toolbox call number by name), so you just type Dave Lyons `#256 and get Dave Lyons Expression = $0002:00 01 Dave Lyons (Yeah, that's a crappy way to display the expression result...put it in that way to test Dave Lyons the parser and never changed it. "_" for tool calls is a shortcut into an expression and Dave Lyons displays results its own way. Dave Lyons Hey, that means you can do this: _LoWord(#256) and get Result = $0100. Cool, sort of :) Dave Lyons (Yes, ` evaluates an expr and displays it.) Nuzz Gary, how about having a NiftyList night on here Dave Lyons (Cool by me, but at least a week or so after I get it uploaded here....) AFA Gary J Mike, we're doing a debugging session at the end of the month. I'm AFA Gary J certain Nifty List will come up there... but I'd like to see Dave do a night AFA Gary J of this stuff too. Dave Lyons Well, I gotta finish my Kansas stuff, so it's time to take off.... Dave Lyons (Ask me *after* KF, Gary!) Bye! Nuzz I think everyone is going to need some time to recoup from KC