use STH for right shift
This commit is contained in:
parent
524fec6ed1
commit
28bcf6d413
34
math32.tal
34
math32.tal
|
@ -130,39 +130,35 @@
|
||||||
|
|
||||||
( shift right by 0-7 bits )
|
( shift right by 0-7 bits )
|
||||||
@right-shift0 ( x** n^ -> x<<n )
|
@right-shift0 ( x** n^ -> x<<n )
|
||||||
STHk SFT ;sh/z3 STA ( write z3 )
|
STHk SFT ;sh/z3 STA ( write z3 )
|
||||||
#00 STHkr SFT2 #00 ;sh/z3 LDA ORA2 ;sh/z2 STA2 ( write z2,z3 )
|
#00 STHkr SFT2 #00 ;sh/z3 LDA ORA2 ;sh/z2 STA2 ( write z2,z3 )
|
||||||
#00 STHkr SFT2 #00 ;sh/z2 LDA ORA2 ;sh/z1 STA2 ( write z1,z2 )
|
#00 STHkr SFT2 #00 ;sh/z2 LDA ORA2 ;sh/z1 STA2 ( write z1,z2 )
|
||||||
#00 STHr SFT2 #00 ;sh/z1 LDA ORA2 ;sh/z0 STA2 ( write z0,z1 )
|
#00 STHr SFT2 #00 ;sh/z1 LDA ORA2 ( compute z0,z1 )
|
||||||
;sh/z0 LDA2 ;sh/z2 LDA2
|
;sh/z2 LDA2
|
||||||
RTN
|
RTN
|
||||||
|
|
||||||
( shift right by 8-15 bits )
|
( shift right by 8-15 bits )
|
||||||
@right-shift1 ( x** n^ -> x<<n )
|
@right-shift1 ( x** n^ -> x<<n )
|
||||||
#00 ;sh/z1 STA #0000 ;sh/z2 STA2
|
#08 SUB STH POP
|
||||||
#08 SUB ;sh/r STA ( n -> r )
|
STHkr SFT ;sh/z3 STA ( write z3 )
|
||||||
POP
|
#00 STHkr SFT2 #00 ;sh/z3 LDA ORA2 ;sh/z2 STA2 ( write z2,z3 )
|
||||||
;sh/r LDA SFT ;sh/z3 STA ( write z3 )
|
#00 STHr SFT2 #00 ;sh/z2 LDA ORA2 ( compute z1,z2 )
|
||||||
#00 ;sh/r LDA SFT2 ;sh/z2 LDA2 ORA2 ;sh/z2 STA2 ( write z2,z3 )
|
#00 TOR ;sh/z3 LDA
|
||||||
#00 ;sh/r LDA SFT2 ;sh/z1 LDA2 ORA2 ;sh/z1 STA2 ( write z1,z2 )
|
|
||||||
#00 ;sh/z1 LDA ;sh/z2 LDA2
|
|
||||||
RTN
|
RTN
|
||||||
|
|
||||||
( shift right by 16-23 bits )
|
( shift right by 16-23 bits )
|
||||||
@right-shift2 ( x** n^ -> x<<n )
|
@right-shift2 ( x** n^ -> x<<n )
|
||||||
#0000 ;sh/z2 STA2
|
#10 SUB STH POP2
|
||||||
#10 SUB ;sh/r STA ( n -> r )
|
STHkr SFT ;sh/z3 STA ( write z3 )
|
||||||
POP2
|
#00 STHr SFT2 #00 ;sh/z3 LDA ORA2 ( compute z2,z3 )
|
||||||
;sh/r LDA SFT ;sh/z3 STA ( write z3 )
|
#0000 SWP2
|
||||||
#00 ;sh/r LDA SFT2 ;sh/z2 LDA2 ORA2 ;sh/z2 STA2 ( write z2,z3 )
|
|
||||||
#0000 ;sh/z2 LDA2
|
|
||||||
RTN
|
RTN
|
||||||
|
|
||||||
( shift right by 16-23 bits )
|
( shift right by 16-23 bits )
|
||||||
@right-shift3 ( x** n^ -> x<<n )
|
@right-shift3 ( x** n^ -> x<<n )
|
||||||
#18 SUB ;sh/r STA ( n -> r )
|
#18 SUB STH POP2 POP ( x0 )
|
||||||
POP2 POP #00 SWP #0000 SWP2 ( 00 00 00 x0 )
|
#00 SWP #0000 SWP2 ( 00 00 00 x0 )
|
||||||
;sh/r LDA SFT
|
STHr SFT
|
||||||
RTN
|
RTN
|
||||||
|
|
||||||
( shift left, i.e. << )
|
( shift left, i.e. << )
|
||||||
|
|
Loading…
Reference in New Issue