proc BitStringPut
	filen	bitstr.icn
	local	0,001000,bitString
	local	1,001000,nbits
	local	2,001000,value
	local	3,000020,outvalue
	local	4,000000,char
	local	5,000000,ishift
	local	6,000000,ior
	local	7,000000,ixor
	con	0,002000,1,0
	con	1,002000,1,8
	declend
	line	69
	colm	11
	mark	L1
	pnull
	pnull
	pnull
	var	0
	line	74
	colm	15
	field	buffer
	line	74
	colm	5
	null
	pnull
	pnull
	var	0
	line	74
	colm	35
	field	bufferBits
	int	0
	line	74
	colm	47
	asgn
	line	74
	colm	23
	asgn
	unmark
lab L1
	mark	L2
	mark0
	pnull
	var	1
	line	80
	colm	8
	null
	unmark
	mark	L3
	mark0
	pnull
	pnull
	var	0
	line	81
	colm	22
	field	bufferBits
	int	0
	line	81
	colm	34
	numgt
	unmark
	pnull
	pnull
	var	0
	line	82
	colm	28
	field	s
	dup
	var	4
	var	5
	pnull
	var	0
	line	83
	colm	49
	field	buffer
	pnull
	int	1
	pnull
	var	0
	line	83
	colm	71
	field	bufferBits
	line	83
	colm	60
	minus
	line	83
	colm	39
	invoke	2
	line	83
	colm	32
	invoke	1
	line	82
	colm	31
	cat
	asgn
	unmark
lab L3
	mark	L4
	pnull
	pnull
	var	0
	line	84
	colm	19
	field	buffer
	pnull
	pnull
	var	0
	line	84
	colm	39
	field	bufferBits
	int	0
	line	84
	colm	51
	asgn
	line	84
	colm	27
	asgn
	unmark
lab L4
	mark	L5
	pnull
	var	0
	line	85
	colm	26
	field	s
	line	85
	colm	10
	pret
lab L5
	pfail
	unmark
lab L2
	mark	L6
	pnull
	pnull
	var	2
	line	90
	colm	5
	null
	int	0
	line	90
	colm	12
	asgn
	unmark
lab L6
	mark	L7
	pnull
	pnull
	var	0
	line	91
	colm	14
	field	buffer
	var	6
	var	5
	pnull
	var	0
	line	91
	colm	45
	field	buffer
	var	1
	line	91
	colm	35
	invoke	2
	var	2
	line	91
	colm	28
	invoke	2
	line	91
	colm	22
	asgn
	unmark
lab L7
	mark	L8
	pnull
	pnull
	var	0
	line	92
	colm	14
	field	bufferBits
	dup
	var	1
	line	92
	colm	26
	plus
	asgn
	unmark
lab L8
	mark	L9
lab L10
	mark0
	pnull
	pnull
	var	0
	line	96
	colm	20
	field	bufferBits
	int	1
	line	96
	colm	32
	numge
	unmark
	mark	L10
	mark	L13
	pnull
	pnull
	var	0
	line	97
	colm	19
	field	s
	dup
	var	4
	pnull
	var	3
	var	5
	pnull
	var	0
	line	98
	colm	32
	field	buffer
	pnull
	int	1
	pnull
	var	0
	line	98
	colm	54
	field	bufferBits
	line	98
	colm	43
	minus
	line	98
	colm	22
	invoke	2
	line	97
	colm	41
	asgn
	line	97
	colm	31
	invoke	1
	line	97
	colm	22
	cat
	asgn
	unmark
lab L13
	mark	L14
	pnull
	pnull
	var	0
	line	99
	colm	19
	field	buffer
	var	7
	pnull
	var	0
	line	100
	colm	33
	field	buffer
	var	5
	var	3
	pnull
	pnull
	var	0
	line	100
	colm	68
	field	bufferBits
	int	1
	line	100
	colm	80
	minus
	line	100
	colm	48
	invoke	2
	line	100
	colm	23
	invoke	2
	line	99
	colm	27
	asgn
	unmark
lab L14
	pnull
	pnull
	var	0
	line	101
	colm	19
	field	bufferBits
	dup
	int	1
	line	101
	colm	31
	minus
	asgn
lab L11
	unmark
	goto	L10
lab L12
	unmark
lab L9
	mark	L15
	mark	L16
	pnull
	line	103
	colm	5
	pret
lab L16
	pfail
	unmark
lab L15
	pnull
	line	104
	colm	1
	pfail
	end
proc BitStringGet
	local	0,001000,bitString
	local	1,001000,nbits
	local	2,000020,value
	local	3,000020,save
	local	4,000020,i
	local	5,000000,copy
	local	6,000000,ior
	local	7,000000,ishift
	local	8,000000,ord
	local	9,000000,ixor
	con	0,002000,1,0
	con	1,002000,1,8
	con	2,002000,1,1
	con	3,010000,0
	declend
	line	107
	colm	11
	mark	L1
	pnull
	pnull
	pnull
	var	0
	line	112
	colm	15
	field	buffer
	line	112
	colm	5
	null
	pnull
	pnull
	var	0
	line	112
	colm	35
	field	bufferBits
	int	0
	line	112
	colm	47
	asgn
	line	112
	colm	23
	asgn
	unmark
lab L1
	mark	L2
	pnull
	var	3
	var	5
	var	0
	line	116
	colm	17
	invoke	1
	line	116
	colm	10
	asgn
	unmark
lab L2
	mark	L3
lab L4
	mark0
	mark	L7
	pnull
	var	1
	int	0
	line	117
	colm	17
	numlt
	esusp
	goto	L8
lab L7
	pnull
	pnull
	var	0
	line	117
	colm	32
	field	bufferBits
	var	1
	line	117
	colm	44
	numlt
lab L8
	unmark
	mark	L4
	mark	L9
	mark	L10
	pnull
	pnull
	var	0
	line	118
	colm	20
	field	buffer
	var	6
	var	7
	pnull
	var	0
	line	119
	colm	39
	field	buffer
	int	1
	line	119
	colm	29
	invoke	2
	var	8
	pnull
	pnull
	var	0
	line	119
	colm	65
	field	s
	int	2
	line	119
	colm	67
	subsc
	line	119
	colm	55
	invoke	1
	line	119
	colm	22
	invoke	2
	line	118
	colm	28
	asgn
	esusp
	goto	L11
lab L10
	mark	L12
	pnull
	var	1
	int	0
	line	125
	colm	23
	numge
	unmark
	mark	L14
	mark0
	pnull
	var	4
	pnull
	int	2
	pnull
	var	0
	line	126
	colm	35
	size
	push1
	line	126
	colm	32
	toby
	line	126
	colm	27
	asgn
	pop
	mark0
	pnull
	pnull
	var	0
	var	4
	line	127
	colm	37
	subsc
	pnull
	var	3
	var	4
	line	127
	colm	48
	subsc
	line	127
	colm	41
	asgn
	unmark
lab L15
	efail
lab L16
	unmark
lab L14
	line	128
	colm	19
	pfail
	goto	L13
lab L12
	mark	L17
	pnull
	pnull
	var	0
	line	131
	colm	28
	field	s
	str	3
	line	131
	colm	31
	asgn
	unmark
lab L17
	mark	L18
	pnull
	pnull
	var	0
	line	132
	colm	28
	field	bufferBits
	pnull
	var	2
	int	0
	line	132
	colm	49
	asgn
	line	132
	colm	40
	asgn
	unmark
lab L18
	mark	L19
	pnull
	var	2
	pnull
	var	0
	line	133
	colm	38
	field	buffer
	line	133
	colm	25
	swap
	unmark
lab L19
	mark	L20
	var	2
	line	134
	colm	19
	pret
lab L20
	pfail
lab L13
lab L11
	unmark
lab L9
	mark	L21
	pnull
	pnull
	pnull
	var	0
	line	137
	colm	19
	field	s
	int	2
	line	137
	colm	21
	subsc
	str	3
	line	137
	colm	25
	asgn
	unmark
lab L21
	pnull
	pnull
	var	0
	line	138
	colm	19
	field	bufferBits
	dup
	int	1
	line	138
	colm	31
	plus
	asgn
lab L5
	unmark
	goto	L4
lab L6
	unmark
lab L3
	mark	L22
	pnull
	var	2
	var	7
	pnull
	var	0
	line	143
	colm	30
	field	buffer
	pnull
	var	1
	pnull
	var	0
	line	143
	colm	56
	field	bufferBits
	line	143
	colm	45
	minus
	line	143
	colm	20
	invoke	2
	line	143
	colm	11
	asgn
	unmark
lab L22
	mark	L23
	pnull
	pnull
	var	0
	line	144
	colm	14
	field	buffer
	var	9
	pnull
	var	0
	line	145
	colm	28
	field	buffer
	var	7
	var	2
	pnull
	pnull
	var	0
	line	145
	colm	60
	field	bufferBits
	var	1
	line	145
	colm	72
	minus
	line	145
	colm	43
	invoke	2
	line	145
	colm	18
	invoke	2
	line	144
	colm	22
	asgn
	unmark
lab L23
	mark	L24
	pnull
	pnull
	var	0
	line	146
	colm	14
	field	bufferBits
	dup
	var	1
	line	146
	colm	26
	minus
	asgn
	unmark
lab L24
	mark	L25
	mark	L26
	var	2
	line	147
	colm	5
	pret
lab L26
	pfail
	unmark
lab L25
	pnull
	line	148
	colm	1
	pfail
	end
