Code Monkey home page Code Monkey logo

dosee's Introduction

DOSee

GitHub   GitHub package.json version GitHub last commit   GitHub repo size

An MS-DOS emulator for the web.

DOSee is a front-end for an MS-DOS emulation ecosystem to use on the web. The text-based MS-DOS was the dominant personal computer platform for much of the 1980s. Up until the mid-1990s before being superseded by Microsoft Windows. Emulating this platform allows tens of thousands of games, demos and applications from this era to run on a web browser both online or offline as a desktop web-app!

DOSee is only a user interface and installation process for an incredible emulation ecosystem. Many remarkable people created it over many years. DOSee itself is a fork of The Emularity project started by the Internet Archive. EM-DOSBox, the core of this emulation, is a JavaScript port of DOSBox, the world's most popular MS-DOS emulator.


DOSee preview

What's new

Updates are in CHANGES

Requirements

  • A web browser that supports service workers.
    Current Chrome, Edge, Safari, or Firefox will work fine.
  • A physical keyboard, as MS-DOS is a text-based operating system.
  • Node.js or Docker

DOSee runs over an HTTP server, and it can not function over the file:/// browser protocol.

Instructions, download, build and serve

DOSee requires a build before it can serve to a web browser.

# clone DOSee
git clone [email protected]:bengarrett/DOSee.git
cd DOSee

 # install dependencies & build
npm install # (or the equivalent in another package manager)

# serve DOSee over port 8086
npm run serve

Point a web browser to http://localhost:8086

Are in the USAGE document

Editing the source JS or HTML

If you edit the source files in src/ you will need to rebuild the application.

# change to the repo directory
cd DOSee

# re-build DOSee using your edits
npm run install

# serve the modified DOSee over port 8086
npm run serve

Point a web browser to http://localhost:8086

Due to the PWA offline feature, web browsers need to unregister the service workers to reflect any changes to the application code. There is a red Update DOSee and the service worker button on the index.html example that will do this and then reload the browser window. The eventListener code for this button can be found in the src/js/dosee-sw.js file.

License

  1. DOSee is under a GPL-3.0 license.
  2. Em-DOSBox located in src/emulator is under GPL-2.0 license.
  3. src/disk_drives and src/dos_programs contain non-free software binaries for your convenience.

Similar projects

  • js-dos The best API for running dos programs in a browser

dosee's People

Contributors

bengarrett avatar dependabot[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

dosee's Issues

[REQUEST] Tandy audio label

In the hardware tab,

When the Graphics equal Tandy replace the audio radio label none with Tandy.

<input id="dosaudio5">

Add: Alert and abort when running as file:///

Due to the use of XMLHttpRequest() to load assets, the file:/// protocol is not supported.

Add a console error message and end the application when no valid protocols are used.

Access to XMLHttpRequest at 'file:///home/ben/bengarrett/DOSee/dragglex_loader.zip' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https

macOS known issues

  • No audio in Safari by default because Autoplay - Stop Media With Sound is set under page settings. Create a notification and link to safari user guide.
  • Fullscreen mode doesn't work in Safari or Chrome. But does work on Firefox.
    If it cannot be fixed, then detect the OS plus the browser string and disable.
  • Device pixel ratio causes the canvas to render incorrectly, it is only a quarter of the expected size. (see attachment)
  • The default browser fonts do not render the more eclectic glyphs.

[REQUEST] Tandy machine default.

For the default demo dos_programs/program_4/agi_demo_pack_1.zip use the following hardware defaults.

CPU Speed: automatic
Graphics: Tandy
Audio: none (Tandy)

Fix: Fullscreen broken in Chrome

Fullscreen of canvas doesn't work correctly in Chrome (Linux). There is a newer version of screenfull.js that may fix this but it breaks the current code.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.