NeoCore

By Thomas Lövskog
2 min read

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.

Last Update: October 13, 2024

About the Author

Thomas Lövskog

Electronic Consultant with 35 years of experience with PCB design. Works with anything from Mobile Phones, industrial automation systems, through cryptographic and cybersecurity systems.

View All Posts