
From jeffrey@carlyle.com Mon May  3 19:22:59 1999
Path: news.nic.utwente.nl!news.cs.utwente.nl!newshunter!cosy.sbg.ac.at!newsmaster-01.vbs.at!newsfeed01.univie.ac.at!newscore.univie.ac.at!news-ge.switch.ch!newsfeed.berkeley.edu!newsfeed.enteract.com!cde.net!sipb-server-1.mit.edu!sipb-server-2.mit.edu!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: <msdos-programmer-faq/part1_919862829@rtfm.mit.edu>
Followup-To: comp.os.msdos.programmer
Date: 23 Apr 1999 13:32:26 GMT
Organization: Jeffrey Carlyle World Domination
Lines: 905
Sender: jeffrey@carlyle.com (Jeffrey Carlyle)
Approved: news-answers-request@MIT.Edu
Expires: 4 Jul 1999 13:32:46 GMT
Message-ID: <msdos-programmer-faq/part1_924874366@rtfm.mit.edu>
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: 1999/01/05
Originator: faqserv@penguin-lust.MIT.EDU
Xref: news.nic.utwente.nl comp.os.msdos.programmer:80555 alt.msdos.programmer:38290 comp.answers:32017 alt.answers:37085 news.answers:72400

Archive-name: msdos-programmer-faq/part1
Comp-os-msdos-programmer-archive-name: dos-faq-pt1.txt
Posting-frequency: 56 days
Last-modified: 05 Jan 99


------------------------------

Subject: comp.os.msdos.programmer FAQ
Date: Sun, 03 Jan 99 17:46:33 CST
 
 comp.os.msdos.programmer FAQ Version 1999.01

 This is the Frequently Asked Questions list for the newsgroup
 comp.os.msdos.programmer. This message is part 1 of 5 parts.
 
 Copyright  1999  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.
 

------------------------------

Subject: Table of Contents
Date: Sun, 03 Jan 99 17:46:33 CST
 
=============================
TABLE OF CONTENTS
=============================
 
Part 1: <this file>
  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> - What and where is "Caldera DR-DOS"?
Part 2: <second file>
  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: <third file>
  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?
  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: <fourth file>
  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 to a file?
    <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?
  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?
Part 5: <fifth file>
  Section 9.  Downloading
    <Q:09.01> - What are SimTel, Garbo, and Wustl?
    <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's the current version of UNZIP?
    <Q:10.04> - What is the phone number for a vendor's BBS?
    <Q:10.05> - What is the current version of DJGPP?
    <Q:10.06> - What and where is DJGPP?
    <Q:10.07> - Are there any good shareware/freeware compilers?
    <Q:10.08> - Is the source code to MS-DOS available?
    <Q:10.09> - What is a vendor's web site address?


------------------------------

Subject: Section 1.  General FAQ and Newsgroup Information
Date: Sun, 03 Jan 99 19:17:02 CST

 The General FAQ and Newsgroup Information section contains information
 about how to use the FAQ and the newsgroup.
 

------------------------------

Subject: <Q:01.01> - 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 versions of Microsoft Windows will also run
 most MS-DOS programs; therefore, MS-DOS is not dead, and will most-
 likely never die just as Commodore-64s and Amigas have not died.
 
 In addition other parties continue to develop MS-DOS compatible
 operating systems for more information see <Q:02.10>.
 

------------------------------

Subject: <Q:01.02> - What is this article for?
Date: Sun, 03 Jan 99 18:01:21 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 56 days.  It
 would be posted more often; however, many news servers now  store
 articles for a long period of time therefore frequent postings
 would serve to clog the newsgroup.
 
 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 <Q:01.03>  -  "Who
 has contributed to this article?"
 

------------------------------

Subject: <Q:01.03> - Who has contributed to this article?
Date: Sun, 03 Jan 99 18:03:01 CST
 
 This list is maintained and edited by Jeffrey Carlyle. To contact
 him  send  email to <mailto:jeffrey@carlyle.com> or  via  surface
 mail to:
     Jeffrey Carlyle
     297 Meadowlark Trail
     Bowling Green, KY 42101-9427
 
 Stan   Brown   <mailto:brown@ncoast.org>  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,  Tim Kannel, 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, Kevin D.
 Quitt, 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, ceison@lis.net.au, khill@vax1.umkc.edu


------------------------------

Subject: <Q:01.04> - 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 function.
 

------------------------------

Subject: <Q:01.05> - Are the answers guaranteed to be correct and complete?
Date: Sun, 03 Jan 99 18:05:00 CST

 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 <mailto:jeffrey@carlyle.com>. 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, BC++ 4.x, MSVC 5, or
 MSVC 6.)
 
 The mention of particular books or programs must not be construed
 to reflect unfavorably on any that are not mentioned.
 
 If you encounter any errors in the FAQ please contact me via email.
 

------------------------------

Subject: <Q:01.06> - What is comp.os.msdos.programmer about?
Date: Sun, 03 Jan 99 18:07:01 CST
 
 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.
 
 More programming topics in the newsgroup focus on C than on any
 one other language,  but we are not just for C programmers (see
 <Q:01.07>).
 
 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: <Q:01.07> - 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: <Q:01.08> - What is comp.sys.ibm.pc.programmer?
Date: Sun, 03 Aug 97 19:18:26 CST

 
 The newsgroup comp.sys.ibm.pc.programmer is the old name of the modern
 newsgroup comp.os.msdos.programmer, and the old name has been obsolete
 since September 1990; however, some systems may not have removed the
 old group, or may 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:
 
 <ftp://rtfm.mit.edu/pub/usenet-by-group/news.answers/active-newsgroups>
 
 (For RTFM usage instructions see <Q:01.13> - "Where are FAQ lists archived?")
 

------------------------------

Subject: <Q:01.09> - Is comp.os.msdos.programmer available as a mailing list?

 Sorry, the newsgroup is not available as a mailing list.
 

------------------------------

Subject: <Q:01.10> - What's this "netiquette"?
 
 Netiquette  is  good Usenet etiquette.  It includes  basic  rules
 like the ones below.  (See also <Q:01.11> - "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 <Q:01.12> - "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
   <Q:01.13> - "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 <article>, 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: <Q:01.11> - How can I learn more about Usenet?
Date: Sun, 03 Jan 99 18:55:33 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):
   <ftp://rtfm.mit.edu/pub/usenet-by-group/news.answers/news-newusers-intro>
 
 Introduction to news.announce.newusers: (remove _ and combine lines)
   <ftp://rtfm.mit.edu/pub/usenet-by-group/news.answers/ _
    news-announce/introduction/part1>
   
 What is Usenet:
   <ftp://rtfm.mit.edu//pub/usenet-by-group/news.answers/usenet/what-is/part1>  
   <ftp://rtfm.mit.edu//pub/usenet-by-group/news.answers/usenet/what-is/part2>  
 
 Answers to Frequently Asked Questions:
  <ftp://rtfm.mit.edu/pub/usenet-by-group/news.answers/usenet/faq/part1>
   
 Rules for posting to Usenet: (remove _ and combine lines)
   <ftp://rtfm.mit.edu/pub/usenet-by-group/news.answers/ _ 
    usenet/posting-rules/part1>
   
 A Primer on How to Work with the Usenet Community:
   <ftp://rtfm.mit.edu/pub/usenet-by-group/news.answers/usenet/primer/part1>

 Hints on writing style for Usenet: (remove _ and combine lines)
   <ftp://rtfm.mit.edu/pub/usenet-by-group/news.answers/ _
    usenet/writing-style/part1>

 Emily Postnews Answers Your Questions on Netiquette:
 (remove _ and combine lines)
   <ftp://rtfm.mit.edu/pub/usenet-by-group/news.answers/ _
    usenet/emily-postnews/part1>
 
 For rtfm.mit.edu instructions, see <Q: 1.13> "Where are FAQ lists
 archived?"
 

------------------------------

Subject: <Q:01.12> - What other technical newsgroups should I know about?
Date: Sun, 03 Jan 99 19:10:38 CST

 In recent years the usenet has exploded. It is impractical to attempt
 to list all relevant newsgroups here. The few that are listed are some
 of the older newsgroups. To find additional groups use your newsreader's
 newsgroup search facility.

 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 <Q:01.13> -  "Where  are  FAQ
 lists archived?"
 
 - The various misc.forsale.computers.* 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.
 
 - The various comp.os.ms-windows.programmer.* groups  (formerly
   comp.windows.ms.programmer) are for articles specifict to the
   various Microsoft Windows platforms.
 
 - The various comp.sys.ibm.pc.hardware.* groups are 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 <Q:10.06> - 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: <Q:01.13> - 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 <ftp://rtfm.mit.edu/pub/usenet-
 by-group/news.answers>.  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
 <ftp://rtfm.mit.edu/pub/usenet-by-group/news.answers/software-
 eng/part1>.
 
 By  email (only if you have no ftp access, please), the server is
 <mailto:mail-server@rtfm.mit.edu>.  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
 <ftp://rtfm.mit.edu/pub/usenet-by-group/news.answers>.   If   the
 article  has  no  Archive-name,  check  the  first  name  on  the
 Newsgroups   line   and   change   to   that   directory    under
 <ftp://rtfm.mit.edu/pub/usenet-by-group>.
 

------------------------------

Subject: <Q:01.14> - 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 can always be found on the RTFM server:
 <ftp://rtfm.mit.edu/pub/usenet-by-group/news.answers/msdos-programmer-faq>
 
 If  you  have no ftp access, see <Q: 1.13> "Where are  FAQ  lists
 archived?" for instructions on retrieving it by email.
 
 Occasionally updates can be found on my home page at:
 <http://shareware.findhere.com>
 
 Various HTML versions can be found, but they are not guaranteed to be
 up-to-date. You can find these HTML versions by searching for
 "comp.os.msdos.programmer FAQ" at any popular search engine.


------------------------------

Subject: Section 2.  General Reference
Date: Sun, 03 Jan 99 19:17:02 CST

 The General Reference section contains information about finding popular
 online MS-DOS reference materials.


------------------------------

Subject: <Q:02.01> - Are there any good on-line references for PC hardware
      components?
Date: Sun, 03 Jan 99 19:28:30 CST

 Good reports of HELPPC21 have been posted. It is downloadable as:
   <ftp://ftp.simtel.net/pub/simtelnet/msdos/info/helppc21.zip>
   <ftp://garbo.uwasa.fi/pc/programming/helppc21.zip>
 
 This  hypertext system contains much information  on  ports  and
 other  hardware,  as  well  as some  overlap  with  Ralf  Brown's
 interrupt list <Q:02.03>.  It is shareware ($25).
 
 Additional information (and more recent) information can be found in
 Ralf Brown's interrupt list; see <Q:02.03> for information on locating
 the list.


------------------------------

Subject: <Q:02.02> - Are there any good on-line references for PC interrupts?

 The  definitive  work is Ralf Brown's interrupt  list.  For  more
 information see <Q: 2.03>.


------------------------------

Subject: <Q:02.03> - 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:
   <http://ctyme.com/rbrown.htm>
 
 Ralf Brown's Interrupt List can be downloaded from his page at:
   <http://www.cs.cmu.edu/afs/cs.cmu.edu/user/ralf/pub/WWW/files.html>
     
 The list is made up of files titled inter*.zip downloadable from:
   <ftp://ftp.simtel.net/pub/simtelnet/msdos/info>
   <ftp://garbo.uwasa.fi/pc/programming>
 
 Updates are announced every few months in comp.archives.msdos.announce
 and on Ralf Brown's web page at:
   <http://www.cs.cmu.edu/afs/cs.cmu.edu/user/ralf/pub/WWW/ralf-home.html>
   
 Ralf's web page contains the somewhat unassuming line: "[h]e is well-known
 in cyberspace for maintaining the Interrupt List..." Ralf has done astounding
 work as the maintainer of the list; his work has been greatly appreciated by
 thousands of programmers.

------------------------------

Subject: <Q:02.04> - 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 <Q:01.13> - "Where are
 FAQ lists archived?"
 

------------------------------

Subject: <Q:02.05> - 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: <Q:02.06> - 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
 <Q:01.10> - "What's this 'netiquette'?"
 

------------------------------

Subject: <Q:02.07> - Are there any good sources of example code?
 
 Bob  Stout  maintains a very large archive called  SNIPPETS.  For
 more information see <Q:02.08>.

------------------------------

Subject: <Q: 2.08> - What and where is "SNIPPETS?"
Date: Sun, 03 Aug 97 19:39:08 CST

 
 Excerpt from the SNIPPETS FAQ follows:
 [begin quotation]
     
     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.
 [end quotation]
 
 Official SNIPPETS sites:
   <ftp://ftp.brokersys.com/pub/snippets>
   <http://www.brokersys.com/snippets/>
   
 Mirros sites:
   <ftp://ftp.simtel.net/pub/simtelnet/msdos/c>
   <ftp://connectn.acs.niu.edu/bbc/rbbs-pc/ra/files/c>
   <ftp://juge.com/c/file/c>
   <ftp://ftp.funet.fi/pub/msdos/Simtel/c>
   <http://src.doc.ic.ac.uk/packages/simtel-msdos/c/>


------------------------------

Subject: <Q:02.09> - Is the source code MS-DOS available?
Date: Sun, 03 Jan 99 19:51:06 CST

 No, the source code to MS-DOS is not currently available; however, the 
 source code to an MS-DOS alternative known as FreeDOS is freely available;
 see <Q:02.11> for more information. Caldera offers the source code to their
 Caldera DR-DOS (formerly known as Caldera OpenDOS, formerly known as
 Novell DOS, formerly known as Digital Research DR-DOS) for a fee. See
 <Q:02.12> for more information about Caldera DR-DOS.


------------------------------

Subject: <Q:02.10> - What are my alternatives for MS-DOS compatible OSes?
Date: Sun, 03 Jan 99 19:51:11 CST

 The FreeDOS organization (see <Q:02.11>) has created a product known
 as FreeDOS, and Caldera (see <Q:02.12>) markets Caldera DR-DOS.


------------------------------

Subject: <Q:02.11> - What and where is "FreeDOS"?
Date: Sun, 03 Jan 99 19:51:11 CST

 FreeDOS is the product of the FreeDOS Project. The aim of the FreeDOS
 Project is to create an MS-DOS compatible operating system. The FreeDOS
 Project has not accessed any Microsoft source code and is creating
 FreeDOS from scratch.
 
 More information and the FreeDOS distribution itself can be found at:
   <http://www.freedos.org>


------------------------------

Subject: <Q:02.12> - What and where is "Caldera DR-DOS"?
Date: Sun, 03 Jan 99 19:51:11 CST

 Caldera purchased the rights to DR-DOS from Novell and is now offering
 an updated version of their DOS alternative. Caldera DR-DOS is being
 marketed as an embedded systems solution. DR-DOS is 100% compatible with
 MS-DOS and includes enhancements such as Y2K compliance and support for
 APM.
 
 This topic was originally considered because DR-DOS was available freely
 along with it's source code; however, now DR-DOS can be licensed for US$29,
 and the kernel source can be licensed for US$500.
 
 Information about Caldera and Caldera DR-DOS can be found at:
   <http://www.caldera.com>
 

------------------------------

Subject: End of Part 1

 This is the end of part 1 of The comp.os.msdos.programmer FAQ Version 1999.01.
 
 This text is copyright 1999 by Jeffrey Carlyle. All rights reserved. Please
 see the top of this article for additional copyright information.

// Jeffrey Coleman Carlyle <jeffrey@carlyle.com> <www.jeffrey.carlyle.com>
// Computer Engineering major at the University of Evansville in Indiana.
// Bowling Green, Kentucky, USA; Creator of Windows Restart 98 and
// StratoSetup; comp.os.msdos.programmer FAQ maintainer; Ruler or Earth!


