~rabbits/cccc

8e2e648238a3d0814076338ff2cb201d5a70d71f — Devine Lu Linvega a month ago e7ea26c
Refresh input on mode change
1 files changed, 31 insertions(+), 37 deletions(-)

M src/cccc.tal
M src/cccc.tal => src/cccc.tal +31 -37
@@ 225,9 225,8 @@ JMP2r
	.input LDZ2 
		#00 #0a10 .mode/dec LDZ [ JMP SWP POP ] MUL2 ADD2 
		.input STZ2
	;draw-input ( .. )

JMP2
!draw-input

@erase ( -- )



@@ 235,16 234,16 @@ JMP2
	.input LDZ2 ORA ?&has-input
		;buttons/pop press-button
		.length LDZ2 ORA #01 [ JCN JMP2r ]
		pop POP2 POP2
		;draw-display JMP2
		pop POP2 .input/num STZ2
		update-input
		!draw-display
		&has-input

	.input LDZ2 
		#00 #0a10 .mode/dec LDZ [ JMP SWP POP ] DIV2
		.input STZ2
	;update-input ( .. )

JMP2
!update-input

@clear ( -- )



@@ 252,9 251,8 @@ JMP2
	#0000 .length STZ2
	#0000 .input STZ2
	draw-display
	;update-input ( .. )

JMP2
!update-input

@tog-mode ( -- )



@@ 262,25 260,23 @@ JMP2
	.mode/dec LDZk INC #01 AND SWP STZ
	.mode/dot LDZk .mode/dec LDZ #00 EQU ADD #01 AND SWP STZ
	draw-display
	;draw-mode ( .. )
	update-input

JMP2
!draw-mode

@set-dec ( -- )

	#01 .mode/dec STZ
	draw-display
	;draw-mode ( .. )

JMP2
!draw-mode

@set-hex ( -- )

	#00 .mode/dec STZ
	draw-display
	;draw-mode ( .. )

JMP2
!draw-mode

@set-sel ( x y -- )



@@ 292,10 288,9 @@ JMP2
	#03 AND .cursor/dy STZ
	#07 AND .cursor/dx STZ

	( draw new sel )
	#81 ;draw-sel ( .. )
	#81 

JMP2
!draw-sel

@press-sel ( -- )



@@ 495,22 490,22 @@ JMP2r
JMP2r

@put
	&0 ( -- ) #00 #0b ;buttons/0 !press-number
	&1 ( -- ) #01 #0c ;buttons/1 !press-number
	&2 ( -- ) #02 #0e ;buttons/2 !press-number
	&3 ( -- ) #03 #10 ;buttons/3 !press-number
	&4 ( -- ) #04 #11 ;buttons/4 !press-number
	&5 ( -- ) #05 #13 ;buttons/5 !press-number
	&6 ( -- ) #06 #15 ;buttons/6 !press-number
	&7 ( -- ) #07 #17 ;buttons/7 !press-number
	&8 ( -- ) #08 #18 ;buttons/8 !press-number
	&9 ( -- ) #09 #1a ;buttons/9 !press-number
	&a ( -- ) #0a #09 ;buttons/a !press-number
	&b ( -- ) #0b #07 ;buttons/b !press-number
	&c ( -- ) #0c #21 ;buttons/c !press-number
	&d ( -- ) #0d #1f ;buttons/d !press-number
	&e ( -- ) #0e #1d ;buttons/e !press-number
	&f ( -- ) #0f #1c ;buttons/f !press-number
	&0 ( -- ) #000b ;buttons/0 !press-number
	&1 ( -- ) #010c ;buttons/1 !press-number
	&2 ( -- ) #020e ;buttons/2 !press-number
	&3 ( -- ) #0310 ;buttons/3 !press-number
	&4 ( -- ) #0411 ;buttons/4 !press-number
	&5 ( -- ) #0513 ;buttons/5 !press-number
	&6 ( -- ) #0615 ;buttons/6 !press-number
	&7 ( -- ) #0717 ;buttons/7 !press-number
	&8 ( -- ) #0818 ;buttons/8 !press-number
	&9 ( -- ) #091a ;buttons/9 !press-number
	&a ( -- ) #0a09 ;buttons/a !press-number
	&b ( -- ) #0b07 ;buttons/b !press-number
	&c ( -- ) #0c21 ;buttons/c !press-number
	&d ( -- ) #0d1f ;buttons/d !press-number
	&e ( -- ) #0e1d ;buttons/e !press-number
	&f ( -- ) #0f1c ;buttons/f !press-number

@press-number ( value note button* -- )



@@ 596,7 591,6 @@ JMP2r
	;input draw-fraction

	( draw binary )

	#05 .Screen/auto DEO
	#0038 .Screen/x DEO2
	#006c .Screen/y DEO2


@@ 607,7 601,7 @@ JMP2r
			#0001 AND2 #30 SFT2 ;binary-icns ADD2 .Screen/addr DEO2
		#01 .Screen/sprite DEO
		INCk #03 AND ?&no-space
			.Screen/x DEI2k #0008 ADD2 ROT DEO2
			#00 .Screen/sprite DEO
			&no-space
		INC GTHk ?&loop
	POP2


@@ 779,7 773,7 @@ JMP2r
&proper-dot ( num* den* -- )

	#00 draw-num
	;draw-dot JSR2
	draw-dot
	SWP2 #03e8 #1000 .mode/dec LDZ [ JMP SWP2 POP2 ] MUL2 SWP2 DIV2

!draw-value


@@ 809,7 803,7 @@ JMP2r
@draw-value ( short* -- )

	ORAk ?&no-null
		POP2 #00 ;draw-num JMP2
		POP2 #00 !draw-num
		&no-null

	.mode/dec LDZ ?draw-dec