Programming for a 20MHz VICE-20?
Moderator: Moderators
Programming for a 20MHz VICE-20?
Have you ever considered writing a program for the VICE emulator with a speed setting of for example 2000% ? I mean, that would be like a dream to have a Vic-20 running at 20MHz...
PRG Starter - a VICE helper / Vic Software (Boray Gammon, SD2IEC music player, Vic Disk Menu, Tribbles, Mega Omega, How Many 8K etc.)
-
- Omega Star Commander
- Posts: 1375
- Joined: Thu Jan 31, 2008 2:12 pm
- Website: https://robert.hurst-ri.us
- Location: Providence, RI
- Occupation: Tech & Innovation
I guess everything will be 20 times faster... But if you write a basic program, you wouldn't care about raster line timing etc...
You should be able to poke to slow the cursor and key repetition down...
You should be able to poke to slow the cursor and key repetition down...
PRG Starter - a VICE helper / Vic Software (Boray Gammon, SD2IEC music player, Vic Disk Menu, Tribbles, Mega Omega, How Many 8K etc.)
- Mike
- Herr VC
- Posts: 5134
- Joined: Wed Dec 01, 2004 1:57 pm
- Location: Munich, Germany
- Occupation: electrical engineer
I use the setting 'No speed limit', when I run a VIC programm, that does a prolonged calculation. This came in quite handy for preparing the fill shapes for VICtoria (Deluxe and Gold), or pre-computing the lines in the rotating earth globe demo (both store the results on disc, so the time-consuming parts are only done once).
For an interactive program, be it a game, or anything else, I see little sense to require a setting anything else than 100% speed. Most probably, you won't ever see it at that speed on a real VIC, and I'd rather use the computing power of the underlying PC with native code.
Michael
For an interactive program, be it a game, or anything else, I see little sense to require a setting anything else than 100% speed. Most probably, you won't ever see it at that speed on a real VIC, and I'd rather use the computing power of the underlying PC with native code.

Michael
But then you would have to play it at 0.25MHz then... I guess a game written for VICE running at 200% speed would be perfect for you when played on a real vic-20...orion70 wrote:please, do it @0.5!
PRG Starter - a VICE helper / Vic Software (Boray Gammon, SD2IEC music player, Vic Disk Menu, Tribbles, Mega Omega, How Many 8K etc.)
If I want to slow down the timing in basic, for example TI and TI$, is 37158 and 37159 the only addresses to modify?
If I poke both to 255, I can set the speed to 355% and the basic will appear as normal with time and key repetition, but run 3,55 times faster...
I want to slow down the timers more!
If I can't do that, is there a poke to at least slow down the key repeat?
If I poke both to 255, I can set the speed to 355% and the basic will appear as normal with time and key repetition, but run 3,55 times faster...
I want to slow down the timers more!
If I can't do that, is there a poke to at least slow down the key repeat?
PRG Starter - a VICE helper / Vic Software (Boray Gammon, SD2IEC music player, Vic Disk Menu, Tribbles, Mega Omega, How Many 8K etc.)
- Mike
- Herr VC
- Posts: 5134
- Joined: Wed Dec 01, 2004 1:57 pm
- Location: Munich, Germany
- Occupation: electrical engineer
The key repeat rate is fixed to every 4 jiffies within the routine 'Process Key Image', which is - at least, fortunately - vectored through $028F. This part needs to be altered:Boray wrote:If I can't do that, is there a poke to at least slow down the key repeat?
Code: Select all
.C:ebab CE 8B 02 DEC $028B
.C:ebae D0 26 BNE $EBD6
.C:ebb0 A0 04 LDY #$04 ; <- !
.C:ebb2 8C 8B 02 STY $028B

Michael
Ok, thanks!
PRG Starter - a VICE helper / Vic Software (Boray Gammon, SD2IEC music player, Vic Disk Menu, Tribbles, Mega Omega, How Many 8K etc.)
- Mike
- Herr VC
- Posts: 5134
- Joined: Wed Dec 01, 2004 1:57 pm
- Location: Munich, Germany
- Occupation: electrical engineer
Those addresses (651 and 652), that you're most probably referring to, only contain the state variables for the key repetition. You can't POKE them to change the rate. They're re-initialised with fixed values within the kernal, in the routine mentioned above.
With address 650, you can disable key repetition entirely (POKE650,64), enable repetition for all keys (POKE650,128), or set to default (space and cursor) with POKE650,0.
With address 650, you can disable key repetition entirely (POKE650,64), enable repetition for all keys (POKE650,128), or set to default (space and cursor) with POKE650,0.