aboutsummaryrefslogtreecommitdiffstats
path: root/src/test_fibo.atk16
diff options
context:
space:
mode:
authorJan Tuomi <jans.tuomi@gmail.com>2023-04-11 14:38:51 +0300
committerJan Tuomi <jans.tuomi@gmail.com>2023-04-11 14:38:51 +0300
commitdd3c90011ab33717e4c4175cd6804ae86582135f (patch)
tree60519868e7c329eef0dd5eb22026e8c6ed85245a /src/test_fibo.atk16
parentda14e7ca7f31cb4b9a975dbe349fb4d385592b9c (diff)
Refactor folder
Diffstat (limited to 'src/test_fibo.atk16')
-rw-r--r--src/test_fibo.atk1666
1 files changed, 0 insertions, 66 deletions
diff --git a/src/test_fibo.atk16 b/src/test_fibo.atk16
deleted file mode 100644
index 8bb7a6e..0000000
--- a/src/test_fibo.atk16
+++ /dev/null
@@ -1,66 +0,0 @@
-@opt stack_pointer RF
-@opt csr_scratch RH
-@use ext_std:*
-
-; jump over data segment
- jpi program
-
-; data segment
-@label ram_offset
- 0x8000
-
-@label program
-; set up stack pointer to point to beginning of RAM
- ldi ram_offset RA
- ldr RA RF
-
-; call fibo subroutine with parameter 10
- ldi 10 RA
- csi fibo
- hlt
-
-@label fibo
-; function fibo
-; parameters:
-; RA n : u16
-; return value:
-; RA fibo(n) : u16
-
-; store RB, RC on stack
- spu RB
- spu RC
-; if n < 2, return n
- subi RA 2 RA
- bri sign fibo_early
-; store also RD on stack
- spu RD
-; a = 0
- ldi 0 RB
-; b = 1
- ldi 1 RC
-@label fibo_loop
-; v = a + b
- add RB RC RD
-; a = b
- mov RC RB
-; b = v
- mov RD RC
-; n -= 1
- dec RA
-; loop while n > 0
- bri zero fibo_done
- jpi fibo_loop
-@label fibo_early
-; restore used registers
- spo RC
- spo RB
-; return from subroutine
- rsr
-@label fibo_done
- mov RD RA
-; restore used registers
- spo RD
- spo RC
- spo RB
-; return from subroutine
- rsr