4.3BSD/usr/contrib/icon/samples/roman.u1

proc main
	local	0,000020,n
	local	1,000000,read
	local	2,000000,write
	local	3,000000,roman
	con	0,010000,14,143,141,156,156,157,164,040,143,157,156,166,145,162,164
	declend
	file	roman.icn
	line	8
	mark	L1
lab L2
	line	10
	mark	L0
	pnull
	var	0
	var	1
	pnull
	invoke	1
	asgn
	unmark	1
	mark	L2
	var	2
	mark	L5
	var	3
	var	0
	line	11
	invoke	1
	esusp
	goto	L6
lab L5
	str	0
lab L6
	invoke	1
lab L3
	unmark	1
	goto	L2
lab L4
	unmark	1
lab L1
	pnull
	line	12
	pfail
	end
proc roman
	local	0,001000,n
	local	1,000020,arabic
	local	2,000020,result
	local	3,000040,equiv
	local	4,000000,integer
	local	5,000000,map
	local	6,000000,find
	con	0,010000,0
	con	1,010000,1,111
	con	2,010000,2,111,111
	con	3,010000,3,111,111,111
	con	4,010000,2,111,126
	con	5,010000,1,126
	con	6,010000,2,126,111
	con	7,010000,3,126,111,111
	con	8,010000,4,126,111,111,111
	con	9,010000,2,111,130
	con	10,002000,0
	con	11,010000,7,111,126,130,114,103,104,115
	con	12,010000,7,130,114,103,104,115,052,052
	con	13,002000,1
	con	14,010000,1,052
	declend
	file	roman.icn
	line	14
	init?	L1
	mark	L1
	pnull
	var	3
	pnull
	str	0
	str	1
	str	2
	str	3
	str	4
	str	5
	str	6
	str	7
	str	8
	str	9
	line	17
	llist	10
	asgn
	unmark	1
lab L1
	mark	L2
	mark	L3
	pnull
	var	4
	var	0
	line	18
	invoke	1
	int	10
	numgt
	esusp
	goto	L4
lab L3
	line	18
	pfail
lab L4
	unmark	1
lab L2
	mark	L5
	pnull
	var	2
	str	0
	line	19
	asgn
	unmark	1
lab L5
	mark	L6
	mark	L0
	pnull
	var	1
	pnull
	var	0
	line	20
	bang
	asgn
	pop
	mark	L0
	pnull
	var	2
	pnull
	var	5
	var	2
	str	11
	str	12
	line	21
	invoke	3
	pnull
	var	3
	pnull
	var	1
	int	13
	plus
	subsc
	cat
	asgn
	unmark	1
lab L7
	efail
lab L8
	unmark	1
lab L6
	mark	L9
	mark	L10
	var	6
	str	14
	var	2
	line	22
	invoke	2
	unmark	1
	line	22
	pfail
	goto	L11
lab L10
	mark	L12
	var	2
	pret
lab L12
	line	22
	pfail
lab L11
	unmark	1
lab L9
	pnull
	line	23
	pfail
	end