Menu

#1855 Emulated DMA delay does not affect idle byte correctly

v3.7
open
nobody
None
VICIISC
2023-04-02
2023-03-27
Steve West
No

On real c64 hardware triggering a badline during idle state ("DMA delay") causes the VIC to retrieve a different idle byte than usual in the trigger cycle. Ordinarily idle bytes are sourced from $3fff (or $39ff when ECM enabled). When DMA delay is triggered on real hardware the idle byte is instead sourced from $38ff (6569 VICs) or $3807 (8565/8566 VICs) in the cycle the delay is triggered. This is visible in the cycle prior to the 3 cycles of "display mode" artefacts.

Attached is a test program that triggers DMA delay, determines and displays on screen the altered location of the affected idle-byte, as well as animating that specific byte in memory as additional verification. The animated idle byte is located on screen immediately above the address 4th digit.

1 Attachments

Discussion

  • Steve West

    Steve West - 2023-03-27

    Attached photos of real hardware VIC 6569 and 8565, and screenshot of x64sc-3.7.1

     
  • gpz

    gpz - 2023-03-28

    Really nice - i already prepared this to drop in the test repo when i saw your post on lemon :)

    It would be super helpful if you could provide the source for this program, so we can produce a bunch of variants for the testbench

     
  • Querino

    Querino - 2023-03-28

    btw, both denise and hoxs64 fail too.

     
  • gpz

    gpz - 2023-03-28
    • Port: MacOS X -->
     
  • Steve West

    Steve West - 2023-03-28

    Source code, in 64tass format

     

    Last edit: Steve West 2023-03-28
  • gpz

    gpz - 2023-03-29

    great, thanks!

     
  • gpz

    gpz - 2023-03-29
    • Category: VICII --> VICIISC
     
  • gpz

    gpz - 2023-03-30

    I am converting the test program for automatic testing atm... one notable thing: on one of my C64s the address is $38D7 :) (and apparently was $38c7 even, when it was cold). I will do more testing with all of my C64s later - would you please also list the exact revisions (full markings) of the VICIIs you tested? And perhaps the ASSY numbers? I will do the same then (and add all that info to the readme). Perhaps we need to post the program somewhere to get more results.... It might turn out that the address is really unstable - or at least the LSB. or perhaps only on some VIC revision. or...whatever =D

     
  • gpz

    gpz - 2023-03-30

    that said, i modified it for the testbench now, and i also added a ntsc fixed version . see the readme for test results from my hardware. https://sourceforge.net/p/vice-emu/code/HEAD/tree/testprogs/VICII/vsp-tester/

     
  • gpz

    gpz - 2023-04-02

    some more results are rolling in: https://csdb.dk/forums/?roomid=7&topicid=159713#159749

    looks like its not a stable artefact to me

     

Log in to post a comment.