all repos — xyw @ 47a7c35951e2c3e4c579fb21c73a4b12d56b7e58

A minimal virtual machine and assembler for terminals.

examples/lib/macros.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
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
;;; Devices

;system
.macro system.state           $00
.macro system.error           $01
.macro system.ssp             $02
.macro system.usp             $03
.macro system.page            $04
.macro system.random          $05
.macro system.on_error        $06

;terminal
.macro terminal.input          $10
.macro terminal.output         $11
.macro terminal.on_keypress    $12
.macro terminal.on_argument    $14

;clock
.macro clock.year             $20
.macro clock.month            $22
.macro clock.monthday         $23
.macro clock.weekday          $24
.macro clock.hour             $25
.macro clock.minute           $26
.macro clock.second           $27
.macro clock.timer            $28
.macro clock.on_timer         $2A

;file
.macro file.path              $30
.macro file.type              $32
.macro file.size              $33
.macro file.success           $35
.macro file.length            $37
.macro file.read              $39
.macro file.write             $3B
.macro file.operation         $3D

;beeper
.macro beeper.pitch           $40
.macro beeper.length          $42
.macro beeper.level           $44

;;; Utilities
.macro MOD DIV POP
.macro LBYTE SWP POP
.macro PUTC $11 STB

;;; ASCII Characters
.macro NL $0A PUTC
.macro SP $20 PUTC

;;; Argument separators
.macro arg.sep $1E
.macro arg.end $1D

;;; Errors
.macro error.file.not_found $31
.macro error.file.access_denied $32
.macro error.file.invalid_op $33
.macro error.file.io_error $34

;;; File operations
.macro file.op.read $01
.macro file.op.write $02
.macro file.op.append $03
.macro file.op.delete $04

;;; File types
.macro file.type.unspecified $00
.macro file.type.file $01
.macro file.type.directory $02