Menu

#2233 SuperCPU REU DMA does not start immediately

v3.10
closed-fixed
gpz
None
xscpu64
1 day ago
2 days ago
smf esemef
No

SuperCPU REU DMA does not immediately stop the 65816.

It would appear that the function scpu64_clock_write_stretch_io_long() should be responsible for doing this, but it does not work.

c64io_df00_store(addr, value);
switch (addr) {
case 0xdf01:
case 0xdf21:
if (!dma_in_progress) {
scpu64_clock_write_stretch_io_long();
}

GTK3VICE-3.10-win64-r46128 is the last github build with working drives.
To test in GTK3VICE-3.10-win64-r46133 & GTK3VICE-3.10-win64-r46135, you need to use the monitor to load the test program.

load "reutest.prg" 0 801
g
then SYS2066 from basic

1 Attachments

Discussion

  • smf esemef

    smf esemef - 2 days ago

    The program prints PASS on x64sc and FAIL on xscpu64 (or weirdly FASS if I use SHIFT+RUN/STOP) because the "sta command" doesn't trigger the DMA immediately and the buffer is either written/read before the DMA starts.

    If you uncomment the two "; bit status" lines, then it will force the DMA to start. But I suspect the Super CPU itself does not need this.

     

    Last edit: smf esemef 2 days ago
    • gpz

      gpz - 2 days ago

      But I suspect the Super CPU itself does not need this.

      Vanessa just tried on real HW and it says "PASS"

       
  • gpz

    gpz - 1 day ago
    • assigned_to: Roberto Muscedere
    • Port: Windows -->
     
  • gpz

    gpz - 1 day ago

    should be fixed in rr46144

     
  • gpz

    gpz - 1 day ago
    • status: open --> closed-fixed
    • assigned_to: Roberto Muscedere --> gpz
     

Log in to post a comment.

Auth0 Logo