Vic20


Macro

Recommended Posts

As a part of a project to get me into VHDL, I've converted the Vic20 project from Mike's FPGA pages for the papilio and arcade wing.  (actually I just wanted to make sure I understood how the 6522 component worked, because I need to use it)

still doing some testing, but it's giving me screen output, cartridge is working (used some spare BRAM since the Papilio doesn't have any external memory) - just need to test the joystick and sound.

if anyone wants it let me know and I'll send the files you need to change from his version.

Link to comment
Share on other sites

Macro,

Excellent work, I'd love to get the changes and get them checked into the Papilio Arcade Source code repository at github.

We can also get a page going up at the http://arcade.gadgetfactory.net wiki. Anyone that wants to edit or add to the wiki is free to do so by using "gadget" as the password.

Jack.

Link to comment
Share on other sites

Ohh,

Here's another thought... Once the Papilio Plus is in production and paired with the Arcade MegaWing we can probably get this Commodore 64 project working on it. :) I'm not sure if his license will allow us to publish a finished solution but maybe we can talk to him to see if he would allow it.

Right now the only thing that prevents the C64 on the P1 is there is just not enough memory.

Jack.

Link to comment
Share on other sites

Yes, memory will become a problem eventually, if I can fill the block ram (almost) with a vic20, it's certainly not going to fit a BBC or C64 in there. have to look into that one day. (but should not affect my other project which predates the vic)

anyway, hopefully here's the files you need to add or change to the release 002 from the FPGA arcade page.

The clock is currently set at 52Mhz (rather than 50Mhz as expected by the design) because with it at 50Mhz I do not get a screen display on VGA - it claims the frequency is too low (30.6Khz, 49Hz) - the minor boost gives me a screen display, but may affect compatibility with some programs. I will play with this to see if there's a better setting.

apart from that, finally got the joystick working (I didn't realise the ground pin wasn't hard wired!)

so, video, keyboard and joystick tested, not tested the sound, but then not changed it either, so hopefully that works!

there's a couple of constants in the vic20 code to enable/disable the double scan and the cartridge.

as per Mike's instructions, you need to get the roms from somewhere and put them in the roms folder, and also put the cartridge binary as cartridge.bin (most of the carts I found had two extra bytes at the beginning that need to be removed first)

Papilio-Vic20.zip

Link to comment
Share on other sites

Sound tested, that seems to work OK.

reading up on the vic, it seems that the video signal is not quite the correct timing, even for normal 15Khz, so by the time that has been pixel doubled, you still end up with a signal that is not quite the right timing.

I'm now going to make up a VGA-SCART lead so I can try the 'normal' VIC screen mode and see how that goes.

I'm glad I decided not to use the video circuitry for my other project, and just created a proper VGA mode that draws the correct things - gives a far more stable display.

Link to comment
Share on other sites

  • 3 months later...

Ohh,

Right now the only thing that prevents the C64 on the P1 is there is just not enough memory.

Jack.

I still own both my original VIC-20, several c-64s + drives :)

From what I remember about the c-64 memory structure, I think you could fit a c-64 onto a 500k if you used external ROMs from a dead c64. Because the address space for ROMs starts at A000, this means you only need to support 40k of ram which fits perfectly. 

  • A000 - BFFF    8K x 8-bit BASIC ROM
  • D000 - DFFF    4k x 8-bit CHARACTER ROM
  • E000 -  FFFF    8K x 8-bit KERNAL ROM

Of course you won't get the shadow memory underneath the ROMs but I think it would fly for general operation.

Link to comment
Share on other sites

You would probably have to use some sort of SPI based flash for the roms due to the lack of IO ports - to add the C64 roms would need 8 IO's for the data lines, and then another 15 for address lines.

be easier to get a Papilio+ and use that instead

Link to comment
Share on other sites

The C64 was my first real computer and I spent countless hours hacking on it, so I'd love to see it running on the Papilio Plus. :)

Or even on the Papilio One with some kind of expansion wing, I have to agree that it would be easier to just use the Papilio Plus though.

There is an Open Source implementation of Apple IIe too, would be cool to make a MegaWing for old computers.

Jack.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.