*
* String substitution symbols
*			
	; if no quotes, interpret as subsymbol
	; if quotes, interpret as string, and do forced substitution
	.sslist
	.asg	value,SYMBOL
	.asg	SYMBOL,SYMBOL1

	.global label, x
	.word	x

* Substitution symbol functions	
label:	.word	$symlen(SYMBOL)		; 5, substitutes string for symbol
	.word	$symlen(":SYMBOL:")	; 5, forced substitution
	.word	$symlen("SYMBOL")	; 6, uses string directly

	.word	$symcmp(SYMBOL,"value")		; 0
	
	; requires 2nd arg to be a character; zero if not found
	.word	$firstch(":SYMBOL:",'a')	; 2
	.word	$lastch(SYMBOL,'a')		; 2
	
	.word	$isdefed(SYMBOL)		; 0 (value not in symtab)
	.word	$isdefed("label")		; 1 (string contents in symtab)
	.word	$isdefed("unknown")		; 0

	.asg	"1,2,3", list
	; both args must be identifiers
	.word	$ismember(SYMBOL,list)		; 1
	.word	SYMBOL				; now 1
	.word	list				; now 2,3

	.word	$iscons("010b")			; 1
	.word	$iscons("11111111B")		; 1
	.word	$iscons("011")			; 2 (5 -- TI bug)
	.word	$iscons("0x10")			; 3 (0 -- TI bug)
	.word	$iscons("'a'")			; 4
	.word	$iscons(SYMBOL)			; 5 ("1")
	.word	$iscons("SYMBOL")		; 0
	
	.word	$isname(SYMBOL)			; 0

	.word	$isreg(SYMBOL)			; 0
	.word	$isreg("AR0")			;
;	.word	$isreg("AG")			; should be 0, but we always 
						; use mmregs 
	.mmregs
x       .word   $isreg("AG")                    ; 1 if .mmregs, 0 otherwise
tag	.struct 10
	.word	1
	.endstruct
	.word	$structsz(tag)
	.word	$structacc(tag)			; this op is unspecified
	.end
