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

proc main
	local	0,000020,line
	local	1,000020,j
	local	2,000000,read
	local	3,000000,write
	local	4,000000,upto
	local	5,000000,cross
	con	0,020000,1,072
	con	1,002000,1
	con	2,002000,0
	declend
	file	cross.icn
	line	9
	mark	L1
lab L2
	line	11
	mark	L0
	pnull
	var	0
	var	2
	pnull
	invoke	1
	asgn
	unmark	1
	mark	L2
	mark	L5
	var	3
	pnull
	line	12
	invoke	1
	unmark	1
lab L5
	mark	L6
	pnull
	var	1
	var	4
	cset	0
	var	0
	line	13
	invoke	2
	asgn
	unmark	1
lab L6
	var	5
	pnull
	var	0
	int	1
	var	1
	line	14
	sect
	pnull
	var	0
	pnull
	var	1
	int	1
	plus
	int	2
	sect
	invoke	2
lab L3
	unmark	1
	goto	L2
lab L4
	unmark	1
lab L1
	pnull
	line	16
	pfail
	end
proc cross
	local	0,001000,s1
	local	1,001000,s2
	local	2,000020,j
	local	3,000020,k
	local	4,000000,upto
	local	5,000000,xprint
	declend
	file	cross.icn
	line	18
	mark	L1
	mark	L0
	pnull
	var	2
	var	4
	var	1
	var	0
	line	20
	invoke	2
	asgn
	pop
	mark	L0
	mark	L0
	pnull
	var	3
	var	4
	pnull
	var	0
	var	2
	line	21
	subsc
	var	1
	invoke	2
	asgn
	pop
	mark	L0
	var	5
	var	0
	var	1
	var	2
	var	3
	line	22
	invoke	4
	unmark	1
lab L4
	efail
lab L5
	unmark	1
lab L2
	efail
lab L3
	unmark	1
lab L1
	pnull
	line	23
	pfail
	end
proc xprint
	local	0,001000,s1
	local	1,001000,s2
	local	2,001000,j
	local	3,001000,k
	local	4,000000,write
	local	5,000000,right
	con	0,002000,1
	declend
	file	cross.icn
	line	25
	mark	L1
	var	4
	pnull
	line	26
	invoke	1
	unmark	1
lab L1
	mark	L2
	mark	L0
	var	4
	var	5
	pnull
	var	1
	pnull
	int	0
	pnull
	var	3
	int	0
	line	27
	minus
	push1
	toby
	subsc
	var	2
	invoke	2
	invoke	1
	pop
lab L3
	efail
lab L4
	unmark	1
lab L2
	mark	L5
	var	4
	var	0
	line	28
	invoke	1
	unmark	1
lab L5
	mark	L6
	mark	L0
	var	4
	var	5
	pnull
	var	1
	pnull
	pnull
	var	3
	int	0
	line	29
	plus
	pnull
	var	1
	size
	push1
	toby
	subsc
	var	2
	invoke	2
	invoke	1
	pop
lab L7
	efail
lab L8
	unmark	1
lab L6
	pnull
	line	30
	pfail
	end