@@ 1,6 1,6 @@
( orca/opcodes )
-@op-table
+@op-table
:op-a :op-b :op-c :op-d :op-e :op-f :op-g :op-h
:op-i :op-j :op-k :op-l :op-m :op-n :op-o :op-p
:op-q :op-r :op-s :op-t :op-u :op-v :op-w :op-x
@@ 18,8 18,7 @@
:op-q/func :op-r/func :op-s/func :op-t/func :op-u/func :op-v/func :op-w/func :op-x/func
:op-y/func :op-z/func
-@op-a
- "add $1
+@op-a "add $1
&docs 'A "Outputs 20 "sum 20 "of 20 "inputs $1
&func ( addr* -- )
@@ 34,8 33,7 @@
RTN
-@op-b
- "subtract $1
+@op-b "subtract $1
&docs 'B "Outputs 20 "difference 20 "of 20 "inputs $1
&func ( addr* -- )
@@ 50,8 48,7 @@ RTN
RTN
-@op-c
- "clock $1
+@op-c "clock $1
&docs 'C "Outputs 20 "modulo 20 "of 20 "frame $1
&func ( addr* -- )
@@ 66,8 63,7 @@ RTN
RTN
-@op-d
- "delay $1
+@op-d "delay $1
&docs 'D "Bangs 20 "on 20 "modulo 20 "of 20 "frame $1
&func ( addr* -- )
@@ 80,8 76,7 @@ RTN
RTN
-@op-e
- "east $1
+@op-e "east $1
&docs 'E "Moves 20 "eastward 20 "or 20 "bangs $1
&func ( addr* -- )
@@ 96,8 91,7 @@ RTN
RTN
-@op-f
- "if $1
+@op-f "if $1
&docs 'F "Bangs 20 "if 20 "inputs 20 "are 20 "equal $1
&func ( addr* -- )
@@ 109,8 103,7 @@ RTN
RTN
-@op-g
- "generator $1
+@op-g "generator $1
&docs 'G "Writes 20 "operands 20 "with 20 "offset $1
&func ( addr* -- )
@@ 127,12 120,11 @@ RTN
( save ) OVR TOS [ LIT2 &save $2 ] ++ ;set-port-output JSR2
INC GTHk ,&loop JCN
POP2
- POP2r
+ POP2r
RTN
-@op-h
- "hold $1
+@op-h "hold $1
&docs 'H "Holds 20 "southward 20 "operand $1
&func ( addr* -- )
@@ 142,8 134,7 @@ RTN
RTN
-@op-i
- "increment $1
+@op-i "increment $1
&docs 'I "Increments 20 "southward 20 "operand $1
&func ( addr* -- )
@@ 158,8 149,7 @@ RTN
RTN
-@op-j
- "jumper $1
+@op-j "jumper $1
&docs 'J "Outputs 20 "northward 20 "operand $1
&func ( addr* -- )
@@ 169,8 159,7 @@ RTN
RTN
-@op-k
- "konkat $1
+@op-k "konkat $1
&docs 'K "Reads 20 "multiple 20 "variables $1
&func ( addr* -- )
@@ 190,8 179,7 @@ RTN
RTN
-@op-l
- "lesser $1
+@op-l "lesser $1
&docs 'L "Outputs 20 "smallest 20 "of 20 "inputs $1
&func ( addr* -- )
@@ 206,8 194,7 @@ RTN
RTN
-@op-m
- "multiply $1
+@op-m "multiply $1
&docs 'M "Outputs 20 "product 20 "of 20 "inputs $1
&func ( addr* -- )
@@ 222,8 209,7 @@ RTN
RTN
-@op-n
- "north $1
+@op-n "north $1
&docs 'N "Moves 20 "Northward 20 "or 20 "bangs $1
&func ( addr* -- )
@@ 238,8 224,7 @@ RTN
RTN
-@op-o
- "read $1
+@op-o "read $1
&docs 'O "Reads 20 "operand 20 "with 20 "offset $1
&func ( addr* -- )
@@ 251,8 236,7 @@ RTN
RTN
-@op-p
- "push $1
+@op-p "push $1
&docs 'P "Writes 20 "eastward 20 "operand $1
&func ( addr* -- )
@@ 271,8 255,7 @@ RTN
RTN
-@op-q
- "query $1
+@op-q "query $1
&docs 'Q "Reads 20 "operands 20 "with 20 "offset $1
&func ( addr* -- )
@@ 294,8 277,7 @@ RTN
RTN
-@op-r
- "random $1
+@op-r "random $1
&docs 'R "Outputs 20 "random 20 "value $1
&func ( addr* -- )
@@ 310,8 292,7 @@ RTN
RTN
-@op-s
- "south $1
+@op-s "south $1
&docs 'S "Moves 20 "southward 20 "or 20 "bangs $1
&func ( addr* -- )
@@ 326,8 307,7 @@ RTN
RTN
-@op-t
- "track $1
+@op-t "track $1
&docs 'T "Reads 20 "eastward 20 "operand $1
&func ( addr* -- )
@@ 346,8 326,7 @@ RTN
RTN
-@op-u
- "Uclid $1
+@op-u "Uclid $1
&docs 'U "Bangs 20 "on 20 "Euclidean 20 "rhythm $1
&func ( addr* -- )
@@ 364,8 343,7 @@ RTN
RTN
-@op-v
- "variable $1
+@op-v "variable $1
&docs 'V "Reads 20 "and 20 "writes 20 "variable $1
&func ( addr* -- )
@@ 383,8 361,7 @@ RTN
RTN
-@op-w
- "west $1
+@op-w "west $1
&docs 'W "Moves 20 "westward 20 "or 20 "bangs $1
&func ( addr* -- )
@@ 399,8 376,7 @@ RTN
RTN
-@op-x
- "write $1
+@op-x "write $1
&docs 'X "Writes 20 "operand 20 "with 20 "offset $1
&func ( addr* -- )
@@ 412,8 388,7 @@ RTN
RTN
-@op-y
- "yumper $1
+@op-y "yumper $1
&docs 'Y "Outputs 20 "westward 20 "operand $1
&func ( addr* -- )
@@ 423,8 398,7 @@ RTN
RTN
-@op-z
- "lerp $1
+@op-z "lerp $1
&docs 'Z "Transitions 20 "operand 20 "to 20 "input $1
&func ( addr* -- )
@@ 442,8 416,7 @@ RTN
( special )
-@op-bang
- "bang $1
+@op-bang "bang $1
&docs '* "Bangs 20 "neighboring 20 "operands $1
&func ( char -- )
@@ 452,11 425,10 @@ RTN
RTN
-@op-comment
- "comment $1
+@op-comment "comment $1
&docs '# "Comments 20 "a 20 "line $1
- &func
- ( char -- )
+ &func ( char -- )
+
POP
.head/addr LDZ2 STH2k
( bounds )
@@ 464,7 436,10 @@ RTN
STH2r INC2
&loop
( set lock ) DUP2 #01 ROT ROT SET-LOCK
- ( set type ) DUP2 LOCKED-TYPE ROT ROT SET-TYPE
+ ( set type if unset )
+ DUP2 GET-TYPE ,&skip JCN
+ ( set type ) DUP2 LOCKED-TYPE ROT ROT SET-TYPE
+ &skip
( stop at hash ) DUP2 GET-CELL CHAR-HASH = ,&end JCN
INC2 GTH2k ,&loop JCN
&end
@@ 472,11 447,10 @@ RTN
RTN
-@op-synth
- "synth $1
+@op-synth "synth $1
&docs '= "Play 20 "note 20 "with 20 "uxn 20 "synth $1
- &func
- ( char -- )
+ &func ( char -- )
+
POP
.head/addr LDZ2 STH2k
( channel ) INC2 ;get-port-right-value JSR2 [ ,&ch STR ]
@@ 490,8 464,7 @@ RTN
RTN
-@op-midi
- "midi $1
+@op-midi "midi $1
&docs ': "Send 20 "a 20 "midi 20 "note $1
&func ( char -- )
@@ 516,8 489,7 @@ RTN
RTN
-@op-pitch
- "pitch $1
+@op-pitch "pitch $1
&docs '; "Send 20 "a 20 "raw 20 "pitch 20 "byte $1
&func ( char -- )
@@ 532,8 504,7 @@ RTN
RTN
-@op-byte
- "byte $1
+@op-byte "byte $1
&docs '/ "Send 20 "a 20 "raw 20 "hexadecimal 20 "byte $1
&func ( char -- )