153 lines
1.9 KiB
Plaintext
153 lines
1.9 KiB
Plaintext
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
|
|
|