~rabbits/orca-toy

5c1a4a208eb70565c36488b838b8d1a2e5b3060b — neauoire 1 year, 30 days ago 10e0a2f
Only lock ports that are unset
2 files changed, 67 insertions(+), 71 deletions(-)

A etc/avril14.orca
M src/opcodes.tal
A etc/avril14.orca => etc/avril14.orca +25 -0
@@ 0,0 1,25 @@
......................................................................................
..#.Aphex.Twin.-.avril.14th.#.........................................................
......................................................................................
...gC2...Cg..........gC2...Cg.........................................................
....1M22A4............1M22A4..........................................................
....H2Y262Q...........H2Y262Q.........................................................
....*Y*:76c...........*Y*:c...........................................................
..........#4g5c#............#6C..#....................................................
..........#....#............#....#....................................................
..........#5F5g#............#....#....................................................
..........#....#............#....#....................................................
..........#5g6c#............#5F..#....................................................
..........#....#............#....#....................................................
..........#6C6d#............#..5F#....................................................
..........#....#............#....#....................................................
..........#5C4a#............#5g6d#....................................................
..........#....#............#....#....................................................
..........#5g5g#............#..6c#....................................................
..........#....#............#....#....................................................
..........#6C6c#............#..6C#....................................................
..........#....#............#....#....................................................
..........#6d6C#............#5g5g#....................................................
..........#....#............#....#....................................................
......................................................................................
......................................................................................

M src/opcodes.tal => src/opcodes.tal +42 -71
@@ 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 -- )