Advertisement
Guest User

Untitled

a guest
Jul 28th, 2012
487
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;--------------------
  2. .proc convertString  ; (buf num -- bufstart) ~ (r1 r0 -- r1)
  3.   grow 3        ; 1
  4.   addi4 r4, 5       ; 2
  5.   clrmbp        ; 1
  6.   copy r0, r3       ; 2
  7.   set r2, 10        ; 2
  8. :  subi r4, 1       ; 2
  9.    div r0, r2       ; 2
  10.    addi8 r1, '0'    ; 3
  11.    stpmb r4     ; 2
  12.    with r0      ; 1
  13.   bnz :-        ; 2
  14.   rets 3        ; 1
  15. .endproc        ;  = 21 bytes
  16.  
  17.  
  18. ;--------------------
  19. .proc outputNumber  ; (handle num -- ) ~ (r1 r0)
  20.   grow 3        ; 1
  21.   copy r0, r3       ; 2
  22.   set16 r1, strbuf  ; 3
  23.   call convertString    ; 3
  24.   copy r2, r1       ; 2
  25.   copy r1, r4       ; 2
  26.   ba :++        ; 2
  27. :  call outputByte  ; 3
  28.    addi4 r2, 1      ; 2
  29. :  ldmb r0, r2      ; 2
  30.   bnz :--       ; 2
  31.   rets 3        ; 1
  32.             ;  = 25 bytes
  33. strbuf: .res 6
  34. .endproc
  35.  
  36. ;--------------------
  37. .proc outputByte  ; (handle byte -- ) ~ (r1 r0)
  38.   grow 1        ; 1
  39.   ldm r0, r2        ; 2
  40.   with r1       ; 1
  41.   stpmb r0      ; 2
  42.   addp 1        ; 2
  43.   stpm r2       ; 2
  44.   rets 1        ; 1
  45. .endproc        ;  = 11 bytes
  46.  
  47. ; total = 57 bytes, not including string buffer
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement