proc escape
	filen	escape.icn
	local	0,001000,s
	local	1,000020,ns
	local	2,000020,c
	local	3,000000,tab
	local	4,000000,upto
	local	5,000000,move
	local	6,000000,map
	local	7,000000,hexcode
	local	8,000000,ctrlcode
	local	9,000000,octcode
	con	0,010000,0
	con	1,020000,1,134
	con	2,002000,1,1
	con	3,010000,1,142
	con	4,010000,1,010
	con	5,010000,1,144
	con	6,010000,1,177
	con	7,010000,1,145
	con	8,010000,1,033
	con	9,010000,1,146
	con	10,010000,1,014
	con	11,010000,1,154
	con	12,010000,1,012
	con	13,010000,1,156
	con	14,010000,1,162
	con	15,010000,1,015
	con	16,010000,1,164
	con	17,010000,1,011
	con	18,010000,1,166
	con	19,010000,1,013
	con	20,010000,1,170
	con	21,010000,1,136
	con	22,010000,8,060,061,062,063,064,065,066,067
	con	23,002000,1,0
	declend
	line	34
	colm	11
	mark	L1
	pnull
	var	1
	str	0
	line	37
	colm	7
	asgn
	unmark
lab L1
	mark	L2
	var	0
	line	38
	colm	6
	bscan
	mark	L3
lab L4
	mark0
	pnull
	var	1
	dup
	var	3
	var	4
	cset	1
	line	39
	colm	29
	invoke	1
	line	39
	colm	24
	invoke	1
	line	39
	colm	16
	cat
	asgn
	unmark
	mark	L4
	mark	L7
	var	5
	int	2
	line	40
	colm	14
	invoke	1
	unmark
lab L7
	pnull
	var	1
	dup
	mark0
	mark	L9
	var	6
	pnull
	var	2
	var	5
	int	2
	line	41
	colm	36
	invoke	1
	line	41
	colm	29
	asgn
	line	41
	colm	26
	invoke	1
	esusp
	goto	L10
lab L9
	line	41
	colm	43
	pfail
lab L10
	eret
	mark	L11
	ccase
	str	3
	line	42
	colm	16
	eqv
	unmark
	pop
	str	4
	goto	L8
lab L11
	mark	L12
	ccase
	str	5
	line	43
	colm	16
	eqv
	unmark
	pop
	str	6
	goto	L8
lab L12
	mark	L13
	ccase
	str	7
	line	44
	colm	16
	eqv
	unmark
	pop
	str	8
	goto	L8
lab L13
	mark	L14
	ccase
	str	9
	line	45
	colm	16
	eqv
	unmark
	pop
	str	10
	goto	L8
lab L14
	mark	L15
	ccase
	str	11
	line	46
	colm	16
	eqv
	unmark
	pop
	str	12
	goto	L8
lab L15
	mark	L16
	ccase
	str	13
	line	47
	colm	16
	eqv
	unmark
	pop
	str	12
	goto	L8
lab L16
	mark	L17
	ccase
	str	14
	line	48
	colm	16
	eqv
	unmark
	pop
	str	15
	goto	L8
lab L17
	mark	L18
	ccase
	str	16
	line	49
	colm	16
	eqv
	unmark
	pop
	str	17
	goto	L8
lab L18
	mark	L19
	ccase
	str	18
	line	50
	colm	16
	eqv
	unmark
	pop
	str	19
	goto	L8
lab L19
	mark	L20
	ccase
	str	20
	line	51
	colm	16
	eqv
	unmark
	pop
	var	7
	line	51
	colm	26
	invoke	0
	goto	L8
lab L20
	mark	L21
	ccase
	str	21
	line	52
	colm	16
	eqv
	unmark
	pop
	var	8
	line	52
	colm	27
	invoke	0
	goto	L8
lab L21
	mark	L22
	ccase
	pnull
	str	22
	line	53
	colm	13
	bang
	line	53
	colm	24
	eqv
	unmark
	pop
	var	9
	line	53
	colm	34
	invoke	0
	goto	L8
lab L22
	pop
	var	2
lab L8
	line	41
	colm	13
	cat
	asgn
lab L5
	unmark
	goto	L4
lab L6
	unmark
lab L3
	mark	L23
	pnull
	var	1
	var	3
	int	23
	line	57
	colm	23
	invoke	1
	line	57
	colm	17
	cat
	line	57
	colm	7
	pret
lab L23
	pfail
	line	38
	colm	6
	escan
	unmark
lab L2
	pnull
	line	60
	colm	1
	pfail
	end
proc hexcode
	local	0,000020,i
	local	1,000020,s
	local	2,000000,tab
	local	3,000000,many
	local	4,000000,move
	local	5,000000,char
	con	0,020000,22,060,061,062,063,064,065,066,067,070,071,101,102,103,104,105,106,141,142,143,144,145,146
	con	1,010000,0
	con	2,002000,1,2
	con	3,002000,1,1
	con	4,002000,1,3
	con	5,010000,3,061,066,162
	declend
	line	62
	colm	11
	mark	L1
	pnull
	var	1
	mark	L2
	var	2
	var	3
	cset	0
	line	65
	colm	17
	invoke	1
	line	65
	colm	12
	invoke	1
	esusp
	goto	L3
lab L2
	str	1
lab L3
	line	65
	colm	6
	asgn
	unmark
lab L1
	mark	L4
	mark0
	pnull
	pnull
	var	0
	pnull
	var	1
	line	67
	colm	13
	size
	line	67
	colm	10
	asgn
	int	2
	line	67
	colm	17
	numgt
	unmark
	mark	L5
	pnull
	var	1
	pnull
	var	1
	int	3
	int	4
	line	68
	colm	15
	sect
	line	68
	colm	9
	asgn
	unmark
lab L5
	var	4
	pnull
	pnull
	var	1
	line	69
	colm	12
	size
	var	0
	line	69
	colm	15
	minus
	line	69
	colm	11
	invoke	1
	unmark
lab L4
	mark	L6
	mark	L7
	var	5
	pnull
	str	5
	var	1
	line	72
	colm	22
	cat
	line	72
	colm	15
	invoke	1
	line	72
	colm	4
	pret
lab L7
	pfail
	unmark
lab L6
	pnull
	line	74
	colm	1
	pfail
	end
proc octcode
	local	0,000020,i
	local	1,000020,s
	local	2,000000,move
	local	3,000000,tab
	local	4,000000,many
	local	5,000000,char
	con	0,002000,1,1
	con	1,020000,8,060,061,062,063,064,065,066,067
	con	2,010000,0
	con	3,002000,1,3
	con	4,002000,1,4
	con	5,002000,3,377
	con	6,010000,2,070,162
	declend
	line	76
	colm	11
	mark	L1
	var	2
	pnull
	int	0
	line	79
	colm	9
	neg
	line	79
	colm	8
	invoke	1
	unmark
lab L1
	mark	L2
	pnull
	var	1
	mark	L3
	var	3
	var	4
	cset	1
	line	80
	colm	17
	invoke	1
	line	80
	colm	12
	invoke	1
	esusp
	goto	L4
lab L3
	str	2
lab L4
	line	80
	colm	6
	asgn
	unmark
lab L2
	mark	L5
	pnull
	var	0
	pnull
	var	1
	line	82
	colm	9
	size
	line	82
	colm	6
	asgn
	unmark
lab L5
	mark	L6
	mark0
	pnull
	pnull
	var	0
	pnull
	var	1
	line	83
	colm	13
	size
	line	83
	colm	10
	asgn
	int	3
	line	83
	colm	17
	numgt
	unmark
	mark	L7
	pnull
	var	1
	pnull
	var	1
	int	0
	int	4
	line	84
	colm	15
	sect
	line	84
	colm	9
	asgn
	unmark
lab L7
	var	2
	pnull
	pnull
	var	1
	line	85
	colm	12
	size
	var	0
	line	85
	colm	15
	minus
	line	85
	colm	11
	invoke	1
	unmark
lab L6
	mark	L8
	mark0
	pnull
	var	1
	int	5
	line	87
	colm	9
	numgt
	unmark
	mark	L9
	pnull
	var	1
	pnull
	var	1
	int	0
	int	3
	line	88
	colm	15
	sect
	line	88
	colm	9
	asgn
	unmark
lab L9
	var	2
	pnull
	int	0
	line	89
	colm	12
	neg
	line	89
	colm	11
	invoke	1
	unmark
lab L8
	mark	L10
	mark	L11
	var	5
	pnull
	str	6
	var	1
	line	92
	colm	21
	cat
	line	92
	colm	15
	invoke	1
	line	92
	colm	4
	pret
lab L11
	pfail
	unmark
lab L10
	pnull
	line	94
	colm	1
	pfail
	end
proc ctrlcode
	local	0,001000,s
	local	1,000000,Control
	local	2,000000,move
	con	0,002000,1,1
	declend
	line	96
	colm	11
	mark	L1
	mark	L2
	var	1
	var	2
	int	0
	line	98
	colm	23
	invoke	1
	line	98
	colm	18
	invoke	1
	line	98
	colm	4
	pret
lab L2
	pfail
	unmark
lab L1
	pnull
	line	100
	colm	1
	pfail
	end
