Classic Computer Magazine Archive COMPUTE! ISSUE 37 / JUNE 1983 / PAGE 180

Slow List On The
VIC-20

Ken Bowd

Watching a listing fly by faster than you can read it can be a frustrating experience. Here's a simple way to get control of your VIC's speed and slow down, stop, or speed up the LIST command.

When you don't have a printer, editing a program can sometimes require special techniques. As you LIST, the program flows past faster than you can follow it. Even under CTRL, it is sometimes difficult. There are machine language programs that allow you to slow LIST down, but there is an easier and shorter answer for the VIC owner. The key is memory location 37879.
    As complete as the VIC-20 Programmer's Manual is, it does not document this location. Whatever its exact function, there is a definite connection between its value and the rate at which the system clock keeps time. The clock can be caused to run faster or slower than realtime. For instance, you can increase or decrease the handicap on timed games with as few as seven keystrokes.
    To give you an idea of what can be done, a POKE of 0 here will cause the clock to run 60 times faster than realtime. Conversely, if you POKE 37879,255, the clock will be keeping time at about 25% of realtime. The normal value of this location is 64.
    Probably the most beneficial effect of this location is its influence on the LIST command. If a POKE 37879,0 is entered and a list is then re quested, you will have much better control. If you hold SHIFT down while listing, the VIC will list one line every one and one-half seconds. Holding CTRL down as well will cause the list to stop. You can still stop the list with RUN/STOP and edit as usual. Values greater than zero will gradually speed up the list.
    If you have a Super Expander cartridge plugged in and location 37879 POKEd to zero, the DRAW, COLOR, etc., commands will execute very slowly when CTRL is held down. This feature may be useful in game programming.
    There are, however, side effects. The blink rate of the cursor increases as location 37879 is POKEd lower. Since the speed of the cursor movement around the screen also is linked to this location, putting the cursor where you want it can be tricky.
    By the way, it is interesting to note that if you PEEK 37879, a value of zero is often returned. This will often occur after a RUN/STOP RESTORE. The clock will be running at realtime. If you enter POKE 37879,0, the cursor will begin flashing rapidly. We haven't changed location 37879, but the VIC responds by keeping time much faster.