Classic Computer Magazine Archive COMPUTE! ISSUE 36 / MAY 1983 / PAGE 12

Zeroing Into VIC Tinymon

Why does Jim Butterfield say that a SYS to any memory location containing a zero value will invoke Tinymon? I would have thought that a SYS to the memory location containing the first byte of Tinymon would be the only way to make it run.

Roy Underhill

The zero means something special to the 6502 micro­processor chip. In its language (machine language), the zero is a BRK (break). That instruction forces control of the computer to go to an address contained in the "break interrupt vector." This is a two-byte-long "pointer" which you can change to point to any address. On the VIC, this vector is located in addresses 790 and 791 (decimal). If you make it point to the entry point in Tinymon (entry points are not always the first byte), then any time you SYS to a zero, the computer will "break" to the entry and Tinymon will be off and running.