PEEK and POKE let a BASIC program read and change the Commodore 64’s numbered memory locations. They did not tell you what the numbers meant. Sheldon Leemon’s Mapping the Commodore 64 supplied that missing explanation: what lived at an address, how the computer used it and what a programmer might achieve by changing it.
COMPUTE! Books published the guide in 1984, priced $14.95 in the US. It was a book about the computer’s internal organisation, useful beside a keyboard even when the immediate task was to change one byte.
An address can mean several things
The book’s introduction explains why a memory map includes more than storage for a user’s program. The blinking cursor and the READY prompt are produced by software too. BASIC and the operating system occupy ROM, while the graphics, sound and input/output chips respond through addresses in the same map.
Leemon follows those addresses through seven chapters. Page zero comes first, then the processor stack, BASIC and KERNAL working storage, screen memory and BASIC text, the BASIC ROM area, the peripheral chips and finally the operating-system ROM. Appendices supply tables for screen positions, colours and character codes.
That arrangement crosses boundaries a language manual usually keeps apart. A reader looking up a BASIC variable can follow pointers into the area where its value is stored. A reader investigating the screen can distinguish character codes from colour memory. Later entries explain the registers of the VIC-II, SID and CIA chips.
Looking up a job
An address-ordered book encourages a particular way of working. Start with a number encountered in a program, find its entry, then read enough of the surrounding explanation to understand the assumptions.
| Part of the map | What the reader is investigating |
|---|---|
| BASIC working storage | Where the interpreter keeps pointers, variables and temporary values |
| Screen memory and sprite pointers | How bytes in RAM select characters and sprite shapes |
| VIC-II and SID registers | How writes control graphics and sound hardware |
| KERNAL routines and vectors | How programs use or redirect the computer’s existing services |
These are different uses of an address. Changing a byte of screen RAM changes data for the display. Writing a hardware register changes a device. Calling a ROM routine asks the computer to execute instructions already present. The book connects the number to the kind of action it represents.
Its introduction also explains binary, hexadecimal and two-byte addresses. Those are working tools for reading the map, rather than prerequisites left unexplained. A BASIC programmer could enter through PRINT and POKE; an assembly programmer could use the same book to investigate KERNAL input and output.
A book used at the keyboard
Reviewing it in TPUG Magazine in March 1986, Ranjan Bose praised its organisation and clear explanations. He described using his first copy so heavily that it needed replacing. His review also singled out the supplied subroutines: the guide did not stop at assigning names to locations.
It complements Commodore’s own Programmer’s Reference Guide. Commodore’s book groups substantial explanations by topics such as graphics, sound and input/output, and includes chip data sheets. Leemon’s makes the address the organising principle. The two books can answer different parts of the same question.
The revised edition
The later Mapping the Commodore 64 & 64C, published in 1987, is a revised book with a different title and ISBN. A citation to that edition should not silently become a page reference to the 1984 volume. In particular, its additional GEOS coverage belongs to the revised edition, not to the original book’s account of the machine.
Sources
- Sheldon Leemon, Mapping the Commodore 64 (COMPUTE! Books, 1984): title and copyright pages; contents; introduction and “How to Use This Book”, pp. vii onwards; the seven address-ordered chapters and appendices. ISBN 0-942386-23-X. https://project64.c64.org/Software/map64.pdf
- Ranjan Bose, “Mapping The Commodore 64”, TPUG Magazine no. 21, March 1986, p. 40: contemporary review, bibliographic details, price, organisation, explanations and use of the book. https://www.tpug.ca/tpug-media/tpugmag/TPUG_Issue_21_1986_Mar.pdf
- Commodore Business Machines, Commodore 64 Programmer’s Reference Guide (copyright 1982): contents and chip appendices; the separate guide’s organisation.
- Open Library, Mapping the Commodore 64 & 64C (web, secondary catalogue): 1987 revised edition, ISBN 0-87455-082-3 and GEOS chapter. https://openlibrary.org/books/OL2489408M/Mapping_the_Commodore_64_64C