home *** CD-ROM | disk | FTP | other *** search
- Path: senator-bedfellow.mit.edu!dreaderd!not-for-mail
- Message-ID: <msdos-programmer-faq/part5_1084010824@rtfm.mit.edu>
- Supersedes: <msdos-programmer-faq/part5_1081511793@rtfm.mit.edu>
- Expires: 11 Jun 2004 10:07:04 GMT
- References: <msdos-programmer-faq/part1_1084010824@rtfm.mit.edu>
- X-Last-Updated: 2003/08/14
- From: jeffrey@carlyle.org (Jeffrey Carlyle)
- Sender: jeffrey@carlyle.org (Jeffrey Carlyle)
- Reply-To: jeffrey@carlyle.org (Jeffrey Carlyle)
- Approved: news-answers-request@MIT.edu
- Organization: JeffC.org
- Subject: comp.os.msdos.programmer FAQ part 5/5
- Newsgroups: comp.os.msdos.programmer,alt.msdos.programmer,comp.answers,alt.answers,news.answers
- Followup-To: poster
- Summary: Frequently asked questions from DOS programmers with tested answers.
- Originator: faqserv@penguin-lust.MIT.EDU
- Date: 08 May 2004 10:08:03 GMT
- Lines: 497
- NNTP-Posting-Host: penguin-lust.mit.edu
- X-Trace: 1084010883 senator-bedfellow.mit.edu 574 18.181.0.29
- Xref: senator-bedfellow.mit.edu comp.os.msdos.programmer:127446 alt.msdos.programmer:54824 comp.answers:57102 alt.answers:72789 news.answers:270993
-
- Archive-name: msdos-programmer-faq/part5
- Comp-os-msdos-programmer-archive-name: dos-faq-pt5.txt
- Posting-frequency: 28 days
- Last-modified: 14 Aug 2003
-
- comp.os.msdos.programmer FAQ Version 2003.08.14
-
- This is the Frequently Asked Questions list for the newsgroup
- comp.os.msdos.programmer.
-
- COPYRIGHT
-
- Copyright 2003 by Jeffrey Carlyle. All rights reserved. This article is
- not in the public domain, but it may be redistributed so long as this
- notice, the acknowledgments, and the information on obtaining the latest
- copy of this list are retained and no fee is charged. The code fragments
- may be used freely; credit to the FAQ would be polite. This FAQ is not to
- be included in any static: archive (e.g. CD-ROM or book); however, a
- pointer to the FAQ may be included. See <Q:01.14> [Where can I get the
- latest copy of this FAQ list?] for a link to the latest version of the
- FAQ.)
-
- This is part 5 of 5 parts.
-
- TABLE OF CONTENTS
-
- PART 1:
- Section 1. General FAQ and Newsgroup Information
- <Q:01.01> - Is MS-DOS Dead?
- <Q:01.02> - What is this article for?
- <Q:01.03> - Who has contributed to this article?
- <Q:01.04> - How can I search this article for a particular topic?
- <Q:01.05> - Are the answers guaranteed to be correct and complete?
- <Q:01.06> - What is comp.os.msdos.programmer about?
- <Q:01.07> - Is comp.os.msdos.programmer just for C programmers?
- <Q:01.08> - What is comp.sys.ibm.pc.programmer?
- <Q:01.09> - Is comp.os.msdos.programmer available as a mailing list?
- <Q:01.10> - What's this netiquette?
- <Q:01.11> - How can I learn more about Usenet?
- <Q:01.12> - What other technical newsgroups should I know about?
- <Q:01.13> - Where are FAQ lists archived?
- <Q:01.14> - Where can I get the latest copy of this FAQ list?
-
- Section 2. General Reference
- <Q:02.01> - Are there any good on-line references for PC hardware
- components?
- <Q:02.02> - Are there any good on-line references for PC interrupts?
- <Q:02.03> - What and where is Ralf Brown's interrupt list?
- <Q:02.04> - Where can I find lex, yacc, and language grammars?
- <Q:02.05> - What's the best book to learn programming?
- <Q:02.06> - Why won't my code work?
- <Q:02.07> - Are there any good sources of example code?
- <Q:02.08> - What and where is SNIPPETS?
- <Q:02.09> - Is the source code MS-DOS available?
- <Q:02.10> - What are my alternatives for MS-DOS compatible OSes?
- <Q:02.11> - What and where is FreeDOS?
- <Q:02.12> - Where can I find out about batch files?
-
- PART 2:
- Section 3. Compile and link
- <Q:03.01> - What the heck is DGROUP > 64K?
- <Q:03.02> - How do I fix 'automatic data segment exceeds 64K' or 'stack
- plus data exceed 64K'?
- <Q:03.03> - Will Borland C code and Microsoft C code link together?
- <Q:03.04> - Why did my program bomb at run time with 'floating point
- formats not linked' or 'floating point not loaded'?
- <Q:03.05> - How can I change the stack size in Borland's C compilers?
- <Q:03.06> - What's the format of an .OBJ file?
- <Q:03.07> - What's the format of an .EXE header?
- <Q:03.08> - What's the difference between .COM and .EXE formats?
- <Q:03.09> - How do I create a .COM file?
- <Q:03.10> - Where is EXE2BIN located?
- <Q:03.11> - What does this message mean: 'A20 already enabled so test
- is meaning less?'
-
- Section 4. Keyboard
- <Q:04.01> - How can I read a character without echoing it to the
- screen, and without waiting for the user to press the Enter
- key?
- <Q:04.02> - How can I find out whether a character has been typed,
- without waiting for one?
- <Q:04.03> - How can I disable Ctrl-C/Ctrl-Break and/or Ctrl-Alt-Del?
- <Q:04.04> - How can I disable the print screen function?
- <Q:04.05> - How can my program turn NumLock (CapsLock, ScrollLock) on
- or off?
- <Q:04.06> - How can I speed up the keyboard's auto-repeat?
- <Q:04.07> - What is the SysRq key for?
- <Q:04.08> - How can my program tell what kind of keyboard is on the
- system?
- <Q:04.09> - How can I tell if input, output, or stderr has been
- redirected?
- <Q:04.10> - How can I increase the size of the keyboard buffer?
- <Q:04.11> - How can I stuff characters into the keyboard buffer?
-
- PART 3:
- Section 5. Disks and files
- <Q:05.01> - What drive was the PC booted from?
- <Q:05.02> - How can I boot from drive B:?
- <Q:05.03> - Which real and virtual disk drives are valid?
- <Q:05.04> - How can I make my single floppy drive both a: and b:?
- <Q:05.05> - How can I disable access to a drive?
- <Q:05.06> - How can a batch file test existence of a directory?
- <Q:05.07> - Why won't my C program open a file with a path?
- <Q:05.08> - How can I redirect printer output to a file?
- <Q:05.09> - How can I redirect the output of a batch file?
- <Q:05.10> - How can I redirect stderr?
- <Q:05.11> - How can my program open more files than DOS's limit of 20?
- <Q:05.12> - How can I read, create, change, or delete the volume label?
- <Q:05.13> - How can I get the disk serial number?
- <Q:05.14> - What's the format of .OBJ, .EXE., .COM files?
- <Q:05.15> - How can I flush the software disk cache?
- <Q:05.16> - How can I see if a drive is a RAM drive?
- <Q:05.17> - How can I determine a hard drive's manufacturer?
- <Q:05.18> - Where can I find information about the ATA/ATAPI
- specification?
- <Q:05.19> - How can I copy files to or from filenames containing date
- information?
-
- Section 6. Serial ports (COM ports)
- <Q:06.01> - How do I set my machine up to use COM3 and COM4?
- <Q:06.02> - How do I find the I/O address of a COM port?
- <Q:06.03> - But aren't the COM ports always at I/O addresses 3F8, 2F8,
- 3E8, and 2E8?
- <Q:06.04> - How do I configure a COM port and use it to transmit data?
-
- PART 4:
- Section 7. Other hardware questions and problems
- <Q:07.01> - Which 80x86 CPU is running my program?
- <Q:07.02> - How can a C program send control codes to my printer?
- <Q:07.03> - How can I redirect printer output?
- <Q:07.04> - Which video adapter is installed?
- <Q:07.05> - How do I switch to 43- or 50-line mode?
- <Q:07.06> - How can I find the Microsoft mouse position and button
- status?
- <Q:07.07> - How can I access a specific address in the PC's memory?
- <Q:07.08> - How can I read or write my PC's CMOS memory?
- <Q:07.09> - How can I access memory beyond 640K?
- <Q:07.10> - How can I use the protected mode?
- <Q:07.11> - How can I tell if my program is running on a PS/2-style
- machine.
- <Q:07.12> - Is there a 80x87 math unit installed?
- <Q:07.13> - How can I power off the computer from a batch file?
-
- Section 8. Other software questions and problems
- <Q:08.01> - How can a program reboot my PC?
- <Q:08.02> - How can I time events with finer resolution than the system
- clock's 55 ms (about 18 ticks a second)?
- <Q:08.03> - How can I find the error level of the previous program?
- <Q:08.04> - How can a program set DOS environment variables?
- <Q:08.05> - How can I change the switch character to - from /?
- <Q:08.06> - How can I write a TSR (terminate-stay-resident utility)?
- <Q:08.07> - Why does my interrupt function behave strangely?
- <Q:08.08> - How can I write a device driver?
- <Q:08.09> - What can I use to manage versions of software?
- <Q:08.10> - What's this 'null pointer assignment' after my C program
- executes?
- <Q:08.11> - How can a batch file tell whether it's being run in a DOS
- box under Windows?
- <Q:08.12> - How can my program tell if it's running under Windows?
- <Q:08.13> - How can a program tell whether ANSI.SYS is installed?
- <Q:08.14> - How do I copyright software that I write?
- <Q:08.15> - How can I place date and time information into environment
- variables?
-
- PART 5: (this part)
- Section 9. Downloading
- <Q:09.01> - What are SimTel and Garbo?
- <Q:09.02> - Can I get archives on CD-ROM?
- <Q:09.03> - Where do I find program <mumble>?
-
- Section 10. Vendors and products
- <Q:10.01> - How can I contact Borland?
- <Q:10.02> - How can I contact Microsoft?
- <Q:10.03> - What is the current version of DJGPP?
- <Q:10.04> - What and where is DJGPP?
- <Q:10.05> - Are there any good shareware/freeware compilers?
- <Q:10.06> - Where is QBASIC?
- <Q:10.07> - What is a vendor's web site address?
-
- ------------------------------
-
- Subject: Section 9. Downloading
- Date: 5 Feb 2002 22:03:03 -0400
-
- Where to do it and how to do it.
-
- ------------------------------
-
- Subject: <Q:09.01> - What are SimTel and Garbo?
- Date: 8 Feb 2002 20:39:08 -0400
-
- These are three of the most popular archive sites, with a few bazillion
- files available for free downloading by ftp. Many of the files are
- shareware and you're expected to send a payment directly to the authors
- if you use them regularly.
-
- SimTel can be found at: <http://www.simtel.net>
-
- Garbo can be found at: <http://garbo.uwasa.fi>
-
- A few words about file names and versions: Many files at the archive
- sites are updated from time to time. I verified every filename in this
- FAQ as of 08 Feb 2002 by ftping to the named sites, or by consulting
- their index files. If you can't find a file given in these articles as
- mumble12.zip, perhaps there's a newer version; try mumble13.zip or
- mumble14.zip, or mumble*.zip if your ftp program supports wildcards
- (most do so). Please let me know of any out-of-date file names.
-
- This FAQ should show both Garbo and SimTel directory and file names, if
- available, for every file mentioned for downloading. If you see a
- listing for only one of them, it means that the file was not found at
- the other site, or that the other site's catalog shows an old version.
-
- Also remember that caps and lower case filenames are not interchangeable
- at most archive sites.
-
- ------------------------------
-
- Subject: <Q:09.02> - Can I get archives on CD-ROM?
- Date: 5 Feb 2002 22:03:03 -0400
-
- Copies of the SimTel MS-DOS, Macintosh and Unix-C collections (also of
- wuarchive, cica, and others) are available from Walnut Creek CDROM, 1547
- Palos Verdes, Suite 260, Walnut Creek, CA 94596-2228, telephone (800)
- 786-9907 or +1 510 674-0783, or FAX +1 510 674-0821, or email
- rab@cdrom.com.
-
- For a catalog of disks available, send email to info@cdrom.com, or ftp
- the catalog as /cdrom/catalog from cdrom.com.
-
- ------------------------------
-
- Subject: <Q:09.03> - Where do I find program <mumble>?
- Date: 5 Feb 2002 22:03:03 -0400
-
- You are asking about shareware, freeware, or public-domain programs,
- right? Commercial software is not legally distributed through the net,
- in general. (Occasionally vendors will make patches available, but these
- are useful only to upgrade software you already own.)
-
- That said, the quickest way to find a program you are looking for is to
- use a WWW search utility such as Google at <http://www.google.com>.
-
- There are also several newsgroups to help you find a program.
- comp.binaries.ibm.pc.wanted is generally the best place to ask your
- question. Please review the guidelines in <Q:01.12> [What other
- technical newsgroups should I know about?]
-
- ------------------------------
-
- Subject: Section 10. Vendors and products
- Date: 5 Feb 2002 22:03:03 -0400
-
- Where to find them.
-
- ------------------------------
-
- Subject: <Q:10.01> - How can I contact Borland?
- Date: 8 Feb 2002 01:50:16 -0400
-
- On the Web:
-
- Information about Borland products can be found at:
- <http://www.borland.com>
-
- Please notice Borland is marketing the newsest version of Borland C++ as
- Borland C++Builder and the newest version of Borland Pascal as Borland
- Delphi.
-
- For awhile, Borland was known as Inprise, but now the name is back to
- Borland.
-
- ------------------------------
-
- Subject: <Q:10.02> - How can I contact Microsoft?
- Date: 7 Feb 2002 01:08:35 -0400
-
- Microsoft has stopped developing MS-DOS and most of the programming
- information they now provide is focused more on Windows development
- instead of MS-DOS programming.
-
- In ther past, individual employees of Microsoft (not MicroSoft, please!)
- have posted here. Their addresses all take the form
- person@microsoft.com. However, Microsoft as a company does not answer
- individual questions via email through the Internet.
-
- On the Web:
-
- Microsoft's Web server <http://www.microsoft.com> contains information
- on their products and allows users to search the Microsoft Knowledge
- Base.
-
- Via ftp:
-
- Microsoft's anonymous FTP server <ftp://ftp.microsoft.com> offers a
- variety of information for developers. This ftp server is run using
- Windows NT, so it supports both UNIX- like and DOS-like path names. For
- example \SOFTLIB\INDEX.TXT and /SOFTLIB/INDEX.TXT are both valid.
- Filenames are not case sensitive.
-
- Informarion related to MS-DOS can be found in the /SOFTLIB directory and
- the /PEROPSYS directory.
-
- ------------------------------
-
- Subject: <Q:10.03> - What is the current version of DJGPP?
- Date: 5 Feb 2002 22:03:03 -0400
-
- See <Q:10.04> [What and where is DJGPP?]
-
- ------------------------------
-
- Subject: <Q:10.04> - What and where is DJGPP?
- Date: 5 Feb 2002 22:03:03 -0400
-
- DJGPP is a 32-bit C/C++/Ada95 development environment created by D.J.
- Delorie for the MS-DOS environment, based on the GNU tools. A 16-bit
- version of DJGPP also exists at: <http://www.delorie.com/djgpp/16bit/>
-
- DJGPP can be retrieved from the following sites:
- <http://www.delorie.com/djgpp/dl/ofc/>
-
- More information on DJGPP can be found in the following places:
-
- The DJGPP FAQ: (Where * is the current version.)
- <http://www.delorie.com/djgpp/faq/>
-
- WWW Home Page: <http://www.delorie.com/djgpp/>
-
- Newsgroup: (preferred over the mailing list) <news:comp.os.msdos.djgpp>
-
- ------------------------------
-
- Subject: <Q:10.05> - Are there any good shareware/freeware compilers?
- Date: 8 Feb 2002 20:44:31 -0400
-
- Borland has issued free versions of several Borland C and Pascal
- compilers. Users can download the Borland C++ Compiler 5.5 from
- <http://www.borland.com/bcppbuilder/freecompiler/>. It is an ANSI
- compliant C++ compiler for Win32 with a number of extra feature;
- however, it does not include a GUI and does not appear to support MS-DOS
- executables.
-
- Users can also download Turbo Pascal 1.0, 3.02, and 5.5 and Turbo C 1.01
- and 2.01 from the Borland Community Museum if they first register as
- Borland Community members at <http://community.borland.com/>.
-
- There are several shareware/freeware compilers for MS-DOS, here are just
- a few:
-
- Digital Mars
-
- C and C++ compilers for Win32, Win16, DOS32 and DOS. Fast compile and
- link times, powerful optimization technology, design by contract,
- complete library source, HTML browsable documentation, disassembler,
- librarian, resource compiler, make, etc., command line and GUI versions,
- tutorials, sample code, online updates, Standard Template Library, and
- more.
-
- <http://www.digitalmars.com/>
-
- CC386:
-
- K&R C with some ANSI extensions; 32 bit, requires 386+; a port/re-write
- of a C compiler for the Motorola 68000 processor; freeware.
-
- <http://www.members.tripod.com/~ladsoft/cc386.htm>
-
- DJGPP
-
- D.J. Delorie has ported the GNU C/C++ compiler to the 32-bit DOS
- platform. There is also an incomplete 16-bit port. Supports ANSI C and
- C++. Reported to be difficult for novice users. Very well supported by a
- large user community. Covered under GNU GPL. For more information see
- section <Q:10.04> [What and where is DJGPP?].
-
- LCC:
-
- LCC supports ANSI C and support a wide variety of development platforms.
- Well documented in the book {A Retargetable C Compiler: Design and
- Implementation} ISBN 0-8053-1670-1; however, there is little free
- documenation. Not intended for novice users. Source code is freely
- available. Freeware, but not public domain.
-
- <http://www.cs.princeton.edu/software/lcc>
-
- <http://www.cs.virginia.edu/~lcc-win32>
-
- Magic Assembler:
-
- Magic Assembler is a small easy-to-use x86 assembly language compiler.
- It can produce .COM files as well as boot sector programs. It can also
- print the source using the correct addresses. (Public Domain)
-
- * <http://www.simtel.net/pub/pd/18391.html>
-
- * <http://www.math.leidenuniv.nl/~bgreeven/masm.html>
-
- MICRO-C:
-
- Large ANSI subset; 16-bit; includes a DOS-based IDE and command-line
- tools; well document (approx. 400 pages); Comprehensive PC library (~300
- functions) including: TSR, windowing, serial communications, and
- graphics; large collection of example programs (over 120); freeware;
- commercial versions available for many embedded processors; library
- source available with commercial version.
-
- <ftp://ftp.dunfield.com/mc321pc.zip>
-
- <http://www.dunfield.com/>
-
- MIRACLE C:
-
- Supports K&R C with minor ANSI extensions; 16 bit, compiled code runs
- under DOS; Compiler/IDE requires windows, 386+; Somewhat documented
- (approx 30 pages + windows help file); Compiler source code is available
- with registration; Shareware.
-
- <http://www.c-compiler.com/>
-
- NASM:
-
- NASM, the Netwide Assembler, is a free assembler for Intel 80x86 series
- of microprocessors. Not only is the assembler compatible with MS-DOS,
- but it will also work under Windows 95, Linux, and OS/2. More
- information can be found on The Netwide Assembler Project website at:
- <http://www.web-sites.co.uk/nasm/>
-
- Open Watcom:
-
- One of the old standards of DOS programming, the Watcom C++ compiler,
- will soon be released as open source software. Sybase, the owners of
- Watcom are currently (21-Jun-2001) in the process of preparing an open
- source license for the compiler. Watcom C++ is a complete package
- containing 16-bit and 32-bit compilers, an IDE, maker, linker,
- assembler, and other tools. It supports DOS, Windows, and OS/2.
-
- <http://www.openwatcom.org/>
-
- PACIFIC C:
-
- Supports ANSI C; 16 bit, runs on 8088+; Includes nice DOS IDE + command
- line tools; Well documented via large PDF file (350+ pages); Commercial
- versions available for several embedded processors; Freeware, but not
- public domain.
-
- <http://www.hitech.com.au/products/pacific.html>
-
- PCC Personal C Compiler:
-
- Supports K&R C only; 16 bit, runs on 8088+; Command line interface only;
- Does not appear to be under current development / support; Well
- documented (approx 100 page text file); Shareware.
-
- <http://www.simtel.net/pub/pd/41749.shtml>
-
- Much thanks to comp.os.msdos.programmer reader Dave Dunfield for
- providing information about many of these compilers.
-
- ------------------------------
-
- Subject: <Q:10.06> - Where is QBASIC?
- Date: 6 Feb 2002 20:53:45 -0400
-
- QBASIC is a stripped down version of Microsoft's QuickBASIC
- interpretter. It is distributed with MS-DOS versions greater than 4.00.
- (Earlier versions included GW-BASIC or BASICA.)
-
- At first glance, Windows 95 and greater no longer included QBASIC;
- however, they can still be found on Windows' CDs. To find QBASIC, use
- the Find utility on the Start menu to search for "qbasic.*" on the
- Windows CD. Once you have located "qbasic.exe" and "qbasic.hlp", copy
- them to a folder on your hard drive.
-
- Users without Windows CDs can download QBASIC from here:
- <ftp://ftp.microsoft.com/Products/Windows/Windows95/CDRomExtras/OtherUtilities/olddos.exe>.
-
- ------------------------------
-
- Subject: <Q:10.07> - What is a vendor's web site address?
- Date: 5 Feb 2002 22:03:03 -0400
-
- Have you tried http://www.<inset vendor name here>.com?
-
- If that doesn't work use a directory service like the Open Directory
- Project <http://www.dmoz.org/> or a search engine like Google
- <http://www.google.com/> to search for your vendor's name.
-
- ------------------------------
-
- Subject: Conclusion
-
- This is the end of part 5 of 5 parts.
-
- This text is copyright 2003 by Jeffrey Carlyle. All rights reserved.
- Please see the top of this article for additional copyright information.
-
-