~rabbits/potato

12e5fd2087aadd59fc2e7614593af7978522f060 — neauoire 2 months ago 8fb03b9
basic calendar drawing
3 files changed, 33 insertions(+), 71 deletions(-)

M src/apps.tal
M src/manifest.tal
M src/potato.tal
M src/apps.tal => src/apps.tal +3 -1
@@ 84,7 84,9 @@ BRK
&on-draw ( win* -- )

	POP2
	( ;draw-page JSR2 )
	.DateTime/year DEI2 .year STZ2
	.DateTime/month DEI .month STZ
	;draw-page JSR2

JMP2r


M src/manifest.tal => src/manifest.tal +1 -1
@@ 58,7 58,7 @@ BRK
	( unique )
	;app-calendar ;find-win JSR2
		DUP #ff NEQ ,&reselect JCN POP
	;no-name ;app-calendar #120f
	;no-name ;app-calendar #1d0f
	( y ) #0030
	( x ) #0030
		;add-win JSR2

M src/potato.tal => src/potato.tal +29 -69
@@ 1152,86 1152,46 @@ JMP2r
@draw-page ( -- )

	( start day )
	.year LDZ2 .month LDZ #01 ;dotw JSR2 ;draw-cell/offset STA

@draw-month ( -- )

	#0000
		DUP2 .Screen/x DEO2
		.Screen/y DEO2
	#21 .Screen/auto DEO
	;fill-icn .Screen/addr DEO2
	.Screen/width DEI2 #03 SFT2 NIP #00
	&l
		#02 .Screen/sprite DEO
		INC GTHk ,&l JCN
	POP2
	( name )
	#0010 .Screen/x DEO2
	#0008 .Screen/y DEO2
	#05 ;draw-chr/color STA
	#00 .month LDZ #20 SFT2 ;dict/months ADD2 ;draw-str JSR2
	.year LDZ2 .month LDZ #01 ;dotw JSR2 ;&offset STA
	.Screen/x DEI2 STH2k #0040 ADD2 .Screen/x DEO2
	.Screen/y DEI2 STH2k #0012 SUB2 .Screen/y DEO2
	( month )
	#00 .month LDZ #20 SFT2 ;dict/months ADD2 ;draw-str JSR2 POP2
	( year )
	.Screen/x DEI2k #0008 ADD2 ROT DEO2
	.year LDZ2 ;draw-dec JSR2
	( arrows )
	#01 .Screen/auto DEO
	.Screen/width DEI2 #0028 SUB2 .Screen/x DEO2
	;arrow-icn .Screen/addr DEO2
	#05 .Screen/sprite DEO
	;current-icn .Screen/addr DEO2
	#05 .year LDZ2 .month LDZ ;is-month JSR2 #0a MUL ADD .Screen/sprite DEO
	;arrow-icn .Screen/addr DEO2
	#15 .Screen/sprite DEO

@draw-week ( -- )

	( week )
	#01 ;draw-chr/color STA
	#0020 .Screen/y DEO2
	STH2kr .Screen/y DEO2
	#0700
	&ld
		#00 OVR #003f MUL2 #0010 ADD2 .Screen/x DEO2
	&lw
		#00 OVR #0020 MUL2 OVR2r STH2r ADD2 .Screen/x DEO2
		DUP .DateTime/dotw DEI EQU
		.year LDZ2 .month LDZ ;is-month JSR2 AND DUP ADD INC ;draw-chr/color STA
		#00 OVR #20 SFT2 ;dict/dotw ADD2 ;draw-str JSR2
		INC GTHk ,&ld JCN
		#00 OVR #20 SFT2 ;dict/dotw ADD2 ;draw-str JSR2 POP2
		INC GTHk ,&lw JCN
	POP2

@draw-days ( -- )

	( days )
	LIT2r 0010 ADD2r
	#04 ;draw-chr/color STA
	#2a00
	&l
		DUP ,draw-cell JSR
		INC GTHk ,&l JCN
	POP2

JMP2r

@draw-cell ( id -- )

	( background )
	#00 OVR #07 DIVk MUL SUB #003f MUL2 #0010 ADD2 .Screen/x DEO2
	#00 OVR #07 DIV #0027 MUL2 #0030 ADD2 .Screen/y DEO2
	#76 .Screen/auto DEO
	;cell-icn .Screen/addr DEO2
	#01 .Screen/sprite DEOk DEO
	;cell-icn/middle .Screen/addr DEO2
	#01 .Screen/sprite DEO
	;cell-icn/middle .Screen/addr DEO2
	#01 .Screen/sprite DEOk DEO
	( id )
	#01 ;draw-chr/color STA
	.Screen/x DEI2k #0003 ADD2 ROT DEO2
	.Screen/y DEI2k #0024 SUB2 ROT DEO2
	#01 .Screen/auto DEO
	[ LIT &offset $1 ] SUB
		DUP #80 GTH ,&skip JCN
		INCk .year LDZ2 .month LDZ ;diam JSR2 GTH ,&skip JCN
		STHk .year LDZ2 .month LDZ STHr INC ;is-today JSR2 DUP ADD INC
			;draw-chr/color STA
		( background )
		#00 OVR #07 DIVk MUL SUB #0020 MUL2 OVR2r STH2r ADD2 .Screen/x DEO2
		#00 OVR #07 DIV #0010 MUL2 STH2kr ADD2 .Screen/y DEO2
		DUP
		( id )
		[ LIT &offset $1 ] SUB
			DUP #80 GTH ,&skip JCN
			INCk .year LDZ2 .month LDZ ;diam JSR2 GTH ,&skip JCN
			STHk .year LDZ2 .month LDZ STHr INC ;is-today JSR2 DUP ADD INC
				;draw-chr/color STA
		#00 OVR INC ;draw-dec JSR2
	&skip
	POP
		&skip
		POP
		INC GTHk ;&l JCN2
	POP2
	POP2r POP2r

JMP2r