54 lines
966 B
Plaintext
54 lines
966 B
Plaintext
segment p 0000
|
|
br 0x0000$0800 always // reset vector
|
|
reti always
|
|
data 0000
|
|
reti always
|
|
data 0000
|
|
reti always // int0
|
|
data 0000
|
|
data 0000
|
|
data 0000
|
|
data 0000
|
|
data 0000
|
|
data 0000
|
|
reti always // int1
|
|
data 0000
|
|
data 0000
|
|
data 0000
|
|
data 0000
|
|
data 0000
|
|
data 0000
|
|
data 0000
|
|
reti always // int2
|
|
|
|
segment p 0800 // init
|
|
mov 0x$f000 sp // set stack pointer
|
|
mov 0x$0880 mod3 // enable interrupt
|
|
load 0x0082u8 page // configure ICU
|
|
mov 0x$1000 r0
|
|
mov r0 [page:0x0014u8] // set IRQ0 vint address low
|
|
mov 0x$8001 r0 // !mov 0x$0000 r0
|
|
mov r0 [page:0x0012u8] // set IRQ0 vint address high & context
|
|
mov 0x$0001 r0
|
|
mov r0 [page:0x000cu8] // enable IRQ0 as vint
|
|
load 0x00aau8 page
|
|
cntx s
|
|
load 0x00bbu8 page
|
|
mov 0x$0001 r0
|
|
mov 0x$8204 r1
|
|
mov r0 [r1] // trigger IRQ0
|
|
brr 0xffff always
|
|
|
|
segment p 11000 // interrup handler
|
|
mov st1 r0
|
|
load 0x0000u8 page
|
|
mov r0 [page:0x0000u8]
|
|
mov 0x$1234 r0
|
|
mov r0 [page:0x0001u8]
|
|
brr 0xffff always
|
|
|
|
|
|
segment d 0000 // signal area
|
|
data 0000
|
|
data 0000
|