Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.sys.apple2.programmer > #5076
| 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 |
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
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