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