RE: Virtual6510 - Can a PC act as a CPU Accelerator?

ncoplin_at_orbeng.com
Date: 2001-11-20 02:43:05

Hi Guys,

>As far as I understand the PC LPT port is simply too slow to handle the
>maximum data transfer rate. So I doubt that full synchronized access is 
>possible. Maybe implementing some microcode program that kind of burst-
>loads/stores from/to C64 may do the trick. Is that what you intend?

That's correct, the memory is not fully nor continuously synchronised. A
very tight loop runs on the Commodore updating or skipping memory bytes in
sequence. The memory that is synchronised is dependent upon the "setting".
"NO memory" means only I/O reads/writes are done, "BASIC" means only the 1k
Video RAM and 1k Colour RAM are done. In a tight loop, the screen RAM worse
case rate (WCR) would be refreshed at 33Hz. If the whole 16k bank was
refreshed, the WCR is slower => 4Hz. As the code allows skipping of
unchanged bytes the refresh rate is faster. All the memory mirroring modes
from the SCPU plus more could be handled (in PC code the optimisations can
be even smarter).

The problem is though I/O reads/writes take priority over memory writes,
they are too slow for doing things like IFLI. For this the copy of the code
on the real Commodore needs to be called. I envisage a "trainer", that lets
the emulator learn when calls need to be made to the real resident code.

>RAM can be completely mirrored in the PC, only I/O read/writes and 
>video memory writes must be taken into account, so this also reduces
>accesses a lot.

Exactly!

>The PC can count the number of cycles it has executed. However, how is
>this count synchroniyed with the C64 cycles? In the VICE emulator we
>always have to synchronize CPU cycles with the "more real time" cycles
>defined by the frame rate. But in VICE we know how many cycles have
passed.

Can you explain why I need the synchronisation? I'm interested in
understanding if I've missed something here.  Do you mean things like raster
coding, etc?

-Nick



=====================================================================


PLEASE TAKE NOTE:

The contents of this email (including any attachments) may be
privileged and confidential. Any unauthorised use of the contents
is expressly prohibited. If you have received this email in error,
please advise us immediately (you can contact us by telephone
on +61 8 9441 2311 by reverse charge) and then permanently
delete this email together with any attachments. We appreciate
your co-operation.

Whilst Orbital endeavours to take reasonable care to ensure
that this email and any attachments are free from viruses or other
defects, Orbital does not represent or warrant that such is explicitly
the case

(C) 2000: Orbital Engine Company (Australia) PTY LTD and its
affiliates


       Message was sent through the cbm-hackers mailing list

Archive generated by hypermail 2.1.1.