If you’ve been following me on the social medias this week, you may have noticed a wee bit of excitement about a new calculator. It all starts with this tweet from Saturday:
All hands on deck!
My dream calculator is finally available!
From now until I make enough to justify buying this gorgeous machine, you can get 25% off of my entire catalog at https://payhip.com/epidiah with the coupon code DM42.
![]()
![]()
— Ep (@Epidiah) February 3, 2018
Four short days later, it was justified and this wondrous calculator was ordered.
To celebrate, I’ve extended the sale through the end of February. So until then, you can still get 25% off of everything at the Dig 1,000 Holes PayHip store with the coupon code DM42.
While I wait for this beauty to arrive, allow me to tell you why I’m so excited about it and perhaps why you should be excited, too.
SwissMicros, the creators of the DM42, specialize in retroclones of old HP calculators. I have a couple of the DM-15s, regular sized one and a adorable little credit card sized one.


In general, the calculators appeal to me because they use RPN—a way of keying things into the calculator that just makes my brain hum—and they’re programmable. Because I don’t need a calculator to do calculations. I have spreadsheets on all over my phone and computer to do this for me. I need a calculator that invites me to play.
Calculators like these say, “Here’s the world we live in. Here are the rules we must abide by. Here are your tools. Let’s see what you can do.” A sentiment echoed by many of my favorite games.
These are toys—a word I use with reverence here. They are objects bursting with possibility. You want to tug at them and poke them and see how far you can push them. When applied correctly, they can turn solving a quadratic equation into a dopamine hit. Oh! And when you perfect the warp equation on one calc, you cannot wait to try it out on another.
Here’s What’s So Beautiful About the DM42
It runs on Free42, a re-implementation of the HP-42s. The 42s is, itself, something of a re-implementation of the HP-41C series. Now that calculator is a legend. It first came out four decades ago with grand features for the time. It was, of course, programmable. You could display messages in text on the screen. It was expandable, allowing you to new functions. You could save and off-load your programs, if you had the right hardware. A community sprung up around this calculator. Folks began sharing their programs—often by writing them out by hand and mimeographing copies. If you know where you look, you can find a ton of these user-generated programs online today.
42s was an updated version of the 41C, which included some functions you might have need expansions for, a larger screen, and some rudimentary graphics capabilities. It wasn’t a full-on graphing calculator, but you could program some graphing capabilities into it. Critically, the HP 42s was backwards compatible. You have to look out for some pitfalls, but for the most part that vast library of 41C folk programs was also available to the 42s.
But let’s talk about DM42 and Free42, because this is where things get interesting for you and me. Because these calx have something that neither the 42s nor the 41C had—an internet connection.
Go get a Free42 app. It is, as its name implies, free. Play around with. Explore the joys of a calculator manual. Try your hand at RPN math and then try a bit of programming. It’s always fun it figure out the area of a circle given its radius. Check out that solver!
And when you want to bring it to the gaming table and make yourself the envy of all your fellow players, key this puppy in!
00 { 686-Byte Prgm } 01▸LBL "DICE" 02 FS?C 06 03 GTO 00 04 ASSIGN "d4" TO 01 05 ASSIGN "d6" TO 02 06 ASSIGN "d8" TO 03 07 ASSIGN "d10" TO 04 08 ASSIGN "d12" TO 05 09 ASSIGN "d20" TO 06 10 ASSIGN "d100" TO 07 11 ASSIGN "dF" TO 08 12 ASSIGN "Coin" TO 09 13 ASSIGN "Bnfrd" TO 10 14 ASSIGN "Tone" TO 11 15 SF 27 16 STOP 17 XEQ 00 18 GTO "DICE" 19▸LBL "d4" 20 4 21 XEQ 00 22 GTO "DICE" 23▸LBL "d6" 24 6 25 XEQ 00 26 GTO "DICE" 27▸LBL "d8" 28 8 29 XEQ 00 30 GTO "DICE" 31▸LBL "d10" 32 10 33 XEQ 00 34 GTO "DICE" 35▸LBL "d12" 36 12 37 XEQ 00 38 GTO "DICE" 39▸LBL "d20" 40 20 41 XEQ 00 42 GTO "DICE" 43▸LBL "d100" 44 100 45 XEQ 00 46 GTO "DICE" 47▸LBL "dF" 48 -3 49 XEQ 00 50 "[ ]" 51 X>0? 52 "[+]" 53 X<0? 54 "[-]" 55 AVIEW 56 GTO "DICE" 57▸LBL "Coin" 58 -2 59 XEQ 00 60 "Heads" 61 X=0? 62 "Tails" 63 AVIEW 64 GTO "DICE" 65▸LBL "Bnfrd" 66 RAN 67 STO "xyzzy" 68 R↓ 69 10 70 RCL× "xyzzy" 71 10↑X 72 IP 73 X<> "xyzzy" 74 10↑X 75 IP 76 X<> ST L 77 X<> "xyzzy" 78 CLV "xyzzy" 79 GTO "DICE" 80▸LBL "Tone" 81 6 82 XEQ 00 83 STO "GlumY" 84 6 85 XEQ 00 86 STO "JovialX" 87 CF 34 88 SF 35 89 CLA 90 254 91 XTOA 92 XEQ IND "JovialX" 93 254 94 XTOA 95 7 96 RCL- "JovialX" 97 56 98 AGRAPH 99 CF 35 100 "×××××××" 101 15 102 RCL- "JovialX" 103 57 104 AGRAPH 105 CLA 106 7ᴇ-3 107 STO 07 108 254 109▸LBL 07 110 XTOA 111 ISG 07 112 GTO 07 113 7 114 RCL- "GlumY" 115 67 116 AGRAPH 117 SF 34 118 CLA 119 254 120 XTOA 121 XEQ IND "GlumY" 122 254 123 XTOA 124 7 125 RCL- "GlumY" 126 67 127 AGRAPH 128 CF 34 129 RCL "GlumY" 130 RCL "JovialX" 131 CLV "GlumY" 132 CLV "JovialX" 133 GTO "DICE" 134▸LBL 01 135 ├"×××μ×××" 136 RTN 137▸LBL 02 138 ├"×A×××Σ×" 139 RTN 140▸LBL 03 141 ├"×Σ×μ×A×" 142 RTN 143▸LBL 04 144 ├"×E×××E×" 145 RTN 146▸LBL 05 147 ├"×E×μ×E×" 148 RTN 149▸LBL 06 150 ├"×U×××U×" 151 RTN 152▸LBL 00 153 STO "xyzzy" 154 R↓ 155 RAN 156 RCL× "xyzzy" 157 IP 158 ISG ST X 159 "Eppy was here." 160 X<> "xyzzy" 161 X<> ST L 162 X<> "xyzzy" 163 CLV "xyzzy" 164 RTN 165 END
Or just download Dice42.raw to whatever device you’ve got your Free42 running on and import it.
The point is, with Free42 out there, it’s no longer a solo game. Try this die-roller out! Run the DICE program. It’ll populate your custom menu with two rows of different dice. Some of them are straight forward. Some are a little more interesting. I took care to ensure that all but the Tone dice preserve your RPN stack. So you can treat a die roll just like entering any other number. Want to roll 3d6? Hit D6 three times and then + +.
Check this out: Run the DICE program and instead of choosing a dice from the menu, key in a number and hit R/S. It’ll roll a die of that size for you. (Works best with positive integers, but negative numbers can get you interesting results, too. See DF & COIN.) Now hit [Shift] LAST X to bring you initial number back, just in case you had to roll it more than once.
But you’re going to play Torchbearer tonight and you want the calc to check the rolls to see which ones are > 4 and therefore successes. You can write your own program to do that, have that program call on DICE to do the rolling. Just make sure the size of the die you’re rolling is in the x-register and set flag 06 before calling DICE, so that program knows to just roll. Something like
6 ←Assuming you're rolling a six-sider. SF 06 XEQ "DICE"
Enjoy!
P.S. There’s a sequel to this post written after I received my DM42 that goes into a little more depth as to why this particular calc appeals to me as a game designer. Do not miss The Calculator’s Game Design!
I … kinda have a irrational knee-jerk anger towards RPN. Y’see, my father, who missed-out on college in his youth accrued some _interesting_ shame-spawned notions about what campus culture was like by the time I enrolled; he swore I’d be laughed out of class for wearing sneakers instead of leather loafers, and held the unshakable belief that I _needed_ a elaborate RPN science calculator to survive academically, which he gifted to me with all the pomp of a liege handing his squire their first sword. Note I was an English major, so what I actually needed was any cheap casio to get me through the minimal run of geometry expected of a lib arts student. Using it for such basic math was like trying to stack soup cans with a freight crane. I was so relieved when I finally lost it and had an excuse to get that cheap casio instead.
I’m still waiting for some company to issue a remake of the Curta Model 1. Nothing like trying to reproduce 1100 machined parts in 3 different metals, as well as limited plastics, combined with a notoriously difficult assembly process to make a manufacturing challenge.
That would be quite the undertaking, but I’d definitely get in line for one.
I love RPN, or I guess now that I’ve dug around the terminology RPL maybe. I will never buy a calculator with a stack that only goes 4 levels deep. There’s barely a point to having a stack if I have to keep thinking about whether I’ve gone “off the top.”
I’ve got a 50g & a 48sx, both of which use RPL, and I’m a big fan of both of them and their giant stacks. But for me, the 4-level stack also has its appeal. When you get used to working with a T register, you start to depend on it.