By Louis Mendelsohn — originally published in COMPUTE!’s Gazette Volume 1, Issue 1
With this program, you can display a moving message across the top or bottom of your VIC screen while another program is doing something else. Although it does this trick with machine language, you don’t need to understand machine language to use it. It is provided in the form of a BASIC loader program.
“VIC Marquee” is a modification of a program for generating moving marquees on the Commodore PET. The beauty of this program is that the marquee, a moving billboard display across the top of the screen, is generated in machine language as part of the screen interrupt task. This means that the marquees are created as a background task while the primary (BASIC) program can be doing something else.
Many modifications to the original program were required for VIC-20 operation. The screen edge location had to be moved to memory location $1E00 (hexadecimal) and the number of columns changed from 40 to 22. In addition, the hardware interrupt vector, IRQVEC, had to be changed from $0090 to $0314, while the interrupt handler, OLDIRQ, was relocated from $7003 to the VIC KERNAL location $EABF. The speed was slowed from 5 to 15 to allow for easier reading. The modified program was kept in the original PET cassette buffer (locations 864 through 1015) since it coincides with the VIC buffer. But the sample message was moved to 830. The message is stored in ASCII code and terminated with a CHR$(0). The high byte and low byte defining the start of the message, stored in locations 1009 and 1011, were adjusted accordingly.
One final modification must be made in using the VIC Marquee, since the technique employed will produce white letters on the normally white VIC screen. Either the screen color can be changed or colored messages can be produced. The program provides a BASIC loader for the VIC Marquee with a blue-lettered message.
The VIC Marquee program will display the message across the top of the screen. But the location of the message is easily modified by changing the data specifying the left edge of the display area (which is stored low byte, high byte in locations 875 and 876) and the data specifying the left edge minus one (stored in locations 878, 879, and 906, 907, and 915, 916). The color screen memory must also be adjusted to provide a visible message. These changes to the program are required to display the message across the bottom of the screen:
See program listing on page 121.
With “VIC Marquee” you can put moving messages across the top of your TV screen.
