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

proc main
	local	0,000000,Parallel
	local	1,000000,write
	local	2,000000,octal
	local	3,000000,star
	con	0,010000,4,141,142,143,144
	con	1,002000,1
	con	2,002000,10
	con	3,010000,3,141,142,143
	declend
	file	parallel.icn
	line	10
	mark	L1
	mark	L0
	var	0
	pnull
	goto	L6
lab L4
	pop
	mark	L5
lab L7
	mark	L0
	var	1
	chfail	L7
	esusp
	incres
	line	11
	coret
	efail
lab L5
	line	11
	cofail
	goto	L5
lab L6
	line	11
	create	L4
	goto	L10
lab L8
	pop
	mark	L9
	pnull
	str	0
	bang
	incres
	coret
	efail
lab L9
	line	11
	cofail
	goto	L9
lab L10
	line	11
	create	L8
	goto	L13
lab L11
	pop
	mark	L12
	pnull
	int	1
	int	2
	push1
	toby
	incres
	coret
	efail
lab L12
	line	11
	cofail
	goto	L12
lab L13
	line	11
	create	L11
	llist	3
	invoke	1
	pop
lab L2
	efail
lab L3
	unmark	1
lab L1
	mark	L14
	mark	L0
	var	0
	pnull
	goto	L19
lab L17
	pop
	mark	L18
lab L20
	mark	L0
	var	1
	chfail	L20
	esusp
	incres
	line	12
	coret
	efail
lab L18
	line	12
	cofail
	goto	L18
lab L19
	line	12
	create	L17
	goto	L23
lab L21
	pop
	mark	L22
	var	2
	pnull
	invoke	1
	incres
	coret
	efail
lab L22
	line	12
	cofail
	goto	L22
lab L23
	line	12
	create	L21
	goto	L26
lab L24
	pop
	mark	L25
	var	3
	str	3
	invoke	1
	incres
	coret
	efail
lab L25
	line	12
	cofail
	goto	L25
lab L26
	line	12
	create	L24
	llist	3
	invoke	1
	pop
lab L15
	efail
lab L16
	unmark	1
lab L14
	pnull
	line	13
	pfail
	end
proc star
	local	0,001000,s
	local	1,000000,star
	con	0,010000,0
	declend
	file	parallel.icn
	line	15
	mark	L1
	mark	L0
	mark	L2
	str	0
	esusp
	goto	L3
lab L2
	pnull
	var	1
	var	0
	line	16
	invoke	1
	pnull
	var	0
	bang
	cat
lab L3
	psusp
	efail
	unmark	1
lab L1
	pnull
	line	17
	pfail
	end
proc octal
	con	0,002000,0
	con	1,002000,3
	con	2,002000,7
	declend
	file	parallel.icn
	line	19
	mark	L1
	mark	L0
	pnull
	pnull
	pnull
	int	0
	int	1
	push1
	line	20
	toby
	pnull
	int	0
	int	2
	push1
	toby
	cat
	pnull
	int	0
	int	2
	push1
	toby
	cat
	psusp
	efail
	unmark	1
lab L1
	pnull
	line	21
	pfail
	end
proc Parallel
	local	0,001000,a
	local	1,000020,i
	local	2,000020,x
	local	3,000000,list
	local	4,000000,Call
	con	0,002000,1
	declend
	file	parallel.icn
	line	23
	mark	L1
	pnull
	var	2
	var	3
	pnull
	var	0
	line	25
	size
	invoke	1
	asgn
	unmark	1
lab L1
	mark	L2
lab L3
	line	26
	mark	L3
	mark	L6
	mark	L0
	pnull
	var	1
	pnull
	int	0
	pnull
	var	0
	line	27
	size
	push1
	toby
	asgn
	pop
	mark	L0
	pnull
	pnull
	var	2
	var	1
	line	28
	subsc
	mark	L9
	pnull
	pnull
	var	0
	var	1
	subsc
	coact
	esusp
	goto	L10
lab L9
	line	28
	pfail
lab L10
	asgn
	unmark	1
lab L7
	efail
lab L8
	unmark	1
lab L6
	mark	L0
	var	4
	var	2
	line	29
	invoke	1
	psusp
	efail
lab L4
	unmark	1
	goto	L3
lab L5
	unmark	1
lab L2
	pnull
	line	31
	pfail
	end
proc Call
	local	0,001000,a
	local	1,000000,stop
	con	0,002000,1
	con	1,002000,2
	con	2,002000,3
	con	3,002000,4
	con	4,002000,5
	con	5,002000,6
	con	6,002000,7
	con	7,002000,8
	con	8,002000,9
	con	9,002000,10
	con	10,010000,21,103,141,154,154,040,072,040,164,157,157,040,155,141,156,171,040,141,162,147,163,056
	declend
	file	parallel.icn
	line	33
	mark	L1
	mark	L0
	mark	L0
	pnull
	var	0
	line	34
	size
	eret
	mark	L3
	ccase
	int	0
	line	35
	eqv
	unmark	1
	pop
	pnull
	var	0
	int	0
	subsc
	pnull
	invoke	1
	goto	L2
lab L3
	mark	L4
	ccase
	int	1
	line	36
	eqv
	unmark	1
	pop
	pnull
	var	0
	int	0
	subsc
	pnull
	var	0
	int	1
	subsc
	invoke	1
	goto	L2
lab L4
	mark	L5
	ccase
	int	2
	line	37
	eqv
	unmark	1
	pop
	pnull
	var	0
	int	0
	subsc
	pnull
	var	0
	int	1
	subsc
	pnull
	var	0
	int	2
	subsc
	invoke	2
	goto	L2
lab L5
	mark	L6
	ccase
	int	3
	line	38
	eqv
	unmark	1
	pop
	pnull
	var	0
	int	0
	subsc
	pnull
	var	0
	int	1
	subsc
	pnull
	var	0
	int	2
	subsc
	pnull
	var	0
	int	3
	subsc
	invoke	3
	goto	L2
lab L6
	mark	L7
	ccase
	int	4
	line	39
	eqv
	unmark	1
	pop
	pnull
	var	0
	int	0
	subsc
	pnull
	var	0
	int	1
	subsc
	pnull
	var	0
	int	2
	subsc
	pnull
	var	0
	int	3
	subsc
	pnull
	var	0
	int	4
	subsc
	invoke	4
	goto	L2
lab L7
	mark	L8
	ccase
	int	5
	line	40
	eqv
	unmark	1
	pop
	pnull
	var	0
	int	0
	subsc
	pnull
	var	0
	int	1
	subsc
	pnull
	var	0
	int	2
	subsc
	pnull
	var	0
	int	3
	subsc
	pnull
	var	0
	int	4
	subsc
	pnull
	var	0
	int	5
	subsc
	invoke	5
	goto	L2
lab L8
	mark	L9
	ccase
	int	6
	line	41
	eqv
	unmark	1
	pop
	pnull
	var	0
	int	0
	subsc
	pnull
	var	0
	int	1
	subsc
	pnull
	var	0
	int	2
	subsc
	pnull
	var	0
	int	3
	subsc
	pnull
	var	0
	int	4
	subsc
	pnull
	var	0
	int	5
	subsc
	pnull
	var	0
	int	6
	subsc
	invoke	6
	goto	L2
lab L9
	mark	L10
	ccase
	int	7
	line	42
	eqv
	unmark	1
	pop
	pnull
	var	0
	int	0
	subsc
	pnull
	var	0
	int	1
	subsc
	pnull
	var	0
	int	2
	subsc
	pnull
	var	0
	int	3
	subsc
	pnull
	var	0
	int	4
	subsc
	pnull
	var	0
	int	5
	subsc
	pnull
	var	0
	int	6
	subsc
	pnull
	var	0
	int	7
	subsc
	invoke	7
	goto	L2
lab L10
	mark	L11
	ccase
	int	8
	line	43
	eqv
	unmark	1
	pop
	pnull
	var	0
	int	0
	subsc
	pnull
	var	0
	int	1
	subsc
	pnull
	var	0
	int	2
	subsc
	pnull
	var	0
	int	3
	subsc
	pnull
	var	0
	int	4
	subsc
	pnull
	var	0
	int	5
	subsc
	pnull
	var	0
	int	6
	subsc
	pnull
	var	0
	int	7
	subsc
	pnull
	var	0
	int	8
	subsc
	invoke	8
	goto	L2
lab L11
	mark	L12
	ccase
	int	9
	line	44
	eqv
	unmark	1
	pop
	pnull
	var	0
	int	0
	subsc
	pnull
	var	0
	int	1
	subsc
	pnull
	var	0
	int	2
	subsc
	pnull
	var	0
	int	3
	subsc
	pnull
	var	0
	int	4
	subsc
	pnull
	var	0
	int	5
	subsc
	pnull
	var	0
	int	6
	subsc
	pnull
	var	0
	int	7
	subsc
	pnull
	var	0
	int	8
	subsc
	pnull
	var	0
	int	9
	subsc
	invoke	9
	goto	L2
lab L12
	pop
	var	1
	str	10
	line	45
	invoke	1
lab L2
	line	34
	psusp
	efail
	unmark	1
lab L1
	pnull
	line	47
	pfail
	end