version	U12.1.00
uid	bitstr.u1-1786032976-0
record	BitString,3
	0,s
	1,buffer
	2,bufferBits
impl	error
global	3
	0,000011,BitString,3
	1,000005,BitStringPut,3
	2,000005,BitStringGet,2

proc BitStringPut
	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
	filen	bitstr.icn
	line	69
	colm	11
	synt	any
	mark	L1
	pnull
	pnull
	pnull
	var	0
	line	74
	colm	15
	synt	any
	field	buffer
	line	74
	colm	5
	synt	any
	null
	pnull
	pnull
	var	0
	line	74
	colm	35
	synt	any
	field	bufferBits
	int	0
	line	74
	colm	47
	synt	any
	asgn
	line	74
	colm	23
	synt	any
	asgn
	unmark
lab L1
	mark	L2
	line	80
	colm	5
	synt	if
	mark0
	pnull
	var	1
	line	80
	colm	8
	synt	any
	null
	unmark
	mark	L3
	line	81
	colm	10
	synt	if
	mark0
	pnull
	pnull
	var	0
	line	81
	colm	22
	synt	any
	field	bufferBits
	int	0
	line	81
	colm	34
	synt	any
	numgt
	unmark
	pnull
	pnull
	var	0
	line	82
	colm	28
	synt	any
	field	s
	dup
	var	4
	var	5
	pnull
	var	0
	line	83
	colm	49
	synt	any
	field	buffer
	pnull
	int	1
	pnull
	var	0
	line	83
	colm	71
	synt	any
	field	bufferBits
	line	83
	colm	60
	synt	any
	minus
	line	83
	colm	39
	synt	any
	invoke	2
	line	83
	colm	32
	synt	any
	invoke	1
	line	82
	colm	31
	synt	any
	cat
	asgn
	line	81
	colm	10
	synt	endif
	unmark
lab L3
	mark	L4
	pnull
	pnull
	var	0
	line	84
	colm	19
	synt	any
	field	buffer
	pnull
	pnull
	var	0
	line	84
	colm	39
	synt	any
	field	bufferBits
	int	0
	line	84
	colm	51
	synt	any
	asgn
	line	84
	colm	27
	synt	any
	asgn
	unmark
lab L4
	mark	L5
	pnull
	var	0
	line	85
	colm	26
	synt	any
	field	s
	line	85
	colm	10
	synt	any
	pret
lab L5
	synt	any
	pfail
	line	80
	colm	5
	synt	endif
	unmark
lab L2
	mark	L6
	pnull
	pnull
	var	2
	line	90
	colm	5
	synt	any
	null
	int	0
	line	90
	colm	12
	synt	any
	asgn
	unmark
lab L6
	mark	L7
	pnull
	pnull
	var	0
	line	91
	colm	14
	synt	any
	field	buffer
	var	6
	var	5
	pnull
	var	0
	line	91
	colm	45
	synt	any
	field	buffer
	var	1
	line	91
	colm	35
	synt	any
	invoke	2
	var	2
	line	91
	colm	28
	synt	any
	invoke	2
	line	91
	colm	22
	synt	any
	asgn
	unmark
lab L7
	mark	L8
	pnull
	pnull
	var	0
	line	92
	colm	14
	synt	any
	field	bufferBits
	dup
	var	1
	line	92
	colm	26
	synt	any
	plus
	asgn
	unmark
lab L8
	mark	L9
lab L10
	line	96
	colm	5
	synt	while
	mark0
	pnull
	pnull
	var	0
	line	96
	colm	20
	synt	any
	field	bufferBits
	int	1
	line	96
	colm	32
	synt	any
	numge
	unmark
	mark	L10
	mark	L13
	pnull
	pnull
	var	0
	line	97
	colm	19
	synt	any
	field	s
	dup
	var	4
	pnull
	var	3
	var	5
	pnull
	var	0
	line	98
	colm	32
	synt	any
	field	buffer
	pnull
	int	1
	pnull
	var	0
	line	98
	colm	54
	synt	any
	field	bufferBits
	line	98
	colm	43
	synt	any
	minus
	line	98
	colm	22
	synt	any
	invoke	2
	line	97
	colm	41
	synt	any
	asgn
	line	97
	colm	31
	synt	any
	invoke	1
	line	97
	colm	22
	synt	any
	cat
	asgn
	unmark
lab L13
	mark	L14
	pnull
	pnull
	var	0
	line	99
	colm	19
	synt	any
	field	buffer
	var	7
	pnull
	var	0
	line	100
	colm	33
	synt	any
	field	buffer
	var	5
	var	3
	pnull
	pnull
	var	0
	line	100
	colm	68
	synt	any
	field	bufferBits
	int	1
	line	100
	colm	80
	synt	any
	minus
	line	100
	colm	48
	synt	any
	invoke	2
	line	100
	colm	23
	synt	any
	invoke	2
	line	99
	colm	27
	synt	any
	asgn
	unmark
lab L14
	pnull
	pnull
	var	0
	line	101
	colm	19
	synt	any
	field	bufferBits
	dup
	int	1
	line	101
	colm	31
	synt	any
	minus
	asgn
lab L11
	unmark
	goto	L10
lab L12
	line	96
	colm	5
	synt	endwhile
	unmark
lab L9
	mark	L15
	mark	L16
	pnull
	line	103
	colm	5
	synt	any
	pret
lab L16
	synt	any
	pfail
	unmark
lab L15
	pnull
	line	104
	colm	1
	synt	any
	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
	synt	any
	mark	L1
	pnull
	pnull
	pnull
	var	0
	line	112
	colm	15
	synt	any
	field	buffer
	line	112
	colm	5
	synt	any
	null
	pnull
	pnull
	var	0
	line	112
	colm	35
	synt	any
	field	bufferBits
	int	0
	line	112
	colm	47
	synt	any
	asgn
	line	112
	colm	23
	synt	any
	asgn
	unmark
lab L1
	mark	L2
	pnull
	var	3
	var	5
	var	0
	line	116
	colm	17
	synt	any
	invoke	1
	line	116
	colm	10
	synt	any
	asgn
	unmark
lab L2
	mark	L3
lab L4
	line	117
	colm	5
	synt	while
	mark0
	mark	L7
	pnull
	var	1
	int	0
	line	117
	colm	17
	synt	any
	numlt
	line	117
	colm	21
	synt	any
	esusp
	goto	L8
lab L7
	pnull
	pnull
	var	0
	line	117
	colm	32
	synt	any
	field	bufferBits
	var	1
	line	117
	colm	44
	synt	any
	numlt
lab L8
	unmark
	mark	L4
	mark	L9
	mark	L10
	pnull
	pnull
	var	0
	line	118
	colm	20
	synt	any
	field	buffer
	var	6
	var	7
	pnull
	var	0
	line	119
	colm	39
	synt	any
	field	buffer
	int	1
	line	119
	colm	29
	synt	any
	invoke	2
	var	8
	pnull
	pnull
	var	0
	line	119
	colm	65
	synt	any
	field	s
	int	2
	line	119
	colm	67
	synt	any
	subsc
	line	119
	colm	55
	synt	any
	invoke	1
	line	119
	colm	22
	synt	any
	invoke	2
	line	118
	colm	28
	synt	any
	asgn
	line	119
	colm	74
	synt	any
	esusp
	goto	L11
lab L10
	line	125
	colm	14
	synt	ifelse
	mark	L12
	pnull
	var	1
	int	0
	line	125
	colm	23
	synt	any
	numge
	unmark
	mark	L14
	line	126
	colm	19
	synt	every
	mark0
	pnull
	var	4
	pnull
	int	2
	pnull
	var	0
	line	126
	colm	35
	synt	any
	size
	push1
	line	126
	colm	32
	synt	any
	toby
	line	126
	colm	27
	synt	any
	asgn
	pop
	mark0
	pnull
	pnull
	var	0
	var	4
	line	127
	colm	37
	synt	any
	subsc
	pnull
	var	3
	var	4
	line	127
	colm	48
	synt	any
	subsc
	line	127
	colm	41
	synt	any
	asgn
	unmark
lab L15
	efail
lab L16
	line	126
	colm	19
	synt	endevery
	unmark
lab L14
	line	128
	colm	19
	synt	any
	pfail
	goto	L13
lab L12
	mark	L17
	pnull
	pnull
	var	0
	line	131
	colm	28
	synt	any
	field	s
	str	3
	line	131
	colm	31
	synt	any
	asgn
	unmark
lab L17
	mark	L18
	pnull
	pnull
	var	0
	line	132
	colm	28
	synt	any
	field	bufferBits
	pnull
	var	2
	int	0
	line	132
	colm	49
	synt	any
	asgn
	line	132
	colm	40
	synt	any
	asgn
	unmark
lab L18
	mark	L19
	pnull
	var	2
	pnull
	var	0
	line	133
	colm	38
	synt	any
	field	buffer
	line	133
	colm	25
	synt	any
	swap
	unmark
lab L19
	mark	L20
	var	2
	line	134
	colm	19
	synt	any
	pret
lab L20
	synt	any
	pfail
lab L13
	line	125
	colm	14
	synt	endifelse
lab L11
	unmark
lab L9
	mark	L21
	pnull
	pnull
	pnull
	var	0
	line	137
	colm	19
	synt	any
	field	s
	int	2
	line	137
	colm	21
	synt	any
	subsc
	str	3
	line	137
	colm	25
	synt	any
	asgn
	unmark
lab L21
	pnull
	pnull
	var	0
	line	138
	colm	19
	synt	any
	field	bufferBits
	dup
	int	1
	line	138
	colm	31
	synt	any
	plus
	asgn
lab L5
	unmark
	goto	L4
lab L6
	line	117
	colm	5
	synt	endwhile
	unmark
lab L3
	mark	L22
	pnull
	var	2
	var	7
	pnull
	var	0
	line	143
	colm	30
	synt	any
	field	buffer
	pnull
	var	1
	pnull
	var	0
	line	143
	colm	56
	synt	any
	field	bufferBits
	line	143
	colm	45
	synt	any
	minus
	line	143
	colm	20
	synt	any
	invoke	2
	line	143
	colm	11
	synt	any
	asgn
	unmark
lab L22
	mark	L23
	pnull
	pnull
	var	0
	line	144
	colm	14
	synt	any
	field	buffer
	var	9
	pnull
	var	0
	line	145
	colm	28
	synt	any
	field	buffer
	var	7
	var	2
	pnull
	pnull
	var	0
	line	145
	colm	60
	synt	any
	field	bufferBits
	var	1
	line	145
	colm	72
	synt	any
	minus
	line	145
	colm	43
	synt	any
	invoke	2
	line	145
	colm	18
	synt	any
	invoke	2
	line	144
	colm	22
	synt	any
	asgn
	unmark
lab L23
	mark	L24
	pnull
	pnull
	var	0
	line	146
	colm	14
	synt	any
	field	bufferBits
	dup
	var	1
	line	146
	colm	26
	synt	any
	minus
	asgn
	unmark
lab L24
	mark	L25
	mark	L26
	var	2
	line	147
	colm	5
	synt	any
	pret
lab L26
	synt	any
	pfail
	unmark
lab L25
	pnull
	line	148
	colm	1
	synt	any
	pfail
	end
