Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

REU Suport #53

Open
Kroc opened this issue Apr 8, 2019 · 2 comments
Open

REU Suport #53

Kroc opened this issue Apr 8, 2019 · 2 comments
Labels
build Build system / compile-time-options hardware Support for optional C64 hardware (even if emulated) space-saving freeing up extra RAM speed More sanics

Comments

@Kroc
Copy link
Owner

Kroc commented Apr 8, 2019

Whilst REUs are not that common for hardware users, they are widely implemented in emulators. The extra space is not so critical as is the DMA channel which would allow us drastically speed up data moving operations. Some possible uses:

  • Use the DMA to wipe the bitmap screen, doing away with the need to erase the lines for the next frame (speed up) helps with Remove Flickering #1
  • Implement double-buffering? (solves Remove Flickering #1)
  • Load additional code modules from disk into the REU so that the disk is no longer needed
@Kroc Kroc added space-saving freeing up extra RAM speed More sanics build Build system / compile-time-options hardware Support for optional C64 hardware (even if emulated) labels Apr 8, 2019
@dyme6510
Copy link
Collaborator

REU transfer blocks all interrupts. Clearing the offscreen buffer in one go means that the neccessary raster interrupts for switching banks or colors may be delayed by thousands of cycles. Either the clearing is done in 8-byte babysteps (longest regular instruction duration), or the distance to the next raster interrupt has to be factored in somehow. Maybe we can add a table containing safe cycles per raster line, or a flag that signals "256 bytes can now be transferred"

@Kroc
Copy link
Owner Author

Kroc commented Sep 16, 2020

GeoRAM should also be supported, but that doesn't have DMA, so DMA-support should be considered a separate feature from RAM-expansion as far as build-options are concerned.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build Build system / compile-time-options hardware Support for optional C64 hardware (even if emulated) space-saving freeing up extra RAM speed More sanics
Projects
None yet
Development

No branches or pull requests

2 participants