• Why $0401, $0801, $1c01? Why not $0400, $0800, $1c00?

    From pzem...@gmail.com@pzembrod@gmail.com to comp.sys.cbm on Friday, February 12, 2021 07:27:10
    From Newsgroup: comp.sys.cbm

    Hi all,

    I figure that someone here probably knows why CBM's basic RAM always started at $xx01 addresses, like $0801, $0401, $1001, $1c01 instead of $0800, $0400, $1000, $1c00?
    What is sitting in that one byte, or what role is it playing?
    I realize that I've always taken that for granted, but never asked myself why. Or I knew it at some point in the past and forgot.

    Cheers
    /Philip
    --- Synchronet 3.18b-Win32 NewsLink 1.113
  • From andy carmony@acarmony1@gmail.com to comp.sys.cbm on Wednesday, February 17, 2021 10:55:46
    From Newsgroup: comp.sys.cbm

    On Friday, February 12, 2021 at 10:27:12 AM UTC-5, pzem...@gmail.com wrote:
    Hi all,

    I figure that someone here probably knows why CBM's basic RAM always started at $xx01 addresses, like $0801, $0401, $1001, $1c01 instead of $0800, $0400, $1000, $1c00?
    What is sitting in that one byte, or what role is it playing?
    I realize that I've always taken that for granted, but never asked myself why. Or I knew it at some point in the past and forgot.

    Cheers
    /Philip
    Well, everything does start at those addresses. Screen memory starts at $0400. Basic starts at $0800. Technically when entering basic programs it starts putting code into $0801 on, $0800 contains a zero and is 'unused', but $0800 is still the start of basic.
    http://sta.c64.org/cbm64mem.html
    --- Synchronet 3.18b-Win32 NewsLink 1.113