HDTenEightyP/NetNews huggingface dataset:
From: messina@netcom.com (Tony Porczyk)
Newsgroups: comp.os.msdos.programmer
Subject: Re: advanced beginner needs book recomendations
Date: 22 Jul 92 15:09:29 GMT
Organization: Messina Software

falk@peregrine.Eng.Sun.COM (Ed Falk) writes:

>Basicly, I'm looking for a reference book, not a tutorial. 

Then do not get a book, get Ralph Brown's interrupt list.  Inside you will
also find a list of reference books you might want to add to your library
later on.

Availability (straight from readme in RB interrupt list):
"On the Internet, by standard anonymous FTP from CS.CMU.EDU
 [128.2.222.173].  Change directly to directory /afs/cs.cmu.edu/user/ralf/pub 
 with a single command (directories above this are not accessible via 
 anonymous FTP)."

It is 1.9 Mb of online goldmine.


t.
From: bobk@ESD.3Com.COM (Bob Konigsberg)
Newsgroups: comp.os.msdos.programmer
Subject: Re: Strange 80x86 OPCODE
Keywords: 80x86 Assembler Fun
Date: 28 Jul 92 21:39:25 GMT

aki@cruzio.santa-cruz.ca.us writes:

>It's 0F 3D,  i.e. 286+ 2-byte opcode that has 3D as the second
>byte.  Problem is,  that I can't find any reference to it anywhere.
>It looks like it's either something very new or undocumented.

According to the Intel 80286 Spec, there are several candidates, none of
which quite matches what you've got, but here's what I've found:

0f 06 CLTS - Clear Task Switched Flag (protected mode)

0f 02 LAR - Load Access Rights Byte (protected mode)

0f 01 LGDT/LIDT Load Global/Interrupt Descriptor Table Register
       Also used for Load Machine Status Word (Protected mode)
       Also used for SGDT/SIDT Store Global/Interrupt Descriptor etc.

0f 00 LLDT - Load Local Descriptor Table Register (protected mode)
             Also Load Task Register (protected mode)

0f 03 LSL - Load Segment Limit (protected mode)


So most likely what you've got is a 386 or 486 operand or an undocumented
feature.  My question is: does this actually execute or do you get a trap?

It's most likely that this is a direct microprocessor control code.  From
what application does it come?  386MAX? MS-Windows? QEMM? Desqview? or any
other app capable of manipulating the cpu directly?

Let me know,

BobK
From: yawei@bronze.ucs.indiana.edu (Ya-Gui Wei ~{QG9p~})
Newsgroups: comp.os.msdos.programmer
Subject: Re: Duplicate function names (in different .lib's)
Date: 24 Jul 92 00:30:09 GMT
Organization: Indiana University

In article <1992Jul17.063123.6492@grebyn.com> bittware@grebyn.com (Bittware) writes:
>I'm having a problem with duplicate function names between a commercial
>graphics library and the Borland graphics library (moveto).  

   I ran into a similar problem too. A third party utility library
I was linking contained a function with the same name as a function in
the library that came with the compiler. Worse yet, the two functions
use different pointer parameters!  The result being that when I intend
to use one and end up linking in the other, the system crashes. 

>Since I need both functions, I can't link either one first and resolve the
>conflict.

   One dirty solution would be to patch one of the libraries to change
one of the names.  I don't know of a cleaner solution.

  Ya-Gui Wei 
Newsgroups: comp.os.msdos.programmer,news.answers
From: brown@NCoast.ORG (Stan Brown)
Subject: comp.os.msdos.programmer FAQ diff 4 of 4
Expires: Wed, 19 Aug 1992 15:54:29 GMT
Organization: Oak Road Systems, Cleveland Ohio USA
Date: Sat, 25 Jul 1992 15:54:29 GMT
Followup-To: comp.os.msdos.programmer

Archive-name: msdos-programmer-faq/diff4
Last-modified: 25 June 1992


Please see part 1 for explanations.

- 12>Last-modified: 25 June 1992
+ 12>Last-modified: 19 July 1992

+ 20>            Copyright (C) 1992  Stan Brown, Oak Road Systems

-247>    The current version is 1.10 (PKZIP110.EXE).  If you've seen a
-248>    version 2.01, it's a hack (possibly from a beta-test version of
-249>    PKZIP 2.0) and is not authorized by PKWARE, Inc.  You can get the
-250>    authorized version from Simtel as PD1:<MSDOS.ZIP>ZIP110EU.EXE.  This
-251>    is the same as the standard version except it doesn't offer
-252>    authenticity verification (the -AV indicators) because of U.S. law.
+249>    The current version is 1.10 (PKZIP110.EXE), available from Simtel as
+250>    PD1:<MSDOS.ZIP>ZIP110EU.EXE.  This is the same as the standard
+251>    version except it doesn't offer authenticity verification (the -AV
+252>    indicators) because of U.S. law.  [...]

-258>    I saw PKWARE's ad in the 28 April {PC Magazine} announcing PKZIP
-259>    2.0, but as a registered user I've not yet received any information
-260>    that it's actually available.
+256>    Since early 1992, PKWARE has been running ads in computer magazines
+257>    announcing 2.0; but it seems to be vaporware.  The latest actual
+258>    version, 1.93, is a test version not in general release, and not
+259>    guaranteed compatible with the eventual official release.  Several
+260>    versions that have been called 2.0 are actually hacked versions of
+261>    that beta-test version and are completely unauthorized.

+330>    BC++ 3.1 is now the current version; this information on 3.0 will be
+331>    removed from the next FAQ list (replaced, I hope, with 3.1 info).

-- 
Stan Brown, Oak Road Systems                      brown@Ncoast.ORG
From: westes@netcom.com (Will Estes)
Newsgroups: comp.os.msdos.programmer
Subject: Easy Way To Determine STACK/HEAP Allocations In An .EXE?
Date: 29 Jul 92 02:54:54 GMT
Organization: Mail Group

Is there some easy way to determine the local stack and heap allocations
in an .EXE file?  To my surprise, the DOS EXEHDR utility seems to let
you change these parameters in an .EXE, but it doesn't seem to give a
way to determine what those values are.  Is there some utility that will
spit these values out, or do I just have to use debug to examine the
.EXE header?

Thanks,
Will Estes         Internet: westes@netcom.com
From: elan@tasha.cheme.cornell.edu (Elan Feingold)
Newsgroups: comp.os.msdos.programmer
Subject: C Language Indenting Editors
Date: 28 Jul 92 14:20:10 GMT
Reply-To: elan@tasha.cheme.cornell.edu (Elan Feingold)
Organization: Cornell University


Does anyone know of any PD editors out there besides DEMACS that perform the
nice automatic C language indenting?  Thanks, 

Elan

--
--------------------------------------------------------------------------|
|  Elan Feingold       |  Chevy Chase after being asked by a Howard Stern |
|  CS/EE Depts.        |  interviewer whether he still wore a toupee:     |
|  Cornell University  |  "Ask him [Stern] if he wants me to put his      |
|  Ithaca NY 14850     |   dentist in a higher tax bracket."              |
--------------------------------------------------------------------------
Newsgroups: comp.os.msdos.programmer,comp.os.ms-windows.programmer.misc
From: geirt@Lise.Unit.NO (Geir Torheim)
Subject: Drawing in a scrolled TWindow
Keywords: Windows, scrolling, drawing
Organization: Norwegian Institute of Technology
Date: Fri, 24 Jul 92 08:21:50 GMT

I'm using Windows 3.1 & BC++ 3.0 with application frameworks.

I have inherited from TWindow and made a window containing a TScroller, which
scrolls just fine. 

The problem occurs when I want to draw in the scrolled
window; The TScroller adjusts the origin of the viewport but
GetDC returns a HDC with the origin set to (0,0)!. 

According to the Windows doc I can create a private DC and then use this for all
drawing operations in this window. A private DC will (I think) contain the
correct origin, and I can use functions like DPtoLP() to do the job.

However, private DC's are 'expensive in terms of system resources.' 

Anybody who knows HOW expensive they are ??
Will the private DC also be drawn from this pool of 5 DCs ?
Is it a good idea to use a private DC for this, or should I save the
new origin 'manually'?. That's what I'm doing now. I do this in the
Paint() function of the window. Dirty perhaps, but it works...



Thanks for listening !

-geir

-- 
Geir Torheim                             email: geirt@lise.unit.no
Newsgroups: comp.os.msdos.programmer
From: ts@uwasa.fi (Timo Salmi)
Subject: Re: Problems with FAQ posting
Organization: University of Vaasa, Finland
Date: Mon, 27 Jul 1992 04:29:55 GMT

In article <920723140927.2d6139af@ASTRO.CS.HH.AB.COM> SBROWN@ASTRO.CS.HH.AB.COM (Stan Brown) writes:
>Apologies for problems in this month's FAQ posting.  It goes in eight
:
>The current FAQ list is available as faqp9207.zip at garbo; see the 
>announcement in comp.binaries.ibm.pc.archives.

Here is the reference because the posting may have expired at some
hasty sites
 36094 Jul 21 16:34 garbo.uwasa.fi:/pc/doc-net/faqp9207.zip

"If you do not know how to go about getting this material, users are
welcome to email me for the prerecorded garbo.uwasa.fi instructions
(long, circa 29Kb).  North American users are referred to the garbo
mirror on wuarchive.wustl.edu.  Australian users are referred to the
archie.au mirror.  The mirrors may lag occasionally, or might not
have all the files.  If you do not receive my reply within five
days, please ask your own site's system manager to construct a
returnable mail path for you". 

..................................................................
Prof. Timo Salmi
Moderating at garbo.uwasa.fi anonymous FTP archives 128.214.87.1
Faculty of Accounting & Industrial Management; University of Vaasa
Internet: ts@uwasa.fi Bitnet: salmi@finfun   ; SF-65101, Finland
From: hamish@cloud.pub.uu.oz.au (Hamish Moffatt)
Newsgroups: comp.os.msdos.programmer
Subject: Guide for Shareware authors (was re: Accept Credit Cards ...)
Date: 18 Jul 92 04:49:46 GMT

nupairoj@cps.msu.edu.cps.msu.edu (Natawut Nupairoj) writes:

> If someone interest, I will post it in this newsgroup or put it on some
> sites. It's about 32 pages long.

Yes, please!


Regards,
Hamish


=============================================================================
  Hamish Moffatt       | Cloud is a member of APANA    |    _--_|\   Cloud.
  Moffsoft Software    | The Australian Public Access  |   /      \  pub.uu
  Cloud Nine BBS       | Network Association.          |   \_.--._/  .oz.au
  Melbourne, Australia | Fidonet 3:635/552@fidonet     |         v
===================================== Standard Disclaimer Applies ===========
  NOTE! New path to cloud: ...!uunet!munnari!yarra!eyrie!cloud
Newsgroups: comp.os.msdos.programmer
From: hhanemaa@cs.ruu.nl (Harm Hanemaaijer)
Subject: Changing the CGA palette on EGA using BIOS calls
Date: Fri, 31 Jul 1992 13:27:47 GMT
Organization: Utrecht University, Dept. of Computer Science
Keywords: CGA, EGA, ancient technology

I am upgrading a program that uses CGA 320x200 4 color graphics mode. I do not
want to add true EGA or VGA graphics because of the dated and chaotic
programming environment :-). I just want to save users from the standard
CGA pink/cyan/white palette (the other standard CGA palette doesn't work on
many SVGA cards).
   
Is it legal to change the CGA 4-color graphics mode palette using the EGA 
setpalette BIOS function? That is, will it work with most VGA compatible
cards? I have already checked Trident 8900 and ET4000 based SVGA cards, and
they seem to work fine. The result is actually suprisingly good, using a
red monochrome palette of black, dark red, light red and white, and other
monochrome palettes.

If you post a reply, please send me a copy by email or I might miss it.

Harm Hanemaayer
hhanemaa@cs.ruu.nl
From: leonard@qiclab.scn.rain.com (Leonard Erickson)
Newsgroups: comp.os.msdos.programmer
Subject: Re: Routine to read a non-DOS diskette in a PC
Date: 21 Jul 92 13:54:13 GMT
Article-I.D.: qiclab.1992Jul21.135413.23341
Reply-To: 70465.203@compuserve.com
Organization: SCN Research/Qic Laboratories of Tigard, Oregon.

jpinaud@malloco.dcc.puc.cl (Jorge Pinaud W.) writes:

>This is my first post to this group, but I have
>a little problem with my 386.

>I need a routine (maybe assembler or C code) to read
>a non-DOS diskette in a PC disk-drive.
>I don't know if this is possible or not, but
>any suggestions can be usefull.
>Also, if this thing is possible, I would like
>to know if there is a software available to
>read, for exaqmple, a MAC diskette in a PC
>machine.

Whether or not it is possible depends on *what kind* of diskette
you are trying to read. The hardware in the PC can't read low-density
Mac disks, nor can it read Commodore 64 disks. Your disk controller
can't handle the formats. Most *other* formats can be handled via
software.

-- 
Leonard Erickson		      leonard@qiclab.scn.rain.com
CIS: [70465,203]			 70465.203@compuserve.com
FIDO:   1:105/56	 Leonard.Erickson@f56.n105.z1.fidonet.org
(The CIS address is checked daily. The others infrequently)
Newsgroups: comp.os.msdos.programmer
From: boris@msc.cornell.edu (Boris Yost)
Subject: BC++2.0 vs. National GPIB:  Who's on DS?!?
Organization: Cornell-Materials-Science-Center
Date: Fri, 24 Jul 1992 18:14:25 GMT

I'm writing a data acquisition/machine control application using BC and
National GPIB using National's software library, huge model.  Ran into a
most curious bug:  one of my constant strings came out with snot in the
middle of it.  Worked fine before--until I split the source file in two for
easier handling.  Reason:  TD reveals that one of my GPIB functions is
stomping on it, and the reason for that is that the data segment for the
GPIB functions is getting merged with the data segment for main(), but the
calls are from another module, and DS is set for the data segment for that
module.  I'm following directions (don't tell me to RTFM) that came with it,
which said the large library works with the huge model--or maybe Borland
changed how their huge model works.  Calls work fine if I change DS to
main's DS immediately before each 'call far _function' and then change back
on return, or if I cram all the source into one module (which is almost too
big a meal for the compiler).  

So, how do I either get the linker to merge the data segment with the one
that calls all the functions (there is only one), or fix it for real--so
that any module could call the GPIB.
Newsgroups: comp.os.msdos.programmer
From: wells@cdsmn.mn.org (Rich Wells)
Subject: Re: BC++ syntax highlighting????
Reply-To: wells@cdsmn.UUCP (Rich Wells)
Organization: Dicomed, Inc., Burnsville, MN
Date: Mon, 27 Jul 92 15:52:24 GMT

In article <1992Jul24.204651.447@athena.mit.edu> yev_g@athena.mit.edu (Yevgeny Gurevich) writes:
>In article <1992Jul24.170313.15643@ugle.unit.no> robert@solan.unit.no (Robert Schmidt) writes:
>>
>>Several people tell me that BC++ 3.0 highlights comments, reserved words
>>etc by using different colors.
>
>Only the Borland 3.1 products (Borland C++, Turbo C++, Turbo
>C++/Windows) support color syntax highlighting.

I have TC++ 3.0 and it performs color syntax highlighting.  I also have
TC++/Win 3.0, and I'm quite sure it doesn't (but I haven't used it for
awhile, so I could be wrong).

>>(I know some Microsoft articles sport such highlighting...)
>
>As far as I know, versions 6.0 and 7.0 of Microsoft C do NOT have this
>highlighting.

QC/Win does.  (I collect compilers (:-).)

Richard Wells  wells@cdsmn.mn.org  or  ...!tcnet!cdsmn!wells
Newsgroups: comp.os.msdos.programmer,connect.audit
From: morley@camins.camosun.bc.ca
Subject: Polygon Question...
Organization: Camosun College
Date: Tue, 21 Jul 1992 17:48:44 GMT

Hi!

Ok, this should be an easy one...  Given 3 X,Y points that form a triangle,
what is the simplest (fastest) way to determine if they are clock-wise or
counter-clock-wise?  I'm not interested in general polygons of N points,
just plain old triangles.  Yes, this is for use in a graphics app.

Thanks...

MARK
morley@camins.camosun.bc.ca
From: jyan@dciem.dciem.dnd.ca (Joseph Yan)
Newsgroups: comp.os.msdos.programmer
Subject: Timing Problem
Date: 23 Jul 92 13:33:24 GMT
Organization: Defence and Civil Institute of Environmental Medicine

Hi folks!  I'd like to solicit any help I can about this timing problem:

I'm working on some data acquisition from a "black box" that outputs
reports of a device's position and orientation.  Unfortunately, this
box will output a report at a frequency between 20 reports/sec to 50
reports/sec and the time interval between reports varies depending on
the time taken to process info within the "black box" and whether or not
there are any invalid reports in between.  My problem is that I want to
be able to analyze this data for velocities and accelerations so if the
time interval between reports varies, I'd like to store the time of the
report along with the report itself.  The time should be accurate to at
least 10 ms but the clock() function in C and the other time functions
I've looked at are only accurate to 55 ms (because it's updated 18.2
ticks/sec).  I tried some assembler code using function call 2Ch which
is supposed to report the time to hundredths of a second but I found
that it also was only updated at 18.2 ticks/sec.  In one technical
reference I flipped through, I read that the MC146818A Real Time Clock
generates a timer tick 1024 times/sec and this would be great but I
haven't figured out how to access it.

I'm using a 386 and accessing the "black box" through the RS-232 port
but that's probably not important.

Is there any kind soul out there, who can help this poor soul by telling
me how, or if it's even possible, to access a timer which is accurate to
10 ms?  Please reply directly to jyan@dretor.dciem.dnd.ca if you have
the answer.

Joe
Newsgroups: comp.os.msdos.programmer
From: dbushong@wang.com (Dave Bushong)
Subject: Re: Reboot in C?
Organization: Wang Labs, Lowell MA, USA
Date: Mon, 27 Jul 92 14:45:44 GMT

Ross Ridge <ross@zooid.guild.org> writes:

>evansj@crs.cl.msu.edu (Jeffrey Evans) writes:
>>I am attempting to reboot MS-DOS machines in MSC 5.1, but am having 
>>absolutely no luck with int 19.  Is there a better way to acomplish 
>>this?  All replies most welcome!

>void
>warm_reboot(void) {
	*(unsigned short far *)0x00400072L = 0x1234;	// add this line
>	((void (far *)(void))0xFFFF0000L)();
>}

>void
>cold_reboot(void) {
>	*(unsigned short far *)0x00400072L = 0;
>	((void (far *)(void))0xFFFF0000L)();
>}

>							Ross Ridge

Note the "1234" in order to assure a warm boot; otherwise you'll
probably get a cold one for either of the original methods.

Dave
-- 
==========================================================================
Dave Bushong, KZ1O@K1UGM.MA         +    No .sig, no tattoo, 
Wang Laboratories, Inc.             +        no bald spot, no nothin!!
Internet: dbushong@wang.com         +-------------------------------------
Project leader, OCR Products        + (reserved for future expansion)
Newsgroups: comp.os.msdos.programmer
From: dmurdoch@QueensU.CA (Duncan Murdoch)
Subject: Re: Easy Way To Determine STACK/HEAP Allocations In An .EXE?
Organization: Queen's University, Kingston, Canada
Date: Wed, 29 Jul 1992 12:35:19 GMT

In article <-=nm_r_.westes@netcom.com> westes@netcom.com (Will Estes) writes:
>Is there some easy way to determine the local stack and heap allocations
>in an .EXE file?  To my surprise, the DOS EXEHDR utility seems to let
>you change these parameters in an .EXE, but it doesn't seem to give a
>way to determine what those values are.  Is there some utility that will
>spit these values out, or do I just have to use debug to examine the
>.EXE header?

Borland languages come with a program called TDUMP that'll show you the
.EXE header.  However, you should be aware that most C compilers don't
use it:  they request 0 bytes, and do their own allocation of memory in the
startup code.  I doubt if it's practical to patch them to use different
sizes.

I'm not sure why they do it this way - perhaps it's for compatibility
with some ancient DOS version that didn't respect the header, or maybe
something else.   (One side effect:  the version of "spawn" which is
used to chain to another program is broken in some (all?) versions of
Borland and MS libraries.  It allocates all memory to the new program,
assuming that the new program will modify the allocation. Many don't.)

Duncan Murdoch
dmurdoch@mast.queensu.ca
From: yev_g@athena.mit.edu (Yevgeny Gurevich)
Newsgroups: comp.os.msdos.programmer
Subject: Re: MY problem? ...or Borland's? (also on comp.lang.c)
Date: 27 Jul 92 13:32:23 GMT
Organization: Massachusetts Institute of Technology

In article <1992Jul25.163852.19770@uwm.edu> rca@csd4.csd.uwm.edu (Robert C Allender) writes:
> . . .  values get corrupt and then dissappear.  What am I doing wrong?

In cases such as these, always check to make sure that you are allocating
memory for data storage, and that you are not inadvertantly freeing it.
In this case, you haven't yet done a  malloc, so c, the pointer to a char
points to some random location in memory which may or may not be in use.

>main() {
>  char drive, *c;
>  char dummy;
>
.
.
.
>
>  do {
>    do {
>      drive=get_drive();
>    } while (drive == NULL);
>    c = scrollbox(drive,61,10);  <---- This gets a directory, etc. 
     ^^^^^^^^^^^^^
Are you sure that scrollbox allocates string storage ?  Please post the
code for this procedure.
Otherwise, try allocating memory for c with malloc and see if that
is what the problem was.

[===============================================================]
[ Yevgeny Gurevich	   ___/~\____/~\_/~~~~\__/~\______/~\_  ]
[ 500 Memorial Drive	  |____/~\__/~\__/~\______/~\____/~\__| ]
[ Cambridge, Mass. 02139  |_____/~\/~\___/~~~\_____/~\__/~\___| ]
[ ________________________|______/~~\____/~\________/~\/~\____| ]
[ yev_g@athena.mit.edu    |______/~~\____/~~~~\______/~~\_____| ]
[===============================================================]
-- 
[ Yevgeny Gurevich ]
From: falk@peregrine.Eng.Sun.COM (Ed Falk)
Newsgroups: comp.os.msdos.programmer
Subject: advanced beginner needs book recomendations
Date: 21 Jul 92 20:17:34 GMT
Organization: Sun Microsystems Inc., Mountain View, CA
NNTP-Posting-Host: peregrine

What's an "advanced beginner" you ask?  Me.  I'm extremely fluent in
both CP/M and Unix but don't know squat about MS-Dos.  I'd like to get
a book that contains all the info I need to know about programming
MS-Dos.  I don't want to buy one of those $30, 5-pound books that hold
your hand step by step and by the time you've read all 800 pages you
finally know how to copy a file.  (I've already got a commands handbook.)

I'm looking for a book that concisely explains all the system calls.  I
want to know how to do everything.  I want to know how to write device
drivers.  And I want it all in under 200 pages.

Basicly, I'm looking for a reference book, not a tutorial.  If it had
a chapter on 80386 machine language that would be nice too.

Anybody have any any favorite books they want to recommend?

--
		-ed falk, sun microsystems
		 sun!falk, falk@sun.com
	terrorist, cryptography, DES, drugs, cipher, secret, decode,
	DSS, FBI, NSA, CIA, NRO, SDI, communist, proletariat.
From: imsks126@Msu.oscs.montana.edu
Newsgroups: comp.os.msdos.programmer
Subject: #include <iostream.h> cout "Hello World\n" hassle (kindergarten prob, I guess)
Date: 24 Jul 92 18:07:47 GMT
Article-I.D.: Msu.0095E0C9.C1EA64E0
Reply-To: imsks126@Msu.oscs.montana.edu
Organization: Montana State University


What am I doing wrong? If I #include <iostream.h> I can

void main(void){
  int a = 123;
  cout << a;
  }                

and 123 gets printed to the screen.

but if I try:                      or:  

void main(void){                   void main(void){
  char str[6];
                                     cout << "Uga Buga";
  str = "Uga Buga";                  }
  cout << str;
  }

in both cases I get linker error "undef symbol in ostream:: etc."
This must be something very stupid and elementary, but I can't 
get it working. Thanks.

Sandy
Newsgroups: comp.os.msdos.programmer
From: mrmach@mtu.edu (MARK R. MACH)
Subject: Source Control Software on MS DOS?
Organization: Michigan Technological University
Date: Fri, 24 Jul 1992 21:48:04 GMT


Does anybody know of any SCCS type of software for controlling source
code that has been written for (or ported to) MS-DOS?

-- 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Mark R. Mach <mrmach@mtu.edu>, Technical Consultant, CCLI, MTU

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Newsgroups: comp.os.msdos.programmer