Can you complete the Oregon Trail if you wait at a river for 14272 years?

Implementation of Oregon Trail and Applesoft BASIC

  • 1985 Oregon Trail is largely in Applesoft BASIC, with the hunting minigame in assembly.
  • Several note that many 8‑bit games mixed BASIC “scaffolding” with assembly routines for performance-critical parts (graphics, scrolling, redraws).
  • Program is stored as tokenized BASIC: source text with keywords replaced by 1‑byte tokens; this makes decompiling relatively simple.
  • Some commenters mention multi‑program structure with data passed via fixed memory addresses rather than formal libraries.

6502 Architecture and Zero Page Discussion

  • Debate over a claim that you “must” use zero-page pointers to access 16‑bit addresses:
    • Critics say this is incorrect; 6502 supports multiple addressing modes and can access all 64K directly with LDA.
    • Others argue that, while the CPU allows it, BASIC’s own codegen may primarily use zero-page indirection.
  • Clarifications:
    • Indexed-indirect/indirect-indexed modes use zero page for pointers.
    • Crossing page boundaries can incur extra cycles; separate confusion with JMP’s page-wrap quirk.
  • Zero page is described as a performance hack akin to having ~256 “register-like” locations.

Numeric Types in Early BASICs

  • Several posts complain that many BASICs defaulted to floating point for all numbers, which is slow and memory-heavy on 8‑bit machines.
  • Counterpoints:
    • Simpler mental model for beginners; no need to understand types, overflow, or fixed point.
    • Some Microsoft-derived BASICs did support integer variables via suffixes (e.g., %), but often still performed calculations in float; benefit was mainly memory.
    • Examples of BASICs with richer typing (BBC BASIC, Locomotive BASIC) are mentioned; some used BCD internally.
  • Comparisons are drawn to JavaScript’s “floats everywhere” design.

Variable Naming Constraints

  • Short, cryptic variable names (often 1–2 characters) are traced to:
    • Language limits (Applesoft only distinguishes first two characters).
    • Small screens and line editors.
    • Academic/math notation habits.
  • This is contrasted with today’s very long, descriptive names; trade-off between quick comprehension once onboard vs readability for newcomers.

“Wait 14,272 Years” River Exploit

  • Clarification from the discoverer:
    • At the final river you can wait essentially indefinitely; health doesn’t degrade the usual way, so you can “live” ~15,000 in-game years.
    • On resuming travel, the party then deteriorates extremely quickly and dies within days, even with food and rest.
    • Unmodded achievement: surviving 15,000 years at the river. Patching was then used to force an eventual successful arrival, mainly “for fun.”
  • Question raised: if you’re already patching, why does the original health quirk matter? The answer: the quirk made the initial “live 15,000 years” challenge possible without modification.

Gameplay Exploits and Historical Asides

  • Discussion of “cooking” Oregon Trail’s economy: exploiting trades (e.g., clothes for oxen near The Dalles) to generate unlimited money.
  • Historical notes on real Oregon Trail river crossings: wagons were sometimes disassembled, caulked, and floated; or placed on rafts.
  • Some note that, geologically, the river’s course would change over 14,000+ years, underscoring the absurdity of the scenario.

Performance of Early Interpreters

  • Stories about extremely slow BASICs (e.g., TI BASIC) emphasize how design and intermediate layers could cripple an otherwise capable CPU.
  • General theme: many retro systems sacrificed performance for simplicity, portability, or compatibility.