Retro486 Pro — Pure-JavaScript Intel 80486DX2 PC- en Moederbord-emulator

Visuele onderdelen

De emulator bevat de volgende visuele elementen:

  • CRT-monitor & FreeDOS 1.3 boot-proces.
  • Interactief 486 VLB/ISA-moederbord en expansieslots.
  • Storage Bay & vooraf gebundelde schijvenbibliotheek.
  • Custom ISA/VLB Adapter Card Studio & testbank.
  • Live 80486 CPU-registers & fysieke geheugen-hex-inspector.

Kenmerken

Processor en Geheugen

  • CPU: Volledige Intel 80486DX2 CPU + 80487 FPU (js/cpu486.js, js/fpu487.js).
  • Modi: Real Mode, 16/32-bit Protected Mode en Virtual 8086 (V86) Mode.
  • Geheugenbeheer: 32-bit Demand Paging (CR0.PG, CR3) met een hardware TLB van 4096 entries.
  • CPU-functies: Hardware Task Switching (TSS), CPUID, BSWAP, CMPXCHG, XADD en INVLPG.
  • FPU: Geïntegreerde x87 Floating-Point Unit (FPU487).

Moederbord en Chipset

  • Architectuur: AT / i440FX moederbord & chipset (js/retrobus.js, js/biosrom.js).
  • Interrupts: Dubbele 8259A Programmable Interrupt Controllers (Master/Slave PIC).
  • Timers: 8254 Programmable Interval Timer (PIT kanalen 0, 1, 2 + PC Speaker + SeaBIOS PM Timer 0x3CC).
  • Klok: MC146818 CMOS Real-Time Clock & NVRAM.
  • Input: 8042 PS/2 toetsenbord- en muiscontroller + A20 Gate (0x92 / 0x60).
  • Visualisatie: Interactieve 486-moederbord visualisator met live adres/databus, IRQ-lijnen en een 7-segment POST-display.

Modulaire ISA / VLB Expansiekaarten (js/cards/)

  • SVGA / Bochs VBE Display Card (vga_card.js):
  • Tekstmodi (03h).
  • CGA (04h/06h).
  • EGA/VGA Planar 16-kleuren (0Dh/0Eh/10h/12h) met hardware Pel Panning & Split-Screen LINE_COMPARE.
  • Mode 13h (320x200x256), Mode-X en VBE LFB.
  • EGA 64-kleuren Planar Card (egacard.js) & CGA Card (cgacard.js).
  • SoundBlaster 16 + AdLib OPL3 Card (soundblaster_card.js): WebAudio-synthese, DSP DMA-weergave en configureerbare IRQ/DMA/Port jumpers.
  • Multi-I/O Storage Controller (multio_card.js): Dual-channel ATA/ATAPI IDE (C:, D:, E: CD-ROM) + EMULINK Floppy Controller (A:, B:).
  • Overig: Port 80h POST Diagnostic Card (post_card.js) en een live In-Browser Custom JS Card SDK.

Browser-persistentie (js/storage_cache.js)

  • Automatische caching van ROM's, floppy-images, custom geüploade .img/.iso bestanden en wijzigingen in DOS-schijven via browser IndexedDB + localStorage.
  • Opslag van hardware-instellingen (RAM-grootte, CPU-snelheid, CRT-bezel effecten, geïnstalleerde slotkaarten en gemounte drives) over browser-reloads heen.

Snelstart

Start een willekeurige statische HTTP-server in de root van het project:

npm start
# of:
python3 -m http.server 8080

Open vervolgens http://localhost:8080/ in je browser.

Geautomatiseerde Unit Tests uitvoeren

npm test

Mappenstructuur

  • index.html: Hoofdinterface van de Retro486 Pro Hardware Lab.
  • css/: Styling voor de CRT-monitor, het moederbord en de storage bay.
  • js/:
  • app.js: Hoofdcoördinator van de emulator en UI-bindingen.
  • cpu_486.js: Intel 80486DX2 CPU core (Real/PM/V86/Paging).
  • fpu_487.js: 80487 x87 Floating-Point Unit.
  • retro_bus.js: Systeem-bus, PIC, PIT, DMA, CMOS, 8042, PCI.
  • bios_rom.js: SeaBIOS & VGA BIOS loader + fallback ROM.
  • storage_cache.js: IndexedDB + localStorage persistentie-engine.
  • cards/: Modulaire ISA/VLB expansiekaarten.
  • ui/: Views voor het moederbord, de storage bay en de card editor.
  • data/: SeaBIOS (bios.bin), VGA BIOS (vgabios.bin), FreeDOS 1.3 (dos.img).
  • extra_disks/: Vooraf gebundelde 1.44MB DOS-game en utility floppy-images.
  • docs/screenshots/: UI-screenshots voor documentatie.
  • tests/: Node.js unit test suites.