130XE Double Feature
By Nat Friedland, Antic Editor
Bill Wilkinson cares. Antic has been "blessed" on a number of occasions by long, irate letters from the founder of Optimized Systems Software (creators of BASIC XE, MAC/65, ACTION!, etc.), taking us to task for some offense or other against his vision of pure Atari knowledge.
Often enough, we agree with the Wilkinson critiques and sincerely try to mend our ways. Even when we don't agree with Bill's specific objections, we pay close attention to what he has to say. Not only is Bill Wilkinson among the leaders in independent Atari software development, he's also somebody who's concerned enough about Atari issues to regularly write Antic three-page, single-spaced letters arguing his viewpoints.
HOW IT STARTED
Our latest "letter-bomb" from Wilkinson concerned an October, 1986 I/O question about the extra memory in the Atari 130XE. Never one to mince words, Bill informed Antic that he considered our answer "incorrect, incomplete and misleading" and full of "half-truths."
Having gained our full attention, Bill then proceeded to demonstrate how he felt the 130XE RAM banks should be taught. This demo consisted of a detailed article which he said he hoped we would publish. No problem. We`ve been trying to get him to write more Antic articles for years. (Wilkinson wrote the original TYPO automatic listing proofreader program.)
Bill's article in this issue, Understanding the 130XE RAM Banks adds many useful and practical details to the information that Antic published in Ian Chadwick's 130XE Memory Management (November, 1985). We're delighted to be able to bring Bill's words of wisdom to you--even under these somewhat unusual circumstances.
WAS ANTIC WRONG?
Brian Schade's question in the October, 1986 I/O Board was short and specific. He asked, "What is the significance of having 128K memory in the Atari 130XE, if only 16K can be accessed at one time, per program?" Under Antic's usual deadline and space pressures, this did not seem to call for a vast amount of technical detail.
So our technical staff opted for a short, admittedly general answer that essentially was meant to convey to a large audience (an audience varying widely in technical knowledge) the overall approach to accessing more than one bank of extra RAM in the 130XE. As we wrote--correctly--in the October I/O, accessing the 130XE RAM banks does indeed come down to "virtually instantaneous switching" between separated active blocks of memory.
By now--with the wonderfully clear understanding of hindsight--we can see that although our answer was not really incorrect, we unfortunately left room for some misinterpretations by keeping the information short and general. To do anything useful with 130XE RAM banks, an advanced programmer would need to know details about how only certain memory banks are available, only under certain conditions and only via certain programming techniques.
To adequately explain all this would require an article of at least a thousand words. Fortunately, Bill Wilkinson took the bait and saved us the work of writing just such an article. Yes, we confess... the whole thing was just a sneaky plot to get Bill to write something for Antic again! (Big grin.)
Several of the conclusions Bill came to in his excellent article really made the Antic technical staff sit up and take notice. Wilkinson stated, "Writing programs to use the 'extra' memory of a 130XE is not at all easy (except with BASIC XE). . .if you are not at least an intermediate level assembly language programmer, don't mess with the extra RAM banks."
Not that we exactly disagree with all that. BASIC XE an OSS product--is clearly the most accessible tool for controlling the 130XE's extra memory. And for those who try to access the full memory of the 130XE without a very clear understanding of memory addresses, Bill's article lists a number of the interesting ways you can crash your program.
However, it did seem to the Antic technical staffers that practical 130XE memoy bank switching should be available from standard Atari BASIC if sound programming methods are used. The result of our explorations is this issue's 130XE Slide Show by Bill Marquardt (with additional help from Patrick Bass and Charles Jackson).
130XE Slide Show is a short, clean program that loads two different Micro-Painter pictures into each of the four extra memory banks and flips between the eight pictures so fast that the eye can barely follow. We have left it running all day long without any crashes.
But Bill Marquardt agrees with Wilkinson that he couldn't have written a bank switcher in BASIC without previously gaining extensive programming experience in assembly language. For more details about the offbeat techniques required, see the 130XE Slide Show article.