Initial commit

This commit is contained in:
balintkissdev 2019-07-03 01:04:37 +02:00
commit f3555567e7
4 changed files with 307 additions and 0 deletions

2
.gitattributes vendored Normal file
View file

@ -0,0 +1,2 @@
* text=auto
readme.md merge=union

74
code-of-conduct.md Normal file
View 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
View 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
View file

@ -0,0 +1,202 @@
# Awesome DOS [![Awesome](https://awesome.re/badge.svg)](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
[![CC0](https://mirrors.creativecommons.org/presskit/buttons/88x31/svg/cc-zero.svg)](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.