8

You can bank out Kernal ROM in C64 using $01 register. This was preferred by game/demo coders who wants to employ self tuned routines and wants to expose ram 'underneath'.

You can do lda #$35 : sta $01 and immediately have 16k additional memory. This was a special feature of 6510 CPU. The question is: Is it possible to disable Kernal in similar manner in Commodore PET, VIC-20 or 264 Series (e.g. Plus/4, 116 or 16) Computers?

7
  • 2
    Why would you do that when there is no RAM underneath?
    – Maya
    Jun 18, 2018 at 16:16
  • 6
    Editors and reviewers: please leave “kernal” alone, it’s the name of the Commodore ROM (and yes, it irritates). Jun 19, 2018 at 9:16
  • 2
    I prefer to keep it as Kernal as this is the original name given by Commodore.
    – wizofwor
    Jun 19, 2018 at 11:47
  • 1
    The bank-switching is not a 6510 feature, it's the PLA that does the actual memory mapping which is controlled by the 6510 I/O port at $01 see: zimmers.net/pub/cbm/firmware/computers/c64/…
    – Stavr00
    Jun 19, 2018 at 17:01
  • 2
    @wizofwor strictly speaking it’s not the name given by Commodore originally; the OS was referred to as the “kernel” in the PET (which is what JeremyP is alluding to). Robert Russell misspelled the word in his notebooks, and that misspelling was carried over by the technical writers into the VIC-20 programmer’s manual and later documentation. See On The Edge: The Spectacular Rise and Fall of Commodore by Brian Bagnall, or the Wikipedia article I linked above, for details. Jun 20, 2018 at 8:42

2 Answers 2

13

You cannot do that on the VIC-20; not only is no such feature provided by the built-in hardware but there's also no ROMDIS signal on the memory expansion bus or anything else similar.

PETs with a 64kb upgrade have a register at $FFF0 for memory selection that allows the ROMs to be paged out (see e.g. "2.2 Control Register" in this document — the 8096 is an official PET with 96kb of RAM that utilises that paging scheme).

The TED machines (e.g. Plus/4, 116, or 16) permit selection of ROM or RAM at $FF13 (for more details see e.g. this summary of the TED chip, particularly the register map at the bottom).

5
  • I didn't know PETs had a 64kb upgrade. Guess they came out after I stopped using them.
    – cup
    Jun 18, 2018 at 20:38
  • @cup 6502.org/users/andre/petindex/local/pet-io-2.txt was my source for that claim; I'll edit it in. Ditto I'll look for something for the TED assertion. I'm not sure how I would as easily prove the VIC didn't have something though.
    – Tommy
    Jun 18, 2018 at 21:06
  • @Tommy: The BLK7 signal that enables the ROM is generated by UC5 based upon A13-A15 and the phi2 clock.
    – supercat
    Jun 18, 2018 at 21:30
  • @Tommy You can prove the VIC-20 can't switch out the ROMs from the schematics. CPU address lines CA13-CA15 are inputs to UC5, a 74LS138 demultiplexer which is enabled for all read cycles via signal S02. This brings low the /BLK6 or /BLK7 signal for reads from the top two 8K blocks of the address space, and these enable the two 8K ROMs, UE11 and UE12. There's no way to stop them from putting their data on the data bus CD0-7 on a read (short of cutting traces).
    – cjs
    Jun 1, 2019 at 10:18
  • And yeah, I just realized that my comment above is a more detailed version of supercat's comment.
    – cjs
    Jun 1, 2019 at 10:19
1

While you can't do this on the VIC-20 at all, nothing is stopping you from programming your own ROM. It would not be difficult to create a ROM-switching socket or adapter of some sort, à la JiffyDOS, which does exactly this trick to let you switch from the custom high-speed-disk-I/O ROM to and from the standard ROM. This trick would, of course, work on the other systems too if you did it correctly.

2
  • That's after removing the built-in ROM though, right? If so, any idea whether they're usually socketed?
    – Tommy
    Jun 18, 2018 at 23:27
  • 1
    @Tommy It depends on the generation of the machine - older machines have higher probabilities. I think, in general, that it's pretty common. It's also not the end of the world to remove the ROM chip and install a socket, if you need. Jun 19, 2018 at 3:16

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .