~rabbits/blinkengenie

d2831177d254e7216b8472042981157a2ce67af8 — neauoire 2 years ago 1f2025f
Added speed control
1 files changed, 28 insertions(+), 24 deletions(-)

M src/bligen.tal
M src/bligen.tal => src/bligen.tal +28 -24
@@ 12,8 12,9 @@
	@cursor &x $2 &y $2
	@filename $40

	@sleep $1
	@time $2
	@sleep $1
	@rate $1

	@pc $2
	@f &2 $1 &r $1 &k $1


@@ 24,13 25,13 @@
|0100 ( -> )

	( theme )
	#09f7 .System/r DEO2
	#0ef7 .System/r DEO2
	#07fd .System/g DEO2
	#0dfc .System/b DEO2
	#04fc .System/b DEO2
	( size )
	#01b8 .Screen/width DEO2
	#0100 .Screen/height DEO2

	( param )
	;await-src .Console/vector DEO2
	;dict/input ;pstr JSR2



@@ 53,6 54,7 @@ BRK
	;program/reset .File/read DEO2

	#01 .sleep STZ
	#04 .rate STZ

	;reset JSR2
	;redraw-all JSR2


@@ 92,9 94,12 @@ BRK
	.Mouse/x DEI2 #00e0 SUB2 #03 SFT2 NIP STHr

	ORAk #00 EQU ,&toggle-sleep JCN
	;phex JSR2 #0a18 DEO

	DUP #f7 EQU ,&incr-speed JCN
	POP2

BRK

&toggle-sleep ( xy* -- )

	POP2


@@ 104,17 109,28 @@ BRK

BRK

&incr-speed ( xy* -- )

	POP2
	.rate LDZk INC #0f AND SWP STZ
	#00 .Mouse/state DEO
	;redraw-all JSR2

BRK

@on-frame ( -> )

	.sleep LDZ ,&skip JCN
	[ LIT &f $1 ] #07 AND ,&skip JCN
	.sleep LDZ ,&ignore JCN
	[ LIT &f $1 ] .rate LDZ NEQ ,&skip JCN
		;draw-state JSR2
		;step JSR2 POP
		.err LDZ #00 EQU ,&no-error JCN
			;dict/error ;pstr JSR2 #0a18 DEO
			&no-error
		#00 ,&f STR
	&skip
	,&f LDR INC ,&f STR
	&ignore

BRK



@@ 160,8 176,8 @@ JMP2r
	&halt
		POP
		#01 .sleep STZ
		;draw-state JSR2
		;reset JSR2
		;draw-state JSR2
		#00
	JMP2r



@@ 292,17 308,9 @@ JMP2r
	;draw-frame JSR2
	;draw-logo JSR2

	#0070 .Screen/x DEO2
	#0010 .Screen/y DEO2
	#07 ;draw-knob JSR2

	#0088 .Screen/x DEO2
	#0010 .Screen/y DEO2
	#00 ;draw-knob JSR2

	#00a0 .Screen/x DEO2
	#0198 .Screen/x DEO2
	#0010 .Screen/y DEO2
	#0f ;draw-knob JSR2
	.rate LDZ ;draw-knob JSR2

@draw-state ( -- )



@@ 511,10 519,6 @@ JMP2r
	#00e0 .Screen/x DEO2
	#00a0 .Screen/y DEO2
	#01 .sleep LDZ ;draw-button JSR2
	#0100 ;draw-button JSR2
	#0300 ;draw-button JSR2
	#0301 ;draw-button JSR2
	#0200 ;draw-button JSR2

JMP2r



@@ 631,7 635,7 @@ JMP2r
	( circle )
	;knob-icns .Screen/addr DEO2
	#16 .Screen/auto DEO
	#0a .Screen/sprite DEOk DEO
	#02 .Screen/sprite DEOk DEO
	#00 .Screen/auto DEO
	( marker )
	.Screen/x DEI2 #0000 SUB2 #0000 STHkr ;knob-offsetx ADD2 LDA ADD2 .Screen/x DEO2


@@ 672,7 676,7 @@ JMP2r
	&out "OUT 20 $1
	&pc "PC 20 $1
	&lit "LIT $1
	&flags "S--- $1
	&flags "RUN $1

(
@|utils )