; ********************************************************
; Base Conversion
; ********************************************************
; Base Conversion, Sourcebook for Programmable Calculators
;  (Pages 1-16 thru 1-20)

#EMULATOR c:\ti-59\prg2\baseconv\baseconv.t59
#LISTING c:\ti-59\prg2\baseconv\baseconv.lst
#POCKETPC c:\ti-59\prg2\baseconv\baseconv.ti

; Clears memories and stores base a, base b, and number of
; terms, less 1, in appropriate memories.
; --------------------------------------------------------
lbl a
cms sto 1 r/s
sto 2 r/s
- 1 = sto 5 r/s

; Converts base a to base 10. (Base 10 number stores in R00.)
; -----------------------------------------------------------
lbl b
* ( rcl 1 yx rcl 5 ) ee inv ee
= sum 0 1 +/- sum 5 r/s

; Finds the largest power of base b that will divide the base
; 10 number.
; -----------------------------------------------------------
lbl d
rcl 2 x%t 1 sum 4 rcl 0 / rcl 2
yx rcl 4 = inv ge a' d

; Generates the base b number one term at a time.
; -----------------------------------------------
lbl a' 
rcl 0 / rcl 2 yx rcl 4 = int
prt r/s
* ( rcl 2 yx rcl 4 ) ee inv ee =
inv sum 0 rcl 4 - 1 = sto 4 0 x%t
rcl 4 eq b' a'

; Finds final term and stops.
; ---------------------------
lbl b'
rcl 0 prt r/s
 



 
#end
