Page 1 of 1

Cartridge based kernel

Posted: Sun Jul 03, 2016 12:12 am
by mrr19121970
Is there a cartridge (similar to easyflash3 for the c64 ) that can load an alternative kernel on the vic20? I am sort of hoping the ultimem might do this, or possibly in the future.

Re: Cartridge based kernel

Posted: Sun Jul 03, 2016 1:07 am
by srowe
The KERNAL resides in BLK7 which is not present on the expansion bus. You can implement a replacement for all or part of the KERNAL on a ROM in BLK5. This is what the VIC-1112 cartridge does.

Re: Cartridge based kernel

Posted: Sun Jul 03, 2016 1:41 am
by eslapion
mrr19121970 wrote:Is there a cartridge (similar to easyflash3 for the c64 ) that can load an alternative kernel on the vic20? I am sort of hoping the ultimem might do this, or possibly in the future.
You can do that on the C64 because it has memory remapping capabilities provided by the PLA and a few control lines tied to the 6510's IO lines. The C64 also has DMA and all 15 address lines on the cart port.

There is no such things on the VIC-20.

Kakemoms' thread about a 54k VIC is more or less related to that. (... and I strongly disagree with his methods ... )

Re: Cartridge based kernel

Posted: Sun Jul 03, 2016 6:34 am
by Mike
Even on the C64, it requires A LOT OF trickery to replace the KERNAL with an external cartridge, so it behaves to same way as the built-in ROM chip. Especially, it should respond correctly, when it is switched off by the CPU port and PLA to let the CPU access the RAM under the ROM.

See also skoe's documentation about this: 'How to build a real Kernal Cartridge'.
Eslapion wrote:Kakemoms' thread [...]
Kakemoms deliberately ignores some fundamental principles of digital electronics. It is not, and never was, a good idea to let two digital outputs play tug-of-war. However, as long as he only fries his own VIC-20 with those experiments, that's not my problem.

Re: Cartridge based kernel

Posted: Sun Jul 03, 2016 6:41 am
by majikeyric
Mike wrote:as long as he only fries his own VIC-20 with those experiments, that's not my problem.
:D :D :D

Re: Cartridge based kernel

Posted: Sun Jul 03, 2016 7:57 am
by eslapion
Mike wrote:Kakemoms deliberately ignores some fundamental principles of digital electronics. It is not, and never was, a good idea to let two digital outputs play tug-of-war. However, as long as he only fries his own VIC-20 with those experiments, that's not my problem.
Hey... that's exactly what I said in the 1st place... I fully agree with you on this one.

He wasn't too happy with my suggestion of passing the top 6 address lines of the 6502 through a multiplexer instead.

He also just claimed the Commodore 128's burst mode is the same as IEEE-488 comms...

Added edit:
Reading Skoe's document about C64 Kernal cart, this is no easy exercise at all...

Re: Cartridge based kernel

Posted: Mon Jul 04, 2016 3:24 pm
by Kakemoms
eslapion wrote:
Mike wrote:Kakemoms deliberately ignores some fundamental principles of digital electronics. It is not, and never was, a good idea to let two digital outputs play tug-of-war. However, as long as he only fries his own VIC-20 with those experiments, that's not my problem.
Hey... that's exactly what I said in the 1st place... I fully agree with you on this one.

He wasn't too happy with my suggestion of passing the top 6 address lines of the 6502 through a multiplexer instead.

He also just claimed the Commodore 128's burst mode is the same as IEEE-488 comms...

Added edit:
Reading Skoe's document about C64 Kernal cart, this is no easy exercise at all...
Desoldering your 6502 inside a Vic-20 and adding more memory to it just makes it a new machine. You could just take out the 6502 and put it in a new PCB, add a 4Mbit SRAM and have a new machine. No problem and not hard to do either. But it has nothing to do with the Vic-20.

If we try to keep within the boundaries of the Vic-20 and not resolder everything or rebuild the machine from inside, you have a much more difficult setup to work with. And I think its possible to get the BLK7 replaced through the expansion port. Maybe you have a problem with that, but that is your problem.

As for the 1581 drive (which we were discussing, not a 128), the wiki says: "Like the 1541 and 1571, the 1581 has an onboard MOS Technology 6502 CPU with its own ROM and RAM, and uses a serial version of the IEEE-488 interface. Inexplicably, the drive's ROM contains commands for parallel use, although no parallel interface was available."

So not my words, its on the wikipedia page of the 1581 that it supports IEEE-488.

Re: Cartridge based kernel

Posted: Mon Jul 04, 2016 4:55 pm
by groepaz
its just that ALL drive roms are based on the old drive roms from IEEE488 era - no more no less. it doesnt really support IEEE488 :)

Re: Cartridge based kernel

Posted: Mon Jul 04, 2016 6:36 pm
by eslapion
Kakemoms wrote:Desoldering your 6502 inside a Vic-20 and adding more memory to it just makes it a new machine. You could just take out the 6502 and put it in a new PCB, add a 4Mbit SRAM and have a new machine. No problem and not hard to do either. But it has nothing to do with the Vic-20.
I think I can't count on my hands the number of VIC-20's I have seen in my life which don't have the 6502 on a socket.
If we try to keep within the boundaries of the Vic-20 and not resolder everything or rebuild the machine from inside, you have a much more difficult setup to work with. And I think its possible to get the BLK7 replaced through the expansion port. Maybe you have a problem with that, but that is your problem.
You are also free to start a new religion called "flying bottles of ketchup" and everyone may think it' is you that's having a problem.

There are dozens of alternate solutions to what you want to do without risking damage to your VIC-20 and as long as you only destroy your own machine with your technical chaos then I have absolutely no problem.

Also, since it was the inspiration for the proposed solution this comments amounts to saying the 1541 RAMBOard amounts to rebuilding the disk drive which it is certainly not. It's a small add-on board that's inserted under the CPU exactly as I suggested and it provides RAM at an address range where normally something else appears exactly like you wanted.
As for the 1581 drive (which we were discussing, not a 128), the wiki says: "Like the 1541 and 1571, the 1581 has an onboard MOS Technology 6502 CPU with its own ROM and RAM, and uses a serial version of the IEEE-488 interface. Inexplicably, the drive's ROM contains commands for parallel use, although no parallel interface was available."

So not my words, its on the wikipedia page of the 1581 that it supports IEEE-488.
So according to you the 1541 and 1571 too are fitted with an IEEE-488 interface ?

The key words which you skipped here are "uses a SERIAL version of".

As for "not discussing the 128", the burst mode is something that works on the 1571, 1581 and the Commodore128/128D only. You said the IEEE-488 interface is the same as the burst mode of the 1581... which is supported only with the Commodore 128(D).

Re: Cartridge based kernel

Posted: Wed Jul 06, 2016 10:28 am
by Kakemoms
groepaz wrote:its just that ALL drive roms are based on the old drive roms from IEEE488 era - no more no less. it doesnt really support IEEE488 :)
Ok, great to clear that up. You answer this questions straight, without trying to ridicule the person asking. I appreciate that.