summary refs log tree commit diff
path: root/code/strlib.a
diff options
context:
space:
mode:
Diffstat (limited to 'code/strlib.a')
-rw-r--r--code/strlib.a128
1 files changed, 0 insertions, 128 deletions
diff --git a/code/strlib.a b/code/strlib.a
deleted file mode 100644
index a18da3b..0000000
--- a/code/strlib.a
+++ /dev/null
@@ -1,128 +0,0 @@
-; number to string
-; a - pointer to output
-; b - number to print
-num_to_str:
-    str a out_pointer
-    str a out_start
-    str b [number]
-    ; non-address definitions
-    .label zero 48
-    ; define stuff in memory
-    ; .label number 16
-    ; .label mult 17
-    ; mov a 1
-    ; str a mult
-    ; .label currnum 18
-    ; .label tmp1 19
-    ; .label swap_counter 21
-
-    loop_start:
-        ; get num-(num%mult)
-            ld a [number]
-            ld b [mult]
-            mod
-            swp c b
-            sub
-            str c [tmp1]
-
-        ; get num-(num%(mult*10))
-            mov a 10
-            ld b [mult]
-            mul
-            swp c b
-            ld a [number]
-            mod
-            swp c b
-            sub
-        
-        ; subtract the thingies to get the current digit
-        swp c b
-        ld a [tmp1]
-        sub
-        swp c a
-        ld b [mult]
-        div
-        str c [currnum]
-
-        ; add zero to currnum and store at out_pointer
-        swp a c ; currnum -> A
-        mov b zero
-        add
-        ld a [out_pointer]
-        srr c a ; store c to address at a (which is out_pointer)
-
-        ; continue loop
-            ; increment out_pointer
-            ld a [out_pointer]
-            mov b 1
-            add
-            str c [out_pointer]
-            ; increment mult
-            ld a [mult]
-            mov b 10
-            mul
-            str c [mult]
-        
-            swp c b ; mult -> b
-            ld a [number] ; get number
-            mod ; get mod, will be equal to number if reached end
-            cmr c a ; compare result of mod and number (which is still in a)
-            jz loop_start ; jump if not equal
-    ; escaped from loop; swapping around memory to flip the text
-    ld a [out_pointer]
-    ld b [out_start]
-    sub
-    swp c a
-    mov b 2
-    div
-    str c [swap_counter]
-    cmp c 0
-    jnz end_swap
-    start_swap:
-        ; ptr - counter
-            ld b [swap_counter]
-            ld a [out_pointer]
-            sub
-            str c [tmp1]
-        ; start + counter
-            ld a [swap_counter] ; 1
-            mov b 1
-            sub ; 1
-            swp c b ; 1 -> b
-            ld a [out_start] ; 32
-            add ; 32 + 1 = 33
-        swp c b
-        ld a [tmp1]
-        dbg 304
-        swpm a b
-        ld a [swap_counter]
-        mov b 1
-        sub
-        str c [swap_counter]
-        cmp c 0
-        jz start_swap
-    end_swap:
-    ; add \n\0
-    ld b [out_pointer]
-    mov a 10 ; \n
-    srr a b
-    mov a 1
-    add
-    mov a 0 ; \0
-    srr a c
-    ret
-
-out_pointer:
-.hex 0
-out_start:
-.hex 0
-number:
-.hex 0
-mult:
-.hex 1
-currnum:
-.hex 0
-tmp1:
-.hex 0
-swap_counter:
-.hex 0
\ No newline at end of file