~rabbits/potato

38a69e1de3f24795f0b326ccd723e50131528065 — Devine Lu Linvega a month ago a16975a
Draw rom icons on desktop
3 files changed, 35 insertions(+), 34 deletions(-)

M src/apps.tal
M src/assets.tal
M src/potato.tal
M src/apps.tal => src/apps.tal +0 -31
@@ 461,41 461,10 @@ JMP2r
			&no-pict
		INC2 GTH2k ,&l JCN
	POP2 POP2

	( DUP2 #0008 ADD2 LDA2 ;pstr JSR #0a18 DEO )

	( .File/name DEO2
	#0006 .File/length DEO2
	;metadata/header .File/read DEO2

	 )

	( ;mem-ptr JSR2
		DUP2 ;load-metadata JSR2
		STH2k ;draw-txt JSR2 INC2
	OVR2 LDA2 #0010 ADD2 .Screen/x DEO2
	OVR2 INC2 INC2 LDA2 #0020 ADD2 .Screen/y DEO2

	;metadata/end LDA2 ;metadata/start LDA2
		SUB2 STH2r ADD2 #0003 SUB2 SWP2
	&l
		LDAk STH
		INC2 LDA2k STHr ;parse-field JSR2
		INC2 INC2 GTH2k ,&l JCN
	POP2 POP2 )
	( win* ) POP2

JMP2r

@parse-field ( value* key -- )

	DUP #83 NEQ ,&no-icon JCN
		POP #0100 SUB2 ;draw-metaicon JMP2
		&no-icon
	POP POP2

JMP2r

(
@|text )


M src/assets.tal => src/assets.tal +0 -1
@@ 12,7 12,6 @@
	&delete "Delete $1
	&clone "Clone $1
	&open "Open $1
	&no-meta "No 20 "Metadata $1
	&ok "OK $1
	&red "Red $1
	&green "Green $1

M src/potato.tal => src/potato.tal +35 -2
@@ 757,6 757,40 @@ JMP2r
		[ LIT &color 85 ] SWP ORA .Screen/sprite DEO
	JMP2r

@draw-rom-icon ( file* -- )

	#0005 ADD2 ;make-src JSR2 ;has-metadata JSR2 ,&valid JCN
	( display default icon )
 	;icons/application ;draw-icon JSR2

JMP2r

&valid ( -- )

	;metadata/fields #0100 ;mclr JSR2
	;load-metadata JSR2
	( find picture )
	;metadata/fields LDAk LITr 00 STH
	INC2 DUP2 STH2r ADD2 SWP2
	&l
		LDAk #83 EQU ,&valid-icon JCN
		INC2 GTH2k ,&l JCN
	POP2 POP2
	;icons/application ;draw-icon JSR2

JMP2r

&valid-icon ( fields* field -- )

	INC2 LDA2 #0100 SUB2 ;seek JSR2
	#0090 .File/length DEO2
	;metadata/icon
		DUP2 .File/read DEO2
		;draw-icon JSR2
	POP2

JMP2r

@draw-icon ( addr* -- )

	.Screen/addr DEO2


@@ 785,7 819,7 @@ JMP2
	LDAk LIT "- EQU ,&folder JCN
	LDAk LIT "? EQU ,&unknown JCN
	DUP2 #0005 ADD2 LDA LIT ". EQU ,&unknown JCN
	DUP2 #0005 ADD2 ;dict/rom-ext ;has-ext JSR2 ,&rom JCN
	DUP2 #0005 ADD2 ;dict/rom-ext ;has-ext JSR2 ;draw-rom-icon JCN2
	DUP2 #0005 ADD2 ;dict/chr-ext ;has-ext JSR2 ,&picture JCN
	DUP2 #0005 ADD2 ;dict/icn-ext ;has-ext JSR2 ,&picture JCN
	DUP2 #0005 ADD2 ;dict/pcm-ext ;has-ext JSR2 ,&sound JCN


@@ 796,7 830,6 @@ JMP2
	&folder POP2 ;icons/folder ;draw-icon JMP2
	&unknown POP2 ;icons/unknown ;draw-icon JMP2
	&picture POP2 ;icons/picture ;draw-icon JMP2
	&rom POP2 ;icons/application ;draw-icon JMP2
	&sound POP2 ;icons/sound ;draw-icon JMP2
	&font POP2 ;icons/font ;draw-icon JMP2