## [DM16] Raising number to a power

Contributed software for the DM10, DM11, DM12, DM15 and DM16 goes here.

Please prefix the subject of your post with the model of the calculator that your program is for.
wile1411
Posts: 8
Joined: Mon Sep 28, 2020 9:48 am
Location: Canberra, Australia

### [DM16] Raising number to a power

I'm still learning the machine and found that it doesn't have a function to raise a number to a power.
As such, I thought I would take a stab at trying to code up a function to do exactly that.

It's got a few flaws so I'm still trying to work out how to work around them. I used ABS to force the base number into the LSTx register for the loop. This means it only works for positive base numbers.

Happy to hear any suggestions - just note I'm new to this and I'm still learning what's possible with the DM16. I'm half expecting that there is something obvious I missed with this attempt.

Code: Select all

Command			Program Code
[g][LBL] E		001 - 43,22, E		Example program start 5^4 = 5 [Enter] 4 [GSB] E
[DEC]			002 - 24		Ensure in DEC mode
1			003 - 1
[-] 			004 - 30		Subtract 1 from Exponent (used in loop)
[f][I]  		005 - 44 32		Store modified Exponent into I Register
[R Dwn]			006 - 33		Roll base number to X Register
[g][ABS]		007 - 43 8		Force base number into Lstx Register
[g][LBL] 0		008 - 43,22, 0		Loop '0' start
[g][LSTx]		009 - 43 36
[X] 			010 - 20		Multiply result by Base number
[g][DSZ]		011 - 43 23		Decrement the I register and
[GTO] 0			012 - 22  0		Repeat until I register = 0
[g][RTN]		013 - 43 21

DM16L SN: 00267(returned)
DM16L SN: 02149