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.