3 comments

[ 3.5 ms ] story [ 17.1 ms ] thread
I have been waiting forty years to learn how to do this.
You can chain handlers by simply rewriting the interrupt vector. Something like this (for a sequence of two handlers):

    handler1
        ; ...
        lda #<handler2
        sta $fffe
        lda #>handler2
        sta $ffff
        lda #line2
        sta $d012
        rti

    handler2
        ; ...
        lda #<handler1
        sta $fffe
        lda #>handler1
        sta $ffff
        lda #line1
        sta $d012
        rti
To my intuition it seems it would be quicker, though slightly larger.

I've only skimmed through the article so maybe there's a reason the author considered this and opted not to. Running out of memory maybe?