Re: Looking for a really good PET zero-page map

From: Marko Mäkelä (
Date: 2008-06-17 12:32:12

On Tue, Jun 17, 2008 at 03:58:55AM +0000, Ethan Dicks wrote:
> On Sun, Jun 15, 2008 at 10:05 AM, "André Fachat" <> wrote:
> >> What would be great would be a companion map that
> >> would more-or-less show locations that were safe to re-use
> >> if you weren't using BASIC - that was fundmentally my
> >
> > Maybe you can send your locations or even write up an article
> > on your great work and publish it?
> Here's a first-cut sample of how something might look.
> <>
> After getting it to this stage, one of the things I thought might be
> nice would be to use GIFs rather than background colors, then have
> alt-tags that named the location and what it did on that machine - so
> you could hover over and see *why* a location was the color it was.

This looks like a very good start.  If I were you, I would define the
layout in CSS to make the table a little more compact.  The labels for
hovering could include the address, because it is not obvious where the
least significant digit is: in the column, or in the row.  (I'd make the
MSB the columns, so that the table could be extended with more rows: $00
to $3f to document the first kilobyte of memory, $000 to $3ff.)

I made a quick sketch to give you the idea.  Please see the attachment.

It'd be very nice to define a title for every location, consisting of
the address, a mnemonic name and a short description.  Multi-byte ranges
such as the tape buffer could repeat the same title in every cell,
consisting of the address range, the mnemonic name of the start address,
and the description.

I'd seriously consider generating the HTML from a Perl script that reads
an ASCII memory map as an input.  That would avoid errors in the
addresses and also make it easy to edit the layout.


 <title>PET 2001 BASIC 2.0 Zero Page Availability Map</title>
 <style type="text/css">
 td, th { padding: .5em; }
 td.s, th.s { background: green; }
 td.b, th.b { background: blue; }
 td.t, th.t { background: yellow; }
 td.r, th.r { background: red; }
 td.u, th.u { background: white; }


<h1>PET 2001 BASIC 2.0 Zero Page Availability Map</h1>

<table frame="hsides" rules="groups">
<caption>PET 2001 Zero Page Map</caption>
<colgroup align="center" span="1">
<colgroup align="left" span="16">
 <th scope="col">0</th>
 <th scope="col">1</th>
 <th scope="col">2</th>
 <th scope="col">3</th>
 <th scope="col">4</th>
 <th scope="col">5</th>
 <th scope="col">6</th>
 <th scope="col">7</th>
 <th scope="col">8</th>
 <th scope="col">9</th>
 <th scope="col">A</th>
 <th scope="col">B</th>
 <th scope="col">C</th>
 <th scope="col">D</th>
 <th scope="col">E</th>
 <th scope="col">F</th>

 <th scope="row" title="000&#8211;00F">00</th>
 <td class="b" title="000 basic"></td>
 <td class="b" title="001 basic..."></td>
 <td class="b" title="002"></td>
 <td class="b" title="003"></td>
 <td class="b" title="004"></td>
 <td class="b" title="005"></td>
 <td class="b" title="006"></td>
 <td class="b" title="007"></td>
 <td class="b" title="008"></td>
 <td class="b" title="009"></td>
 <td class="b" title="00A"></td>
 <td class="b" title="00B"></td>
 <td class="b" title="00C"></td>
 <td class="b" title="00D"></td>
 <td class="b" title="00E"></td>
 <td class="b" title="00F"></td>
 <th scope="row" title="010&#8211;01F">01</th>
 <td class="r" title="010 reserved for???"></td>
 <td class="b" title="011"></td>
 <td class="b" title="012"></td>
 <td class="b" title="013"></td>
 <td class="b" title="014"></td>
 <td class="b" title="015"></td>
 <td class="b" title="016"></td>
 <td class="b" title="017"></td>
 <td class="b" title="018"></td>
 <td class="b" title="019"></td>
 <td class="b" title="01A"></td>
 <td class="b" title="01B"></td>
 <td class="b" title="01C"></td>
 <td class="b" title="01D"></td>
 <td class="b" title="01E"></td>
 <td class="b" title="01F"></td>
 <th scope="row" title="020&#8211;02F">02</th>
 <td class="b" title="020"></td>
 <td class="b" title="021"></td>
 <td class="b" title="022"></td>
 <td class="b" title="023"></td>
 <td class="b" title="024"></td>
 <td class="b" title="025"></td>
 <td class="b" title="026"></td>
 <td class="b" title="027"></td>
 <td class="b" title="028"></td>
 <td class="b" title="029"></td>
 <td class="b" title="02A"></td>
 <td class="b" title="02B"></td>
 <td class="b" title="02C"></td>
 <td class="b" title="02D"></td>
 <td class="b" title="02E"></td>
 <td class="b" title="02F"></td>
 <th scope="row" title="030&#8211;03F">03</th>
 <td class="b" title="030"></td>
 <td class="b" title="031"></td>
 <td class="b" title="032"></td>
 <td class="b" title="033"></td>
 <td class="b" title="034"></td>
 <td class="b" title="035"></td>
 <td class="b" title="036"></td>
 <td class="b" title="037"></td>
 <td class="b" title="038"></td>
 <td class="b" title="039"></td>
 <td class="b" title="03A"></td>
 <td class="b" title="03B"></td>
 <td class="b" title="03C"></td>
 <td class="b" title="03D"></td>
 <td class="b" title="03E"></td>
 <td class="b" title="03F"></td>
 <th scope="row" title="040&#8211;04F">04</th>
 <td class="b" title="040"></td>
 <td class="b" title="041"></td>
 <td class="b" title="042"></td>
 <td class="b" title="043"></td>
 <td class="b" title="044"></td>
 <td class="b" title="045"></td>
 <td class="b" title="046"></td>
 <td class="b" title="047"></td>
 <td class="b" title="048"></td>
 <td class="b" title="049"></td>
 <td class="b" title="04A"></td>
 <td class="b" title="04B"></td>
 <td class="b" title="04C"></td>
 <td class="b" title="04D"></td>
 <td class="b" title="04E"></td>
 <td class="b" title="04F"></td>
 <th scope="row" title="050&#8211;05F">05</th>
 <td class="b" title="050"></td>
 <td class="b" title="051"></td>
 <td class="b" title="052"></td>
 <td class="b" title="053"></td>
 <td class="b" title="054"></td>
 <td class="b" title="055"></td>
 <td class="b" title="056"></td>
 <td class="b" title="057"></td>
 <td class="b" title="058"></td>
 <td class="b" title="059"></td>
 <td class="b" title="05A"></td>
 <td class="b" title="05B"></td>
 <td class="b" title="05C"></td>
 <td class="b" title="05D"></td>
 <td class="b" title="05E"></td>
 <td class="b" title="05F"></td>
 <th scope="row" title="060&#8211;06F">06</th>
 <td class="b" title="060"></td>
 <td class="b" title="061"></td>
 <td class="b" title="062"></td>
 <td class="b" title="063"></td>
 <td class="b" title="064"></td>
 <td class="b" title="065"></td>
 <td class="b" title="066"></td>
 <td class="b" title="067"></td>
 <td class="b" title="068"></td>
 <td class="b" title="069"></td>
 <td class="b" title="06A"></td>
 <td class="b" title="06B"></td>
 <td class="b" title="06C"></td>
 <td class="b" title="06D"></td>
 <td class="b" title="06E"></td>
 <td class="b" title="06F"></td>
 <th scope="row" title="070&#8211;07F">07</th>
 <td class="b" title="070"></td>
 <td class="b" title="071"></td>
 <td class="b" title="072"></td>
 <td class="b" title="073"></td>
 <td class="b" title="074"></td>
 <td class="b" title="075"></td>
 <td class="b" title="076"></td>
 <td class="b" title="077"></td>
 <td class="b" title="078"></td>
 <td class="b" title="079"></td>
 <td class="b" title="07A"></td>
 <td class="b" title="07B"></td>
 <td class="b" title="07C"></td>
 <td class="b" title="07D"></td>
 <td class="b" title="07E"></td>
 <td class="b" title="07F"></td>
 <th scope="row" title="080&#8211;08F">08</th>
 <td class="b" title="080"></td>
 <td class="b" title="081"></td>
 <td class="b" title="082"></td>
 <td class="b" title="083"></td>
 <td class="b" title="084"></td>
 <td class="b" title="085"></td>
 <td class="b" title="086"></td>
 <td class="b" title="087"></td>
 <td class="b" title="088"></td>
 <td class="b" title="089"></td>
 <td class="b" title="08A"></td>
 <td class="b" title="08B"></td>
 <td class="b" title="08C"></td>
 <td class="r" title="08D"></td>
 <td class="r" title="08E"></td>
 <td class="r" title="08F"></td>
 <th scope="row" title="090&#8211;09F">09</th>
 <td class="r" title="090"></td>
 <td class="r" title="091"></td>
 <td class="r" title="092"></td>
 <td class="r" title="093"></td>
 <td class="r" title="094"></td>
 <td class="r" title="095"></td>
 <td class="r" title="096"></td>
 <td class="r" title="097"></td>
 <td class="r" title="098"></td>
 <td class="r" title="099"></td>
 <td class="r" title="09A"></td>
 <td class="r" title="09B"></td>
 <td class="r" title="09C"></td>
 <td class="r" title="09D"></td>
 <td class="r" title="09E"></td>
 <td class="r" title="09F"></td>

<caption>Color Key</caption>
 <th scope="row" class="s"></th>
 <td>Always safe to use</td>
 <th scope="row" class="b"></th>
 <td>Used by BASIC only</td>
 <th scope="row" class="t"></th>
 <td>Used by tape routines only</td>
 <th scope="row" class="r"></th>
 <td>Not safe to use</td>
 <th scope="row" class="u"></th>

<p>based on BASIC 2.0 zero-page chart version 0.1, 17-Jun-2008 Ethan Dicks</p>


       Message was sent through the cbm-hackers mailing list

Archive generated by hypermail pre-2.1.8.