19 comments

[ 2.9 ms ] story [ 48.7 ms ] thread
Very cool. It's been ages since I did anything with DOS, but are you limited to 640KB of memory, or can this use real mode/etc. to get access to more memory?
I think it's the other way around - real mode has the 640kb limit and protected mode gets you a 32-bit address space.
There are gaps in my knowledge, but my understanding is that to address 32-bits of memory requires the use of a "DOS extender". The reason being that DOS is barely an operating system at all- It never provided any 32-bit support but support was possible by monkey patching over part of the operating system in memory. This was possible because DOS had no security measures preventing such horrifying endeavours.

Anyway, I see no reference to a dos extender here so I don't know how it could be anything other than a 16-bit program.

If the author of this framework is looking for a dos extender, I think HX seems like a good choice: http://www.japheth.de/HX.html

unlike other DOS extenders, that provide idiosyncratic apis for allocating 32-bit memory, HX imitates as much as possible standard windows apis, and is able to run some windows applications in plain DOS- including, strangely enough, DOSBox.

(I have nothing to do with HX by the way.)

(comment deleted)
The compiler used is DJGPP, a port of GCC that comes with a DOS extender, a POSIX-compatible C library and pretty much everything else needed to pretend that you're using a Unix system. Basically Cygwin for DOS.
Yeah, DJGPP is great and I think it was one of the first compilers to work in Protected Mode and take (most of) the DOS/Real mode pain away
Either DJGPP or Watcom with PharLap.

But regardless of who was first (they'll be pretty close, '89 or so) it was a huge step forward for programming on x86. The fact that it was free made it even more amazing.

(comment deleted)
What drove you to make this? It's really cool but very niche
My assumption is that since DosBox simulates the same hardware on different platforms/OSes - it's possible to write a DOS game once and enjoy it on Linux, Windows, Mac, Android etc. Cross-platform games with retro flavor, why not?
My assumption is that since DosBox simulates the same hardware on different platforms/OSes - it's possible to write a DOS game once and enjoy it on Linux, Windows, Mac, Android etc. Cross-platform games with retro flavor, why not?
That's cool. I've often wondered about creating a retro DOS-shareware-style game, as a throwback to Commander Keen and Jill of the Jungle etc.

It'd be a challenge working with the limited resources, but since most things run DosBOX, you'd also get cross-platform compatibility for free :)

>> It'd be a challenge working with the limited resources

It's fairly simple until you get into things like different hardware and trying to do things with networking. VGA graphics, keyboard input, that stuff is all pretty simple.

Assuming something like a SoundBlaster, even sound programming could be done with a library.

"If you're not using DOS as your operating system then DOSbox can be used to emulate a DOS computer."

That made me laugh.

Developing DOS games in 2014? Well, why not...
I remember Carmack's statement on DOS from his .plan back around the Quake 2 days

We are not going to do another dos game. No amount of flaming hate mail is going to change my mind on this (PLEASE don't!). The advantages of good TCP/IP support, dynamic linking, powerfull virtual memory, device drivers, etc, are just too much to overcome. Yes, all of those can be provided under dos in various ways, but it just isn't worth it.

I'm rather more of a fan of LOAD81 for things like this, although I don't know if it runs on DOS .. it certainly provides the same degree of sophistication, and includes a great built-in editor:

http://github.com/antirez/load81

(BTW, yes: its written by that antirez .. ;)