Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.sys.apple2.programmer > #5076

Re: Assembly 80 column text

Newsgroups comp.sys.apple2.programmer
Subject Re: Assembly 80 column text
From Michael J. Mahon <mjmahon@aol.com>
References <10807d9e-38d7-41e0-b6bb-bf4b473626db@googlegroups.com> <e6535b35-f7e0-4bd7-9e22-51ed5b41768e@googlegroups.com> <dog_cow-1554943628@macgui.com> <92319561-05d3-499c-b42f-dd02d85e8f88@googlegroups.com>
Message-ID <jMWdnbIceuHyuC3BnZ2dnUU7-RXNnZ2d@giganews.com> (permalink)
Date 2019-04-12 00:43 -0500

Show all headers | View raw


Du Hast <duhast6377@gmail.com> wrote:
> On Wednesday, April 10, 2019 at 8:50:57 PM UTC-4, D Finnigan wrote:
>> Du Hast wrote:
>>> 
>>> Ok, but actually according to What's Where that routine just prints
>>> blanks.
>>> Is there any really detailed breakdown of the entry points or is basically
>>> you have to go through the source code and figure it out?
>>> 
>> 
>> You can make your own entry points where ever you want. But for ROM
>> compatibility, you're only supposed to use Apple's published entry points.
>> They really bent over backwards to ensure that these entry points stayed the
>> same throughout ROM revisions.
>> 
>> Apple published the Monitor ROM entry points in its Apple II Reference
>> manuals for Apple II, II Plus, IIe, IIc, and so on.
>> 
>> -- 
>> ]DF$
>> The New Apple II User's Guide:
>> https://macgui.com/newa2guide/
> 
> I've been reading the manuals and what I'm not finding is what is the
> difference between the entry points.  The clear line example:
> 
> CLEOLZ $FC9E
> F.CLEOLZ $C19C
> B.CLEOLZ $C1D9
> X.GSEOLZ $CD4E
> 
> Apple references state the first address.  What's Where describes all the
> others as "entry points for the clear line subroutine".  Just go with
> Apple?  How do you know what the others do besides trial and error or
> studying all the code?  The C series are in the 80 column card?
> 

In the case of the above labels (but without looking at the monitor listing
:-), it looks to me like the only actual entry point is CLEOLZ. The other
labels look like labels that the main entry point transfers to in order to
perform its function. For example, I’d guess that X.GSEOLZ is the routine
added to the monitor to support the IIgs, and that the main entry point
goes here after determining that it’s running on a IIgs.  The other two
labels seem likely to be used in the stubs and vectors needed to transfer
to code in a different ROM bank. 

Listings like “What’s Where...” are most useful for reverse engineering
code, by providing hints about the purpose of a CALL or JSR. I don’t find
them particularly useful when writing code. 

Certainly these lists are no substitute for reading and understanding the
code, especially since the WW listings seldom describe registers preserved
or any “side effects” of the entry point. 

While reading code may seem like non-productive work, practice in reading
and understanding code is one of the very best ways to master assembly
language—especially when the code you’re reading is masterful code. ;-)

The monitor, particularly the original (the ][ and ][+), is very pretty
code, written mostly by Woz and his friend Allen Baum. Every time I read a
few pages I learn a new technique!  

Later monitors also contain fine code, but adding functions while
preserving the original entry points and visible memory footprint requires
a lot of dancing around that interferes with the original esthetic—or maybe
it’s just differently pretty:  in its achievement of backward
compatibility.  :-)
-- 
-michael - NadaNet 3.1 and AppleCrate II:  http://michaeljmahon.com

Back to comp.sys.apple2.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Assembly 80 column text Du Hast <duhast6377@gmail.com> - 2019-04-08 18:23 -0700
  Assembly 80 column text gids.rs@sasktel.net - 2019-04-08 18:57 -0700
    Assembly 80 column text gids.rs@sasktel.net - 2019-04-08 18:59 -0700
      Assembly 80 column text gids.rs@sasktel.net - 2019-04-08 19:06 -0700
        Assembly 80 column text Antoine Vignau <antoine.vignau@laposte.net> - 2019-04-09 06:19 -0700
          Re: Assembly 80 column text Du Hast <duhast6377@gmail.com> - 2019-04-09 18:23 -0700
            Re: Assembly 80 column text gids.rs@sasktel.net - 2019-04-09 19:51 -0700
              Re: Assembly 80 column text Du Hast <duhast6377@gmail.com> - 2019-04-10 17:25 -0700
                Re: Assembly 80 column text D Finnigan <dog_cow@macgui.com> - 2019-04-11 00:50 +0000
                Re: Assembly 80 column text Michael J. Mahon <mjmahon@aol.com> - 2019-04-10 20:40 -0500
                Re: Assembly 80 column text Du Hast <duhast6377@gmail.com> - 2019-04-11 19:18 -0700
                Re: Assembly 80 column text Antoine Vignau <antoine.vignau@laposte.net> - 2019-04-11 21:26 -0700
                Re: Assembly 80 column text Michael J. Mahon <mjmahon@aol.com> - 2019-04-12 00:43 -0500
                Re: Assembly 80 column text Antoine Vignau <antoine.vignau@laposte.net> - 2019-04-12 09:59 -0700
                Re: Assembly 80 column text Michael Pohoreski <michael.pohoreski@gmail.com> - 2019-04-12 13:17 -0700
                Re: Assembly 80 column text Antoine Vignau <antoine.vignau@laposte.net> - 2019-04-12 14:20 -0700
                Re: Assembly 80 column text Michael Pohoreski <michael.pohoreski@gmail.com> - 2019-04-12 15:21 -0700
                Re: Assembly 80 column text Michael J. Mahon <mjmahon@aol.com> - 2019-04-12 17:18 -0500
                Re: Assembly 80 column text Du Hast <duhast6377@gmail.com> - 2019-04-12 15:15 -0700
                Re: Assembly 80 column text Michael J. Mahon <mjmahon@aol.com> - 2019-04-12 17:25 -0500
                Re: Assembly 80 column text gids.rs@sasktel.net - 2019-04-12 19:08 -0700
                Re: Assembly 80 column text gids.rs@sasktel.net - 2019-04-10 21:52 -0700
                Re: Assembly 80 column text James Davis <JPD.Enterprises@outlook.com> - 2019-04-11 19:19 -0700

csiph-web