Path: senator-bedfellow.mit.edu!faqserv From: jeffrey@carlyle.com (Jeffrey Carlyle) Newsgroups: comp.os.msdos.programmer,alt.msdos.programmer,comp.answers,alt.answers,news.answers Subject: comp.os.msdos.programmer FAQ part 1/5 Supersedes: Followup-To: comp.os.msdos.programmer Date: 30 Sep 1997 09:49:14 GMT Organization: The COMP-FAQ Project Lines: 828 Sender: jeffrey@carlyle.com (Jeffrey Carlyle) Approved: news-answers-request@MIT.Edu Expires: 11 Nov 1997 09:49:05 GMT Message-ID: Reply-To: jeffrey@carlyle.com (Jeffrey Carlyle) NNTP-Posting-Host: penguin-lust.mit.edu Summary: Frequently asked questions by DOS programmers with tested answers. X-Last-Updated: 1997/08/04 Originator: faqserv@penguin-lust.MIT.EDU Xref: senator-bedfellow.mit.edu comp.os.msdos.programmer:92880 alt.msdos.programmer:39077 comp.answers:28267 alt.answers:29274 news.answers:113409 Archive-name: msdos-programmer-faq/part1 Comp-os-msdos-programmer-archive-name: dos-faq-pt1.txt Posting-frequency: 28 days Last-modified: 04 Aug 97 ------------------------------ Subject: comp.os.msdos.programmer FAQ part 1/5 FAQ updates can be found at . This is part 1 of the frequently asked question list for the newsgroup comp.os.msdos.programmer. Part 1: Section 1. General FAQ and Newsgroup Information Section 2. General Reference ------------------------------ Subject: Is MS-DOS Dead? Date: Sun, 03 Aug 97 16:29:08 CST No. Though Microsoft may not be actively developing MS-DOS there are still many computer that are not capable of running Microsoft Windows. The current version of Microsoft Windows will also run any MS-DOS program; therefore, MS-DOS is not dead, and will most- likely never die just as Commodore-64s and Amigas have not died. ------------------------------ Subject: comp.os.msdos.programmer FAQ Comp.os.msdos.programmer FAQ Version 1997.08 Copyright 1997 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. ============================= TABLE OF CONTENTS ============================= Part 1: Section 1. General FAQ and Newsgroup Information Section 2. General Reference Part 2: Section 3. Compile and Link Section 4. Keyboard Part 3: Section 5. Disks and files Section 6. Serial ports (COM ports) Part 4: Section 7. Other hardware questions and problems Section 8. Other software questions and problems Part 5: Section 9. Downloading Section 10. Vendors and products ------------------------------ Subject: Section 1. General FAQ and Newsgroup Information - What is this article for? - Who has contributed to this article? - How can I search this article for a particular topic? - Are the answers guaranteed to be correct and complete? - What is comp.os.msdos.programmer about? - Is comp.os.msdos.programmer just for C programmers? - What is comp.sys.ibm.pc.programmer? - Is comp.os.msdos.programmer available as a mailing list? - What's this "netiquette"? - How can I learn more about Usenet? - What other technical newsgroups should I know about? - Where are FAQ lists archived? - Where can I get the latest copy of this FAQ list? ------------------------------ Subject: - What is this article for? Date: Sat, 02 Aug 97 23:23:16 CST This is the FAQ (Frequently Asked Questions) list for the newsgroup comp.os.msdos.programmer. This list is maintained in versions; new questions and revised questions in this version are not marked do to the restructuring of the FAQ; however, in future versions new or revised questions will be marked with "NEW" or "REVISED" in the subject. This list is posted every 20 days. FAQ lists are intended to reduce the noise level in their newsgroups that results from the repetition of the same questions, correct answers, wrong answers, corrections to the wrong answers, corrections to the corrections, debate, etc. This list should serve as a repository of the canonical "best" answers to the questions in it. The names of folks who have helped to improve this FAQ list are listed in - "Who has contributed to this article?" ------------------------------ Subject: - Who has contributed to this article? *revised* Date: Fri, 7 Jul 95 12:00:00 CDT This list is maintained and edited by Jeffrey Carlyle. To contact him send email to or via surface mail to: Jeffrey Carlyle 297 Meadowlark Trail Bowling Green, KY 42101-9427 Stan Brown as the former list maintainer has been the major contributor: Stan wrote most of this list. Many articles posted in comp.os.msdos.programmer sparked ideas or provided information for the first version of this list. Though they are not responsible for any errors, thanks are due to the following persons for posted articles or private email that led to improvements in this FAQ list: Jamshid Afshar, Mark Aitchison, Sanjay Aiyagari, George Almasi, Aaron Auseth, Robert Baker, Preston Bannister, Scott Barman, Denis Beauregard, Per Bergland, Mike Black, Chris Blum, Ron Bodkin, Mark Brader, Jon Brinkmann, Andrew James Bromage, Glynn Brooks, Paul Brooks, Ralf Brown, Stan Brown, Shaun Burnett, D'Arcy J.M. Cain, Jeffrey Carlyle, Raymond Chen, Kelly Cooper, Denny de Jonge, Eric DeVolder, Alan Drew, Paul Ducklin, Gary Dueck, Roland Eriksson, Mark Evans, Markus Fischer, George Forsman, Roger Fulton, Vincent Giovannone, Robert Grunloh, B.Haible, Janos Haide, Klaus Hartnegg, Kris Heidenstrom, Tom Haapanen, Joel Hoffman, Ari Hovila, Chin Huang, Daniel P Hudson, Joe Huffman, Michael Holin, Mike Iarrobino, Byrial Jensen, Rune Jorgensen, Ajay Kamdar, Igor Kerp, Everett Kaser, JJ Keijser, Jeff Kellam, Jen Kilmer, Reinhard Kirchner, Dave Kirsch, Chad Knudsen, Samuel Ko, Jan Kotas, Janne Kukonlehto, Robert Luursema, Benjamin Lee, Stephen Lee, Jim Lynch, Greg Malknecht, Sidney Markowitz, Jim Marks, Dimitri Matzarakis, Fred McCall, Ken McKee, Doug Merrett, Tom Milner, Bill Moore, Duncan Murdoch, Steve Murphy, Daniel Neri, Mert Nickerson, David Nugent, John Oldenburg, David Pape, Keith Petersen, Karl Riedling, Arthur Rubin, Gerald Ruderman, Timo Salmi, Tapio Sand, Charles Sandmann, John Schmid, Russell Schulz, Huseyin Sevay, Adam Seychell, Ajay Shah, Bob Smith, Bob Stout, Sean Sullivan, Steve Summit, Tom Swingle, Anders Thulin, Curt Tilmes, Rick Watkins, Ya-Gui Wei, Morten Welinder, Joe Wells, Scott Winder, Gregory Youngblood, Eli Zaretski, khill@vax1.umkc.edu ------------------------------ Subject: - How can I search this article for a particular topic? To locate a certain word or phrase use your newsreader's, browser's, or editor's search utility. ------------------------------ Subject: - Are the answers guaranteed to be correct and complete? Date: Wed, 05 Sep 94 15:34:00 CDT There has been an attempt to check all facts, but THERE IS NO WARRANTY ON THE CODE OR ON THE TECHNIQUES DESCRIBED HEREIN. Please send corrections to . All the code has been tested; but the testing may not have been perfect, and machines and configurations vary. (Except where otherwise noted, C code was tested with MSC 5, BC++ 2.0, or BC++ 4.x.) The mention of particular books or programs must not be construed to reflect unfavorably on any that are not mentioned. ------------------------------ Subject: - What is comp.os.msdos.programmer about? Date: Wed, 05 Sep 94 15:34:00 CDT Comp.os.msdos.programmer (comp.sys.ibm.pc.programmer until September 1990) concerns programming for MS-DOS systems. The article "USENET Readership report for Jul 94" in news.lists shows 120,000 readers of this newsgroup worldwide. Traffic (exclusive of crossposts) was 1981 articles aggregating 3.1 Megabytes. It ranked as the 79th most popular newsgroup. Much of our traffic is about language products (chiefly from Borland and Microsoft). More programming topics focus on C than on any one other language, but we are not just for C programmers (see - "Is comp.os.msdos.programmer just for C programmers?"). Since most MS-DOS systems run on hardware that is roughly compatible with the IBM PC, on Intel 8088, 80188, or 80x86 chips, we tend to get a lot of questions and answers about programming other parts of the hardware. ------------------------------ Subject: - Is comp.os.msdos.programmer just for C programmers? No, it is for all programmers who want to share information about programming in MS-DOS and DOS replacements like 4DOS. Programs and questions are also posted in Pascal, assembly, and other languages (including MS-DOS batch programming). Why does the newsgroup seem to be so C-oriented sometimes? There are two reasons. First, comp.lang.c and comp.lang.pascal have evolved in different directions. Comp.lang.pascal welcomes vendor-specific discussion, such as Turbo Pascal. Since so many of Turbo Pascal's features are tailored to programming on PCs and in MS-DOS, Turbo Pascal programmers tend to find DOS questions welcomed there, so that comp.os.msdos.programmer gets less of the "DOS in Turbo Pascal" traffic. On the other hand, comp.lang.c has stayed closer to talking only about the C language, and vendor-specific or operating-system-specific questions are not welcome. This tends to push questions about disks, DOS file structure, video, the keyboard, TSRs, etc. to comp.os.msdos.programmer even when those programs are written in C. This FAQ is definitely C-oriented, not because that's necessarily best but because I tried to stick to what I could verify personally. As a C programmer (with some assembler), I could most carefully verify solutions in C or assembler. I felt that short, clear programs could be published in just one language and programmers could translate them into their languages of choice. But the FAQ list also contains several long programs written only in C; this is a defect with no obvious remedy. Most answers that point to source code at archive sites include both C- and Pascal- language source when available. ------------------------------ Subject: - What is comp.sys.ibm.pc.programmer? Date: Sun, 03 Aug 97 19:18:26 CST Comp.sys.ibm.pc.programmer is the old name of comp.os.msdos.programmer, and has been obsolete since September 1990. However, many systems have not removed the old group, or have removed it but aliased it to the new name. This means that some people still think they're posting to comp.sys.ibm.pc.programmer even though they're actually posting to comp.os.msdos.programmer. You can easily verify the non-existence of comp.sys.ibm.pc.programmer by reference to the "List of Active Newsgroups" posted to news.groups. It's available at: (For RTFM usage instructions see - "Where are FAQ lists archived?") ------------------------------ Subject: - Is comp.os.msdos.programmer available as a mailing list? Sorry, the newsgroup is not available as a mailing list. ------------------------------ Subject: - What's this "netiquette"? Netiquette is good Usenet etiquette. It includes basic rules like the ones below. (See also - "How can I learn more about Usenet?") - Always read a newsgroup for a reasonable time before you post an article to it. - Pick the one right group for your article; don't crosspost unless absolutely necessary. If you absolutely must post an article to more than one group, do crosspost it and don't post the same article separately to each group. See - "What other technical newsgroups should I know about?" when considering where to post an article. - Before you post a question, make sure you're posting to the right newsgroup; the best way to do that is to observe the proceeding rule. Check the group's FAQ list (if it has one) to make sure that your question isn't already answered there; see "Where are FAQ lists archived?" - When you post a question, if you ask for email responses then promise to post a summary. Keep your promise. And make it a real summary: don't just append all the email you got. Instead, write your own (brief) description of the solution: this is the best way to make sure you really understand it. - Before you post a follow-up, read the other follow-ups. Very often you'll find that someone else has already made the point you had in mind. - When someone posts a question, if you want to know the answer don't post a "me, too". Instead send email to the poster asking him or her to share responses with you. - When posting a follow-up to another posted article, remove all headers and signature lines from the old article; just keep the line "In
, so-and-so writes:". Also cut the original article down as much as possible; just keep enough of it to remind readers of the context. - Keep lines in posted articles to 72-75 characters. Many newsreaders chop off column 81 or arbitrarily insert a newline there, which makes longer lines difficult or impossible to read. But you need to keep well below 80 characters per line to allow for the > characters that get inserted when other people post follow-ups to your article. - Keep your signature to 4 lines or less (including any graphics) and for heaven's sake make sure it doesn't get posted twice in your article. - Don't post email without first obtaining the permission of the sender. ------------------------------ Subject: - How can I learn more about Usenet? Date: Sun, 03 Aug 97 19:18:14 CST There are two important newsgroups for learning about how Usenet and newsreader software works: - News.announce.newusers contains periodic postings that everybody is asked to read before posting anything to Usenet. (In theory, all new users are subscribed to news.announce.newusers automatically. But in practice not all newsreader software does that, so that many people violate the guidelines given there simply because they don't know about them.) - News.newusers.questions is described as "Q & A for users new to the Usenet". But new and long-time users can ask or answer questions about Usenet and newsreader software there. There's an important article, "Welcome to news.newusers.questions! (Weekly posting)", that everyone is asked to read before posting to news.newusers.questions. (See below for ways to get a copy of that article.) The following postings in news.announce.newusers might be considered the "mandatory course" for new users: Introduction to news.announce.newusers What is Usenet? Answers to Frequently Asked Questions Rules for posting to Usenet A Primer on How to Work with the Usenet Community Hints on writing style for Usenet Emily Postnews Answers Your Questions on Netiquette The articles mentioned above are downloadable via ftp from rtfm.mit.edu in the following files: - Welcome to news.newusers.questions! (Weekly posting) - Introduction to news.announce.newusers - What is Usenet? - Answers to Frequently Asked Questions - Rules for posting to Usenet - A Primer on How to Work with the Usenet Community - Hints on writing style for Usenet - Emily Postnews Answers Your Questions on Netiquette For rtfm.mit.edu instructions, see "Where are FAQ lists archived?" ------------------------------ Subject: - What other technical newsgroups should I know about? Date: Wed, 02 Oct 94 15:34:00 CDT Caution: Some of these newsgroups have specialized charters; you'll probably get flamed (and deserve it) if you post to an inappropriate group. Most groups have FAQ lists that will tell you what's appropriate. Don't post a request for the FAQ list; instead, retrieve it yourself: see - "Where are FAQ lists archived?" - Misc.forsale.computers.d and misc.forsale.computers.pc-clone are where you post notices of equipment, software, or computer books that you want to sell. Please don't post or crosspost those notices to comp.os.msdos.programmer. - comp.os.ms-windows.programmer.* groups (formerly part of comp.windows.ms.programmer): Similar to comp.os.msdos.programmer, but focus on programming for the MS-Windows platform. - Comp.sys.ibm.pc.hardware is for more hardware-oriented discussions of the machines that run DOS. - The various comp.lang.* groups for articles and questions on the programming languages. Caution: some groups welcome discussions that are operating-system dependent or vendor specific; others do not. For example, comp.lang.c is definitely _not_ for questions about programming DOS or PC system features, even if the programs are written in C. - Comp.binaries.ibm.pc.wanted: AFTER you have looked in the other groups, this is the place to post a request for a particular binary program. - Comp.archives.msdos.announce (moderated) explains how to use the archive sites, especially Garbo and SimTel, and lists files uploaded to them. Discussions belong in comp.archives.msdos.d, which replaced comp.binaries.ibm.pc.archives in December 1992. - Comp.binaries.ibm.pc.d is for discussions about programs posted in comp.binaries.ibm.pc, and only those programs. This is a good place to report bugs in the programs, but not to ask where to find them (see cbip.wanted, above). Comp.binaries.ibm.pc.d is NOT supposed to be a general PC discussion group. - Comp.sources.misc: a moderated group for source code for many computer systems. It tends to get lots of Unix stuff, but you may also pick up some DOS-compatible code here. - Alt.sources: an unmoderated group for source code. Guidelines are posted periodically. - Comp.os.msdos.djgpp is specifically for support of DJGPP. For more information on DJGPP see - What and where is DJGPP? - Comp.os.msdos.programmer.turbovision is specifically for programming in Turbo Vision. - Rec.games.programmer discusses many graphics programming topics. ------------------------------ Subject: - Where are FAQ lists archived? Date: Sun, 03 Aug 97 19:20:21 CST Very possibly the FAQ list you want is already at your site. Check the newsgroup news.answers; if your site doesn't carry news.answers, check comp.answers, rec.answers, etc., according to the top-level name in the FAQ list's "home" newsgroup. Articles are posted to the *.answers groups in a way that should make them last until the next versions are posted. If they expire sooner at your site, you might want to lobby your sysadmin to treat the moderated *.answers groups as a special case and grant them longer expiration times than other groups. To ftp most FAQ lists, connect to . The name of the file that you want is the Archive-name from the top of the article. For instance, if the Archive-name were software-eng/part1 you would retrieve . By email (only if you have no ftp access, please), the server is . It accepts "send" commands that omit the leading "/pub/" from file names; for example: send usenet-by-group/news.answers/software-eng/part1 For full instructions about the mail server, send it a message consisting of these two lines: help index Not just FAQ lists, but every article listed in the "List of Periodic Informational Postings" (LoPIP) can be obtained by ftp or email from rtfm.mit.edu. If you have an old copy of an informational article, look for an "Archive-name" at the beginning. The article is stored under that name at . If the article has no Archive-name, check the first name on the Newsgroups line and change to that directory under . ------------------------------ Subject: - Where can I get the latest copy of this FAQ list? Date: Sun, 03 Aug 97 00:08:35 CST The latest version of the FAQ is available at . Or it is available via FTP in the directory . If you have no ftp access, see "Where are FAQ lists archived?" for instructions on retrieving it by email. ------------------------------ Subject: Section 2. General Reference - Are there any good on-line references for PC hardware components? - Are there any good on-line references for PC interrupts? - What and where is "Ralf Brown's interrupt list"? - Where can I find lex, yacc, and language grammars? - What's the best book to learn programming? - Why won't my code work? - Are there any good sources of example code? - What and where is "SNIPPETS"? ------------------------------ Subject: - Are there any good on-line references for PC hardware components? Date: Sun, 03 Aug 97 19:28:22 CST Good reports of HELPPC21 have been posted. It is downloadable as: This hypertext system contains much information on ports and other hardware, as well as some overlap with Ralf Brown's interrupt list . It is shareware ($25). ------------------------------ Subject: - Are there any good on-line references for PC interrupts? The definitive work is Ralf Brown's interrupt list. For more information see . ------------------------------ Subject: - What and where is "Ralf Brown's interrupt list"? Date: Sun, 03 Aug 97 19:31:12 CST Ralf Brown's Interrupt List contains megabytes of information on documented and (officially) undocumented BIOS and DOS interrupts, DOS tables, and interrupts hooked by many software packages. The distribution files contain not only the actual list, but also a collection of utilities and conversion programs for the list. An HTML version of Ralf Brown's Interrupt List can be found at: Ralf Brown's Interrupt List can be downloaded from his page at: The list is made up of files titled inter*.zip downloadable from: Updates are announced every few months in comp.archives.msdos.announce. ------------------------------ Subject: - Where can I find lex, yacc, and language grammars? The FAQ list of the comp.compilers newsgroup answers this for BASIC, C, Pascal, and other languages. See "Where are FAQ lists archived?" ------------------------------ Subject: - What's the best book to learn programming? Sorry, this FAQ list cannot settle religious arguments. Much of the heat over this topic arises because each person believes that the book that he or she learned from is the best book, but different people have very different experiences of the same book. The only person who can tell you which is the best book for learning a given topic is you. Your best bet is to go to a fairly well stocked bookstore when you have a couple of hours to spare. Start at one end of the shelf and work your way methodically through every book that looks like it might cover what you want to learn. Look at the tables of contents; read a page or two from each book. Then make your decision. If money is a problem or if you're not sure of your choice, check out your top two or three from your library. ------------------------------ Subject: - Why won't my code work? First you need to try to determine whether the problem is in your use of the programming language or in your use of MS-DOS and your PC hardware. (Your manual should tell you which features are standard and which are vendor- or MS DOS- or PC-specific. You have read your manual carefully, haven't you?) If the feature that seems to be working wrong is something related to your PC hardware or to the internals of MS-DOS, this group is the right place to ask. (Please check this FAQ list first, to make sure your question isn't already answered here.) On the other hand, if your problem is with the programming language, the comp.lang hierarchy (including comp.lang.pascal and comp.lang.c) is probably a better resource. Please read the other group's FAQ list thoroughly before posting. (These exist in comp.lang.c, comp.lang.c++, comp.lang.modula3, comp.lang.lisp, comp.lang.perl; they may exist in other groups as well.) It's almost never a good idea to crosspost between comp.os.msdos.programmer and a language group. Before posting in either place, try to make your program as small as possible while still exhibiting the bad behavior. Sometimes this alone is enough to show you where the trouble is. Also edit your description of the problem to be as short as possible. This makes it look more like you tried to solve the problem on your own, and makes people more inclined to try to help you. See also "What's this 'netiquette'?" ------------------------------ Subject: - Are there any good sources of example code? Bob Stout maintains a very large archive called SNIPPETS. For more information see . ------------------------------ Subject: - What and where is "SNIPPETS?" Date: Sun, 03 Aug 97 19:39:08 CST Excerpt from the SNIPPETS FAQ follows: The SNIPPETS archive, maintained by Bob Stout, contains public domain/freeware portable C/C++ source code & instructional text. There are more than 500 files, including: Approx. 56,000 lines of code + approx. 10,000 lines of tutorials. Approx. 30% PC-specific, 70% portable Approx. 6% C++-specific, 94% C/C++ The PC-specific functions are system-level utility code - no multimedia or GUI code. Tested on all popular PC compilers plus Unix compilers where possible. An eclectic collection with everything from macros to complete cut-and-paste C/C++ code solutions & utilities, along with FAQ and instructional files. The SNIPPETS distribution file is created in the form of SNIPdddd.xxx, where "dddd" is the release date and "xxx" is the archive utility extension. SNIPDIFF.xxx updates a previous version of SNIPPETS to a new release. Internet locations to get SNIPPETS and SNIPDIFF via anonymous ftp: (The Official SNIPPETS distribution site.) World-Wide-Web sites: ------------------------------ Subject: End (FAQ updates can be found at .) (End of comp.os.msdos.programmer FAQ Version 1997.08 Part 1/5) (This text is copyright 1997 by Jeffrey Carlyle. All rights reserved.) // Jeffrey Carlyle, Bowling Green, Kentucy USA // // comp.os.msdos.programmer FAQ maintainer //