▲ | MS-DOS development resources(github.com) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
126 points by mariuz 4 days ago | 42 comments | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
▲ | u14408885 4 days ago | parent | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
If anyone here is interested, a DOS game jam was announced recently for a streaming event called DOSember. https://itch.io/jam/dosember-game-jam Starts in a couple of weeks and lasts for three months. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
▲ | kev009 4 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
I grew up on 68k Macs so DOS was never something I thought much about aside from the occasional boot disk to run some firmware procedure later on when later Windows was well established. Then later from a retrocomputing standpoint, I've come to see it is pretty fascinating: 1) The sheer volume of commercial software.. which is readily available on winworld, vetusware, and archive.org. A lot of it with sometimes awesome character-mode UIs (Borland's early IDEs are really spectacular, Lotus 1-2-3, and WordPerfect are still taken seriously by some users). 2) The memory model is quixotic and an interesting homage to the chaotic evolution of x86 that most later operating systems elide by requiring a 386. The 286 and 386 have drastically different protection schemes. EMS and XMS. The eventual DOS extenders and standards like VCPI, DPMI. It's honestly a mess but somehow interesting to see how people solved difficult problems. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
▲ | b800h 4 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Someone needs to add the PC Games Programming Encyclopedia to this list. It was what I used to learn back in the 90s, a brilliant resource. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
▲ | 3036e4 4 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Microsoft included almost a full 1988 toolchain (masm, C, make, etc) in their MIT licensed MSDOS repo last year: https://github.com/microsoft/MS-DOS/tree/main/v4.0/src/TOOLS There is no source code, but at least the license makes it free to use and redistribute. The C compiler seems very close to supporting ANSI C89. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
▲ | owlstuffing 4 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
16-bit Borland C++ is also available: https://winworldpc.com/product/borland-c/20 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
▲ | anta40 4 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
For those looking for modern MASM-compatible assembler, try JWasm: https://github.com/JWasm/JWasm It's a fork of OpenWatcom assembler. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
▲ | Grom_PE 4 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Note that DOS development tools aren't strictly necessary to make DOS software, as with help of HX DOS Extender [0], one may use any tooling that lets you produce Win32 PE exe files, of course, preferably with inline assembler to access hardware directly. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
▲ | themafia 4 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
The Free Pascal compiler can produce DOS executables as well. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
▲ | alexshendi 2 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Scheme Compilers: * Gambit-C 3.0 for MS-DOS (https://gambitscheme.org/3.0/gc30-dj.zip) * MIT-Scheme 7.3 for DOS: (https://groups.csail.mit.edu/mac/ftpdir/scheme-7.3/pc/) Both need a 386+. * PC-Scheme/Geneva (https://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/...) Bytecode compiler, runs on 8086+, can use up to 2MB of EMS memory. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
▲ | whitten 4 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
I really enjoyed seeing the tools that provide an MS-DOS ecosystem. I didn’t know there was an open source version of the Watcom compilers and a 16-bit library to support them. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
▲ | 3036e4 4 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GW-BASIC is fun. Microsoft released it with a MIT license and then someone forked it to make it compile and actually work: https://codeberg.org/tkchia/GW-BASIC For development it is convenient that PC-BASIC exists, that is a pure Python implementation of GW-BASIC that has its own partial 1999s PC emulator built in. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
▲ | pwdisswordfishz 4 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Not mentioned is the https://pcjs.org/ site which purports to let you emulate various machines in your browser, select from different disk images, and overall seems full-featured, though it is confusing and presents some difficulty when trying getting it to work on some configuration besides the pre-baked ones that you can come across. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
▲ | burnt-resistor 4 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Seems a bit obsessed with open source when abandonware like Borland C++ 3.1 and Pascal 7.0 are amazing. Also, missing the very important, closer to primary sources, physical dead tree resources that are needed as reference to program things. - Black Book of Graphics Programming (Special Edition) (now FOSS) - Programmer's Guide To The EGA, VGA, And Super VGA Cards (3rd Edition) - PC-Intern (where I learned how Central Point, Norton, and later FreeBSD made "GUI" with sub-character graphical pointers in text mode through custom fonts) - Undocumented PC - Undocumented DOS - PC Interrupts (and) Uninterrupted Interrupts (Ralf Brown) - Microsoft MS-DOS Programmer's Reference - The Programmer's PC Sourcebook: Reference Tables for IBM PCs and Compatibles, PS/2 Systems, EISA-based Systems, MS-DOS Operating System Through Version 5 - (various hardware books by MindShare) - Also useful would be real BIOS dumps and (dis)assembly, and MS-DOS source - Emulators are no substitute for the real thing because the problem is that no emulator (commercial or otherwise) is faithful to the quirks, capabilities, and limitations of real hardware (in system, protected mode debuggers/profilers sure are nice though compared to triggering lockup, spontaneous reboot, or a beeping deadlock). If anyone remembers Bochs, its floppy behavior definitely doesn't act or look anything like a real FDC. (I submitted some patches for it many moons ago in college.) (Yep, I own a "braindead" 286, 386DX, 486DX-100, Am5, and P5, P2, P Pro, and P4.) Because if something can't work on real hardware and original OSes, then it's probably make believe. Prefer to make honest, real things wherever feasible. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
▲ | Firehawke 4 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DJGPP was the primary development platform for MAME when it was limited to MS-DOS. It certainly got the job done. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
▲ | ngcc_hk 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
My msdos development last year or hacking of turbo bridge is done in macvim, iDos (ipad) and turbo pascal under dos. Seems not mentioned. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
▲ | Ericson2314 4 days ago | parent | prev [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
I would like to see 16-bit Rust | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|