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.
The zero means something special to the 6502 microprocessor 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.