M README.md => README.md +2 -1
@@ 56,7 56,8 @@ To display the list of operators inside of Orca, use `CmdOrCtrl+G`.
### Special
- `=` **synth**(channel octave note): Plays a note.
-- `:` **data**(channel octave note): Send a note.
+- `:` **midi**(channel octave note): Send a note.
+- `;` **byte**(octave note): Send a byte.
## Controls
M orca.tal => orca.tal +14 -2
@@ 58,8 58,8 @@
%CHAR-NULL { #00 } %CHAR-LINE { #0a }
%CHAR-HASH { #23 } %CHAR-BANG { #2a }
-%CHAR-DOT { #2e } %CHAR-COLON { #3a }
-%CHAR-EQUAL { #3d }
+%CHAR-DOT { #2e } %CHAR-SLASH { #2f }
+%CHAR-COLON { #3a } %CHAR-EQUAL { #3d }
%IS-CHAR-KEY { STHk #20 > STHr #7b < #0101 == }
@@ 867,6 867,17 @@ RTN
RTN
+@op-byte ( x y char -- )
+
+ POP
+ ( get octave ) DUP2 [ SWP #01 + SWP ] GET-PORT-RIGHT [ #0c * ] STH
+ ( get note ) DUP2 [ SWP #02 + SWP ] GET-PORT-RIGHT-RAW GET-NOTE STH
+ ( req bang ) DUP2 ;get-bang JSR2 ,&is-bang JCN POP2 POP2r RTN &is-bang
+ IO-TYPE SET-TYPE
+ ADDr STHr .Console/char DEO
+
+RTN
+
@string "hello $1
@run-char ( x y char -- )
@@ 899,6 910,7 @@ RTN
DUP CHAR-HASH = ;op-comment JCN2
DUP CHAR-EQUAL = ;op-synth JCN2
DUP CHAR-COLON = ;op-midi JCN2
+ DUP CHAR-SLASH = ;op-byte JCN2
( unknown )
POP2 POP