aboutsummaryrefslogtreecommitdiff
path: root/bignum.s
diff options
context:
space:
mode:
Diffstat (limited to 'bignum.s')
-rw-r--r--bignum.s22
1 files changed, 12 insertions, 10 deletions
diff --git a/bignum.s b/bignum.s
index 27580d5..9d24115 100644
--- a/bignum.s
+++ b/bignum.s
@@ -3,7 +3,7 @@
.importzp ptr3, ptr4, sreg
.import popeax, popax, pushax, _memcmp
.export _ulong_to_big, _big_to_ulong, _big_add, _big_sub, _big_mul, _big_div
- .export _bank_maxed_out, _big_cmp
+ .export _bank_maxed_out, _big_cmp, _big_copy
.include "atari.inc"
@@ -34,15 +34,6 @@ fr0_to_fptemp:
bpl @l
rts
-fr0_to_fr1:
- ldx #5
-@l:
- lda FR0,x
- sta FR1,x
- dex
- bpl @l
- rts
-
fptemp_to_fr0:
ldx #5
@l:
@@ -105,6 +96,17 @@ trunc_fr0:
rts
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+; void __fastcall__ big_copy(bignump dest, bignump src)
+_big_copy:
+ sta FLPTR ; src arg in FLPTR
+ stx FLPTR+1
+ jsr FLD0P ; load src value into FR0
+ jsr popax ; get dest arg
+ sta FLPTR ; dest arg in FLPTR
+ stx FLPTR+1
+ jmp FST0P ; store FR0 value into dest
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; void __fastcall__ big_binary_op(bignump dest, bignump a, bignump b, unsigned int jsraddr);
_big_binary_op: