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

Windows [7] run without Cygwin? #19

Open
tonypdmtr opened this issue Aug 5, 2021 · 6 comments
Open

Windows [7] run without Cygwin? #19

tonypdmtr opened this issue Aug 5, 2021 · 6 comments

Comments

@tonypdmtr
Copy link

This is exactly the program I've looking for (for years) as I have many DOS-era utilities that I need to run under Windows 7 console.

[I haven't been able to make DosBox[-x] work with text-only apps in a simple manner.]

I managed to get this emulator work straight out of the box by compiling under Gycwin, and running it there.
But, I want to be able to run it under Windows console directly. It fails. I suppose it needs to be compiled differently.

Any hints on that?

@dmsc
Copy link
Owner

dmsc commented Aug 9, 2021

Hi @tonypdmtr !

I wrote the code for an Unix OS, it does a few assumptions:

  • It uses terminal-control codes for writing to the screen - this is only supported on latest Windows 10 consoles.
  • Uses "fork" for running multiple instances of the emulator.
  • Has logic to allow case sensitivity on filenames - on Windows filenames are case insensitive.

I won't oppose to a native Windows port, and I can help anybody interested in porting, but I won't write the port myself.

Have Fun!

@strikersix23
Copy link

I got it to compile and run the issue i had was with the cmd prompt was having scattered rendering just like with qemu no graphic im looking for a fix. Compilation was done using msys2

@johnsonjh
Copy link
Collaborator

johnsonjh commented Oct 23, 2024

I looked into a native MS C port, but the most complex will be to replace the use of signals with NT native timers. The git source code has an implementation of setitimer and such that could be borrowed.

@dmsc
Copy link
Owner

dmsc commented Oct 23, 2024

Yes, the use of signals simplify a lot of the code, as it allows the emulator to use blocking I/O and release the CPU; but also be able to emulate DOS interrupts.

many DOS programs depend on interrupts for reading the keyboard and redrawing the screen!

Seeing the git for windows code, it is not complicated, it simply spawns a thread that periodically calls mingw_raise(SIGALRM)

Have Fun!

@johnsonjh
Copy link
Collaborator

mingw_raise is something it implements as well, I'll look more into it over the weekend maybe

@strikersix23
Copy link

I got it working with minor issues awhile back it's been forever since then

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

4 participants