HDTenEightyP/NetNews huggingface dataset:
From: babcock@cfa.harvard.edu (Robert W. Babcock)
Newsgroups: alt.msdos.programmer
Subject: Re: Help Required with Dos variables
Date: 4 Jan 93 17:06:11 GMT
Organization: Smithsonian Astrophysical Observatory

In article <1993Jan4.160029.26833@newton.ccs.tuns.ca> macdonak@newton.ccs.tuns.ca (Kevin MacDonald) writes:

>Is there any way to display the contents of a single DOS variable?
>I know you can display all current variables by typing SET, but there
>doesn't appear to be any way to display variables individually.

In a batch file you could do something like
  echo COMSPEC is %COMSPEC%
This can be redirected.
From: holland@matt.ksu.ksu.edu (Rich Holland)
Newsgroups: alt.msdos.programmer
Subject: Re: Help Required with Dos variables
Date: 7 Jan 1993 13:35:52 -0600
Organization: Kansas State University
NNTP-Posting-Host: matt.ksu.ksu.edu

Jon Freivald <jaf@jaflrn.UUCP> writes:

>macdonak@newton.ccs.tuns.ca (Kevin MacDonald) writes:

>> Is there any way to display the contents of a single DOS variable?
>> I know you can display all current variables by typing SET, but there
>> doesn't appear to be any way to display variables individually.

Sure it does!

>DOS batch file:
>    echo %USER% > logfile

Yeah, those work, but then you have 'logfile' to deal with.  What's wrong
with this:  'SET | FIND USER'

He's not trying to copy USER to NEWUSER, or he could use:
SET NEWUSER=%USER%


-- 
Rich Holland              | INTERNET: holland@matt.ksu.ksu.edu
100 Jardine Terr., Apt A7 | BITNET  : holland@ksuvm
Manhattan, KS  66502-3357 | UUCP    : ...!rutgers!matt.ksu.ksu.edu!holland
char*p="char*p=%c%s%c;main(){printf(p,34,p,34);}";main(){printf(p,34,p,34);}
From: @arrakis.denver.co.us (Bob Hood)
Newsgroups: alt.msdos.programmer
Subject: Specs on Mystery Hard Drive
Distribution: world
Date: Thu, 07 Jan 93 03:57:31 GMT
Organization: Bob's Programming Paradise
Reply-To: thor@arrakis.denver.co.us

Hi, y'all.

I have a question that somebody out there should be able to answer.  I just 
came across a 3.5" Half Height Toshiba hard drive in a box of parts.

It is model MK234FB-I, and looks like, from the 50-pin connector on the back,
a SCSI drive.

Does anybody out their on the planet have one of these puppies?  Can you tell
me what its capacity is, and what type of controller I need to access it (I
don't even know if it works)?

I have no cables or controller for it (just the attached side rails).  I did
check Disk Manager, and although it has an impressive list of Toshiba drive
specs, the MK234FB-I is not listed.  Disk Manager says it can handle SCSI
drives as well, but I guess it doesn't know about this one.

If you have facts, figures, guesses, or telephone numbers for Toshiba, please
email your responses.  I'm sure that there probably isn't anybody else out
there who is interested (if you are, ask me for replies).

Thanks in advance!

Bob
--
Bob Hood   thor@arrakis.denver.co.us      H: 303-986-7127   W: 303-623-2180
-----------------------------------------------------------------------------
                  I'm not an expert, but I play one at work....
From: Jon Freivald <jaf@jaflrn.UUCP>
Newsgroups: alt.msdos.programmer
Subject: Re: Help Required with Dos variables
Date: Mon, 11 Jan 93 11:58:58 EST
Organization: The Wizzard's Cave, East Meadow, NY

holland@matt.ksu.ksu.edu (Rich Holland) writes:

> Jon Freivald <jaf@jaflrn.UUCP> writes:
> 
> >macdonak@newton.ccs.tuns.ca (Kevin MacDonald) writes:
> 
> >> Is there any way to display the contents of a single DOS variable?
> >> I know you can display all current variables by typing SET, but there
> >> doesn't appear to be any way to display variables individually.
> 
> Sure it does!
> 
> >DOS batch file:
> >    echo %USER% > logfile
> 
> Yeah, those work, but then you have 'logfile' to deal with.  What's wrong
> with this:  'SET | FIND USER'
> 
> He's not trying to copy USER to NEWUSER, or he could use:
> SET NEWUSER=%USER%

If memory serves me correctly, the original message wanted to catch the 
value of variable USER to a logfile so he could track user login's on his 
network...

Jon

=============================================================================
                   Jon Freivald ( jaf%jaflrn@uunet.UU.NET )
	 Nothing is impossible for the man who doesn't have to do it.
		    PGP V2 public key available on request
=============================================================================
Xref: sparky alt.msdos.programmer:3130 comp.os.msdos.programmer:11980 comp.sys.ibm.pc.programmer:767 comp.lang.c++:18934 comp.lang.c:19531
From: davet@cbnewsj.cb.att.com (Dave Tutelman)
Newsgroups: alt.msdos.programmer,comp.os.msdos.programmer,comp.sys.ibm.pc.programmer,comp.lang.c++,comp.lang.c
Subject: Re: Newbie Wants Advice on C-Programming
Date: 11 Jan 93 13:18:38 GMT
Organization: AT&T Bell Labs - Lincroft, NJ

In article <FISCHER.93Jan9030817@orange.iesd.auc.dk> fischer@iesd.auc.dk (Lars Peter Fischer) writes:
>
>>>>>> "Michael" == Michael Malak (malak@grebyn.com)
>>>>>> "Lars" == fischer@iesd.auc.dk (Lars Peter Fischer)
>>>>>> "John" == John MAX Skaller (maxtal@extro.ucc.su.OZ.AU)
>
>Michael>    1) It has structured syntactic blocks for constants, types and
>Michael>       variables.
>...
>John> 	Seems to me that the simple concept of
>John> nesting the symbol table so that symbols go out of scope at the
>John> end of the block is very nice.

C and C++ have this, too.

>Lars>Ah, yes, but Pascal goes further. I says First we define all the
>Lars>Types, then all the Variables, then all the Functions, and so on....
>Lars>This is a real pain and
>Lars>makes code for anything but toy programs very hard to read.

My organization's coding standard (adopted explicitly to make our software
easier to read and maintain) calls for declaring and initializing
variables as close as possible to their point of first use.  In the ability
to meet this goal:
	C++ good.
	Pascal bad.

>John> 	Dont quite agree. Many 'mess-arounds' in C could be avoided
>John> if nested proceedures were supported. C's failure to provide them
>John> possibly results from being designed with archaic architectures
>John> in mind.

Don't see what this has to do with hardware architectures, if that's
what you meant.  If "software architectures", I don't see any that
Pascal supports and C++ doesn't; quite the contrary, actually.
Perhaps you could elaborate.

As someone who has a few years real-world programming experience with
each of C and Pascal, the ONLY times I've ever wished for nested
procedures in C involved a combination of:
 - Repetitive operations of the same pattern within a single function,
   that weren't repeated in any other function.
 - A lot of function-specific state information (i.e.- local variables)
   required for this operation... too many to make each one an argument
   of a procedure.

In such cases, I use macros in C; not as elegant as nested procedures,
but they do the job.

I tend to trip over this about once every couple of dozen source files.
The operation is never something significant to the functional decomposition
of my design, just a convenience for a few pages of code.  I've never
encountered a difficulty in either functional or data decomposition that
really mattered to my design, where C didn't solve it at least as well
as Pascal.  And I find that C++ provides the best safety features of Pascal
(tight type checking) without the unnecessary and ugly restrictions that
have led me to drop Pascal in those applications where I have a choice.

Dave
Newsgroups: alt.msdos.programmer,comp.msdos.programmer,comp.os.msdos.programmer,comp.sys.ibm.pc.programmer
From: fox@rei.com (Fuzzy Fox)
Subject: Re: IRQ2 or IRQ5
Date: Mon, 11 Jan 1993 16:58:37 GMT
Organization: Recognition Equipment, Inc.

>>Now I have a 386-SX system.  IRQ 2 doesn't work anymore.  All docu-
>>mentation I have read has said that IRQ2 is a "cascade" interrupt.
>>WHAT DOES THIS MEAN, AND HOW DO I MAKE IT WORK????

The IRQ2 is used by the second interrupt controller.  Interrupts coming
in on IRQ2 are vectored to IRQ9 instead on a PC-AT.  You can leave your
hardware interrupt on IRQ2, but expect the interrupt vector to be IRQ9
on the software side.

-- 
#ifdef TRUE        | Fuzzy Fox (a.k.a. David DeSimone)       fuzzy@netcom.com
#define  TRUE   0  |
#define  FALSE  1  |  "911 Emergency Rescue Service - Can you hold, please?"
#endif             |
Newsgroups: alt.msdos.programmer,comp.msdos.programmer,comp.os.msdos.programmer,comp.sys.ibm.pc.programmer
From: kelly@spyro.cray.com (Matt Kelly)
Subject: Re: IRQ2 or IRQ5
Date: 11 Jan 93 13:02:04 CST


Fellow bit-twiddlers,

I'd like to thank everyone who replied to my post, both on the net
and via e-mail.  The information was most helpful.

I solved my problem.  I am using IRQ5.  The reason it didn't work 
when I tried it before is that the interface I built is now connected
to a new synthesizer which sends periodic "active sensing" bytes.
My interface received these and set the INT bit.  By ignoring these
sense bytes in my interface code, I was never clearing the INT bit,
which caused subsequent bytes to generate overrun errors, etc.  

I inserted code to read these sense bytes, acknowledge them, and keep
the input channel clear.  This fixed it!!!!

FYI, I have discovered AT-class machines pretty much use IRQ interrupts
for whatever reason they want -- there is no real "standard".  Some use
IRQ5 for the floppy drive, some for LPT2, some for LPT1, some for VGA,
etc.  This is unfortunate, but a fact of life.


May your bit buckets always be empty!!!

Matt
Xref: sparky alt.msdos.programmer:3122 comp.os.msdos.programmer:11935 comp.sys.ibm.pc.programmer:757 comp.lang.c++:18866 comp.lang.c:19460
From: wright@staff.tc.umn.edu (Mark Wright)
Subject: Phar Lap 286-Lite problem
Organization: University of Minnesota
Date: Wed, 6 Jan 1993 22:51:14 GMT

Because of some serious memory problems, I've been fourced to try out that
stupid LITE286 thing that came with Borland 3.1, and I've been having the
following problem.

I have 3 files and a library I need to link together.  The files are
1533	LSTSQRS\LSQ.C
554	LSTSQRS\LSQIO.C
572	LSTSQRS\MATRIX.C
2659	total
where the number is the number of lines in each.  The library is one I've
built using bcc286 and tlib.  When I do a plain old real mode
"bcc -ml lsq.c lsqio.c matrix.c mwl.lib", everything is just hunky-dory.
However, when I try to "bcc286 lsq.c lsqio.c matrix.c mwe.lib", I get a
DGROUP >64K error.  The lite286 docs say that I should adjust the stack size,
but that doesn't help, no matter how small I make the stack.

So what's the problem?  Can I use tlib with protected mode .obj's?  Do I have
to spend $500 to get the real Phar Lap extender, or will I have the same
problem with that?  If I have to buy the sdk, should I go with Phar-Lap?
All I want is to be able to malloc() > 640k worth of long doubles (total, not
necessarily in one block), and not have to make any changes in my existing code,
if possible.  Oh, and it's gotta run under windows (so no DJGPP, sigh...  of
course, I'd have to re-write all the dos/borland specific stuff if I could use
djgpp).


-- 
Mark Wright
wright@epx.cis.umn.edu
Newsgroups: alt.msdos.programmer
From: bcantric@nyx.cs.du.edu (Ben Cantrick)
Subject: MCGA .bgi files, and where to find them!
Summary: hardcoding my MCGA routines is a pain! Where are 256 color .bgi's?
X-Disclaimer: Nyx is a public access Unix system run by the University
	of Denver for the Denver community.  The University has neither
	control over nor responsibility for the opinions of users.
Keywords: Turbo C, BGI, MCGA, 256 Color
Organization: Nyx, Public Access Unix at U. of Denver Math/CS dept.
Distribution: usa
Date: Sat, 9 Jan 93 02:47:00 GMT

I have been in quite a crunch lately. 

I normally program in 640x480x16 screen modes, because I love the resolution,
but for a screensaver I'm making, 256 colors become a necesity.

My TC++ v 1.00 (Old, I know, but it works for an amatur like me) didn't come
with a MCGA 256 color driver.

It DID come with CGA.BGI, which is a 4 color driver. NOT and I repeat NOT acceptable.

Is there a MCGA.BGI file out there in the ether? Please tell me so, because 
these psuedoasm routines I wrote to init the graphics and putpixels are not
only slow, but buggy.

          -Ben

--
Remember: Don't drink, drive and do long division at the same time! * For a good
time, telnet nyx.cs.du.edu * "Konya wa Harikain" * I haven't lost my mind! It's
backed up on tape somewhere!! -Yours Truly * alt.miyu.himiko.bite.bite.bit 
* Everybody knows that Hikaru-chan is actually C-ko! * Coito ergo sum *
From: kbw@po.CWRU.Edu (Kevin B. Williams)
Newsgroups: alt.msdos.programmer
Subject: Re: Scrolling Graphics
Date: 9 Jan 1993 01:53:49 GMT
Organization: Case Western Reserve University, Cleveland, OH (USA)
Reply-To: kbw@po.CWRU.Edu (Kevin B. Williams)
NNTP-Posting-Host: slc5.ins.cwru.edu


In a previous article, kbw@po.CWRU.Edu (Kevin B. Williams) says:

>
>How do I get a map to scroll across the screen?
>I've thought of setting up an array to hold the data in 40 pixel blocks, but
>then how do I get that information to the screen?  Can I map the memory to the
>screen like I do for the text screen?  If so how?
>
>I have a 486-33 and a Trident 8900 VGA card.
>
>Kevdog
P.S. I'm using Turbo C++ 3.0
-- 
Name that quote!
"You shall have camels, desert vehicles, an armed escort, and tanks."
"You're welcome."
From: nitewind@repoman.dayton.saic.com (SAIC - Research Park)
Newsgroups: alt.msdos.programmer
Subject: Help: Addressing Extended Memory
Date: 12 Jan 1993 21:07:17 GMT
Organization: Science Applications Intl Corp - Dayton, OH
Distribution: world
NNTP-Posting-Host: repoman.dayton.saic.com


I have a 386SX running MS-DOS 5.0, 4 megs of RAM, and a Microsoft 
C 6.0 compiler. I have an application where I have to allocate a large
number of data structs, and seem to be stopped by the 640K limit.  

Is there any method for extending the program addressing space beyond 
640K?

I've been messing with malloc, halloc and _falloc, all to no avail.  
Any suggestions?
Newsgroups: alt.msdos.programmer,comp.os.msdos.programmer
From: chuck@eng.umd.edu (Chuck Harris - WA3UQV)
Subject: Re: "GP" Errors with BC 3.1
Date: Thu, 07 Jan 93 20:11:20 GMT
Organization: University of Maryland, Department of Electrical Engineering
Distribution: usa

In article <1993Jan6.214710.26976@schunix.uucp> sonix@schunix.uucp (Duane Morin) writes:
... Stuff about GP errors deleted ...
>2) Got 3.1.  Can't even install the damn thing.  ZIPs are intermittently 
>	corrupted.  Little examination shows that, with cache memory off,
>	I have no problem unzipping, with it on, sometimes they get CRC

This is fair proof that your motherboard is not functioning in a happy way.
486 motherboards are often very sensitive to the 5volt power supply voltage.
If the 5volt supply is running at the low end of tolerance, the cache
controller chips might not be able to function quickly enough.

Check to see that you have 5.00volts -0%, +5% on the motherboard's power
connector (red and black leads), when you have all of your system's
cards/disks installed.  If you aren't getting 5.00volts you should either
adjust your supply (HA HA HA, good luck!)  or get a new supply that does
give you 5.00volts.

You wouldn't have this problem if the motherboard suppliers wouldn't cheat.
What they do is buy all 25MHz 486 motherboards, without CPU or RAM.  They then
plug in the proper speed parts to get either 33MHz or 50MHz.  Well, this would
work, except that the motherboard manufacturer's grade the motherboards for
speed.  The ones that fail 50MHz become 33MHz boards, the ones that fail
33MHz become 25MHz...

Now, you ask, "Why does the board work sometimes on my system?"

Well, It's like this, the boards are designed to run at 5v +/- 5%, and from
0-70degrees C.  Logic chips such as the cache controller run their fastest
when they are cold and at the high voltage margin, and at their slowest when
they are hot, and at their low voltage margin.  Most of the time, the power
supplies will provide 5.0v on the nose, and you all will run your machines
in comfortable rooms, so you can get away with using parts that failed to
run full speed at 4.75v and 70C.  The clone builders are banking on this
happy coincedence.

Chuck Harris - WA3UQV
chuck@eng.umd.edu

Newsgroups: alt.msdos.programmer,comp.os.msdos.programmer,comp.sys.ibm.pc.programmer,comp.lang.c++,comp.lang.c
From: poffen@sj.ate.slb.com (Russ Poffenberger)
Subject: Re: Newbie Wants Advice on C-Programming
Followup-To: alt.msdos.programmer,comp.os.msdos.programmer,comp.sys.ibm.pc.programmer,comp.lang.c++,comp.lang.c
Organization: Schlumberger Technologies, ATE division, San Jose, Ca.
X-Newsreader: TIN [version 1.1 PL7]
Date: Wed, 6 Jan 93 21:02:56 GMT

Dale DePriest (daled@cadence.com) wrote:
: From what I have been following in this thread you have been given
: good advice for the most part.  I would like to add a few comments
: that may help you get on your way.
: 
: The discussion mentions Borland C++.  You may not know that this is
: also known as Turbo C/C++.  The Turbo version is adequate to learn on
: and is quite a bit cheaper.  The full Borland version provides a full
: environment for professional programmers.  The Turbo C can often be
: had inexpensively in the used market, going rate about $25, by people
: that are moving to C++.  Version 2 is excellent and supports all that
: you need to get going.
: 
: Of course if you want to think about things as objects you'll need to 
: grab Turbo C++.  In this case buy a new one.  You probably don't want
: the down level versions.  The Borland/Turbo products have an integrated
: programming environment that is excellent for beginners.
: 
: With regard to Fortran.  When you code in C you will find that some
: math expressions are not deterministic since the optimizer may rearrange
: things.  You may have to break the statement into pieces to get the 
: answer you want.  Other than that they should both be equally accurate.
: Fortran is probably easier to learn since you don't have to deal with
: pointers and scoping problems which are the most difficult C issues.
: 
: To speed up your learning buy a book that has an available disk of the
: programs in the book and then buy the disk.  It will save you lots of
: time.  Also read the manuals that come with the software that you buy.
: Don't buy used software without full manuals.
: 

BC++ and TC++ are not the same product at all. BC++ includes a better compiler
that has better optimization, and can also produce both DOS and Windows
programs. It also includes profiler and other tools not found in the TC++
products.

TC++ comes in 2 varieties. TC++ for DOS, and TC++ for Windows. Neither
product can generate programs for the other environment (ie, TC++ for DOS
cannot make Windows programs, and vice-versa). Ther compiler also does not
have the same optimization options as BC++, and does not include the other
tools like the profiler and such.

Russ Poffenberger               DOMAIN: poffen@sj.ate.slb.com
Schlumberger Technologies ATE   UUCP:   {uunet,decwrl,amdahl}!sjsca4!poffen
1601 Technology Drive		CIS:	72401,276
San Jose, Ca. 95110             Voice: (408)437-5254  FAX: (408)437-5246
Xref: sparky alt.msdos.programmer:3104 comp.os.msdos.programmer:11845
From: sonix@schunix.uucp (Duane Morin)
Newsgroups: alt.msdos.programmer,comp.os.msdos.programmer
Subject: "GP" Errors with BC 3.1
Date: 6 Jan 93 21:47:10 GMT
Distribution: usa
Organization: SCHUNIX Public Access Unix for Worcester County, MA, USA

Perhaps someone recognizes this problem.  My BC compile, which used to work
just dandy, now randomly crashes with "FATAL ERROR:  GP fault" or somesuch
similar message.  Not always on the same file, and not necessarily occurring
at all, although it pretty regularly comes up at least once every batch.  
Once it even went as far as dumping all my registers to the screen and 
telling me "Press [T] to terminate, but you should reboot as soon as possible
as the system has become unstable..."  I liked that one.  Not.

Here's a quick chronology of what's changed:

Original - 386/40, 8meg ram (100ns), BC 2.0   Works fine.

1)  Changed to a 486 (re: problem calculating logs, for those that remember
			THAT post).  Brought the SIMMs and hard drives over 
			from the 386.  Ok.
	Start to see lots of "GP errors".  These crash BC (note, 2.0) 
	completely, hanging most of my memory and requiring a reboot.
	ADVICE FROM BORLAND:  Oh, 2.0 is too old, get 3.1.

2) Got 3.1.  Can't even install the damn thing.  ZIPs are intermittently 
	corrupted.  Little examination shows that, with cache memory off,
	I have no problem unzipping, with it on, sometimes they get CRC
	errors.  Suggestion from my tech:  100ns memory is probably too 
	slow for the new machine.  Get some 70ns SIMMs and try it.
   Interim solution:  Running w/ cache turned off.  Problem not occurring.

3) Got 70ns SIMMs.  Same problem as before.  If anything, now more rampant
	than before.  

4) Changed motherboards.  Problem persists.

Now, I realize that I can't relay all important information about my system 
in this post.  I'm just hoping that maybe someone recognizes this problem and
can point me in the right direction.  Borland offers little help, even calling
their wonderful 900 number gets me a customer service robot who tells me 
(note, every time I call he tells me this):  Set up a virgin boot, kill your
config sys and your autoexec, go into borland directory slash bin, run 
dpmi inst, you'll get a message saying machine is in the database, it should
work, if not please send us the offending file.  I keep telling them that 
it's not necessarily the same file every time.  At least one of their guys
didn't even believe me when I said "Did that.  Still happens."

Can anybody help with this problem?  Please email responses, as my newsfeed
has been flakey lately and I'd like to get the information as quickly as 
possible.  Thank you.

Thanks in advance,
 Duane Morin
 Software Development Manager
 Walker Sonix, Inc
 Worcester, MA 01604
From: rol@grasp1.univ-lyon1.fr (Paul Rolland)
Newsgroups: alt.msdos.programmer
Subject: Re: list of DOS interrupts
Date: 12 Jan 93 10:50:10 GMT
Followup-To: alt.msdos.programmer
Organization: Apple Computer Europe

In article <93011.125511KSADEGH@auvm.american.edu>,
KSADEGH@auvm.american.edu wrote:
> 
> I know it is a FAQ, but could somebody tell me where I can find a complete
> list of the DOS interrupts?
> 

Try ftp on garbo.uwasa.fi, in the directory /pc/programming
You'll find inter33a.zip, inter33b.zip and inter33c.zip which are the
interrup list from Ralf Brown.

PS: This is a FAQ !

Paul Rolland

A bug can be changed to a feature by documenting it. Developpers know !
From: kbw@po.CWRU.Edu (Kevin B. Williams)
Newsgroups: alt.msdos.programmer
Subject: Scrolling Graphics
Date: 9 Jan 1993 01:52:56 GMT
Organization: Case Western Reserve University, Cleveland, OH (USA)
Reply-To: kbw@po.CWRU.Edu (Kevin B. Williams)
NNTP-Posting-Host: slc5.ins.cwru.edu


How do I get a map to scroll across the screen?
I've thought of setting up an array to hold the data in 40 pixel blocks, but
then how do I get that information to the screen?  Can I map the memory to the
screen like I do for the text screen?  If so how?

I have a 486-33 and a Trident 8900 VGA card.

Kevdog
-- 
Name that quote!
"You shall have camels, desert vehicles, an armed escort, and tanks."
"You're welcome."
Newsgroups: alt.msdos.programmer
From: yufan@cs.keele.ac.uk (Yufan Hu)
Newsgroups: alt.msdos.programmer
Subject: toolbook & gopher
Date: 4 Jan 93 12:21:51 GMT
Reply-To: yufan@cs.keele.ac.uk
Organization: Keele University

Hi,

Has anybody created a toolbook interface to gohper or wais or similar
world wide information systems? Any hint is appreciated.

Thanks.

-Yufan
==============================================================================
JANET : yufan@uk.ac.keele.cs     || Yufan Hu
BITNET: yufan%cs.kl.ac.uk@ukacrl || Dept. of Computer Science, Univ. of Keele,
other : yufan@cs.keele.ac.uk     || Keele, Staffordshire.  ST5 5BG.  U.K.
------------------------------------------------------------------------------
Telephone: +44-782-621111 x 7357    FAX:  +44-782-713082
==============================================================================
Newsgroups: alt.msdos.programmer,comp.os.msdos.programmer