• Skip to main content
  • Skip to header right navigation
  • Skip to site footer
Retro Game Coders

Retro Game Coders

Retro computer/console game + dev community

  • About
    • Retro Computer Collection
    • Contact
  • Blog
  • Retro Resources
    • Retro Gaming Timeline
    • Online Retro IDE
    • Retro Pixel Art Editor
    • Dungeon Loom Map Editor
    • 6502 Programmer’s Reference
    • Emulators
      • Acorn Electron
      • Amstrad CPC Emulator
      • Online BBC Micro Emulator
      • Commodore PET Emulator
      • Browser C64 Emulator
      • DOSBox/DOS PC emulator
      • Tandy CoCo/Dragon
    • Best Retro YouTube Channels
    • New Retro Books
    • Raspberry Pi Amiga Emulation
    • MiSTer FPGA Tutorial
    • BMC64 C64 Pi
  • Community

Home » Retro Game Coders Blog » Retro Gaming News and Reviews

Online CP/M Emulator (WIP)

I’ve been working on an online CP/M emulator that runs in your browser using JavaScript. And it works! (mostly)

I’ve been working on an online CP/M emulator that runs in your browser using JavaScript.

And it works! (mostly)

UPDATE: I have a new and fully working CP/M / Z80 emulator working! Check it out now, read about the new version, or read on about the old version which is still available as a backup.

image.png

Join Retro Game Coders Community
Join the Retro Game Coders Community

Some Assembly Required

Yeah, I can’t get it to fully work. Don’t expect to be playing Rogue just yet.

I am, as usual, mostly plumbing together other people’s projects and that is tripping me up. This emulator is quite old and the main work I added was enabling it to work in modern web browsers, the original used a web database api that has been long since deprecated.

For some reason when the vt100 emulator outputs it adds spans and divs rather than using a canvas or even character cells.

Not sure why it couldn’t be one big PRE block of text even. In fact, I might go back to that idea, or maybe a HTML table that is a 80×25 grid.

I mean, that is how those terminals worked, just a matrix of cells in 80 columns and 25 rows.

You can, however, switch between different terminals (vt100/ANSI/etc) and I added an option for wrapping and clipping of text beyond the 80th column.

Partly it is my fault, trying to get fancy with the interface rather than fix the more fundamental issues with the z80 and IO issues. Even the LLM plagiarism machine can’t get it working, though, so not sure if I will ever be able to. There is a CP/M running on my Amstrad emulator though!

What Works So Far

Currently you can mount your own disks in B, C, and D drives (A is the boot disk and is not swappable, though I would like to boot of a virtual hard disk some time in the future).

image.png

Microsoft BASIC (including a copy of Star Trek.bas) are loaded in drive B: on startup.

image.png

Goals

What I wanted to do was get High-Tech C working on this guy, but, yes, also play Rogue. If anyone can lend a hand, let me know!

Rogue and C work now, plus I included Turbo Pascal too 🥳

Rogue running on CP/M emulator
Category: Retro Gaming News and ReviewsTag: cpm, Retro C/C++ Programming, Retro Emulators and FPGA
Previous Post:Online Retro IDEOnline Retro Programming IDE: BBC CC65, C64 BASIC and Vic 20 Added!
Next Post:Online Retro IDE: x86 and BBC Micro UpdatesRetro IDE News

Retro Game Coders

Retro computer/console game + dev programming community by Chris Garrett

  • Bluesky
  • Threads
  • Facebook
  • Instagram
  • YouTube
  • Mastodon

Maker Hacks ・ D6Combat・chrisg.com

© Copyright 2026 Chris Garrett

Privacy ﹒ Terms of Service

Return to top