Sequence::new:
		link	$1
		pushi	$71		; 113, 'q', data
		push1
		lsp	param[$1]
		pushi	$8d		; 141, new
		push0
		super	Obj, $4
		bnot
		sat	temp[$0]
		send	$6
		bnot
		lat	temp[$0]
		ret

Sequence::next:
		link	$1
		pTos	nextNode
		ldi	$1
		add
		aTop	nextNode
		pToa	nextNode
		sat	temp[$0]
		push
		pushi	$5a		; 90, 'Z', size
		push0
		pToa	data
		send	$4
		bnot
		lt?
		bnt	code_007f
		pushi	$4b		; 75, 'K', at
		push1
		lst	temp[$0]
		pToa	data
		send	$6
		bnot
		ret

		jmp	code_0082

code_007f:	ldi	$0
		ret

code_0082:	ret

Sequence::prev:
		link	$1
		pTos	nextNode
		dup
		ldi	$ff		; 255, asInteger
		eq?
		bnt	code_00a1
		pushi	$5a		; 90, 'Z', size
		push0
		pToa	data
		send	$4
		bnot
		push
		ldi	$1
		sub
		aTop	nextNode
		pToa	nextNode
		sat	temp[$0]
		jmp	code_00ac

code_00a1:	pTos	nextNode
		ldi	$1
		sub
		aTop	nextNode
		pToa	nextNode
		sat	temp[$0]
code_00ac:	toss
		lst	temp[$0]
		ldi	$0
		ge?
		bnt	code_00c1
		pushi	$4b		; 75, 'K', at
		push1
		lst	temp[$0]
		pToa	data
		send	$6
		bnot
		ret

		jmp	code_00c4

code_00c1:	ldi	$0
		ret

code_00c4:	ret

Sequence::begin:
		ldi	$0
		aTop	nextNode
		ret

Sequence::end:
		ldi	$ff		; 255, asInteger
		aTop	nextNode
		ret

Sequence::set:
		link	$1
		pushi	$b3		; 179, begin
		push0
		self	$4
		bnot
code_00d8:	pushi	$4c		; 76, 'L', next
		push0
		self	$4
		bnot
		sat	temp[$0]
		bnt	code_00e9
		lsp	param[$1]
		ne?
		bnt	code_00e9
		jmp	code_00d8

code_00e9:	lsp	param[$1]
		lat	temp[$0]
		eq?
		ret

Sequence::value:
		pTos	nextNode
		pushi	$5a		; 90, 'Z', size
		push0
		pToa	data
		send	$4
		bnot
		lt?
		bnt	code_0110
		pTos	nextNode
		ldi	$0
		ge?
		bnt	code_0110
		pushi	$4b		; 75, 'K', at
		push1
		pTos	nextNode
		pToa	data
		send	$6
		bnot
		ret

		jmp	code_0113

code_0110:	ldi	$0
		ret

code_0113:	ret

