>>What is V6510? V6510 is proposed as a PC based 6510 CPU emulator and hardware adaptor which allows acceleration of a Commodore C64. This software is a Virtual Processor. There is connection is from the PC's LPT port, which must be bi-directional, to the Commodore via a hardware adaptor. Virtual6510 is planned initially only for the C64, but may be available for other CBM computers in the future. >>What is CPU emulation? Software on the PC is used to simulate the Commodore's 6510 processor, memory and a limited number of other functions. It does not include emulation of the graphics or sound chips, and as such runs faster than PC based full C64 emulators which get bogged down with emulating the intricacies of these unique chips. >>How fast is the virtual processor? Speed depends on a number of factors including the PC hardware being used, the memory mirroring options and the actual program in some cases. It is important to remember that the speed of the Virtual Processor is affected by accesses to real Commodore hardware chips. This means slowing the PC to talk to the Commodore at its native speed. On a 486DX2/66 system an emulation speed of 4.5MHz can be attained. On a K6-2/500MHz machine 50MHz 6510 simulation is possible. For maximum performance, the processor operates asynchronously with the Commodore hardware. >>Other than the 6510 chip, is there anything else V6510 emulates? It is planned that V6510 will perhaps also include emulation of the REU and a Turbo232 equivalent card. Both these items are rare and could take advantage of the PC's RAM and RS232, respectively. In time, extensions to the 6510 could be emulated - imagine a 32-bit 65xxx design! >>Why not emulate a 65816 CPU instead of the 6510? Speed is the main reason. Currently the only emulation cores available for the 65816 are coded in C, where as there are several good cores for the 6502/6510 coded in 386 assembler meaning that they run faster. The 65816 is also not 100% compatible with the 6510 instruction set. >>What is the hardware adaptor for? The adaptor, initially proposed as a cartridge design, is needed to transfer data from the Virtual Processor to the real hardware. The real C64 is required for all IO operations (such as sound and graphics, etc) and for executing precise 1MHz routines. The adaptor connects to the C64's expansion port and to the PC's LPT port. >>Where do I get the hardware adaptor? The hardware adaptor must be built by the enthusiast. As building a complete circuit board would be difficult for many, the hardware adaptor is based on a pre-existing CBM cartridge, MagicDesk-I. The modification involves removing the four ROM chips and replacing them with simple modules and a couple of other modifications. A competent enthusiast could construct the circuit on custom board. Component Kits can be purchased from the designer (or alternatively just pre-programmed EPROMs). >>Why is the hardware adaptor not a PC card? There are many reasons, but the main is that unless the card was professionally made, many Commodore enthusiasts would be reluctant to install the hardware to their expensive PC. The LPT port is an easy connection and fairly robust. >>Why use a cartridge, can V6510 be built as a processor replacement? Not really as V6510 is not designed to replace the native processor. In order to minimise the number of components in the circuit, the C64's 6510 is actively used. This means it cannot be removed. It may be possible to have an internal version of V6510, but it could mean replacing or adding many of the chips and system ROMs thus it would not be a "one chip" project. Simpler hardware designs were evaluated, but they tend to reduce the scope for acceleration. The other problem facing direct processor replacement is that the 6510 /8500 is soldered into place on most circuit boards making removal difficult and the risk of damage high. >>By using the LPT port, is V6510 slower than it would be with a PC card? Maybe. The specific design of the card will largely affect the result. If it is an ISA (normal 8 or 16 bit card) then read and write operations will not be much faster than a standard LPT port. If special 8MHz memory access lines are used the card will be faster, but less compatible with other PC cards in a typical system, potentially conflicting with them or with RAM/ROM. PCI cards would be very fast, but require special interfacing chips. >>The circuit looks complex, is there a one-chip solution possible? The logic is simple and could be programmed into a CPLD /FPGA, but I do not have the equipment or experience. Assistance welcome though. The use of a PIC or other microtroller has been investigated, but their operating speed of most economical types is currently not fast enough. >>Is V6510 as fast as a SuperCPU? Yes and no. A SuperCPU will write or read C64 memory location in a minimum of 1-3us (up to 43us longer on a bad-line). V6510 takes a variable amount of time. On the other hand, with V6510 the caching strategies are more advanced than those of the SCPU which only has a one byte cache. However, the minimum write for V6510 is longer and this works against throughput. The reason for the longer access times is due to the co-operative design of V6510. On a 6510, a read+write cycle takes 6us (zero-page) or 8us (absolute). Most operating code however is read and executed entirely within the PC. If your PC is fast enough it will probably run faster than a SuperCPU. >>Is V6510 as compatible as a SuperCPU? Yes and no. V6510 because of its software design can process "illegal" op-codes, this perhaps makes it more compatible than a 65816. Also, V6510 will run certain Kernal routines at 1Mhz using the original 6510 processor. On the other hand some heavily time dependent routines (like IFLI) will probably not work because of the longer write cycles. One possible solution envisaged is a "trainer", whereby V6510 learns when /which applications or subroutines need to be slowed to 1MHz operation. Possible incompatibilities such as fast-loaders are problems also for the SCPU. >>How would V6510 get "upgraded"? The software on the PC can be upgraded by installing and configuring new versions downloaded from the web. More serious upgrades may require replacement EPROMs (these will not occur very often). The binaries for the EPROM images will also be available for downloading. >>If I upgrade my PC, will V6510 still work and how much faster will it be? V6510 should still work, though the configuration may need to be reset. Regarding speed, this will depend upon the specific application you are benchmarking. A faster processor will result in faster emulation though. >>Is there a limit to how fast V6510 will run? Maximum speed is governed by the speed of the PC you use to host V6510 and the speed it writes and reads from the LPT port. There is no pre-defined upper limit. >>Can the speed of V6510 be regulated? Unlike the SuperCPU or Commodore accelerators before this the maximum emulation speed can be regulated with a "poke", thus allowing you to tailor the maximum speed to suit the application. However, there is no control switch input available for switching to 1MHz, only a disable switch. If V6510 is started with the "disable" setting then the code will be run 100% inside the original Commodore for 100% compatibility (but no speed-up). >>Will other carts work whilst V6510 is enabled? Unfortunately, mostly no. V6510 uses the ROML, EXROM, DMA and IO1 control lines. Most carts use some of these lines, except for the Commodore REU which is mapped to IO2 only. The design is envisaged to allow several sources to initiate the DMA, so REUs should be compatible. >>Could someone build and sell V6510? Building of the project will be encouraged, and individuals can make their own judgements about whether it is cost effective to buy such pre-assembled kits. All rights to the concept, design and the copyright to the software and EPROM coding remains the property of Nicholas Coplin 2001, but rights are granted to program EPROMs for use with V6510. >>When will V6510 be available? No promises can be made about timing as this is just one of the projects I am working on. What is important at the moment is feedback about the project. I would in particular like to know if enthusiast are interested in the project and what people think about having to build the adaptor hardware.