mirror of
https://github.com/balintkissdev/awesome-dos.git
synced 2026-07-17 16:34:59 +00:00
Initial commit
This commit is contained in:
commit
f3555567e7
4 changed files with 307 additions and 0 deletions
2
.gitattributes
vendored
Normal file
2
.gitattributes
vendored
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
* text=auto
|
||||
readme.md merge=union
|
||||
74
code-of-conduct.md
Normal file
74
code-of-conduct.md
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
# Contributor Covenant Code of Conduct
|
||||
|
||||
## Our Pledge
|
||||
|
||||
In the interest of fostering an open and welcoming environment, we as
|
||||
contributors and maintainers pledge to making participation in our project and
|
||||
our community a harassment-free experience for everyone, regardless of age, body
|
||||
size, disability, ethnicity, gender identity and expression, level of experience,
|
||||
nationality, personal appearance, race, religion, or sexual identity and
|
||||
orientation.
|
||||
|
||||
## Our Standards
|
||||
|
||||
Examples of behavior that contributes to creating a positive environment
|
||||
include:
|
||||
|
||||
* Using welcoming and inclusive language
|
||||
* Being respectful of differing viewpoints and experiences
|
||||
* Gracefully accepting constructive criticism
|
||||
* Focusing on what is best for the community
|
||||
* Showing empathy towards other community members
|
||||
|
||||
Examples of unacceptable behavior by participants include:
|
||||
|
||||
* The use of sexualized language or imagery and unwelcome sexual attention or
|
||||
advances
|
||||
* Trolling, insulting/derogatory comments, and personal or political attacks
|
||||
* Public or private harassment
|
||||
* Publishing others' private information, such as a physical or electronic
|
||||
address, without explicit permission
|
||||
* Other conduct which could reasonably be considered inappropriate in a
|
||||
professional setting
|
||||
|
||||
## Our Responsibilities
|
||||
|
||||
Project maintainers are responsible for clarifying the standards of acceptable
|
||||
behavior and are expected to take appropriate and fair corrective action in
|
||||
response to any instances of unacceptable behavior.
|
||||
|
||||
Project maintainers have the right and responsibility to remove, edit, or
|
||||
reject comments, commits, code, wiki edits, issues, and other contributions
|
||||
that are not aligned to this Code of Conduct, or to ban temporarily or
|
||||
permanently any contributor for other behaviors that they deem inappropriate,
|
||||
threatening, offensive, or harmful.
|
||||
|
||||
## Scope
|
||||
|
||||
This Code of Conduct applies both within project spaces and in public spaces
|
||||
when an individual is representing the project or its community. Examples of
|
||||
representing a project or community include using an official project e-mail
|
||||
address, posting via an official social media account, or acting as an appointed
|
||||
representative at an online or offline event. Representation of a project may be
|
||||
further defined and clarified by project maintainers.
|
||||
|
||||
## Enforcement
|
||||
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||
reported by contacting the project team at balint.kiss.501@gmail.com. All
|
||||
complaints will be reviewed and investigated and will result in a response that
|
||||
is deemed necessary and appropriate to the circumstances. The project team is
|
||||
obligated to maintain confidentiality with regard to the reporter of an incident.
|
||||
Further details of specific enforcement policies may be posted separately.
|
||||
|
||||
Project maintainers who do not follow or enforce the Code of Conduct in good
|
||||
faith may face temporary or permanent repercussions as determined by other
|
||||
members of the project's leadership.
|
||||
|
||||
## Attribution
|
||||
|
||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
|
||||
available at [http://contributor-covenant.org/version/1/4][version]
|
||||
|
||||
[homepage]: http://contributor-covenant.org
|
||||
[version]: http://contributor-covenant.org/version/1/4/
|
||||
29
contributing.md
Normal file
29
contributing.md
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
# Contribution Guidelines
|
||||
|
||||
Please note that this project is released with a
|
||||
[Contributor Code of Conduct](code-of-conduct.md). By participating in this
|
||||
project you agree to abide by its terms.
|
||||
|
||||
---
|
||||
|
||||
Ensure your pull request adheres to the following guidelines:
|
||||
|
||||
- Please search previous suggestions before making a new one, as yours may be a duplicate.
|
||||
- Please make an individual pull request for each suggestion.
|
||||
- Keep descriptions short and simple.
|
||||
- End all descriptions with a full stop/period.
|
||||
- Make sure your text editor is set to remove trailing whitespace.
|
||||
- Check your spelling and grammar.
|
||||
- New categories, or improvements to the existing categorisation are welcome!
|
||||
|
||||
Thank you for your suggestions!
|
||||
|
||||
|
||||
## Updating your PR
|
||||
|
||||
A lot of times, making a PR adhere to the standards above can be difficult.
|
||||
If we notice anything that we'd like changed, we'll ask you to
|
||||
edit your PR before we merge it. There's no need to open a new PR, just edit
|
||||
the existing one. If you're not sure how to do that,
|
||||
[here is a guide](https://github.com/RichardLitt/knowledge/blob/master/github/amending-a-commit-guide.md)
|
||||
on the different ways you can update your PR so that we can merge it.
|
||||
202
readme.md
Normal file
202
readme.md
Normal file
|
|
@ -0,0 +1,202 @@
|
|||
# Awesome DOS [](https://awesome.re)
|
||||
|
||||
A curated list of references for development of DOS applications in the spirit of an
|
||||
[*awesome list*](https://github.com/sindresorhus/awesome). This includes list of compilers, tutorials, videos, links
|
||||
to free and paid books and source code to DOS games.
|
||||
|
||||
The goal of this list is to collect information and act as a starting point for someone who wants to start out
|
||||
retro-programming for the DOS platform.
|
||||
|
||||
The list template was generated by [generator-awesome-list](https://github.com/dar5hak/generator-awesome-list)
|
||||
|
||||
## Contribute
|
||||
|
||||
Feel free to contribute with pull requests! There's a chance that I missed something or you know something that I don't.
|
||||
Read the [contribution guidelines](contributing.md) first!
|
||||
|
||||
|
||||
## Contents
|
||||
|
||||
- [DOS compilers](#dos-compilers)
|
||||
- [Tutorials and programming resources](#tutorials-and-programming-resources)
|
||||
- [Books](#books)
|
||||
- [Videos](#videos)
|
||||
- [Open source DOS libraries](#open-source-dos-libraries)
|
||||
- [Open source DOS games](#open-source-dos-games)
|
||||
|
||||
|
||||
## DOS compilers
|
||||
|
||||
- [bcc - Bruce's Compiler](https://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/1.2/repos/pkg-html/bcc.html) -
|
||||
Bruce's C compiler is a simple C compiler that produces 8086 assembler for tiny/small models.
|
||||
- [DJGPP](http://www.delorie.com/djgpp/) - DJ Delorie's complete 32-bit C/C++ development environment for Intel 80386
|
||||
- Used for Quake.
|
||||
- [Open Watcom](http://openwatcom.org/) - Formerly commercial C/C++ development environment for 16- and 32-bit DOS and
|
||||
Windows. The current official version is 1.9. A GitHub fork is also available.
|
||||
- The [documentation](http://openwatcom.org/doc.php) is very valuable to understand working with both version 1.9 and
|
||||
the V2 fork.
|
||||
- [Arch Wiki page](https://wiki.archlinux.org/index.php/Open_Watcom)
|
||||
- Used for Doom I-II, Warcraft I-II, Duke Nukem 3D, Full Throttle and Dark Forces
|
||||
- [Open Watcom V2](https://github.com/open-watcom/open-watcom-v2) - GitHub fork which is actively maintained and is
|
||||
ported to 64-bit Windows and Linux.
|
||||
- [Turbo C 2.01](http://www.doshaven.eu/wp-content/uploads/2014/08/tc201.zip) - C IDE and compiler from Borland first released in 1987
|
||||
- [Turbo C++ 1.01](http://www.doshaven.eu/wp-content/uploads/2014/08/tcpp101.zip) - C++ IDE and compiler from Borland released in 1991
|
||||
|
||||
|
||||
## Tutorials and programming resources
|
||||
|
||||
### Compiling
|
||||
|
||||
#### Open Watcom
|
||||
|
||||
- [32bit DOS development with Open Watcom](http://tuttlem.github.io/2015/10/04/32bit-dos-development-with-open-watcom.html)
|
||||
- [80x86 16-bit Compiling How-to by Alexei A. Frounze](http://alexfru.narod.ru/os/c16/c16.html)
|
||||
|
||||
### General
|
||||
|
||||
- [David Brackeen - 256-Color VGA Programming in C](httpp://www.brackeen.com/vga/)
|
||||
- [DOS programming resources by DOS HAVEN](http://www.doshaven.eu/sources/)
|
||||
- [Just keeping it real... old skool style - Scali's OpenBlog](https://scalibq.wordpress.com/2011/11/23/just-keeping-it-real-old-skool-style/)
|
||||
- [Alex Russell's Dos Game Programming in C for Beginners](http://www3.telus.net/alexander_russell/course/introduction.htm)
|
||||
- This series contains a tutorial for making [buffered input handling](http://www3.telus.net/alexander_russell/course/chapter_4.htm)
|
||||
- [PC Game Programmer's Encyclopedia on the Web](http://bespin.org/~qz/pc-gpe/)
|
||||
|
||||
### DOS API
|
||||
|
||||
- [bios.h header documentation by Digital Mars](https://digitalmars.com/rtl/bios.html)
|
||||
- dos.h header documentation by Digital Mars [Part 1](https://digitalmars.com/rtl/dos.html) [Part 2](https://digitalmars.com/rtl/dos2.html)
|
||||
|
||||
### Interrupts
|
||||
|
||||
- [Ralph Brown's Interrupt List - HTML version](http://www.ctyme.com/rbrown.htm)
|
||||
- Original in downloadable .zip files from [Ralph Brown's website](http://www.cs.cmu.edu/~ralf/files.html)
|
||||
|
||||
### Video
|
||||
|
||||
#### CGA
|
||||
|
||||
- [Color Graphics Adapter: Notes](http://www.seasip.info/VintagePC/cga.html)
|
||||
|
||||
#### VGA
|
||||
|
||||
- [VGA Hardware - OSDev wiki](https://wiki.osdev.org/VGA_Hardware)
|
||||
|
||||
#### SVGA
|
||||
|
||||
- [DOS Super VGA / VESA programming notes - by Myles](http://www.faqs.org/faqs/pc-hardware-faq/supervga-programming/)
|
||||
- [VESA Video Modes - OSDev wiki](https://wiki.osdev.org/Getting_VBE_Mode_Info)
|
||||
- [DJGPP VESA guide](http://www.delorie.com/djgpp/doc/ug/graphics/vesa.html.en)
|
||||
- [High-res high-speed VESA tutorial](http://www.monstersoft.com/tutorial1/)
|
||||
- [C code sample for drawing in VESA 2.0 mode](http://www.codenet.ru/progr/video/vesa20ex.php)
|
||||
|
||||
### Sound
|
||||
|
||||
#### PC Speaker
|
||||
|
||||
- [Frequencies of Musical Notes](http://pages.mtu.edu/~suits/notefreqs.html)
|
||||
- [Making some noise with the PC speaker!](http://heim.ifi.uio.no/~inf3150/grupper/1/pcspeaker.html)
|
||||
- [Programming the PC Speaker by Mark Feldman](http://bespin.org/~qz/pc-gpe/speaker.txt)
|
||||
- [Sound Programming with PC Speaker - Chapter 23 of A to Z of C](http://guideme.itgo.com/atozofc/ch23.pdf)
|
||||
|
||||
#### AdLib/OPL2
|
||||
|
||||
- [Yamaha YM3812 (OPL2) sound chip Wikipedia article](https://en.wikipedia.org/wiki/Yamaha_YM3812)
|
||||
- [The Ad Lib Music Synthesizer Card Programming Guide - by Tero Töttö](http://www.vgmpf.com/Wiki/images/4/48/AdLib_-_Programming_Guide.pdf)
|
||||
|
||||
#### Sound Blaster/OPL3
|
||||
|
||||
- [Programmer's Guide to the Yamaha YMF 262/OPL3 FM Music Synthesizer](http://www.fit.vutbr.cz/~arnost/opl/opl3.html)
|
||||
- [Sound Blaster 16 Programming Document 3.5 by Ethan Brodsky](http://homepages.cae.wisc.edu/~brodskye/sb16doc/sb16doc.html)
|
||||
- version 3.4 on [GameDev.net archive](http://archive.gamedev.net/archive/reference/articles/article444.html)
|
||||
- [Sound Blaster Hardware Programming Guide](https://pdos.csail.mit.edu/6.828/2008/readings/hardware/SoundBlaster.pdf)
|
||||
- [Soundblaster Programming Information v0.90](http://www.intel-assembler.it/portale/5/soundblaster-programming-information/sb-reference-for-programming-sound.asp)
|
||||
|
||||
### Other
|
||||
|
||||
- [How to build DOS COM files with GCC by Chris Wellons](https://nullprogram.com/blog/2014/12/09/)
|
||||
|
||||
## Books
|
||||
|
||||
### Free
|
||||
|
||||
- [Game Engine Black Book: Wolfenstein 3D - by Fabian Sanglard](http://fabiensanglard.net/gebbwolf3d_v2.1.pdf)
|
||||
- [Game Engine Black Book: Doom - by Fabian Sanglard](http://fabiensanglard.net/gebbdoom_v1.1.pdf)
|
||||
- [A to Z of C - a book on C/DOS programming by K. Joseph Wesley and R. Rajesh Jeba Anbiah](http://guideme.itgo.com/atozofc/)
|
||||
- [Michael Abrash's Graphics Programming Black Book Special Edition](http://www.phatcode.net/res/224/files/html/index.html)
|
||||
|
||||
### Paid
|
||||
|
||||
- [Tricks of the Game-Programming Gurus - by Andre Lamothe, John Ratcliff and Denise Tyler](https://www.amazon.com/Tricks-Game-Programming-Gurus-Andre-Lamothe/dp/0672305070/)
|
||||
|
||||
## Videos
|
||||
|
||||
- [CGA Graphics - Not as bad as you thought! - by 8-bit Guy](https://www.youtube.com/watch?v=niKblgZupOc)
|
||||
- [How Oldschool Sound/Music worked - by 8-bit Guy](https://www.youtube.com/watch?v=q_3d1x2VPxk)
|
||||
- Contains section about the Yamaha OPL chip found in AdLib and Sound Blaster sound cards at [4:32](https://www.youtube.com/watch?v=q_3d1x2VPxk&feature=youtu.be&t=272)
|
||||
- [LGR - Evolution of PC Audio - As Told by Secret of Monkey Island](https://www.youtube.com/watch?v=a324ykKV-7Y)
|
||||
- [Porting Retro City Rampage to MS-DOS: From PS4 to 1.44MB Floppy](https://www.youtube.com/watch?v=kSKeWH4TY9Y) - GDC talk
|
||||
|
||||
## Open source DOS libraries
|
||||
|
||||
- [Allegro 4.2](https://www.allegro.cc/files/?v=4.2)
|
||||
- [LoveDOS](https://github.com/rxi/lovedos) - A framework for making DOS games in Lua
|
||||
|
||||
## Open source DOS games
|
||||
|
||||
### Homebrew games with source code
|
||||
|
||||
List of all homebrew DOS games: http://www.doshaven.eu
|
||||
|
||||
- [DOS Defender](https://github.com/skeeto/dosdefender-ld31)
|
||||
- See [How to build DOS COM files with GCC by Chris Wellons](https://nullprogram.com/blog/2014/12/09/)
|
||||
- [Dungeons of Noudar](https://github.com/TheFakeMontyOnTheRun/dungeons-of-noudar)
|
||||
- [Emeritus Pong](https://sourceforge.net/projects/empong/)
|
||||
- [Floppy Bird](https://github.com/icebreaker/floppybird) - 16 bit assembly
|
||||
- [Gridfighter 3D](https://github.com/porta2note/gridfighter3d) - Quickbasic
|
||||
- [Hangman](https://sourceforge.net/projects/hangman-dos/) - Basic
|
||||
- [Magenta's Maze](http://www.doshaven.eu/downloads/537) - [site](https://archive.org/details/MAGSMAZE)
|
||||
- [NetHack](https://github.com/NetHack/NetHack)
|
||||
- [Piskworks](https://github.com/berk76/piskworks)
|
||||
- [Plutonium Caverns](https://github.com/jani-nykanen/plutonium-caverns)
|
||||
- [Ptakovina](https://github.com/berk76/tetris)
|
||||
- [sudoku86](https://sourceforge.net/projects/sudoku86/)
|
||||
- [Tetris](http://www.doshaven.eu/downloads/373) - [site](http://www.doshaven.eu/game/tetris/), assembly
|
||||
- [Towers of Hanoi](https://github.com/sblendorio/hanoi-dos) - Turbo Pascal, originally released in 1996
|
||||
- [x86 pong](https://github.com/spacerace/x86-pong) - PC-Booter game
|
||||
- [zmiy](https://sourceforge.net/projects/zmiy/)
|
||||
|
||||
### Freeware games with source code
|
||||
|
||||
- [Cyberdogs](https://www.classicdosgames.com/files/source/dogs_src.zip) - Turbo Pascal
|
||||
|
||||
### Commercial games with published source code
|
||||
|
||||
- [Abuse](https://www.classicdosgames.com/files/source/abuse_pd.tgz)
|
||||
- [Beneath a Steel Sky](https://www.classicdosgames.com/files/source/sky-source.zip) - Assembly
|
||||
- [Catacomb](https://github.com/CatacombGames/Catacomb) - Turbo Pascal
|
||||
- [Catacomb 3D](https://github.com/CatacombGames/Catacomb3D)
|
||||
- [Commander Keen in Keen Dreams](https://github.com/keendreams/keen)
|
||||
- [Descent](https://github.com/videogamepreservation/descent)
|
||||
- [Descent II](https://github.com/videogamepreservation/descent2)
|
||||
- [Doom](https://github.com/id-Software/DOOM)
|
||||
- The DOS-specific code for Doom could not be published because of a
|
||||
dependency to the licensed DMX sound library, hence why it's cleaned up and
|
||||
only the Linux source is there. However, the Heretic and Hexen projects contain
|
||||
the original DOS code in a way where DMX-related code is removed.
|
||||
- [Duke Nukem 3D](https://www.classicdosgames.com/files/source/duke3dsource.zip)
|
||||
- [Heretic](https://github.com/OpenSourcedGames/Heretic)
|
||||
- Original [SourceForge link](https://sourceforge.net/projects/heretic/files/) for Heretic/Hexen
|
||||
- [Hexen](https://github.com/OpenSourcedGames/Hexen)
|
||||
- Original [SourceForge link](https://sourceforge.net/projects/heretic/files/) for Heretic/Hexen
|
||||
- [Hovertank 3D](https://github.com/FlatRockSoft/Hovertank3D)
|
||||
- [Quake](https://github.com/id-Software/Quake)
|
||||
- [Rise of the Triad](https://github.com/videogamepreservation/rott)
|
||||
- [Wolfenstein 3D](https://github.com/id-Software/wolf3d)
|
||||
|
||||
|
||||
## License
|
||||
|
||||
[](https://creativecommons.org/publicdomain/zero/1.0)
|
||||
|
||||
To the extent possible under law, Bálint Kiss has waived all copyright and
|
||||
related or neighboring rights to this work.
|
||||
Loading…
Add table
Add a link
Reference in a new issue