320 lines
15 KiB
Plaintext
320 lines
15 KiB
Plaintext
America Online
|
|
APPLE II DEVLOPMENT FORUM CONFERENCE LOG
|
|
Tuesday, April 10, 1990 10:00 pm eastern time
|
|
Topic: Desktop Programming in Assembly Language
|
|
Forum Leader: Dave Sugar (AFL Dyfet)
|
|
|
|
|
|
AFA Gary J Anyone know of a utility for ORCA shell to allow physical
|
|
appending of two
|
|
AFA Gary J source files?
|
|
Dave Lyons Other than Cut and Paste, Gary? Doesn't that work?
|
|
AFA Gary J Yes, that works, but it very tedious. (I have about 32 little
|
|
data files
|
|
AFA Gary J that I'd like to stick together :)
|
|
Coach101 If the names are subject to wildarcarding.....
|
|
Coach101 You could use "type wildcardfilename >newfile
|
|
Coach101 ga
|
|
AFA Gary J Hmmm. That's an interesting idea, Coach. I hadn't thought of
|
|
that.
|
|
AFA Gary J That should work.
|
|
Matt DTS Is this an APW question?
|
|
AFA Gary J Thanks!
|
|
AFA Gary J APW or ORCA.
|
|
AFL Dyfet I think it kinda is Matt :)
|
|
Coach101 I send the bill :)
|
|
AFA Gary J (ORCA, really)
|
|
Matt DTS Part of the APW tools/update package is an APW tool called "JOIN"
|
|
that does that to two files...
|
|
Matt DTS (necessary for LinkIIgs to combine .A and .ROOT files)
|
|
AFA Gary J JOIN? Sounds good. I wonder if Mike's got something like that
|
|
coming too.
|
|
Matt DTS You can use the APW tools package with ORCA/M.
|
|
AFL Dyfet Well, then, I guess we will officially get started...
|
|
AFL Dyfet Good evening and welcome to the Apple II Development Forum.
|
|
Tonight's topic is
|
|
AFL Dyfet Assembly Language Programming for Desktop Applications. We will
|
|
be using
|
|
AFL Dyfet protocol tonight, which means that if you wish to ask a question,
|
|
please enter
|
|
AFL Dyfet a '?' on a line by itself and if you wish to comment on the
|
|
question being
|
|
AFL Dyfet asked, enter a '!' on a line by itself. You will be called in
|
|
turn. I believe
|
|
AFL Dyfet Derich is first and has the floor now for his questions. GA
|
|
Derich.
|
|
Derich Would very much like to learn how to obtain excellent
|
|
programming
|
|
Derich tips for a novice assembly language programmer
|
|
Derich Just obtained APW and Merlin... now need some help on
|
|
Derich getting started. Bouhgt some good books...
|
|
Derich ...END OF TRANSMISSION
|
|
Derich ;)
|
|
AFL Dyfet GA Gary...
|
|
AFA Gary J A GOOD book for learning APW is "Programming the Apple IIGS in
|
|
Assembly
|
|
AFA Gary J Language" by Ron Litchy and David Eyes.
|
|
Derich Hang on..
|
|
Derich Yep... I have it.
|
|
AFA Gary J It takes you step by step through the creation of a desktop
|
|
program.
|
|
Derich But I lost the addenum of Hello World program... anyone have the
|
|
correction?
|
|
AFA Gary J Good... That'll put you in good shape :)
|
|
AFA Gary J I don't think I do...(If I did, I lost it too :)
|
|
AFA Gary J GA
|
|
Derich That's the first book I bought after obtaining APW.
|
|
Derich Is there a way to contact Mr. Eyes or Mr. Litchy via computer?
|
|
AFA Gary J Ron Litchy was here last week
|
|
AFA Gary J (at this meeting)
|
|
Derich Followed by ICONIX GS, and Apple IIGS Techinical Reference.
|
|
Derich Aw, shoot!
|
|
Matt DTS (or his close associate, Ron Lichty)
|
|
AFA Gary J :) Right, Matt.
|
|
AFA Gary J I think that's his screen name too.
|
|
AFA Gary J I think Roger Wagner Publishing has a book out for Merlin (but
|
|
AFA Gary J don't remember the name) GA
|
|
AFA Gary J ?
|
|
AFL Dyfet GA Gary...
|
|
AFA Gary J I've seen lots of info on this in the past, and have been trying
|
|
to round it
|
|
AFA Gary J up for a project I'm working on....
|
|
AFA Gary J What's the proper procedure for making a SHR Pic file the sole
|
|
open window
|
|
AFA Gary J on the screen (full screen) so that dialogs and that sort of
|
|
thing
|
|
AFA Gary J go away properly when they're closed?
|
|
AFA Gary J (Make the PIC like the desktop background, that is)
|
|
AFA Gary J GA
|
|
AFL Dyfet GA Matt...:)
|
|
Matt DTS Well, one way to do it...
|
|
Matt DTS ...is to create a window with whatever frame you choose
|
|
off-screen...
|
|
Matt DTS (for example, to set the coordinates so that any title bar would
|
|
be under the menu bar)
|
|
Matt DTS And handle update events the way you like. That way the window's
|
|
content area occupies the same
|
|
Matt DTS space as "the desktop". A disadvantage is that if you put another
|
|
window (like an NDA window) in
|
|
Matt DTS front of it, any click on the content of your big window will seem
|
|
to make the DAs close. They're
|
|
Matt DTS really open, but behind a big window. Several games I've seen do
|
|
this (Tetris, Bounce-It! I think)
|
|
Matt DTS GA.
|
|
AFA Gary J That's the idea I want, but I want to make the menu bar disappear
|
|
from time
|
|
AFA Gary J to time. That would leave the title bar showing, wouldn't it?
|
|
AFA Gary J GA
|
|
Matt DTS If you make the window so that the title would be underneath the
|
|
menu bar, yes it would. :)
|
|
Matt DTS Hiding the menu bar is not a great thing, anyway.
|
|
Matt DTS GA
|
|
AFA Gary J Are there any other alternatives? (Not that I dislike your idea,
|
|
Matt, but
|
|
AFA Gary J just want to explore the possibilities :)
|
|
AFA Gary J GA
|
|
Dave Lyons First, you can always make your window even taller, so that the
|
|
title bar is up above the top of the
|
|
Dave Lyons scrn even when the menu bar is hidden.
|
|
Dave Lyons The other approach is to use a new-with-5.0 feature & put a
|
|
message
|
|
Dave Lyons in the MessageCenter for the Window Manager to use. That may not
|
|
be very workable if you want this ju
|
|
Dave Lyons just for inside your application.
|
|
Dave Lyons Finally, you could use the Desktop call in
|
|
Dave Lyons the Window Manager to set a pointer to your own routine to draw
|
|
the desktop. ga
|
|
AFA Gary J How does something like Deluxe Paint do it, where NDA's do work
|
|
properly?
|
|
AFA Gary J :) Nifty list to the rescue :)
|
|
Dave Lyons Haven't tried Deluxe Paint, but if you want to know
|
|
Dave Lyons whether it's a window or not, fire it up and go into Nifty List
|
|
(which, of course, you keep
|
|
Dave Lyons in your machine at all times, just to settle questions like this),
|
|
and type ~w to see the
|
|
Dave Lyons window list.
|
|
AFL Dyfet Of course, Dave :)
|
|
Dave Lyons :)
|
|
AFA Gary J :)
|
|
AFA Gary J Thanks! GA
|
|
Dave Lyons (They think I'm not serious about having it there all the time!
|
|
Have you ever seen me
|
|
Dave Lyons around a GS without a Nifty List in it? It's not a pretty
|
|
sight.)
|
|
JSchober (Dave's using a custom GS with NiftyList in ROM :)
|
|
AFA Gary J MINE is there all the time! :)
|
|
Dave Lyons (The thought has crossed my mind, Joe...NL is *not* even close to
|
|
being ROMmable at the moment, tho.)
|
|
AFL Dyfet Okay, I believe Markus has the next question...GA Markus...
|
|
AFL Scott <---Goes nowhere without NiftyList
|
|
Markus I have two questions about the TaskMasterDA call...
|
|
WinkieJim Maqybe that's what happened to ROM 02 :) :)
|
|
Markus Now, when it handles a pop-up control in a nda window, how far
|
|
does it go...
|
|
Markus and what is the event type it eventually returns? GA
|
|
WinkieJim GA Dave...you're the expert...
|
|
Dave Lyons Okay...I believe it returns wInControl and gives you (in one of
|
|
Dave Lyons those extra wmTaskData fields...don't recall which one) the
|
|
longword ID of the pop-up control that
|
|
Matt DTS (in TaskData4, actually)
|
|
Dave Lyons you clicked in. If you want to know the new setting, you can go
|
|
do a GetCtlValue on the
|
|
Dave Lyons control handle, which you can get from GetCtlHandleFromID.
|
|
(Right, Matt?) ga
|
|
WinkieJim Exactly...you have to call trackcontrol...
|
|
WinkieJim ...with the control handle you get from TMDA...
|
|
WinkieJim it didn't fo me...it handles the initial click on the
|
|
control...then it's up to
|
|
WinkieJim you.
|
|
Markus You have to call trackcontrol? Ithought it highlighted the new
|
|
selection for yo
|
|
Dave Lyons <flip, flip, flip>
|
|
JSchober (why is Dave flipping?)
|
|
Matt DTS You do *not* have to call TrackControl IF you set the TaskMask bit
|
|
telling TaskMaster to do so.
|
|
AFL Dyfet Dave needs to make a 'Nifty Man' :)
|
|
AFA Gary J (Dave = gymnist)
|
|
Matt DTS (Dave is flipping through TB Ref Vol. 3, most certainly)
|
|
Markus Ahhh, ok.
|
|
Dave Lyons I'm looking in TB Ref 3 in the
|
|
JSchober (oh, PAGES flipping -- I thought it was DAVE flipping. IGSC...)
|
|
Matt DTS "gymnast". I think you've got Dyfet's Disease, Gary.
|
|
WinkieJim Well, darn...I had to use track control in SuperInfo...might have
|
|
made a boo-
|
|
WinkieJim boo somewhere...
|
|
Dave Lyons TaskMasterContent pseudo-code (TaskMaster[DA] calls
|
|
TaskMasterContent when it sees you clicked
|
|
Dave Lyons in a window content, and it claims to call TrackControl for
|
|
you--no problemo.
|
|
Markus My second question is about the pointer to the task record handed
|
|
to you by...
|
|
Markus the application...
|
|
Tamira Dyfet's Disease????
|
|
AFL Dyfet Speeling :)
|
|
Markus the pointer comes in the x and y registers right? I've had
|
|
problems copying the
|
|
Markus data to a new extended record.
|
|
Markus I save the x and y info in a location and use it as a pointer and
|
|
use
|
|
Markus indirect adressing to copy it into my record...but nothing seems
|
|
to happen.
|
|
Markus TaskmasterDA doesn't update the window or anything. :(
|
|
Markus GA
|
|
Dave Lyons Jumped the gun...I was going to ask "What kind of problems." No
|
|
data is getting
|
|
Dave Lyons copied? Guess we'll have to see some actual code on that one.
|
|
Did you set up a "stack frame" so
|
|
Dave Lyons that you have some direct-page locations to use for indirect
|
|
addressing ("lda [1],y", etc)? Using
|
|
Markus No, I never push x and y onto the satack.
|
|
Markus er, stack :)
|
|
Dave Lyons direct-page in your NDA without setting the D register is a
|
|
definite no-no.
|
|
Markus I use long-indexed, sorry.
|
|
Dave Lyons Okay, so how -are- you copying it? Don't understand. Are you
|
|
setting the Bank register?
|
|
Coach101 Long-Indexed addressing Dave
|
|
Matt DTS Different people call addressing modes different things. Give an
|
|
example, someone.
|
|
Markus I don't set the bank register.
|
|
Dave Lyons How can you read from an address in XY using long-indexed
|
|
addressing? LDA >$123456,X?
|
|
Markus I save the x y address in a location called HisTaskRecord.
|
|
WinkieJim He probably saves the X & Y reg right after the LDA
|
|
instruction...
|
|
Markus and I do a LDA >HisTaskRecord,X.
|
|
Dave Lyons Ah. Then you're loading the data stored at the label
|
|
HisTaskRecord, when you
|
|
Dave Lyons *want* to be loading the data that those first four bytes point
|
|
to.
|
|
Markus Hmm, I thought I used the indirect mode though...
|
|
Markus so it treaded HistTaskRecord as a pointer.
|
|
Dave Lyons Well, I betcha didn't, because there is no indirect mode that
|
|
doesn't require the pointer to be on
|
|
Dave Lyons direct page.
|
|
Markus Yep. I see it now. Thanks. :) I feel kinda foolish.
|
|
Markus GA
|
|
Dave Lyons You can
|
|
Dave Lyons always do a BlockMove if setting up direct-page is painful.
|
|
Dave Lyons By the way, TastMasterDA *can* result in your
|
|
Dave Lyons window getting updated, if you call it in response to an update
|
|
event that you receive, and you have
|
|
Dave Lyons the update bit turned on in the TaskMask, and your window has a
|
|
content-draw routine. GA
|
|
Markus Isn't there a way to use the stack addressing modes?
|
|
Markus (to indirectly copy the record)
|
|
Markus GA
|
|
AFL Dyfet GA Dave...
|
|
Dave Lyons (If Matt's not taking that part of the ?, then--
|
|
Dave Lyons sure, you can always PHD, PHq PHr, TSC, TCD, ... LDA [1],Y ... PLX
|
|
PLX PLD (where q and r are
|
|
Dave Lyons either X and Y or Y and X...can't remember which way it passes it
|
|
to you). To use the weird
|
|
Dave Lyons addr mode "($xx,S),Y" you would need to set the Bank register
|
|
first, which is more of a pain than
|
|
Dave Lyons using a bit of stack space as direct-page space. GA
|
|
Markus Ok, thank you. I'm done.
|
|
Matt DTS Also please take the following notes - there will be a quiz:
|
|
Matt DTS 1) NDAs are not passed *task* records, they are passed *event*
|
|
records. There is an important
|
|
Matt DTS difference.
|
|
Matt DTS 2) For some reason, TaskMasterDA needs the extended fields (those
|
|
not in the Event record also)
|
|
Matt DTS to be zeroed on the first call, so make sure you copy the values
|
|
from the event record into a nicely
|
|
Matt DTS clean block of memory. Without doing so, it gets really
|
|
confused.
|
|
Matt DTS GA.
|
|
Markus :) Got it on paper.
|
|
AFL Dyfet Okay, do we have any more questions or comments for tonight??
|
|
Coach101 One, generic, ? for Matt...
|
|
Coach101 Sometime back, in this Forum, we were discussing paper vs. AW
|
|
manuals
|
|
Coach101 and the subject of GS/OS III and TB III as either Beta or AW came
|
|
up
|
|
Coach101 as a "How do the developers feel question". Are these two
|
|
valuable
|
|
Coach101 manuals progressing well towards publication? (if you can
|
|
comment) ga
|
|
Matt DTS I don't have any record of any "GS/OS III" manual. In fact, I
|
|
don't know of any Apple II manual with
|
|
Matt DTS any Roman numeral in the title (other than the "II" in "Apple II",
|
|
natch.)
|
|
Matt DTS Toolbox Reference volume 3 is in production at Addison-Wesley, to
|
|
my knowledge.
|
|
Dave Lyons (Good answer.)
|
|
Coach101 <---- Load my nitpicker rocket launcher!
|
|
JSchober :)
|
|
AFA Gary J :)
|
|
Matt DTS GS/OS Reference (including System Software 5.0) is in final draft
|
|
stages, and will go to AW (at least,
|
|
Matt DTS we currently plan it to do so) when it's ready. Could be within
|
|
the month.
|
|
Matt DTS We currently do *not* plan to send Apple IIc Technical Reference,
|
|
Second Edition to Addison-Wesley
|
|
Matt DTS since sales of its predecessors have been so slow. So don't be
|
|
waiting for that one - call APDA now.
|
|
Matt DTS GA.
|
|
Coach101 Matt, if you could give me the coordinates of your home, I will
|
|
adjust the
|
|
AFA Gary J heheh LOL!
|
|
Coach101 the targeting of the next Trident launch :)
|
|
Tamira LOL
|
|
Matt DTS Go take a pill of some kind. Next?
|
|
Dave Lyons (There's some guy on InterNet who signs his notes with ICBM
|
|
coordinates after the others....)
|
|
JSchober :)
|
|
JSchober (Murph Sewall does that, doesn't he?)
|
|
A GibberFC Thats our problem Matt... We are taking too many pills <grin>
|
|
AFL Dyfet Okay, GA Gary...
|
|
AFA Gary J Does anyone know if there's a driver available for GS/OS that'll
|
|
allow the
|
|
AFA Gary J ImageWriter LQ to work on the GS to it's fullest potential?
|
|
AFA Gary J (Or even close to it? :)
|
|
AFA Gary J GA
|
|
Matt DTS Still a coming attraction. GA.
|
|
AFA Gary J Ok (That's what I though). Thanks.
|
|
AFA Gary J GA
|
|
AFA Gary J though = thought :)
|
|
AFA Gary J (Before Matt corrects me :)
|