Malbolge Easy · Lesson 1 · On the house

Trits

Malbolge · easy · Trits. Lesson 1 is free — on the house.

Lessons · Malbolge Easy · Lesson 1 of 10 · On the house

Trits

Malbolge · easy · Trits.

Illustration for the Malbolge course
Lesson 1 is on the house. The rest opens with the paper, the Daily, or a gift.

You finished Introductory. We will not re-teach why Malbolge is hostile — we deepen the ternary substrate. Today's focus is trits: reading them, writing them, converting small values, and refusing to pretend binary intuition is enough.

A trit is 0, 1, or 2. A Malbolge word is a fixed-width row of trits (classic explanations use ten-trit words). Every crazy digit pair and every rotate lives in that representation. If you only store cells as opaque integers, you will mistrace rotates and table lookups.

Conversion drill: take decimal 5 → ternary 12 (13+2). Take ternary 210 → decimal 29+1*3+0 = 21. Do ten conversions both ways until the hesitation dies. Speed is optional; correctness is not.

When dumps print decimal or cryptic glyphs, translate a few cells back to trit strings in your notebook. The translation is the understanding. Blind decimal staring is how rotate bugs hide.

Width matters: rotating a word uses the full trit width of the machine word, not ASCII bit width. If your simulator stores native ints without masking to the ternary word modulus (3^width), you are not simulating Malbolge.

Introductory memory size 3^10 cells is a reminder that the address space itself is ternary-flavored. Addresses wrap in that modulus. Off-by-one in ternary space is still off-by-one — just harder to eyeball.

Compare: bits give you powers of two; trits give powers of three. Mental multiples 1,3,9,27,81,243,729,2187,6561,19683 should become as familiar as 1,2,4,8 for this course.

Pitfalls: calling trits three bits; ignoring word width; converting wrong; using JS floats as cells; skipping paper trit strings because the dump looks numeric already.

Deepening easy-trits: write the precondition and postcondition you care about in one sentence each before you touch an interpreter. If you cannot state them, you are wandering. Malbolge punishes wandering harder than kinder languages because mutation erases the breadcrumbs you thought you left in source.

Workbench note on easy-trits: change one dial at a time — one table lookup, one pointer, one candidate string — then re-run. Batch changes create ghost stories where three bugs wear one costume. Your Easy/Medium/Expert path depends on that discipline more than on talent.

Portability for easy-trits: label the interpreter family you are using (classic, normalized, experimental port). EOF, illegal-op handling, and printable-range checks differ. A still that works in one room fails in another for boring reasons; boring reasons still burn evenings.

Composition around easy-trits: after the happy path, force a failure mode on purpose — wrong trit, drifted d, encrypted cell you forgot to update on paper — and write the symptom in one line. Symptom catalogs beat restarting from blank fear when Medium katas get long.

Reading practice for easy-trits: explain today's still to an empty chair with only a, c, d on a whiteboard. Hesitation marks the exact gap. Embarrassment is cheaper than another week of cosplay confidence.

Numeric drill on easy-trits: pick three tiny values and predict the next machine step on paper, then confirm with a tracer. Tables catch lies that a single lucky example hides. Luck is not a learning strategy in a nonlinear VM.

Naming for easy-trits: give roles to cells you care about — scratch, out-byte, jump-target — even if Malbolge will not honor the names. Comments in your notebook are the type system you do not get in-language.

History of practice for easy-trits: the first time you get this wrong, keep the mistaken trace beside the corrected one. The diff is the real lesson. A scrap log of diffs becomes a personal field guide by Expert.

Scaling easy-trits: once a micro-example works, scale the step count before you scale ambition. Ten correct cycles beat one theatrical hello attempt that you cannot explain.

Powers-of-three fluency is the times-table of this course. Drill 3^0 through 3^9 until 19683 does not surprise you.

When a dump shows a decimal cell, convert it before you argue about rotate. Arguments on the wrong representation are theater.

Signed intuitions from two's complement will betray you; Malbolge words are modular ternary quantities in classic models.

Keep a conversion script and a paper habit. Scripts alone make you fragile offline; paper alone is slow — both matter.

(Lesson 1 deepen.) Return to the still after each quiz miss and point to the sentence that already answered it. Open-book means the page is a tool, not a trap.

Change one mental model at a time: radix, then tables, then encrypt, then search. Stacking model changes manufactures superstition.

Keep a running glossary in your notebook — trit, crazy, crazy2, a, c, d, normalize, fitness, dialect. Definitions drift if unwritten.

trits

# Malbolge · Trits
# Level: easy
Trits note

Walked still — Trits note: type it glyph for glyph. Say aloud what each line is for (roster, note, artifact). If your fingers invent a prettier version, delete it and match the course still.

Quiz

What is a trit?

Quiz

Why convert cells to trit strings while learning?

Quiz

Decimal 5 in ternary is?

Quiz

Classic word width lore emphasizes?

Quiz

Address space size 59049 equals?

Quiz

Storing cells as unmasked native ints risks?

Check

Match the still for: Trits.

Check

Type the Host note still for this lesson.

Trit literacy first. Next: the crazy table up close.

Open-book: the answers are on this page. Pass every quiz and check (8) to mark the lesson done. This visit: 0/8.

Trits · Malbolge Easy (free) — The Gold Standard