XXIIVV

Manifest exposes a rom's features.

A manifest is a simple data structure that allows Uxntal applications to specify what feature can be reached by shortcuts. The manifest.tal is a support library created to this end. You can see support coverage here.

@manifest/dat
	={ =dict/flick
		00 "1 =tool/color1 $2
		00 "2 =tool/color2 $2
		00 "3 =tool/color3 $2
		00 "4 =tool/color4 $2
		00 "q =tool/type1 $2
		00 "w =tool/type2 $2
		00 "[ =tool/decr-size $2
		00 "] =tool/incr-size $2 }
	={ =dict/scene
		40 00 =scene/select-prev $2
		80 00 =scene/select-next $2
		00 1b =scene/reset $2
		00 08 =canvas/wipe $2 }
	={ =dict/snarf
		01 "c =snarf/copy $2
		01 "v =snarf/paste $2
		05 "V =snarf/paste-1bit $2
		01 "x =snarf/cut $2 }
	( ) $1

To match controller input to the functions in the table:

@manifest/scan ( but key -- fn* )
	ORAk ?{ POP2 #ffff JMP2r }
	,&bk STR2
	;&dat
	&>cat
		LDA2k OVR2 #0004 ADD2
		&>opt
			LDA2k [ LIT2 &bk $2 ] NEQ2 ?{
				NIP2 NIP2 INC2 INC2 LDA2 JMP2r }
			#0006 ADD2 GTH2k ?&>opt
		POP2 POP2 LDA2 LDAk ?&>cat
	POP2 #ffff JMP2r

incoming: roms metadata 2022