Chromatix wrote:
The 6510's "processor port" is not only used for the cassette interface. It also has some control lines that are used internally to the C64, particularly with respect to altering the memory map.
In particular, bits 0 and 1 (selected by a mask of #$03) control the /LORAM and /HIRAM lines.
Right, I follow that the "processor port" [pin] is used for lots of things. What I failed to account for was zero indexed bit-masking. As a consequence, I conflated $03 with setting bit-flag #3.
From
Mapping the C64...
Quote:
Bit 0: LORAM signal. Selects ROM or RAM at 40960 ($A000). 1=BASIC, 0=RAM
Bit 1: HIRAM signal. Selects ROM or RAM at 57344 ($E000). 1=Kernal, 0=RAM
Bit 2: CHAREN signal. Selects character ROM or I/O devices. 1=I/O, 0=ROM
Bit 3: Cassette Data Output line.
Bit 4: Cassette Switch Sense. Reads 0 if a button is pressed, 1 if not.
Bit 5: Cassette Motor Switch Control. A 1 turns the motor on, 0 turns it off.
Bits 6–7: Not connected—no function presently defined.
So, $03 (%00000011) would set /LORAM =1 (True), /HIRAM=1 (True) as you say, and does nothing else. By contrast, if I the cassette port were really enabled in actual fact, the value $04 (%00000100) would have been sent to $01. This is obviously not the case.
Thanks for helping me clear the cobwebs on this one.