164 lines
2.1 KiB
Plaintext
164 lines
2.1 KiB
Plaintext
MCyc::init:
|
|
link $2
|
|
lap param[$1]
|
|
aTop client
|
|
lap param[$2]
|
|
aTop points
|
|
lsp param[$0]
|
|
ldi $2
|
|
gt?
|
|
bnt code_0064
|
|
lap param[$3]
|
|
aTop caller
|
|
lsp param[$0]
|
|
ldi $3 ; z
|
|
gt?
|
|
bnt code_0064
|
|
lap param[$4]
|
|
aTop cycleDir
|
|
code_0064: ldi $0
|
|
aTop size
|
|
code_0068: pushi $4b ; 75, 'K', at
|
|
push1
|
|
pTos size
|
|
pToa points
|
|
send $6
|
|
bnot
|
|
push
|
|
ldi $8000 ; -32768
|
|
ne?
|
|
bnt code_007d
|
|
ipToa size
|
|
jmp code_0068
|
|
|
|
code_007d: pTos cycleDir
|
|
ldi $1
|
|
eq?
|
|
bnt code_008a
|
|
ldi $0
|
|
aTop value
|
|
jmp code_0091
|
|
|
|
code_008a: pTos size
|
|
ldi $4 ; scaleX
|
|
sub
|
|
aTop value
|
|
code_0091: pushi $94 ; 148, init
|
|
push0
|
|
super Cycle, $4
|
|
bnot
|
|
ret
|
|
|
|
MCyc::doit:
|
|
push1
|
|
lsg global[$40]
|
|
pToa cycleCnt
|
|
sub
|
|
push
|
|
callk kernel_61, $2
|
|
bnot
|
|
push
|
|
pushi $14a ; 330, cycleSpeed
|
|
push0
|
|
pToa client
|
|
send $4
|
|
bnot
|
|
ge?
|
|
bnt code_00bd
|
|
lag global[$40]
|
|
aTop cycleCnt
|
|
pushi $15f ; 351, nextCel
|
|
push0
|
|
self $4
|
|
bnot
|
|
code_00bd: ret
|
|
|
|
MCyc::nextCel:
|
|
pushi $f ; 15, loop
|
|
push1
|
|
pushi $4b ; 75, 'K', at
|
|
push1
|
|
pTos value
|
|
pToa points
|
|
send $6
|
|
bnot
|
|
push
|
|
pushi $10 ; 16, cel
|
|
push1
|
|
pushi $4b ; 75, 'K', at
|
|
push1
|
|
pTos value
|
|
ldi $1
|
|
add
|
|
push
|
|
pToa points
|
|
send $6
|
|
bnot
|
|
push
|
|
push1
|
|
push1
|
|
pushi $4b ; 75, 'K', at
|
|
push1
|
|
pTos value
|
|
ldi $2
|
|
add
|
|
push
|
|
pToa points
|
|
send $6
|
|
bnot
|
|
push
|
|
push2
|
|
push1
|
|
pushi $4b ; 75, 'K', at
|
|
push1
|
|
pTos value
|
|
ldi $3 ; z
|
|
add
|
|
push
|
|
pToa points
|
|
send $6
|
|
bnot
|
|
push
|
|
pToa client
|
|
send $18
|
|
bnot
|
|
pTos value
|
|
pTos cycleDir
|
|
ldi $4 ; scaleX
|
|
mul
|
|
add
|
|
aTop value
|
|
pTos cycleDir
|
|
ldi $1
|
|
eq?
|
|
bnt code_011b
|
|
pTos value
|
|
pToa size
|
|
ge?
|
|
code_011b: bt code_0129
|
|
pTos cycleDir
|
|
ldi $ff ; 255, asInteger
|
|
eq?
|
|
bnt code_0132
|
|
pTos value
|
|
ldi $0
|
|
lt?
|
|
code_0129: bnt code_0132
|
|
pushi $160 ; 352, cycleDone
|
|
push0
|
|
self $4
|
|
bnot
|
|
code_0132: ret
|
|
|
|
MCyc::cycleDone:
|
|
ldi $1
|
|
aTop completed
|
|
ldi $0
|
|
aTop value
|
|
pushi $159 ; 345, motionCue
|
|
push0
|
|
self $4
|
|
bnot
|
|
ret
|
|
|