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?

  • 2
    Why would you do that when there is no RAM underneath? – NieDzejkob Jun 18 '18 at 16:16
  • 5
    Editors and reviewers: please leave “kernal” alone, it’s the name of the Commodore ROM (and yes, it irritates). – Stephen Kitt Jun 19 '18 at 9:16
  • 2
    I prefer to keep it as Kernal as this is the original name given by Commodore. – wizofwor Jun 19 '18 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 '18 at 17:01
  • 1
    @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. – Stephen Kitt Jun 20 '18 at 8:42
12

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).

  • I didn't know PETs had a 64kb upgrade. Guess they came out after I stopped using them. – cup Jun 18 '18 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 '18 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 '18 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). – Curt J. Sampson Jun 1 at 10:18
  • And yeah, I just realized that my comment above is a more detailed version of supercat's comment. – Curt J. Sampson Jun 1 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.

  • That's after removing the built-in ROM though, right? If so, any idea whether they're usually socketed? – Tommy Jun 18 '18 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. – Jim MacKenzie Jun 19 '18 at 3:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.