Skip to content

Project Overview

Retro Jack edited this page Jun 4, 2026 · 49 revisions

Project Overview

GenX-DOS is a static page that recreates a 1990s DOS prompt in the browser. Visitors land at a fake AMIBIOS POST screen, get dropped into a C:\> prompt, and navigate numbered menus to launch emulated games — all running locally in the page.

Boot flow

  1. index.html — instant <meta refresh> to prompt/. The actual POST animation lives inside the prompt page.
  2. prompt/index.html — the DOS terminal. On load, init():
    • renders the AMIBIOS POST (AMI logo, Tseng video BIOS line, CPU/coprocessor/memory test with animated 0000 → 8064 KB count, six device-detection lines streamed at 500 ms each, footer with BIOS ID),
    • pauses 5 s with the full POST on screen,
    • clears, renders the System Configuration table,
    • prints Starting GenX-DOS . . . and Type "help" <enter> for assistance.,
    • calls initTerminal() which wires up the keyboard and runs AUTOEXEC.BAT.
  3. AUTOEXEC.BAT runs menu — the root menu.bat does cd emulators\nmenu, dropping the user straight into the EMULATOR LAUNCHER.
  4. The user types a number (or a command name) to navigate.
  5. Selecting a game opens the emulator in a new tab via window.open.

Technology

  • Pure HTML + JavaScript. No build step, no frameworks, no dependencies.
  • Each visible character is its own <div> styled with a CSS background-position into a 12×12 CP437 sprite sheet.
  • The virtual filesystem is a JS object tree (prompt/javascript/fs.js).
  • Scope rule: 8-bit only. Every shipped system has an 8-bit primary CPU (6502 family / Z80 / 6809 / 6507 / 6800 / 8048). DOS is the prompt host (carve-out). Intellivision's CP1610 has a 16-bit ALU but is universally grouped with 8-bit-era consoles — edge case kept. See Roadmap.
  • 24 copied emulators live under emulators/ with bundled local games/discs/cartridges, driving 27 sub-systems — Apple I, BBC Micro, BBC Master 128 (same jsbeeb build, ?model=Master), Acorn Electron, Apple ][+, NES, Atari 2600, Atari 7800, MS-DOS, MSX (MSX1/MSX2/MSX2+), GCE Vectrex, Sinclair Spectrum, Sinclair ZX81, Tandy CoCo, Atari 400 + Atari 800XL (same atari800 build), ColecoVision, Mattel Intellivision, Amstrad CPC, and the full Commodore VICE family — PET, VIC-20, MAX Machine, Commodore 64, C16, Plus/4, C128 (seven sub-systems off five VICE libretro cores: xpet, xvic, x64, xplus4, x128 — c64+max share x64, c16+plus4 share xplus4). The seven VICE bundles and the Coleco bundle share one copy of the EmulatorJS framework via emulators/_shared-ejs/. Intellivision and Electron stand alone — jzIntv compiled to WASM with a custom emscripten loader, ElkJS as pure JS. See Emulators.

Clone this wiki locally