Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Native x86 Emulation #212

Open
NuSkooler opened this issue Dec 9, 2018 · 4 comments
Open

Native x86 Emulation #212

NuSkooler opened this issue Dec 9, 2018 · 4 comments

Comments

@NuSkooler
Copy link
Owner

NuSkooler commented Dec 9, 2018

Feature:
General idea is to support native x86 emulation without the need of 3rd party software such as DOSEMU, QEMU, etc.

Requirements:

  • At least MS-DOS and FreeDOS should work.
  • Multi-instance / multi-player would have to work.
  • Serial port (at least COM1) access
  • Ability to run "headless". That is, the library/code must be detached from UI, keyboard, so on.

Resources:

@NuSkooler
Copy link
Owner Author

Looking for thoughts / suggestions, etc.

@tracker1
Copy link

tracker1 commented Dec 9, 2018

@NuSkooler v86 seems really cool, not sure about supporting multi-player doors though, which would be the killer requirement in my mind.

Aside: had been thinking of a very light door-controller that runs via docker with DOSemu for similar use. Each door would be a docker container instance with a super-light tcp service that would receive a connection and run a singularly configured door. Sharing a volume for the door's data.

The thought here is Docker is available for Windows, Mac and Linux (though the windows, and I believe the mac versions both require a logged in user).

@NuSkooler
Copy link
Owner Author

NuSkooler commented Dec 9, 2018

@tracker1 Good point RE multi-player. I added that to requirements to look into.

What is the Docker setup you're describing solving? Multi-platform? I could see that as an advantage. Perhaps the "controller" could use the door's lookup key (name member in ENiG) to connect a user to an existing instance in the case of multi-instance doors, or a new instance in the case of single instance. This certainly sounds interesting.

I think I saw your ticket on v86 last night RE WebSockets -- did you get that to work?

EDIT: I wonder if the same thing I described with the name key could be used with v86: Launch a new instance or connect to an existing. If all I/O is going through a serial interface, perhaps it could work with SHARE.EXE.

@tracker1
Copy link

@NuSkooler mainly multi-platform... Since Windows x64 and MacOS can't do the DOS natively, and DosBox is so much overhead, figure DosEmu under a Docker VM would be the path of least resistance in terms of getting setup.

Regarding v86, I don't think I've even looked into it since that ticket. Been crazy busy with the day job. Commenting on here and hacker news not withstanding ;-) (GF takes most of the rest of my time)

As to SHARE.EXE, may have to use a multi-threaded connector in front to make sure they're shared on the same instance... Wonder what the status is on DesqView, or if there's an open alternative that could be used. With DosEmu+Docker, if they're using a shared volume container, it is the same filesystem they're sharing so could/would likely work. But, again the biggest reason there is multi-platform with less resistance. Note: on mac and windows OS volumes are cloned in/out of the VM, so would want a volume in a container, maybe with a task to get backups out of the container.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants