DOS Information and/or Documentation

Undocumented DOS items and DOS secrets: http://www.mdgx.com/

Ralf Brown's Interrupt lists (Release 61) A very good archive of information about all the interrupts and their services.
(For an HTML version of the interrupt list, see http+fullcolon+slash+slash+www+dot+ctyme+dot+com+slash+rbrown+dot+htm)
(I am no longer supporting the www_ctyme_com link due to inappropriate images.
If you wish to still visit that site, you must type this URL in yourself. Sorry)

EasyDOS Help Page - Help on using DOS.

Interesting DOS programs links page A very nice list of DOS links.

HelpPC 2.1[broken] A very good archive of information. Here is an online reference.

What's its file format If you are looking for a specific file format, this place has just about every file format needed.

http://www.chebucto.ns.ca/~ak621/DOS/Websites.html


Old DOS CD's and archives

http://www.bbsdocumentary.com/software
http://www.ibiblio.org/pub/linux/system/bbs/!INDEX.short.html
http://cd.textfiles.com/directory.html
http://cd.textfiles.com/simtel/
ftp://sunsite.icm.edu.pl/sites/
http://sunsite.icm.edu.pl/pub/simtelnet/msdos/
ftp://sunsite.icm.edu.pl/pub/garbo/
ftp://nephtys.lip6.fr/pub/pc/garbo/
http://www.sac.sk/mirrors.html
http://hobbes.nmsu.edu/
http://ftp.funet.fi/
ftp://ftp.funet.fi/pub/
http://ftp.lanet.lv/ftp/ix.html
http://www.bbs.motion-bg.com
http://os2news.warpstock.org/ (mostly OS2)
http://archives.thebbs.org/


Hardware and/or OS Information

http://www.osdever.net/tutorials/ Bona Fide OS Developer
http://www.brokenthorn.com/Resources/OSDevIndex.html
http://aodfaq.wikidot.com/ The OS Development FAQ list.
http://alexfru.narod.ru/elinks.html
BeyondLogic.org -- Great info on USB and other devices....
http://www.nondot.org/sabre/os/ -- OS info regarding hardware and software
http://www.ata-atapi.com/
http://www.drdos.net/ DRDOS.Net - Unofficial DRDOS Information Site
http://rxdos.sourceforge.net/ -- RxDOS source code
http://www.rdos.net/rdos/index.htm
http://v2.nl/archive/works/v2_os
http://tunes.org/Review/OSes.html
http://www.cs.utah.edu/flux/
http://www.cs.utah.edu/flux/oskit/


Assembly Programming

Are you looking for an assembler? View my Assembler Review below.

http://download.intel.com/design/processor/manuals/253665.pdf
-- Intel Architecture (IA-32) Software Developer's Manual, Volume 1: Basic Architecture (2008) ( 1997 )
http://download.intel.com/design/processor/manuals/253666.pdf
-- Intel Architecture (IA-32) Software Developer's Manual, Volume 2a (A-M): Instruction Set Reference Manual (2008) ( 1997 ) http://download.intel.com/design/processor/manuals/253667.pdf
-- Intel Architecture (IA-32) Software Developer's Manual, Volume 2b (N-Z): Instruction Set Reference Manual (2008)
http://download.intel.com/design/processor/manuals/253668.pdf
-- Intel Architecture (IA-32) Software Developer's Manual, Volume 3a (part 1): System Programming Guide (2008) ( 1997 )
http://download.intel.com/design/processor/manuals/253669.pdf
-- Intel Architecture (IA-32) Software Developer's Manual, Volume 3b (part 2): System Programming Guide (2008)
Update to a few typos and what not to above three items.

http://www.intel.com/design/intarch/PAPERS/ESC_IA_P.HTM
-- Programming with the Intel architecture in the flat memory model

http://www.bttr-software.de/ - A few links to some assemblers and other DOS programming.


Newsgroups:
  alt.lang.asm
  comp.lang.asm.x86 (also known as CLAX)


Basic Programming

http://www.nicholson.com/rhn/basic/ - at least a dozen basic interpreters, most with source code.

Winer.zip A very good archive of information as well as a free book.

http://support.microsoft.com/kb/49709 Interesting info about the VAL function.



C Programming

http://jackklein.home.att.net/ (waybackmachine'd)
http://c-faq.com/
http://www.dinkumware.com/
http://www.eng.usf.edu/~black/C-command.html (waybackmachine'd)



DOS Batch Files

See my page on Batch files for more links.


Files

http://dotwhat.net/ For file format definations.

http://www.wotsit.org/ For file format definations.

PKZIP for DOS version 2.50. Same as the original 2.04g, except now includes long filename support, Y2K, etc.

http://www.file-extensions.org/ This site doesn't have any information on the disk format of a file of any type, however, it does have some information on what that file type may be used for and where to get certain program for use with that file type.



Magazines and Books

Doctor Dobb's Journal is a great source of programming information (Windows). Their site includes a lot of source code that has been included in there journals since early 90's.

Michael Abrash has released his wonderful "Graphics Programming Black Book" in PDF format to the public.
You can get a copy from http://www.gamedev.net/page/resources/_/technical/graphics-programming-and-theory/graphics-programming-black-book-r1698



TPC/IP, etc.

http://home.broadpark.no/~gvanem/ -- Watt32 Home Page



Misc programming items

Learn-c.com Embedded Systems Tutorial
(He is also the Author of: http://www.superstart.org/)

http://www.phanderson.com/

http://www.mouser.com is where I get my supplies.
http://www.jameco.com this one too.
http://canada.newark.com this one too.



Misc

Source code to the Hello, World! program in almost any language and style.
Source code to most any Quine. (A Quine is considered a program that can print its own source listing)
http://www.sonic.net/~undoc/
http://www.drdos.net/
http://mindprod.com/jgloss/unmain.html
http://jackklein.home.att.net/
http://www.techfest.com/
http://www.freetechbooks.com/
http://www.tortall.net/projects/yasm/
http://www.chrysocome.net/dd
http://gnuwin32.sourceforge.net/packages/coreutils.htm
http://www.freepascal.org/
http://sourceforge.net/projects/unxutils/files/
http://www.digibarn.com/
http://www.retroarchive.org/index.html
http://www.atarimuseum.com/videogames/consoles/7800/games/
http://golang.org/
http://unixtime-converter.com/


Fun and Games

Find Easter Eggs in just about any software package as well as hardware, movies, and other media.

Hugi Size Coding Compo. About once a month there is a new assembler size coding compo here. As of this update, the 11th compo is on it's way with a path finder being the subject. It is great compo'en and is updated 'daily' so that you can see where you are ranked. You can always send in your updated entry. There is also a mailing list.

Programmer Of The Month. POTM is a contest usually in C for various tasks. Usually a little more than a months time. (Watch out for the popup)




Shareware/Freeware Compilers/Interpreters on the web:

The following are links to several shareware/freeware compilers/interpreters.

Visit these sites for other lists:
    http://www.thefreecountry.com/
    more to come.

ADA
Nothing at this time...

Assemblers
The following is a review of assemblers that I have created for your benefit.
All comments are of my own opinion. Take them as you see fit :)
If you use or know of another (DOS) assembler not listed here, or see a correction that should be made about one of these listed below, please let me know.

The list is in alphabetical order with no preferences toward any assembler.

Eric Isaacson's ShareWare Assembler and Debugger
File Name: A86/D86 (A386/D386)
Location: http://www.eji.com/a86/
Version: 4.05 This assembler doesn't require any "red tape"/directives to assemble a file directly to a .com file. However, for ease of use and outputs other than .COM, directives are required. A86 will create output files in the following formats: .COM, .OBJ, and .BIN (image files).
To get the higher processor capabilities, you must purchase the A386/D386 package. However, recently, the author has included some instruction on how to create Windows programs.
Processor: 286/PIII
Run OS: DOS
Target: DOS
Type: Shareware
Open Source: No
Supported: By the author
Pros: Small and very fast
Cons: No support for 386+ (A86/D86) / Must pay for 386+ support (A386/D386)

ArrowSoft Assembler
File Name: ASM
Location: ftp://ftp.dunfield.com/arrowasm.zip (60k) (broken)
Version: 2.00c Syntax is MASM 3.0 compatible. Looks as if it has support for floating point code and emulation code for the x87.
Processor: 286
Run OS: DOS 3.0+
Target: DOS
Type: Public Domain
Open Source: No
Supported:
Pros: Support for Floating point and emulation of x87
Cons: Only supports up to the 80x286

Assembler 32
File Name: ASM32
Location: http://www.intelligentfirm.com/asm32.htm (23k)
Version: 1.1 This assembler doesn't require any "red tape"/directives. Is a very capable 32-bit PMode assembler. If you register, you can receive CPL32, the "next generation" ASM32.
Processor: PII
Run OS: Windows Console (?)
Target: Windows Console*, DOS
Type: Shareware (Free)
Open Source: No
Supported: By the author
Pros: Small and no red tape
Cons: Don't know, haven't used it yet.

CHeap ASseMbler
File Name: CHASM
Location: http://sunsite.icm.edu.pl/pub/simtelnet/msdos/asmutl/chasm4.zip (103k)
Version: 4.00S I found CHASM to be an easy to use assembler and would be a great start for someone to learn on. CHASM only creates .COM and direct binary files.
Processor: 80x88
Run OS: DOS 2.0+
Target: DOS
Type: Adware
Open Source: No
Supported: No
Pros:Easy to use and learn on
Cons:Only produces 80x86 .COM files

Flat Assembler
File Name: FASM
Location: http://flatassembler.net/ (164k)
Version: 1.67.38 I have not used this assembler yet, but after reading some of the documentation, it looks to be quite a nice assembler and growing quickly. It will output several different types of file formats: .COM, .EXE (MZ and PE), .COFF, and output for .DLL type files. (LINK not required)
The DOS assembler included requires a TRUE DOS environment.
Processor: P4
Run OS: Windows Console, DOS 2.0+ w/386+
Target: Windows Console*, DOS
Type: Freeware (GNU)
Open Source: Yes (GPL)
Supported: Yes
Pros: Includes Source Code
Cons: DOS version won't run in a DOS box

GoAsm
File Name: GoAsm
Location: http://www.godevtool.com/ (200k)
Version: 0.56.6b Compared to many other offers, it is interresting because Jeremy also wrote and provides a Linker, a Debugger, and several other things of interrest, that make the whole offer really 'consistant'.
This is a Win32 only Assembler released under 2 versions, freeware and shareware.
Processor: P4 ?
Run OS: Windows
Target: Windows Console*
Type: Freeware/Shareware
Open Source: No
Supported: Yes
Pros: Includes utilities specific to GoAsm so no other utilities needed.
Cons: No DOS version :)

JWasm
File Name: JWasm
Location: http://www.japheth.de/JWasm.html (311k)
Version: 2.02 MASM v6 compatible. It also includes source code.
Processor: P4 ?
Run OS: Windows DOS
Target: Windows DOS
Type: Watcom Licensed
Open Source: Yes
Supported: Yes
Pros: Includes Source code. Is Masm v6 compatible.
Cons: Don't know. Haven't used it yet.

LZASM
File Name: LZASMX.ZIP
Location: http://lzasm.hotbox.ru/ (Broken)
Version: 0.56 This assembler is suppose to be TASM like with modern instruction support. I have not looked at it yet.
Processor: x86 processors
Run OS: DOS
Target: DOS
Type:  
Open Source:  
Supported: By the Author
Pros:
Cons:

Magic Assembler
File Name: ASM
Location: http://www.bertgreevenbosch.nl/masm.html
Version: 1.12 Nice little 80x86 assembler. The part that caught my eye, was that it would write your code right to the boot sector of a floppy if you asked it to. Hence, I had to add this feature to NBASM :) (Thanks Bert)
Processor: 80x86
Run OS: DOS
Target: DOS
Type: Freeware
Open Source: No
Supported: By the Author
Pros: Writes your boot code to a disk.
Cons: Only supports 80x86 code.

Microsoft Macro Assembler
File Name: MASM
Location: http://www.microsoft.com/visualstudio/eng/products/visual-studio-express-products
Version: 8.xx This assembler is somewhat supported by Microsoft and will still create DOS programs if you use a DOS segmented linker. If you adhere to the License Agreement, it is free for download.
Output formats: .OBJ (MZ & PE), .COM, .DLL, Windows etc.)
This version only runs in a Windows Console. If you can get version 6.11d, it will still run under TRUE DOS.

There is version 8.xx out now, so I have heard. The way to get it, legally, is to register and download the Visual Tools package, install, then look under the bin directory. Since Microsoft changes their links so often, the link above may not be valid for very long, or it may point to the wrong place. Find the Visual C++ download package.
Processor: PIII+
Run OS: Windows Console*
Target: Windows Console*, DOS
Type: Commercial ("Free")
Open Source: No
Supported: Somewhat
Pros: Publicly advertised and most used syntax style.
Cons: From Microsoft.

Netwide Assembler
File Name: NASM
Location: http://sourceforge.net/projects/nasm
Version: 2.06rc10 NASM is noted for its vast output formats and portability. It is written in C and source code is included. It outputs a.out (linux), ELF, NetBSD/FreeBSD, .COFF, MS .OBJ (16-bit and 32-bit).
NASM uses a somewhat different syntax for memory (label/etc.) accessing than most other assemblers. Not to say it is wrong, just a different syntax than MASM, TASM, NBASM, etc. Once you learn how to use it, NASM is a nice assembler.

Get the IDE at: http://uk.geocities.com/rob_anderton/
Processor: PIII+
Run OS: Windows Console*, DOS
Target: DOS Windows-Console* Linux
Type: Freeware
Open Source: Yes ((L)GPL)
Supported: Yes
Pros: Widely used, portable, and many output formats.
Cons: Slightly different syntax that is difficult to understand for the novice.

NewBasic Assembler
File Name: NBASM
Location: http://www.fysnet.net/newbasic.htm
Version: 00.26.56 NBASM was designed to be easy to use and doesn't need a lot of command line arguments. NBASM outputs DOS 16-bit and 32-bit code for .COM and .SYS file formats as well as the 16-bit .OBJ format, including a linker (NBL) ready for these .OBJ files.
The advantage of NBASM, it is always being updated and worked on by requests from its users, including its main user, me :).
The disadvantage, it is always being updated and worked on :) It doesn't support all of the most recent instructions, though this version now contains a lot more of them as well as some that I missed before.
However, NBASM is very easy to learn and is fully supported by the author. It also includes a disassembler.

Get the IDE at: http://www.fysnet.net/nbasmide/nbasmide_help.htm
Processor: Pentium+
Run OS: DOS, Windows Console
Target: DOS
Type: Freeware
Open Source: No
Supported: Yes
Pros: Easy to learn and use.
Cons: Not all of the newest instructions are included. SSE, MMX, 3Dnow, etc. But does support most, if not all instructions up to the Pentium.

NGASM Assembler
File Name: NGASM
Location: http://www.bestdiskrecovery.com/ngasm/index.html
Version: 1.4b (1.4 beta 2) A new assembler with little support, though looks like it will have more support soon.
Please note: For some reason the page will load, then it will jump to adverts.
Processor: 80x186
Run OS: DOS, Windows Console
Target: DOS
Type: Freeware
Open Source: No
Supported: Yes
Pros: Simple Syntax.
Cons: Not all instructions are included, Yet!

The Specific Assembler
Name: SpAsm
Location: http://betov.free.fr/SpAsm.html (Broken)
Version: 4.15d / 2.050a I have not used this assembler, but the author states (thanks rené) that it doesn't require any red tape, has a vast macro capability, and includes an all in one IDE. No seperate tools required to create executable programs. No installation, just copy and use. Great debugging of .EXE files, since SpAsm places the source right in you .EXE (optional). Fast assembly and integeration of Windows equates, structures, etc. I really think it is worth a look. Really...
Processor: PIII+
Run OS: Windows
Target: Windows
Type: Freeware (GPL)
Open Source: Yes (GPL)
Supported: Yes
Pros: If you are creating Windows GUI apps, this assembler should work very well for you.
Cons: Not a DOS assembler, afterall, this is a DOS dedicated page :-)

Borland Turbo Assembler
Name: TASM
Location: http://www.borland.com/downloads/download_cbuilder.html
Version: 4.01/5.0 You can register with Borland and now get this assembler for free. Version 4.01 is for DOS, and version 5.0 is for Windows Console Apps.
Processor: Pentium+ (?)
Run OS: Windows Console*, DOS
Target: Windows Console*, DOS
Type: (Registered) Freeware
Open Source: No
Supported: No
Pros: Similar to MASM syntax and somewhat widely used. Free if you register.
Cons: I don't know.

ValArrow
File Name: ASM
Location: http://sunsite.icm.edu.pl/pub/simtelnet/msdos/asmutl/valarrow.zip (104k)
Version: 1.00D This assembler produces .COM and .OBJ file formats and includes a Linker to 'link' the .OBJ files to (DOS) .EXE files. Only supports 16-bit code up to the 286.

Processor: 286
Run OS: DOS
Target: DOS
Type: Public Domain
Open Source: No
Supported: No
Pros: Seems to be fairly easy to use and includes a linker.
Cons: Only supports up to the 286

Wolf's Shareware Assembler
File Name: WASM
Location: http://sunsite.icm.edu.pl/pub/simtelnet/msdos/asmutl/wasm202.zip (375k)
Version: 2.23 This is a very easy to use assembler, great for learning with.
Processor: 286
Run OS: DOS
Target: DOS
Type: Freeware
Open Source: No
Supported: Yes
Pros: Easy to use.
Cons: Only supports the 80x286

x86-s
File Name: asm
Location: http://x86-s.googlecode.com/files/asm-1.9.zip (44k)
Version: 1.9 This is an assembler (originally written for minix, but this version is for DOS). It is powerful enough to assemble itself. Allows Include files equates and various directives. Generates symbol files and xref listings.
Processor: x86
Run OS: DOS
Target: DOS
Type: bsd
Open Source: Yes
Supported: Yes
Pros:
Cons:

Footnotes
* - Could be used for Windows GUI apps
  - All Targets are considered Intel for this sites purposes. Some assemblers may include AMD or others.


If you have an assembler, or know of an assembler that you would like listed here, please let me know.

A friend told me that http://www.openwatcom.org/ contains an assembler within the C package. I have not looked at it, though I have heard a little about it.

A few IDEs for assembly:
- NBASM IDE at: http://www.fysnet.net/nbasmide/nbasmide_help.htm


Basic
http://www.rtrussell.co.uk/ BBC Basic for Windows.

http://www.xbasic.org/ Links and resources for the XBasic programming language project for Windows and Linux, which is freeware and open-source.

http://www.worldofspectrum.org/sinclairbasic/

Liberty Basic In my opinion, the author has done a good job with this one.

TrueBasic

PowerBasic Home Page
'Similar' to Quick Basic

BASIC compiler, over 80 BASICA/QBASIC commands (filename: asic500.zip) (327k)
Have not looked at it yet.

Bywater BASIC Interpreter 1.10 (filename: bwb110e.zip) (70k)
Find filename bwb110s.zip on the simtel mirror for the source code to this interpreter.

QBASIC 1.1 (the Basic Interpreter included with DOS 5.0)
- If you have Win9x, look on your Win9x CD, under the d:\OTHER\OLDMSDOS directory.
or
- Download the file explained here and execute it in an EMPTY directory



C
Watcom C - an "Open" C compiler. Includes source.

The DJGPP (Delorie) Home Page
Includes Compiler, IDE, Assembler, source code, etc.

Home of CC386 - A 32 bit C compiler for DOS/DPMI


COBOL
The Tiny Cobol Project


ForTran
Watcom Fortran - an "Open" Fortran compiler.

Fortran-77 compiler/linker/debugger ver 1.3b (filename: bcf7713b.zip) (181k)


Pascal
Borland Turbo Pascal - First go here, and then log in. Once there, you can download your pick of two versions.

TMT Pascal Compiler
- Has support for 32-bit DOS, OS/2, and Windows9x. Free restricted compiler only restricted to 1.5meg code, and free demo for all platforms.


Perl
http://www.perl.com/pub


XPL0
The distribution of XPL0 can be found here.



News Groups that I subscribe to (for programming info):