Behold, Tyler Teaches Eppy About Playwriting!

Tyler is a dramaturge skilled in the eldritch arts of the theater. We talked for a little over two hours about the differences and similarities between playwriting and other forms of fiction and verse—in particular short fiction and game design because I am a creature of habit.

There’s a trove of intriguing concepts and thought exercises in the video, but the one that still burns in my brain is devised theater—a collaborative playwriting technique that shares a kinship with playstorming.

It only takes two points to define a line. Last week Shel Kahn taught me about merch. So here we are, on point two, looking at a path forward. Expect more Person Teaches Eppy About Thing in the future, folks!

I’m looking to record more of these. If you’re a person who knows about a thing, I’d love for you to teach me about it. Let’s hang out and record it! Hit me up in the comments or on my Twitter or wherever else you may find me. It doesn’t matter what your thing is, if you’re passionate about it, I bet I’d dig it.

]]>Behold, Shel Teaches Eppy About Merch!

Shel is an artist and merchwright with a penchant for the swords and the sorceries, and long time *Worlds Without Master* fans will recognize her art from “One Winter’s Due” in issue 2, *Worlds’* very first illustrated cover on issue 4, and her comic *Wolf Neighbours *which appeared in issues 9 and 11.

If it’s not obvious, I’m a fan. Dabbling in publishing the way I do affords me wonderful opportunities like this to work with and just hang out with some talented folks. When Shel offered to tell me about how she handles merch and agreed to recording our conversation, I jumped at the chance.

The video is just under 1 hour and 40 minutes long, and it is packed full of practical how-to instructions and generally helpful advice, covering:

- Storefronts
- Print-on-Demand
- Drop Shipping
- Experimenting
- The dazzling array of products available
- Hawking your wares
- Seriously, hawk your wares

And it lit a fire in my brain! Expect some merch from Eppy in the near future!

I have a hankering to record more of these. If you’re a person who knows about a thing, I’d love for you to teach me about it. Let’s hang out and record it! Hit me up in the comments or on my Twitter or wherever else you may find me. It doesn’t matter what your thing is, if you’re passionate about it, I bet I’d dig it.

]]>On Sunday, April 29th, over on the ActualPlay Twitch channel, we had our first of several *Swords Without Master *speed runs. You witness the glory for yourself!

Though those two videos total almost two hours of viewing enjoyment, the speed run itself, from the roll for the first overtone to the last reincorporation, takes about 50 minutes and 16 seconds.

That first roll for the overtone takes place around 42 minutes into the first video. Before that we have our rogue creation and a brief overview of the rules of the game. Our plan is to use a recurring cast of Rogue Players and their rogues, so in the future these preliminaries will be less and less necessary. But we wanted to include them in these early episodes to serve as an intro to the game rules and the characters.

Our quest is to tell a complete and enthralling sword and sorcery short story using the *Swords Without Master* rules as is in 40 minutes or less.

My secret goal is 25 minutes, roughly the length of a

Thundarr the Barbarianepisode, the preferred Sunday morning cartoon fare of my youth.

Ah, but the destination is not as important as the fearsome struggles and sorcerous meddling we’ll face along the way. Join us if you dare!

We’ll take up our swords again Sunday, June 3rd, 2018, on the ActualPlay channel, at 11 AM EDT. Join us in the chat live or watch the video on demand afterwards on the ActualPlay Twitch or YouTube channel.

]]>Thanks in part to my New Year’s Resolution to find a new venue for my games each month, I’ve dedicated April to bringing the Dig a Thousand Holes catalog to IPR.

It’s a pleasure working with IPR. They’ve got a hands-on approach that sets them apart of some of the other sites I’ve join so far this year, which is both helpful and reassuring in a way that automated systems simply can’t be. They’re also really big on con support, and since I’m inching my way back to print products, that’s something I think I’m going to appreciate.

Go dig in!

]]>I’m not overbrimming with opinions about Gumroad at the moment. It was easy to set up, but it doesn’t seem to handle VAT and there isn’t a whole lot of structure for cross-pollination, so right now I’m a bit more enamored with Itch.io.

That said, I’ve not done a deep dive on all the features offered by Gumroad. If you’re a Gumroad seller with an opinion to share, tell me what you’re digging!

In the meantime…

And as always, to keep up-to-date on this and other projects in the works, sign up for my monthly newsletter. There’s a special treat coming in the very next one.

]]>

As part of my New Years resolution to find new horizons to litter with my works, I turn now to the much vaunted Itch.io.

My first impression, reading through their FAQs, is that I going to dig this site. It’s got a ton of features that I can make use of, including:

- VAT support, because VAT is something I never want to deal with.
- Bulk download keys, which can help with crowdfunding fulfillment and perhaps Epimas?
- Patreon integration, which is still useful to me, even though ill-made decisions at Patreon set me on this path in the first place.

One drawback for *Worlds* which haunts me everywhere is that folks rarely have a way to classify a magazine that includes stories, games, and comics. They really want to pigeonhole you into one or another of those three categories. Itch.io does not seem to be an exception. But I’m learning to live with that.

What impresses me that most about Itch.io is how they let *you* set the percentage of your sales they get to keep–from 0% to 100% with a default at 10%. I. Dig. That.

And as always, to keep up-to-date on this and other projects in the works, sign up for my monthly newsletter.

]]>**Warning: **The Ansari Anachronometer program found herein is provided “as-is” and subject to change at any time. The author and publisher offer no warranty of of any kind with regard to this keystroke program, including, but not limited to, the implied warranties of fitness as a temporal stress calibration tool. Dig a Thousand Holes Publishing shall not be liable for errors, anomalies, or paradoxes that arise from the use of this program. Do not meddle in the causal streams of time without proper training.

Though the patents for the actual Ansari Anachronometer are still held by the historically litigious Browne Chronometric Engineer, Inc., we’ve managed to reverse engineer its functions in a—as far as we can discern—unique keystroke program for your HP-42S (or DM42 or Free42). This is not a true emulation of the anachronometer, but rather a simplified simulation, based on observed behavior and the few materials from Browne Chronometric that have been made public.

To use ANSARI, first key in the following program to your HP-42S, Free42, or DM42; or if you’re using either of the latter two, you can upload the .raw file from here. If you don’t have any of these calculators, Free42 is a free app that’s got you covered. Go download it now and then upload the ANSARI to see it in action!

Execute the program by:

- Pressing [XEQ] and then the softkey for [ANSARI] in the resulting menu.
- Pressing [Shift] [CATALOG], followed by [PGM] and then choosing the softkey for [ANSARI] from that menu.

You will be greeted by a temporal paradox hazard warning. Take heed! Time travel is nothing to trifle with. Your explorations threaten all of existence, going forward and back.

Once the warning is cleared, you will be presented with the anachronometer you are familiar with. Due to display limitations on the HP-42S and Free42, only two lines of the anachronometer are visible at a time. A version that takes advantage of the DM42’s larger screen is still in development.

The ▲ and ▼ keys will scroll through the various lines of the anachronometer. When they reach the top or bottom of the list, they will rollover to the other side.

The top line of the display is the active line, denoted by the indicators on the right and left sides of the screen. To increase the paradox stress on the active line press [+]. The vertical line in the middle of the screen is the paradox threshold. Stress beyond that point threatens paradox. Proceed with caution!

Temp Tip:If silence is needed during your operations in time, remember to place your calculator in quiet mode before using it: [Shift] [MODES] [▼] [QUIET]

If you need to decrease the paradox stress on the active line, either because it was entered by mistake or eased through the use of a zeitgeist synchronicity, press [-].

To go directly to a specific line in the anachronometer, press [Shift] [GTO], key in the number of the line you wish to go to, then press [R/S].

To exit, press [EXIT] twice.

**Bonus:** The A-UTIL program provided below is actually a suite of utility programs to help a you save, restore, and create new anachronometric matrices in your calc. The ANSARI runs off of your calc’s default array of registers, but if you [XEQ] [A-UTIL] you can…

- …load a previously saved anachronometric matrix by pressing [LoadM]. The program will ask you to RCL your saved matrix to the X register and then press R/S to load it in.
- …save the current anachronometric matrix, by pressing [EjctM]. A copy of the current anachronometric matrix will be placed in the X register and you will be able to STO it from there.
- …create fresh anachronometer for the next adventure, by pressing [NewM] and then [Yes]. The current one will be replaced with a pristine anachronometer from an unperturbed time.
- …activate the ANSARI program by pressing [Run].

Note that the LoadM and EjctM programs must be run from the A-UTIL menu.

Note also that the matrix that stores your Ansari Anachrometer’s data is not the same as the Matrix that the temps puzzle over as they seek synchronicity and attempt to avoid anomalies.

If you do not have

Time & Tempthere still might be time to get it—along with anything else Dig a Thousand Holes Publishes—for 25% off a PayHip with the coupon code “DM42” before March 1, 2018!

(Download the .raw file here: Ansari.raw)

00 { 804-Byte Prgm } 01▸LBL "ANSARI" 02 1 03 STO "Line" 04 CLLCD 05 CF 21 06 CF 34 07 CF 35 08 "TEMPORAL" 09 ├" " 10 ├"HAZARD" 11 ├"[LF]PARADOX" 12 ├" " 13 ├"WARNING" 14 AVIEW 15 PSE 16 "←8←÷ " 17 6 18 XTOA 19 ├"IÆ1qq1q" 20 241 21 XTOA 22 ├"q1ÆI" 23 6 24 XTOA 25 ├"@" 26 224 27 XTOA 28 ├"@" 29 1 30 54 31 AGRAPH 32 "`←HDBajubbDI←b÷" 33 ├"¿Ö¿" 34 9 35 59 36 AGRAPH 37 CLA 38 0.011 39 STO 00 40 128 41▸LBL 00 42 XTOA 43 ISG 00 44 GTO 00 45 9 46 60 47 AGRAPH 48 PSE 49 PSE 50▸LBL A 51 CLLCD 52 ">Ö¿" 53 1 54 2 55 AGRAPH 56 "¿Ö>" 57 1 58 128 59 AGRAPH 60 XEQ IND "Line" 61 1 62 42 63 ALENG 64 - 65 AGRAPH 66 1 67 STO 21 68 XEQ B 69 XEQ 23 70 XEQ IND "Line" 71 8 72 42 73 ALENG 74 - 75 AGRAPH 76 8 77 STO 21 78 XEQ B 79 XEQ 18 80 1 81 STO 21 82 1 83 -59 84 PIXEL 85 SF 25 86 GETKEY 87 17 88 X<Y? 89 XEQ IND ST Y 90 GTO A 91▸LBL 01 92 ">" 93 RTN 94▸LBL 02 95 ">÷>" 96 RTN 97▸LBL 03 98 ">÷>÷>" 99 RTN 100▸LBL 04 101 ">÷↓← ←↓" 102 RTN 103▸LBL 05 104 "↓← ←↓" 105 RTN 106▸LBL 06 107 "↓← ←↓÷>" 108 RTN 109▸LBL 07 110 "↓← ←↓÷>÷>" 111 RTN 112▸LBL 08 113 "↓← ←↓÷>÷>÷>" 114 RTN 115▸LBL 09 116 ">÷"Å¿Å"" 117 RTN 118▸LBL 10 119 ""Å¿Å"" 120 RTN 121▸LBL 11 122 ""Å¿Å"÷>" 123 RTN 124▸LBL 12 125 ""Å¿Å"÷>÷>" 126 RTN 127▸LBL 13 128 ""Å¿Å"÷>÷>÷>÷¿¿¿" 129 ├"÷"Å¿Å"÷>÷↓← ←↓" 130 RTN 131▸LBL 14 132 ""Å¿Å"÷↓← ←↓÷¿¿¿" 133 ├"÷"Å¿Å"÷↓← ←↓÷>" 134 RTN 135▸LBL 15 136 ""Å¿Å"÷↓← ←↓÷>÷>" 137 ├"÷¿¿¿÷"Å¿Å"↓← ←" 138 ├"↓÷>÷>÷>" 139 RTN 140▸LBL 16 141 ""Å¿Å"÷>÷"Å¿Å"÷¿" 142 ├"¿¿÷"Å¿Å"÷"Å¿Å"" 143 RTN 144▸LBL B 145 1.01 146 2.003 147 RCL "Line" 148 12 149 X≥Y? 150 R↓ 151 RCL ST Z 152 STO 20 153▸LBL C 154 "÷Ö"""Ö" 155 RCL 21 156 RCL 20 157 IP 158 RCL IND "Line" 159 X≥Y? 160 "÷Ö>>>Ö" 161 R↓ 162 8 163 × 164 36 165 + 166 AGRAPH 167 ISG 20 168 GTO C 169 RTN 170▸LBL 18 171 RCL "Line" 172 1 173 - 174 X≤0? 175 16 176 STO "Line" 177 RTN 178▸LBL 23 179 17 180 RCL "Line" 181 1 182 + 183 X≥Y? 184 1 185 STO "Line" 186 RTN 187▸LBL 32 188 RCL IND "Line" 189 1 190 - 191 X≤0? 192 0 193 STO IND "Line" 194 X>0? 195 RTN 196 RCL "Line" 197 12 198 X≥Y? 199 RTN 200 1 201 STO IND "Line" 202 RTN 203▸LBL 37 204 1 205 STO+ IND "Line" 206 RCL "Line" 207 12 208 X≥Y? 209 RTN 210 RCL IND "Line" 211 3 212 X<Y? 213 STO IND "Line" 214 RTN 215▸LBL 43 216 INPUT "Line" 217 12 218 X≥Y? 219 RTN 220 - 221 2 222 ÷ 223 0.5 224 + 225 IP 226 12 227 + 228 STO "Line" 229 16 230 X≥Y? 231 RTN 232 STO "Line" 233 RTN 234 END

(Download the .raw file here: A-Util.raw)

00 { 347-Byte Prgm } 01▸LBL "A-UTIL" 02 INDEX "REGS" 03 2 04 1 05 STOIJ 06 CLMENU 07 "LoadM" 08 KEY 1 XEQ "LoadM" 09 "EjctM" 10 KEY 2 XEQ "EjctM" 11 "NewM" 12 KEY 4 XEQ "NewM" 13 "Run" 14 KEY 6 GTO "ANSARI" 15 MENU 16 STOP 17 GTO "A-UTIL" 18▸LBL "LoadM" 19 CLMENU 20 "R/S" 21 KEY 1 GTO 11 22 "Exit" 23 KEY 6 GTO "A-UTIL" 24 MENU 25 "RCL matrix. P" 26 ├"ress R/S." 27 PROMPT 28▸LBL 11 29 MAT? 30 PUTM 31 MAT? 32 RTN 33 GTO "LoadM" 34▸LBL "EjctM" 35 CLMENU 36 "R/S" 37 KEY 1 GTO 21 38 "Exit" 39 KEY 6 GTO "A-UTIL" 40 MENU 41 16 42 1 43 GETM 44 "STO matrix. P" 45 ├"ress R/S." 46 PROMPT 47▸LBL 21 48 RTN 49▸LBL "NewM" 50 CLMENU 51 1.012 52 STO 00 53 0 54 STO 17 55 "Yes" 56 KEY 1 GTO 40 57 "No" 58 KEY 6 GTO "A-UTIL" 59 "Are you sure?" 60 AVIEW 61 STOP 62 GTO 04 63▸LBL 40 64 RCL 17 65 STO IND 00 66 ISG 00 67 GTO 40 68 1 69 STO 17 70 RCL 00 71 13.016 72 STO 00 73 X>Y? 74 GTO 40 75 "New matrix acqu" 76 ├"ired." 77 AVIEW 78 RTN 79 END]]>

But before I do, a brief introduction for all my new readers. Hello there, I am Epidiah Ravachol, author, tabletop roleplaying game designer, and calculator enthusiast. I have written and designed quite a few games over the years. Many of these can be found at the Dig a Thousand Holes Publishing store where until the end of February you can get them for 25% off using the coupon code DM42. You can also get back issues of my sword & sorcery magazine *Worlds Without Master*—packed with comics, games and weird tales about forbidden sorceries and high adventure. One game you won’t find there (because I published it through another company) is perhaps my most well-known: *Dread*, the horror game that uses *Jenga* instead of dice. Finally, I talk about these games, other favorites of mine, game design in general, and my love of calculators and math all over the Internet—on Mastodon, on Twitter, on Google+, on Instagram. I also co-host a podcast about *The Rockford Files**, *for those of you who also happen to love 70s detective shows starring James Garner (which should be just about all of you).

And if you really want to stay up-to-date on my bullshit, sign up for my monthly newsletter!

Right, now on to the gorgeous DM42!

My background is solidly rooted in fiction. I studied fiction in school. I made a career out of writing fiction and designing games that play with fiction. Until very recently, I was under the mistaken impression that math was not my thing. That is was something to power through. A useful tool, but not something to be enjoyed. This changed a couple years ago when I discovered programmable RPN calculators. They lit a near insatiable fire within me to learn as much as I can about as much mathematics as possible.

(If you’re familiar with RPN and programmable calx, feel free to skip the next two sections and check out where I talk about the DM42 in particular.)

3 + 2 = 5

Grab the “solar powered” calculator on your desk and key that in. You probably start by hitting [3] followed by [+] then [2] and dutifully the [=] at the end to get your 5. This is known as infix notation and it is what you’re probably used to. The operator [+] goes *between* the operands [3] & [2].

Reverse Polish Notation, or RPN, is a postfix notation, and it puts the operator in its place, after the operands. In RPN you would key [3] then [Enter] then [2] and then your [+] to get that sweet, sweet result of 5.

No big deal. Probably a little bit different than you’re used to, but you had to learn the infix notation at some point. This is just training yourself to look at a problem in a slightly different way. And that’s always fruitful in and of itself, but for me the true beauty of RPN lies in the stack.

From here on out, my examples are going to be DM42 specific. There are quite a few RPN calx out there, and they can differ in exactly how they work. Here’s how the DM42 handles it.

It has a stack of memory registers, labeled X, Y, Z, and T and arranged like so on your screen:

- T 0
- Z 0
- Y 0
- X 0

The bottom one, X, is where all the action happens. When you key in [3], is shows up there.

- T 0
- Z 0
- Y 0
- X 3_

When you hit [Enter] the 3 moves up to Y, but leaves a copy of itself in X, just in case you still need it. It’s thoughtful like that.

- T 0
- Z 0
- Y 3
- X 3

This time, we have no need for that copy, so we’ll ignore it. When we hit [2] it’ll overwrite it. That’s the power of [Enter]. It lifts the stack, copies Y into X, and then makes it so you can overwrite X with a number more suited to your needs.

- T 0
- Z 0
- Y 3
- X 2_

Now we key [+] to add Y to X and see our result in X.

- T 0
- Z 0
- Y 0
- X 5

If we typed in another number now, instead of overwriting it, the whole stack would lift up again, making room for our new number. Let’s try it. Let’s say that instead of 3 + 2, we were trying to solve (3 + 2) ÷ (7 – 1). Key in [7].

- T 0
- Z 0
- Y 5
- X 7_

The 5 bumps up to Y to make room for the 7 in X. That’s very convenient, but it’s about to get much more convenient. Key in [1].

- T 0
- Z 5
- Y 7
- X 1_

5 jumps to Z as 7 moves into Y and 1 settles into X. We want to subtract the 1 from the 7 before we divide, so we hit [-] next.

- T 0
- Z 0
- Y 5
- X 6

And we see the math unfolding before our very eyes! Now for the final result, key [÷].

- T 0
- Z 0
- Y 0
- X 0.8333

And we get the result 0.8333 etc. in our X register!

Certainly, (3 + 2) ÷ (7 – 1) is not a very particularly interesting calculation. You could have done most of it in your head. But if we had a π instead of 3 or a √7 instead of 7, we would need a calculator. Still, you probably would have been able to do that on the “solar powered” calc on your desk, if you made use of your memory key. But I really dig the way an RPN bounces your previous calculations around in the background, waiting their turn to be useful again.

There are limitations, of course. The stack is only four deep, but you can fit a lot of intricate equations into a four-level stack. And the limits come with some neat capabilities. That T register, which we haven’t used yet, is the end of the line. If we bump a number up out of the T, it’s gone for good. To make up for this, the T is given the power to duplicate. When the stack drops, like when we added 2 to 3 to get 5, whatever number is in T duplicates itself into Z. In our example above, that number was 0. But we can put any number we want in T, either by keying the number in and hitting [Enter] three times, or using the [R↓] key which rolls the stack down so that every number moves to the register below it and the number in the X register moves to T.

Is this starting to feel like a game yet?

No?

All right, consider our old friend the polynomial. Let’s say there’s a formula that you have to calculate over and over again:

-2*x*⁴+3*x*³+7*x*²-18*x*+4

**Here’s the challenge:** How do you solve this without having to enter your *x* value more than once?

Forget thinking about this as math homework. Wrap yourself instead in fantasy. A 60s sci-fi spy thriller set in the distant future year of 1988. This polynomial is a key, encoded in microdots on a pair of cufflinks gifted to you by your former lover and fellow agent before they disappeared. In your search for them, you find yourself in a secret lair, deep beneath an extinct volcano. Before you are a series cell doors, each completely nondescript except for a value of *x* engraved on it. You have only your wits and your DM42 at your disposal—a terrifying amount of computing power tucked* *in your shirt pocket. Whatever it takes to wash the funk of homework out of your mind and let you engage it like the puzzle it is.

**Here’s the hint: **You can key it in without ever having to touch the [*y^x*] button.

This is how RPN sunk its hooks into me. Like a well-designed game, it gives me the rules, the affordances and the constraints, and then it shows me just enough tricks to open my mind to the possibilities before letting me run wild with it. I mean, I haven’t even scratched the surface here. The [Last *x*] and [*x*<>*y*] keys alone are complete game changers. But this is where it starts.

When it was first introduced on calculators, RPN was a way to hand some of the computational needs of the calc on to the user. It left the user to interpret parentheses and order of operations, which saved the calc some time, energy and memory. Most of those resources are no long at the premium they were in the 70s and early 80s, but the palimpsest is still there in the DM42.

I’m not a programmer by trade. At least, not a programmer of computers. (We can have the discussion about whether or not tabletop roleplaying game design is programming for the human mind some other time.) But I fucking love programing my calx.

Most of these calx are keystroke RPN programmable. A few are RPL, but that’s another tale. The DM42 is keystroke RPN programmable, which means for the most part it’s programs are just a record of keystrokes and the order in which they are executed. This is a super easy entry point for me. If I know how I would calculate it, then I know how to write a program for it.

To generate a pseudo-random number between 1 and 6, inclusive, on the calculator I would key in:

**[Ran]**An option found in the [Shift] [Prob] menu that generates a pseudo-random number between 0 and 1, exclusive.**[6]****[×]**To stretch that range from 0 to 6, exclusive.**[IP]**Or Integer Part, a function found on the 2nd page of the [Shift] [Convert] menu that removes everything to the right of the decimal point, leaving an integer without rounding. This gives me a number from 0 to 5, inclusive, with a fundamentally equal chance for any of those values.**[1]****[+]**Shifts my range up to 1 to 6, inclusive.

It’s just like rolling dice, but it takes about 11 keystrokes (both [Ran] and [IP] need extra keystrokes to access them).

Writing this as a program instead requires nothing more than slapping a label on it. Say “d6.” Then, whenever I need to virtually roll a d6 on my DM42, I just have to hit XEQ and select [d6] from the menu options.

If I put a return command at the end of it, I can even call it in the middle of other programs. Like if I wanted to write one that filled a 6×3 matrix with d6 rolls in order to generate old school *D&D* characters with my calc.

I find joy in the simplicity of this. I can definitely layer on more intricate textures, and boy howdy do I. There’s input and output commands, branching and looping commands, graphics and bit logic, even print commands for an hp82240 infrared printer that I may never, every own. But at its roots it’s just calculator operations in the order you would key them in.

Here are some of the hooks and glories I see in this calc—bearing in mind that I look at it not as a tool, but as a game. I have other calx with all these features and more, and I dig them as well. But the appeal here is the breadth of possibility mixed with a vast unsolved frontier. I dig that you can graph functions on it and I dig that you need to first program it to do so. You have to play with it to reach its potential, but as you play with it the more versatile it becomes. There’s great value in that to me.

**Variables:**In addition to the memory registers in the stack, you can store numbers (and strings) in the numbered storage registers. These are, by default labeled 00 through 24, but you can increase and decrease the number available according to your needs. That’s all fine and good, but the real action is in the variables. You can name your variables things like “Might” or “Magic” instead of numbers. You can store real numbers, complex numbers, alphanumeric strings, matrices & complex matrices in variables. You can write programs that ask for the user to input the values for some variables and use them to calculate the value of other variables.**Indirect Addressing:**You can throw a number or a string in any register or variable, then you can tell anything that accesses registers or variables to look at the register or variable named within that register or variable! Wait, what? All right, check this out. In register 01 store “Lion” in register 02 store “Tiger” in 03 “Bandit” in 04 “Knight” in 05 “Friar” and in 06 “Dragon” and then run your [d6] program. Then when you indirectly recall what is in the X stack register, it will see what you just rolled and bring up whichever string is associated with that number. Hey, it’s a random encounter chart!

**Solver:**Write a program that throws some of those delicious variables together into an expression or equation and invoke the solver. The solver will ask you for the values of the known variables and for the unknown variable. It then searches for a value of the unknown variable that results in the program barfing up a 0. It’s how I know the real roots of our spy’s polynomial are roughly 0.2483 and -2.1833. If you’d rather know what value will give you 4 instead of 0, add a [4] [-] to the end of your program. One of the first things I did with my DM42 was create a program for a*Star Trek*game I was playing that would let me solve for the warp factor needed to travel to a destination*x*light-years away in*y*days. Or, given the warp factor and distance, how many days it’ll take. Or, given the time spent traveling at a certain warp factor, how far I have traveled.**Matrices:**I mean, I’m trying to learn linear algebra, so there’s that. But there’s lots of non-linear algebraic applications for matrices in this calc. You can store strings in a matrix entry. So you can get really elaborate with your random encounter tables. There are hidden matrix functions on the calc that let you find where values are located within a matrix and find the maximum and minimum values. You can cut smaller matrices out of bigger ones, and build bigger ones out of smaller ones. You can build tables and charts and menus out of them. Complex matrices can be used to give the graphics commands their*x*and*y*coordinates.**Rudimentary Graphics:**You cannot plug an equation in and have it graph it right off the bat. But you can program it to do so. Or program it to display a smiley face. Or to create a random dice faces based on your [d6] roll. Or any sort of bitmap with 1-bit depth that fits on a 400×240 pixel screen. Go wild!**Legacy:**The DM42 uses Free42 which is a re-implementation of the HP-42S which in turn is the descendent of the legendary HP-41C. That’s backwards compatibility that stretches back almost three whole decades. There are things that the 42S can do that the 41C cannot, things that Free42 can do that the 42S cannot, and things that the DM42 can do that Free42 cannot, but if you’re careful and aware of those differences, you can can lift just about any program written for the 41C all the way up to the DM42. I love digging through these old, often handwritten, programs that folks were making and sharing over the decades. And I love that you can share your own programs over the internet with other DM42 users or if you’re careful about your graphics, with Free42 users, who could be anyone with a computer or smart phone. That really appeals to me.**Saving the Calculator’s State:**Finally, on this list, something unique to the DM42, at least among the calx I own. You can save the current state of your calculator. It saves everything. The programs you’re using. The variables you have. The numbers and whatnot stored in your registers. The flags and display modes you currently have chosen. Right down to the numbers in your stack. This is a great way to put one project on hold while you address something else. Or you can create a state built for specific needs, so you can build a financial calculator on your DM42 that you call up whenever you need to make decisions about game production or crowdfunding, or what have you. But what really appeals to the game designer within me is the fact that you can take your saved calculator states, load them onto your computer, and then upload them to the internet. The year is 1981.*Skylab II,*a secret replica of the*Skylab*put in orbit by a shadowy government agency has been discovered. It is abandoned, but there are extensive signs of struggle. You are a team of brought together to investigate just exactly what happened here. The only piece of evidence you are allowed to exam is one of the astronauts’ calculators found aboard the station, with all of its programs and variables and recent calculations still on it. If I want, I can make and share that game.

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% offof everything at the Dig 1,000 Holes PayHip store with the coupon codeDM42.

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.

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!

]]>They added a small fixed cost to each pledge, something like 35 cents. If you made a single pledge of $30 a monthly, you wouldn’t even notice. But if you made 30 pledges of a dollar a piece, you would see your monthly cost increase by 35%. For many who enjoyed spreading their love as far and wide as they could afford, this extra burden became unmanageable. Patreon had an exodus on their hands.

In about a week, they reversed their decision; but for creators who depended on lots of small pledges from many patrons, the damage had been done.

I was not hit as hard as some, but I was hit. This was a classic *Swords Without Master* moral—an unintended consequence with a clear lesson attached to it:

Do not depend on the whims of the Overlord for your livelihood.

A lesson that I choose to learn from.

**I cannot depend on a handful of sites for the majority of my income.** A single policy change can cost me hundreds of dollars in the blink of an eye. There’s no reason for me to trust any single site with that sort of power.

**I cannot depend on a single venue to reach my audience. **One of the great features of Patreon was how it kept your audience in the loop on your projects. Several of those who left expressed a desire to be kept in this loop.

I have a New Year’s Resolution. It’s simple in concept. **Every month in 2018 I intend to find a one new way to reach my audience and one new way for them to support my work.** It might get a little messy in execution. Some months, the way to reach my audience will also be the venue through which they can show their support. Some months, these might be different. But I’ve been rather complacent, relying on the same handful of sites to get my job done. I need to venture forth, explore more, and find what awaits me in the great wilds of the Internet.

This month, I start with some bare bones fundamentals.

A MailChimp newsletter. Sign-up for monthly updates about what’s in the works, what’s just come out, and any juicy game design discussions I’ve had on my various social medias.

A Ko-fi page. For when you’ve just had an amazing gaming experience and want to buy the game’s designer a drink. Or help offset the cost of my new office space. Or say “For the DM42!” in your comments if you want me to throw it towards buying this dreamy calculator.

If you have places you’d like to see my games, feel free to let me know!

]]>