From: brown@NCoast.ORG (Stan Brown)
Subject: comp.os.msdos.programmer FAQ part 1 of 4 (REPOST)
Expires: Tue, 22 Sep 1992 23:18:49 GMT
Organization: Oak Road Systems, Cleveland Ohio USA
Date: Mon, 7 Sep 1992 23:18:49 GMT
Followup-To: poster
Keywords: read-before-posting-questions

Last-modified: 22 August 1992

To celebrate the new school term I'm posting the FAQ an extra time.
Normal posting schedule is between about the 20th and 25th of every
month.  (Opinions as to whether the FAQ should be posted twice every
month are hereby solicited--by email, please.)


Welcome!

This is the monthly FAQ list (Frequently Asked Questions list) for the
newsgroup comp.os.msdos.programmer.  It's intended to reduce the noise
level in comp.os.msdos.programmer that results from the repetition of
FAQs, correct answers, wrong answers, corrections to the wrong answers,
corrections to the corrections, debate, etc.

Because it's quite long, I've broken this list into four parts, of which
you're now reading part 1.  (If you have last month's version of this
FAQ list, you may want to look at the diffs rather than reread three
long articles.  Look for "comp.os.msdos.programmer FAQ diff" in the
Subject lines.)  I've posted the four parts of this article, and the
four parts of diffs, as single threads so that most newsreaders will
let you extract either of them in one operation.

This list should serve as a repository of the canonical "best" answers.
So if you know a better answer or even a slight change that improves an
answer, please tell me!  (Use email, please.  Traffic in this group is
high, and I may miss a relevant posted article.)  If the posting date is
more than six weeks in the past, see instructions in the last part of
this list for how to get an updated copy.

                      Stan Brown, Oak Road Systems, Cleveland, Ohio, USA
                                                        brown@ncoast.org

Search tips
===========
    To search for specific topics:  See the list of questions in the
Contents section (immediately below) to find which article (part 2, 3,
or 4) list you need.  In that part, then search for that question
number.  For example, while you're reading part 2 of this list in trn,
the command "gQ203" goes to Q203.
    To skip one topic and go to the next:  Search for "Q" starting in
column 1.  In trn and similar newsreaders, the command "g^Q" does that.
    If your newsreader doesn't support searches, you can extract these
articles to a file and use your favorite editor's search commands.


Contents--part 2 of 4
=====================
section 1. General questions
    101. Why won't my code work?
    102. What is this newsgroup about?
    103. What's the difference from comp.sys.ibm.pc.programmer?
    104. What other newsgroups should I know about?
section 2. Compile and link
    201. What the heck is "DGROUP > 64K"?
    202. How do I fix "automatic data segment exceeds 64K" or "stack
         plus data exceed 64K"?
    203. Will Borland C code and Microsoft C code link together?
    204. Why did my program bomb at run time with "floating point
         formats not linked"?
    205. Why did my program bomb with "floating point not loaded"?
    206. How can I change the stack size in Borland's C compilers?
    207. What's the difference between .COM and .EXE formats?
section 3. Keyboard
    301. How can I read a character without echoing it to the screen,
         and without waiting for the user to press the Enter key?
    302. How can I find out whether a character has been typed, without
         waiting for one?
    303. How can I disable Ctrl-C/Ctrl-Break and/or Ctrl-Alt-Del?
    304. How can I disable the print screen function?
    305. How can my program turn NumLock (CapsLock, ScrollLock) on/off?
    306. How can I speed up the keyboard's auto-repeat?
    307. What is the SysRq key for?
    308. How can my program tell what kind of keyboard is on the system?
    309. How can I tell if input or output has been redirected?


Contents--part 3 of 4
=====================
section 4. Disks and files
    401. What drive was the PC booted from?
    402. Which real and virtual disk drives are valid?
    403. How can I make my single floppy drive both a: and b:?
    404. Why won't my C program open a file with a path?
    405. How can I redirect printer output to a file?
    406. What's the format of an .EXE header?
    407. How can my program open more files than DOS's limit of 20?
section 5. Serial ports (COM ports)
    501. How do I set my machine up to use COM3 and COM4?
    502. How do I find the I/O address of a COM port?
    503. But aren't the COM ports always at I/O addresses 3F8, 2F8, 3E8,
         and 2E8?
    504. How do I configure a COM port and use it to transmit data?
section 6. Other hardware questions and problems
    601. Which 80x86 CPU is running my program?
    602. How can a C program send control codes to my printer?
    603. How can I redirect printer output to a file?
    604. Which video adapter is installed?
    605. How do I switch to 43- or 50-line mode?
    606. How can I find the Microsoft mouse position and button status?
    607. How can I access a specific address in the PC's memory?
    608. How can I read or write my PC's CMOS memory?
section 7. Other software questions and problems
    701. How can a program reboot my PC?
    702. How can I time events with finer resolution than the system
         clock's 55 ms (about 18 ticks a second)?
    703. How can I find the error level of the previous program?
    704. How can a program set DOS environment variables?
    705. How can I change the switch character to - from /?
    706. Why does my interrupt function behave strangely?
    707. How can I write a TSR (terminate-stay-resident) utility?
    708. How can I write a device driver?
    709. What can I use to manage versions of software?


Contents--part 4 of 4
=====================
section A. Downloading
    A01. What is garbo?  What is wustl?
    A02. What are Simtel and "mirror sites"?  What good are they?
    A03. Where do I find program <mumble>?
    A04. How can I check Simtel or garbo before I post a request for a
         program?
    A05. How do I download and decode a program I found?
    A06. Where is UUDECODE?
    A07. Why do I get errors when extracting from a ZIP file I
         downloaded?
section B. Vendors and products
    B01. How can I contact Borland?
    B02. How can I contact Microsoft?
    B03. What's the current version of PKZIP?
    B04. What's in Microsoft C/C++ 7.0?
section C. More information
    C01. Are there any good on-line references for PC hardware
         components?
    C02. Are there any good on-line references for PC interrupts?
    C03. What and where is "Ralf Brown's interrupt list"?
    C04. Where can I find lex, yacc, and language grammars?
    C05. What's the best book to learn programming?
    C06. Where are FAQ lists archived?
    C07. Where can I get the latest copy of this FAQ list?


Legalistic stuff
================
This article is not in the public domain, but it may be redistributed so
long as this notice, and the information on obtaining the latest copy of
this list, are retained.  The code fragments may be used freely; credit
would be appreciated but is not required.

            Copyright (C) 1992  Stan Brown, Oak Road Systems

THERE IS NO WARRANTY ON THE CODE.  I have tested all the code included
below, but your machine may not work the same as mine, and my testing
may not be perfect.

The mention of particular books or programs must not be construed to
reflect unfavorably on any that are not mentioned.


Acknowledgements
================
Many postings in comp.os.msdos.programmer sparked ideas or provided
information for the first version of this list.  Though I am responsible
for any errors, thanks are due to the following for posted articles or
private email that I used in subsequent editions:  Mark Aitchison,
Sanjay Aiyagari, George Almasi, Aaron Auseth, Preston Bannister, Denis
Beauregard, Mike Black, Glynn Brooks, Paul Brooks, Ralf Brown, Shaun
Burnett, Raymond Chen, Alan Drew, Roland Eriksson, Markus Fischer,
George Forsman, B.Haible, Klaus Hartnegg, Kris Heidenstrom, Joel
Hoffman, Michael Holin, Everett Kaser, Reinhard Kirchner, Dave Kirsch,
Sidney Markowitz, Jim Marks, Dimitri Matzarakis, Ken McKee, Tom Milner,
Steve Murphy, Mert Nickerson, David Nugent, Keith Petersen, Karl
Riedling, Arthur Rubin, Gerald Ruderman, Timo Salmi, Tapio Sand, Ajay
Shah, Tom Swingle, Ya-Gui Wei, Joe Wells, Gregory Youngblood,
jenk@microsoft.com, khill@vax1.umkc.edu


(continued in part 2)
-- 
Stan Brown, Oak Road Systems                      brown@Ncoast.ORG

"Never try to teach a pig to sing.  You'll only waste your time and
annoy the pig."  Heinlein wrote it; I'd like to know the original source.