#469 Easyflash / RAM initialization $DF00-$DFFF should not be zero.

The Joker
  • what VICE version are you using?

  • what operating system are you using?
    Win7 (64bit)

  • what did you do?
    I tried the game "Legend of Blacksilver" (Version: Test2) for Easyflash (https://sites.google.com/site/saxxonpike/LegendOfBlacksilver-Test2.zip?attredirects=0) on real hardware.

  • what did happen?
    It does not boot on a real Easyflash hardware, but in Vice everything works fine!

  • what did you expect to happen?
    The program should not boot in VICE.

  • what is the problem?
    The xbank-format (cart id:33) stores the starting bank in $DF00.
    Some people believe (yes, that's a bad idea), it's the same way for the easyflash-format (cart id:32) and start their programm with:

     LDX $DF00
     STX $DE00     ; Set Bank

Vice initializes $df00 always with 0. After the INX-command the X-register is always 1. So it starts always with bank 1. On real hardware (cart id:32), the value in $df00 is generally not 0. So it jumps into the wrong bank and the program crashes.

In my opinion, the memory area $DF00-$DFFF of the Easyflash-RAM in VICE should be initialized with nonzero values (for example $55, $aa) ​​or random pattern.

best regards,
the joker


  • gpz

    gpz - 2014-01-25

    actually the RAM was not initialized at all, so the content was already kind of random (but indeed mostly 0s in practise) :)

    changed it to initialize with 0xff in r27892, that crt doesnt work anymore as it should :)

  • Marco van den Heuvel

    • status: pending-fixed --> closed-fixed

Log in to post a comment.