Master Memory Map for the Atari
Total Page:16
File Type:pdf, Size:1020Kb
MASTER MEMORY MAP FOR THE ATARI CRAIG PATCHETT and ROBIN SHERER A Reston Computer Group Book Reston Publishing Company Inc. A Prentice-Hall Company Reston, Virginia i Library of Congress Cataloging in Publication Data Patchett, Craig. Master memory map for the Atari. “A Reston Computer Group Book.” l. Atari computer-Programming. 2. Memory maps (Computer science) l. Sherer, Robin. 11. Title. QA76.8.A821,38 1984 001.6412 84-476 ISBN 0-8359-4242-2 Copyright 1984 by Educational Software, inc. Atari is a registered trademark of Atari, Inc. Master Memory Map, Prototype, Professor von Chip, and Nerdwell are trademarks of Educational Software, inc. Edited by Graham Patchett and Sylvia I. Smith Illustrated by Frank Hill All rights reserved. No part of this book may be reproduced, in any way or by any means, without permission in writing from the publisher. 10 9 8 7 6 5 4 3 2 1 Printed in the United States of America ii Contents Preface v Glossary viii What is a Memory Location? 1 Bits and Bytes 2 How to PEEK 4 How to POKE 5 ROM and RAM 5 Computer Mathematics 6 Hexadecimal Numbers 9 Decimal to Hex 10 Hex to Decimal 11 How to Read the Memory Map 12 Page Zero 14 The Floating Point Package 60 Page One 64 Pages Two through Four 65 Input/Output Control Blocks (IOCBs) 138 Page Six 147 Page Seven, Eight, Nine 148 Special Chips and ROM 157 POKEY & Sound 175 Timers 176 The Operating System 204 Floating Point Package 205 The Character Set 210 Vectors and Vector Tables 211 CIO Routines 217 Interrupt Handler Routines 219 System VBLANK Routines 219 SIO Routines 220 Disk Interface Routines 222 Printer Handler Routines 223 Cassette Handler Routines 223 Monitor Routines 224 Display Handler Routines 225 Screen Editor Routines 226 Keyboard Handler Routines 226 More Display Handler Routines 227 Tables, Tables, and More Tables 228 One More Keyboard Routine 228 That’s All Folks 229 iii APPENDICES Appendix One – Designing Your Own Character Sets 230 Appendix Two – Player/Missile Graphics 238 Appendix Three – Designing Your Own Graphics Modes 256 Appendix Four – GTIA Graphics Modes Nine, Ten, and Eleven 261 Appendix Five – The Different Versions of the OS 267 Appendix Six – Basic Bugs 269 Appendix Seven – Input/Output 271 Appendix Eight – IOCB Command Byte Values 274 Appendix Nine – Character Values 276 Appendix Ten – Stage Two VBLANK 283 Appendix Eleven – The Atari XL Computers 285 Appendix Twelve – Display List Commands and Antic Modes 299 Appendix Thirteen – Safe OS Vectors 305 iv PREFACE WHAT HAVE I PURCHASED? You are the proud owner of a detailed collection of the internal workings of your Atari computer. By simply using the POKE and PEEK commands from BASIC, which we will explain in a few pages, you can change the numbers within many locations in memory. This book is a “map” to find where you are in the Atari’s huge address space of 65536 memory locations. It is perfect for both beginners and experts. For the new computer owner, we start with simple explanations of computer terminology. Next come many examples of the various “tricks” we will show you. The more advanced programmer will find that the book is absolutely necessary as a reference to the large number of things you can do with the Atari. Few people can memorize over 1000 locations in a computer, and then recall what the individual bits in each location do. If you are a beginner, start with the glossary to become familiar with some of the “computereze” necessary to understand the machine. Next, study the first few sections to learn about the POKE and PEEK commands and hexadecimal-to-decimal conversion. Now begin to read through the book starting with memory location 0. For many locations we offer a complete and lengthy explanation in an appendix, so you’ll want to make sure you also check out the appendices. Don’t be afraid to put a number into the computer’s memory. All you can hurt is your pride. The computer will just “go to sleep” if you tell it to do something impossible. If that happens, then all you have to do is turn it off and on again and continue to explore. We will provide you with examples to illustrate techniques and ideas. Try changing the numbers in each example to “see what happens if…” You learn best if you type in the v examples yourself, but because there are so many, and we KNOW how valuable your time is, we have one more offer for you: SEND US MONEY! If you don’t want to tire your fingers, send $9.95 to cover the traditional postage, handling, and media costs to EDUCATIONAL SOFTWARE, inc 4565 Cherryvale Ave. Soquel, CA 95073 We will send you all of the programs in this book on your choice of tape or disk. A BONUS! If you discover a new, unpublished use for a location in the computer, send it to us. In return, we will send you a free program. vi SOURCES The following sources were instrumental in understanding the purposes of some of the more esoteric locations: De Re Atari - Atari, Inc., 1312 Crossman Ave., Sunnyvale, CA 94086 DOS Listing - Atari, Inc., 1312 Crossman Ave., Sunnyvale, CA 94086 Inside Atari DOS - Compute! Books Hardware Manual - Atari Inc., 1312 Crossman Ave., Sunnyvale, CA 94086 Mapping the Atari - Compute! Books OS Listing - Atari Inc., 1312 Crossman Ave., Sunnyvale, CA 94086 vii GLOSSARY Here at Educational Software we get tired of computer terminology. However, many of these words are becoming a part of our language. As we explain the inner workings of the Atari, we will have to refer to some of the following words. If your find some term we forgot to mention here, it’s probably because it is fully explained in the appendices or at the memory location it pertains to. You should also read your BASIC manual in order to understand the terms that have to do with the BASIC language. 6502: This is the heart of the computer, the chip that bosses everybody around. Actually, a lot of people even refer to the 6502 as being the computer, since it does have almost all of the brains. Accumulator: This is a location that is used to temporarily store the results of logic and arithmetic operations. The main accumulator is inside the 6502 chip, but sometimes memory locations are also used as an extra accumulator. Address: The number assigned to an individual memory location. Each byte in the Atari has its own unique address, much like a house has a street address. The main use of this book is to provide you a roadmap to each address so you don’t get lost. Algorithm: A general procedure, plan, or method that represents how your program will be written. ANTIC: This is a chip in the Atari computers that figures out what the screen is supposed to look like. ASCII: The American Standard Code for Information Interchange (pronounced ASK- KEY). Everyone needs a standard or reference to refer to. This allows us all to speak to each other in the same terms. Humans use dictionaries to speak the same words. In the case of computers, ASCII allows one computer to understand the letters and numbers created on another computer. Atari computers do not follow a true ASCII, but have their own code instead which we explain later. Assembly language: This is a programming language, just like BASIC, except it talks the computer’s language instead of having to go through a translator. See machine language as well. ATASCII: ATAri Standard Code for Information Interchange. This is the code the Atari uses to convert letters to numbers and vice versa. See your BASIC manual to find out how it differs from ASCII. viii Baud: The rate of transmission of information conveyed between two computers. You usually say “Baud Rate” meaning how fast the two computers are talking to each other. This rate is determined by the bits per second that are being transferred. You encounter this term if you are using a modem, printer, disk drive, terminal or other device that needs to talk to a computer to work. Typical speeds of information transfer are 300, 1200, 2400, 9600, and 19200 bits per second. Bit: The smallest piece of information the computer can handle. There are eight bits in a byte. Each bit can either be “on” or “off.” See the section on Bits and Bytes for a complete description. Sometimes in this book you’ll see “-” for the value of a bit. This just means that it doesn’t matter if that particular bit is on or off. Bit mapping: This refers to the process of turning individual bits on and off without changing the rest of the byte. Boot: No, this isn’t even close to what it sounds like. “Booting” a program means loading it in when the computer is turned on. For example, if you hold down the START button while turning on the computer, the computer will beep. This means that it expects a boot cassette to be in the cassette player. When you turn on the computer with the disk drive on, you will boot DOS. In other words, any program that loads in without you having to tell it to load is a boot program. Boundary: As in “4K boundary.” This is the end of a block of memory. For example, a 1K boundary would be the end of 1024 byte block. Buffer: A storage place, usually temporary, where information can come and go without disturbing things.