( ESOP stdlib, macro part ) |00 @Control [ &framevec $2 &io $2 &random $1 &status $1 &sound $1 &syscall $1 ] ( control block macros ) %SETSCRVEC { .Control/framevec DEO2 } %INKEY { .Control/io DEI2 } %PXL { .Control/io DEO2 } %PXLk { .Control/io DEO2k } %RND { .Control/random DEI } %STACKTRACE { #ff .Control/random DEO } %DEVSTAT { .Control/status DEI } %SND { .Control/sound DEO } %SYS { .Control/syscall DEO } ( some syscall macros ) %HLT { #1f SYS } ( val -- ) %DBG { #20 SYS SYS } ( val -- val ) %DBGBYTE { DUP DBG } ( val* -- val* ) %DBGSHORT { DUP2 SWP DBG DBG } ( input helper macros ) %KP-0 { #0001 } %KP-1 { #0002 } %KP-2 { #0004 } %KP-3 { #0008 } %KP-4 { #0010 } %KP-5 { #0020 } %KP-6 { #0040 } %KP-7 { #0080 } %KP-8 { #0100 } %KP-9 { #0200 } %KP-A { #0400 } %KP-B { #0800 } %KP-C { #1000 } %KP-D { #2000 } %KP-STAR { #4000 } %KP-HASH { #8000 } ( jump to label or subroutine if a particular key is pressed ) ( label* keymask* -- ) %JMPKEY { INKEY AND2 ORA ROT ROT JCN2 } %JSRKEY { INKEY AND2 SWP2 JSR2 } ( misc macros ) ( byte to short ) %BTS { #00 SWP } ( decrement ) %DEC { #01 SUB }