||R/W||ADR||HEXADR||NAME||DESCRIPTION||OS||DEFAULT VALUE
|read/write |512,513|$0200,$0201|VDSLST|Vector to List Interrupt routine|both|59315/$E7B3 (a RTI instruction)
Attention:
* All 6502 registers have to be saved before and restored after the interrupt (before the RTI instruction).
* an example to save registers and variables in the language "Action!" [Interrupts in ACTION]
* The interrupt routine must end with an RTI (return from interrupt).
!!Example for saving and restoring the processor registers
{{{
;we need to push to stack, first A, then X, then Y
PHA ;push ACCU to Stack
TXA ;transfer X to ACCU
PHA ;push ACCU (now X) to Stack
TYA ;transfer Y to ACCU
PHA ;push ACCU (now Y) to Stack
;
;... routine goes in here ...
;
;now we need to pull from stack first Y, then X, then Y
PLA ;pull Y from STACK to ACCU
TAY ;transfer ACCU to Y
PLA ;pull X from STACK to ACCU
TAX ;transfer ACCU to X
PLA ;pull ACCU from STACK
RTI ;end interrupt routine with ReTurn from Interrupt
}}}
!!Example for setting your interrupt routine
* Set bit 7 in the [display list|display_list_instruction_table] line you want the interrupt to occur
* clear bit 7 of [NMIEN] to disable the interrupt
* set [VDSLST] to your routine
* set bit 7 of [NMIEN] to enable the interrupt
----
see also: [Display List Topics|Displaylist_topics], [NMIEN], [Display List Instruction table|display_list_instruction_table]