I have been working on many VIC 20 assesories during the years, including a drop in replacement for VIC-I 6560/6561 and a remake of the VIC20 with modern parts and some new features.
All of this has now been integrated in a completely new 8-bit machine made with 65C816 running in native mode. This work has been going on for 5-6 weeks. Main objective is, besides having fun, to experiment with FPGA and graphics/sound.
Original W65C816 in native mode and 14-20MHz (The Jury is still out around this) without wait states. I am trying to strike a balance between VIC 20 / C64 and Amiga. Target is a 8-bit machine, but with extra hardware and custom logic to off-load the CPU and more memory. It should be made with modern readily available SMD parts.
Software architecture is also a balance between this. No multitasking, but with libraries and drivers and vectored interrupts. I also make use of the difference with smaller code sizes and today's near unlimited storage devices (compared to the era).
Other features are;
- Ethernet with PoE for powering the device.
- Gamepads/mouse via USB instead of the more common way of buying surplus NES, Gamecube, etc connectors. I believe USB is the way forward and the FPGA could easily implement USB 1.1 low speed. No provision for hub though.
- A for the era typical RS-232 should be included. This also have true RS232 levels with +12V/-12V.
- If not power through PoE the power comes from USB Type-C. All the internal non volatile memories are also updated through this port.
- The main memory is static SRAM. 4 or 8 MByte can be fitted on the main board. Due to the 65C816 native mode all of this memory is accessible as one linear space.
- 16Mbyte NOR FLASH is built-in for kernal/BASIC and applications. For additional storage a SD Card is available.
- There is also a RTC clock for timekeeping and 2kByte EEPROM for system and application parameters.
- For expansion I thought long and hard. I do believe 4MByte or 8MByte is enough. Even if I of course thinks this is the best 8-bit machine so far, this is an enthusiasm idea with no real commercial application. So very limited usage and software. However as an education tool it might serve a purpose and then IO expansion might be interesting.
So there are 2 IO pods with 256 bytes of address space available. There is also one more for built in applications. I am here thinking around cellular or WiFi/Bluetooth. This pods also have an SPI bus for loading firmware and drivers.
The heart of the logic, is a Lattice ECP5 FPGA (LFE5U-12F-6BG256C), called AURALON, this caters for;
- VIDEO - VGA and Stereo Audio.
- 512kbyte 16bit VRAM.
- MMU and all "glue logic".
- Vectored interrupts.
- SPI serial memory controller to map different ranges in the external memories into different linear addresses in the upper 8Mbyte.
- Keyboard interface. Keyboard is connected via SPI interface.
- USB interface for Gamepads and mouse.