Open grue74 opened 4 years ago
The turbo bit in $D030 does not really exist in itself. There are speed registers and speed preference registers. When a '1' is written into $d030, the speed preference registers are copied to the speed registers. The speed registers are reset to 0 (non-turbo) upon reset.
I made a little test: activate turboenable bit option and set 48Mhz, exit menu and enter basic then make a test program: 10 print"hello! ";:goto 10 observe it being turbo speed. then poke 53296,0 observe it being normal speed. then reset from power button. speed is slow then reset from u64 menu. speed is fast
So there is inconsistency on how turbo speed works. I suggest that default is off when turbo enable bit is activated from the menu. It also gets enabled if you launch .d64's etc from menu, this is troublesome as only some parts of the software uses $d030 control, and if its enabled by default it causes crashes. This could also be yet another option, to choose if turbo is active or not when selecting turboenable bit.
OK... this is not good. It seems like there is an issue with writing to D030 when leaving the menu then. Now I am curious... does this happen with Overlay, Freeze or with both user interface options?
Yes, it happens if I reset on Freeze, overlay, or telnet connection.
Interesting issue. $d030 is the register in C128 which enables the 2MHz speed, even in 64 mode. Some programs use 2MHz when the raster is in the lower or upper border area to gain some speed when run on a C128 in 64 mode.
Would it be feasible to add a pseudo-C128 configuration option, so that programs would think that they are running on a C128 on U64 and the 2MHz would be enabled as on a C128? On the surface it would not seem to be too complicated, as far as I know, $d02f and $d030 registers of VICIIe of C128 can be used to detect whether the program is running a C64 or C128 in 64 mode, so would it not suffice to emulate the C128 behaviour in these registers?
Sometimes it would be useful to be able to reset $d030 bit to the default value in the menu.
Like you're watching demo that uses it, reset when it's on. it seems to stay on until you manually clear it.
Shouldn't it clear on reset?