7.13. BINARY PROGRAMS
* icb file: * * * * * * *
153
"sysibeep.asm"
example of code installing itself into SystemInt 1000 Hz interrupt Fred Martin Thu Oct 10 21:12:13 1991
#include <6811regs.asm> ORG
MAIN_START
subroutine_initialize_module: #include <ldxibase.asm> * X now has base pointer to interrupt vectors ($FF00 or $BF00) * get current vector; poke such that when we finish, we go there LDD TOC4INT,X ; SystemInt on TOC4 STD interrupt_code_exit+1 * install ourself as new vector LDD #interrupt_code_start STD TOC4INT,X RTS * interrupt program begins here interrupt_code_start: * frob the beeper every time called LDAA PORTA EORA #%00001000 ; beeper bit STAA PORTA interrupt_code_exit: JMP $0000
Figure 7.5:
; this value poked in by init routine
: Binary Program that Installs into System Interrupt
sysibeep.asm