~rabbits/orca-toy

74eaff770546b7498ae82d40be3275475f335183 — neauoire 1 year, 1 month ago c45c6b7
Optimized R
1 files changed, 10 insertions(+), 13 deletions(-)

M src/main.tal
M src/main.tal => src/main.tal +10 -13
@@ 932,20 932,17 @@ RTN

RTN

@op-r ( x y char -- ) ( TODO )
@op-r ( x y char -- )

	POP
	( get case ) DUP2 [ SWP INC SWP ] LOAD-CASE STH
	( get min ) DUP2 [ SWP #01 - SWP ] GET-PORT-LEFT STH
	( get max ) DUP2 [ SWP INC SWP ] GET-PORT-RIGHT 1MIN STH
	( unstash min,max ) STH2r
	( real max ) LTHk JMP SWP
	( no equal ) NEQk #04 JCN [ #01 - SWP ]
	( stash min,max ) STH2
	( incr y ) INC
	( get key ) ;prng JSR2 +
	( key % max + min ) STH2kr SWP - MOD POPr STHr +
	GET-CHAR SAVE-CASE SET-PORT-OUTPUT
	POP POP2
	.head/addr LDZ2 STH2k
	( a-min ) DEC2 ;get-port-left-value JSR2
	( b-max ) STH2kr INC2 ;get-port-right-raw JSR2
		( get case ) DUP IS-UC ,&case STR
		( to value ) GET-VALUE 1MIN
	( mod ) OVR - ;prng JSR2 + SWP MOD +
	( set case ) GET-CHAR DUP #60 > [ LIT &case $1 ] AND 20* -
	( output ) STH2r BELOW ;set-port-output JSR2

RTN