My findings show that BRK is absolutely, completely useless except in the one special case where the ONLY cause for interrupt can be from it (i.e., no interrupt driven I/O). I'll explain shortly...I'd love to be proved wrong on this or shown a way to do it, but my suggestion to anyone wishing to benefit from my experience is to stay the heck away from BRK!!!
I always get a laugh when someone declares a particular 6502 feature to be useless, as I've found a number of uses for
BRK, as well as its close cousin in the 65C816:
COP.
Apparently, Mr. Schidester has not engaged in the debugging of a program that was executed with the
G ("go") command of a typical 65xx machine language monitor. If he had, he would have found
BRK to be a convenient means of temporarily halting program execution to examine the registers, dump memory, etc. In fact, I have a macro called (what else)
BREAK that I use to put break points into programs in areas where I suspect I might run into bugs.
Declaring a 6502 feature useless reminds me of the periodic debates on the value of the 6502's decimal mode (I use it for binary-decimal conversion) or
(<zp>,X) addressing (my 28L92 driver makes extensive use of that addressing mode to select which channel is being processed).