all repos — xyw @ df6b8d925172b6f23d627ba48521b3a9aeb736cd

A minimal virtual machine and assembler for terminals.

examples/on-error.xyw

 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
.include "lib/macros.xyw" 

; register on error handler
on_error system.on_error STW

; main program
$10 $0 DIV
end JMPw

; on error handler
.label on_error
  system.error LDB $1 EQU on_error.div-by-zero.print JCNw
  unknown-error PUTS JSRw
  $0 system.error STB
  RTS
  .label on_error.div-by-zero.print
    div-by-zero-error PUTS JSRw
    $3 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"
.label end