on-error.xyw
on-error.xyw.include "lib/macros.xyw"
; Register on error handler
on_error system.on_error STW
; Main program
$10 $00 DIV
HLT
; on_error handler
; --
.label on_error
system.error LDB $01 EQU on_error.div-by-zero.print JCNw
unknown-error puts JSRw
$00 system.error STB
RTS
.label on_error.div-by-zero.print
div-by-zero-error puts JSRw
$00 system.error STB
RTS
.include "lib/puts.xyw"
.label div-by-zero-error
.string "Error: Division by zero.\n"
.label unknown-error
.string "Error: Unknown error.\n"