textfiles/apple/ADC/adv.900717

800 lines
37 KiB
Plaintext

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. <grin>
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 <snicker> 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 <drool>
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 <drooling again>
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