HDTenEightyP/NetNews huggingface dataset:
From: billr@halcyon.com (Bill Ruediger)
Subject: How do I find out Video Addr. of Current Vid. Page?
Organization: Northwest Nexus Inc. (206) 455-3505
Date: Wed, 30 Dec 1992 23:15:24 GMT

I am using MSC 7.00.  I need to update the screen quickly.  I remember
then general method for doing this, but I can't find the info on how.

I am writeing to display page 0 (the default), then would like to copy
the info from page 0 to page 1, then show the user page 1.  Then while
page 1 is on the screen, I want to update page 0.  When I am done
updating page 0 I want to show the user page 0.

I know this works well, and can be done... I just can't figure out how
to find the address of page X on the video screen, to do the copy.

Thanks in advance for any help, or comments.

Newsgroups: comp.os.msdos.programmer
From: fox@rei.com (Fuzzy Fox)
Subject: Re: How could I copy protect Borland C++ on a network ?
Date: Mon, 21 Dec 1992 18:54:43 GMT
Organization: Recognition Equipment, Inc.

bussiere@garrot.DMI.USherb.CA (Luc Bussieres) writes:

>Is there a way to protect Borland C++ from pirating on an nfs disk? 

Does NFS provide read-but-not-search access to a directory?  That is,
allow programs to find files by name within the directory, but do not
allow listing or searching the directory.  Thus a student could not go
to the directory and type COPY *.* to get all the files.

Borland C++ unfortuantely does require read access to its files (not
just execute access) because of its overlay management scheme.

-- 
#ifdef TRUE        | Fuzzy Fox (a.k.a. David DeSimone)       fuzzy@netcom.com
#define  TRUE   0  |
#define  FALSE  1  |  "You have been recruited by the Star League to defend
#endif             |     the Frontier against Xur and the Kodan Armada."
From: joe@proto.com (Joe Huffman)
Newsgroups: comp.os.msdos.programmer
Subject: Re: Fix for Zortech 386 Screen Memory Access wanted
Date: 27 Dec 92 00:02:09 GMT
Organization: FlashTek, Inc.

rwallace@unix1.tcd.ie (russell wallace) writes:

>Basically the method of accessing screen memory I'm using is with a far
>pointer with segment = B800h and offset = row*160 + column*2, to give a
>pointer to the character+attribute at (row,column). This works fine in
>tiny, small, large etc. memory models, but does not work in extended
>(option mx) memory model - as soon as I try to write a value into the

The following should work:

#include <dos.h> /* For the declaration of _x386_zero_base_selector. */
		 /* Also, MK_FP() is prototyped. */
int main()
{
  char _far *screen_ptr = MK_FP(_x386_zero_base_selector, 0xb800);

  /* Now use the screen_ptr as you normally would, it points to the base
     address of the start of the screen. */

  /* If you get the X-32VM extender (the successor to DOSX) from FlashTek,
  there is a near pointer that points to the start of memory 0000:0000 that
  you could also use for somewhat faster access.   It is called 
  _x32_zero_base_pointer (or ptr, I forget right now). */
}

Send me email if you still are having problems...

Joe Huffman
FlashTek, Inc.                  FlashTek, Ltd.
121 Sweet Ave                   Partnership House
Moscow, Idaho 83843             Grantham, Lincs
U.S.A.                          NG31 9ST  England

FAX:    208-882-7275            FAX:   +44-476-61382
Voice:  208-882-6893            Voice: +44-476-74108
Orders: 800-397-7310
Email:  flashtek@proto.com      Email: flashtek@cix.compulink.co.uk
CIS:    71332,203               CIS: 100042,1673
-- 
netcom!proto!joe
joe@proto.com
From: kerwin@acsu.buffalo.edu (John J. Kerwin)
Newsgroups: comp.os.msdos.programmer
Subject: Simulate RING!!
Date: 26 Dec 92 22:54:42 GMT
Organization: State University of New York at Buffalo/Comp Sci


could someone tell how i could fool my computer into thing the phone
has rung ? i have a program that must wait for 2 rings before it answers
the problem is I MUST HAVE IT ANSWER after the first ring
any sugestions would be appriciated.
  jk
Newsgroups: comp.os.msdos.programmer
From: fox@rei.com (Fuzzy Fox)
Subject: Re: Floating point error: Stack Overflow - Huh?
Date: Mon, 21 Dec 1992 18:55:39 GMT
Organization: Recognition Equipment, Inc.

macg9505@uxa.cso.uiuc.edu (Michael Alan Corn) writes:

>long double d = acosl(cosl(moon.gamma*rad - sunlong*rad)*cosl(moon.beta*rad));
>long double i = (180 - (d/rad) - (0.1468 * ((1-0.0549*sinl(Mprime))/(1- 0.0167*sinl(M))) * sinl(d)));

Perhaps this is the Basic analogue of the ?FORMULA TOO COMPLEX ERROR.
Maybe if you broke up the calculation into parts and then combined them,
using temporary variables.

-- 
#ifdef TRUE        | Fuzzy Fox (a.k.a. David DeSimone)       fuzzy@netcom.com
#define  TRUE   0  |
#define  FALSE  1  |  "You have been recruited by the Star League to defend
#endif             |     the Frontier against Xur and the Kodan Armada."
From: mcs@wet.UUCP (Gil Nardo)
Newsgroups: comp.os.msdos.programmer
Subject: Re: Floating point errors
Date: 26 Dec 92 18:10:43 GMT
Organization: Wetware Diversions, San Francisco

slindsay@nyx.cs.du.edu (Steve Lindsay) writes:
> 
> How can you catch floating point errors in a program
> so you could just break from that function rather than 
> the whole program crashing?
> 
> I am using DOS VGA and Borland C++ 3.1
> 

You can catch floating point errors from math routines by
modifying or redefining the matherr() function and including
it as part of your source file(s).  matherr.c is located
in the lib subdirectory or the crtl\math subdirectory.
-- 
Gil Nardo                  | mcs@wet.com
Migrant Computing Services | (415)664-1032
1032 Irving Street, #435   |-----------------
San Francisco, 94122       | Supernova = *!
Newsgroups: comp.os.msdos.programmer
From: spcsup@solomon.technet.sg (Wong Fay Yu)
Subject: Class 1 & 2 specs...
X-Newsreader: TIN [version 1.1 PL8]
Date: Tue, 29 Dec 1992 11:51:06 GMT

Hi - Anybody out there have any info(ftp sites etc.) on class 1 & class 2
fax communications protocols?

Thanks! :-}
email: spcsup@solomon.technet.sg
Newsgroups: comp.os.msdos.programmer
From: davet@cbnewsj.cb.att.com (Dave Tutelman)
Subject: FORTRAN compiler needed quickly
Organization: AT&T Bell Labs - Lincroft, NJ
Distribution: usa
Date: Tue, 29 Dec 1992 12:22:13 GMT

I need to borrow, rent, or buy (cheaply) a FORTRAN compiler (or interpreter)
for MSDOS.  Can be VERY simple, as it's for a project for my son's beginning
FORTRAN course in High School.  (He accidentally blew away a week or two of
work from his BACKUP floppy [arrgh!] in class, and wants to reconstruct it
on his PC at home during the Xmas break.)  I suspect this is a one-time,
couple-of-day need (as the course ends in January, and the next course is
PASCAL).

All suggestions gratefully appreciated.  advTHANKSance!

+---------------------------------------------------------------+
|    Dave Tutelman						|
|    Physical - AT&T Bell Labs  -  Lincroft, NJ	  07738		|
|    Logical -  dmt@pegasus.att.com -or- dtutelman@attmail.com	|
|    Audible -  (908) 576 2194  (Office)			|
|		(908) 922 9576  (Home)				|
+---------------------------------------------------------------+
Newsgroups: comp.os.msdos.programmer
From: yeates@rtsg.mot.com (Tony J Yeates)
Subject: Multi-platform C++ object library, inc. DOS-graphics mode
Keywords: DOS C++
Organization: Motorola Inc., Cellular Infrastructure Group
Distribution: comp.os.msdos.programmer
Date: Tue, 22 Dec 1992 15:36:56 GMT

I'm looking for C++ object libraries that will ease cross-platform
development (e.g. 

- DOS-graphics mode
- Windows
- Mac
- UNIX
- OS2

I'm aware of several that partially fulfill my requirements ... but
I'd be interesting in hearing of others and/or recommendations.

The products that I am aware of are: Zinc, zAPP, and two others that had
forgetable names(!).

-- 
============================================================
I love California, I practically grew up in Phoenix
		-- Vice President Dan Quayle
From: slindsay@nyx.cs.du.edu (Steve Lindsay)
Subject: Floating point errors
Organization: Nyx, Public Access Unix @ U. of Denver Math/CS dept.
Date: Fri, 25 Dec 92 15:18:30 GMT


How can you catch floating point errors in a program
so you could just break from that function rather than 
the whole program crashing?

I am using DOS VGA and Borland C++ 3.1

Thanks for any help...and have a Merry Christmas!!


Newsgroups: comp.os.msdos.programmer
From: beaurega@ireq.hydro.qc.ca (Denis Beauregard)
Subject: Superstor and PC crashing
Organization: Institut de recherche d'Hydro-Quebec, Varennes, Canada
Date: Wed, 30 Dec 1992 03:50:00 GMT

I would like to use the Superstor copy I get with my new portable on
my desktop computer.  Before that, I want to be sure it is reliable.
Since I develop programs on the desktop, obviously, from time to time
the system crashes.  This happens with Word for Windows too and in
other circunstances.  I mean, this is normal (who can develop a program
with DOS and C/C++ and never get any crash anyway?).

My question is: if my program is writing on disk at that time (I want
to develop a textual database which will read/write at random places) 
and am likely to put some vital files on the compressed disk), at that
time when PC fails, can I/will I likely lose the disk?

Superstor and Stacker will probably do the same.  Are they safe 
for developping on a compressed disk?

-- 
  \_\    Denis Beauregard  *  internet:beaurega@ireq.hydro.qc.ca
 /   \   Ge'ne'alogiste des familles : Beauregard/Jarret/Jarest/Vincent
J   __>  Un Que'bec renouvele' dans une Ame'rique renove'e
\_.-===  Ope'rateur de "Racines du Que'bec" (514) 922-9636 BBS/Genealogie
From: nickgill@doc.bmd.trw.com
Newsgroups: comp.os.msdos.programmer
Subject: dos in real time. limitations?
Date: 20 Dec 92 16:19:26 MST

Do any of you know where I can obtain a list of limitations of DOS
in real-time applications?
Thanks,
Nick
Newsgroups: comp.os.msdos.programmer
From: paul@ramsey.cs.laurentian.ca (Paul Lalonde)
Subject: Math experts!  Need 3D rotation equation
Organization: Dept. of Computer Science, Laurentian University, Sudbury, ON
Date: Mon, 4 Jan 1993 01:54:21 GMT

I'm working on a small 3D graphics program that takes vector images
and rotates them about the XY axes.

However, I decided to throw in some 3D rotation for additional effect,
but I forget the rotation equation that applies to the z term!

I know x = r*cos(angle) and y = r*sin(angle), but what is the equation
to find the z term in 3R?

Thanks for any help!

Paul

-- 
------------------------------------+-----------------------------------------
Paul Lalonde, Dept. of CompSci      |  "C'mon baby, don't fear the Reaper"
Laurentian University - Sudbury/ONT |                           -B.O.C.
----'83-Mustang-GT-5.0L--&--RUSH----+-----------------------------------------
Newsgroups: comp.os.msdos.programmer
From: s1110238@giaeb.cc.monash.edu.au (Lee Hollingworth)
Subject: Flush keyboard buffer
Organization: Monash University, Melb., Australia.
Date: Fri, 1 Jan 1993 02:16:55 GMT

I am writing a screen blanking TSR (yes another one :-) using assembly,
and I am at a loss as to how to flush the keyboard buffer when the user
presses a key to restore the saved screen.

I have installed my own ISR to chain the INT16h ROM BIOS keyboard driver.
Therefore the keyboard buffer must be cleared before returning to the
interrupted program, otherwise the keypress remains in the buffer and is
read with the next buffer read.

I have an idea that I should be able to read the buffer from Port 60h,
and flush the buffer by reading and writing to Port 61h, but I'm not
sure this is right, or indeed how to do it properly.

Any ideas would be greatly appreciated.

Lee Hollingworth
s1110238@giaeb.cc.monash.edu.au

Newsgroups: comp.os.msdos.programmer
From: s2942275@techst02.technion.ac.il (Yaniv Golan)
Subject: FLC format
Reply-To: s2942275@techst02.technion.ac.il (Yaniv Golan)
Organization: Technion
Date: Mon, 21 Dec 1992 14:07:57 GMT

I am looking for documentation on the FLC format produced by Autodesk
Animator Pro. Also, does anyone has sources for a player for this 
format?

Thanks,

Yaniv Golan

-- 
E-Mail : s2942275@techst02.technion.ac.il
Newsgroups: comp.os.msdos.programmer
From: venaas@flipper.pvv.unit.no (Stig Venaas)
Newsgroups: comp.os.msdos.programmer
Subject: Re: SIMPLE assembly question...
Date: 22 Dec 92 09:47:18 GMT
Organization: ProgramVareVerkstedet - UNIT

In article <rol-221292092834@90.222.1.80> rol@grasp1.univ-lyon1.fr (Paul Rolland) writes:
>In article <gn#@byu.edu>, $dougn@sasb.byu.edu (Douglas R. Nebeker -
>MIS_SAS) wrote:
>> 
>> is there ANY difference between  MOV ES,AX
>> 
>> and                              PUSH AX
>>                                  POP ES
>>  
>
>I think there are two major differences between the two forms :
>   - Execution time (only important if your program is time critical, and
>     this piece of code is inside a loop) : first solution is faster,
>   - the flags are set in the first case, but not in the second (well, I'm
>     not absolutely sure, but I really think so...)
>
>Paul Rolland
>
>A bug can be changed to a feature by documenting it. Developpers know !

The flags will be unchanged in both cases. The only difference between
them is speed. MOV will use only 2 cycles while PUSH-POP uses 7.
That's quite a difference. They both use only 2 bytes.

Stig
Newsgroups: comp.os.msdos.programmer
From: dmurdoch@mast.queensu.ca (Duncan Murdoch)
Subject: Re: VIRTUAL MEMORY
Organization: Queen's University
Date: Thu, 31 Dec 1992 04:29:53 GMT

In article <1992Dec31.020312.26280@proto.com> joe@proto.com (Joe Huffman) writes:
>>I'm looking for a caching mechanism for virtual memory in 'C'. Any
>>suggestions.
>
>Get a 32-bit compiler and a good 32-bit DOS extender that has virtual memory
>built in.  This will make VM totally transparent to you the programmer.
>
>Suggestions for DOS extenders with VM include:
>
>Flashtek's X-32VM
>Pharlap's 386
>Rational System's DOS 4G

Borland's extender included with Borland Pascal also offers virtual memory, 
though it's only a 16-bit extender.  I'm not sure what the limitations are; 
it's not well documented.  

Duncan Murdoch
dmurdoch@mast.queensu.ca
Newsgroups: comp.os.msdos.programmer,comp.os.ms-windows.programmer.tools,comp.text,comp.unix.programmer
From: conz@mundil.cs.mu.OZ.AU (Con ZYMARIS)
Subject: Re: Seeking full text search engine
Organization: Computer Science, University of Melbourne, Australia
Distribution: usa
Date: Tue, 22 Dec 1992 00:20:19 GMT

Larry Pearlstein (lap@sol.asl.hitachi.com) wrote:
>: I need to implement full text search in my program and I'm looking for
>: a programmer's toolkit or engine.
>:  
>: Does anyone know of such a text search product?
>:  
>: Please include name, number.  Any comments or recommendations would be
>: appreciated.
>:  
>: Thanks,
>:  
>: Bill Stamp
>: Synergis Technologies
>: 73220.3522@CompuServe.COM


You can also try a library called ISYS, from Odessey Development. This system has recieved good reviews so far. Don't have the deatails on me.

cheers.
> 


Con Zymaris
Programmer
Cybersource Pty. Ltd. 				Phone: +61 3 593 1734
PO Box 171, Glenhuntly				FAX  : +61 3 593 1874
3163 Australia

Newsgroups: comp.os.msdos.programmer
From: rnichols@cbnewsg.cb.att.com (robert.k.nichols)
Subject: Re: Compression (Was: Normal MSDOS multitasking!)
Organization: AT&T
Date: Thu, 24 Dec 1992 17:04:06 GMT

In article <1992Dec24.012913.10203@exucom.com> cyberman@exucom.com (Stephen R. Phillips) writes:
... lots of stuff from the old thread deleted ...
...                                           Also perviewsly
>archived files (shar) have a MUC higher compression ratio than
>standard.  IE GTETRIS.ZIP is 18k shared and ziped BUT 32k when
>archived BY zip.  Hmmmm  intresting?
...

No surprise here.  A single, large file will have less overhead from
headers and, if reasonably homogeneous, gives an adaptive compression
algorithm a chance to work its way up to a better level of efficiency.

Bob Nichols
AT&T Bell Laboratories
rnichols@ihlpm.ih.att.com
From: cyberman@exucom.com (Stephen R. Phillips)
Newsgroups: comp.os.msdos.programmer
Subject: Re: FAQ listDir(char* path);
Date: 27 Dec 92 20:09:37 GMT
Organization: ExuCom Multimedia Inc.
X-Newsreader: TIN [version 1.1 PL8]


Sandy Pittendrigh (sandy@cs.montana.edu) wrote:
: I couldn't find the answer to this question in the FAQ, although
: it sounds like one.

: How can I list the contents of a specified directory from within
: a (Turbo C++) program? 

: Seems like there ought to be a PC-specific Turbo function like:
:   listDir(char *path); -----but I can't find it. Am I blind?
: Anyway, I would be grateful for an answer.

	ACKKK!   :)

WELL sorry no such animal, however there is findfirst and findnext
(dos.h) these wonderful tool help you do such work.  Check the manual
or the IDE help.

Cyberman
-- 
This is my sig file!
Read rec.games.programer!
From: wright@staff.tc.umn.edu (Mark Wright)
Newsgroups: comp.os.msdos.programmer
Subject: Re: FAQ listDir(char* path);
Date: 27 Dec 92 19:35:32 GMT
Article-I.D.: news2.1992Dec27.193532.18961
Organization: University of Minnesota

You're not blind, no such function is provided.  Here are two that I use.
Note that files is an array of char *, and actually allocating the space
each char * points to is done in the function.  So, that space must be
free()'ed later.

/****************** FILE LIST **********************************************/
 
int file_list( char *files[], char *path )
 
{
  struct ffblk file_info;
  int i;
 
  i = 0;
  if (findfirst( path, &file_info, FA_ARCH ) == 0) {
    files[i++] = strdup( file_info.ff_name );
    assert( files[i-1]  );
    while (findnext( &file_info ) == 0) {
      files[i++] = strdup( file_info.ff_name );
      assert( files[i-1]  );
    }
  }
 
  return i;
}
 
/****************** FILE LIST **********************************************/
 
 
 
 
 
/****************** DIR LIST ***********************************************/
 
int dir_list( char *files[], char *path )
 
{
  struct ffblk file_info;
  int i;
 
  i = 0;
  if (findfirst( path, &file_info, FA_DIREC ) == 0) {
    if (file_info.ff_attrib == FA_DIREC) {
      files[i++] = strdup( file_info.ff_name );
      assert( files[i-1]  );
    }
    while (findnext( &file_info ) == 0)
      if (file_info.ff_attrib == FA_DIREC) {
        files[i++] = strdup( file_info.ff_name );
        assert( files[i-1]  );
      }
  }
 
  return i;
}
 
/****************** DIR LIST ***********************************************/

-- 
Mark Wright
wright@epx.cis.umn.edu
Newsgroups: comp.os.msdos.programmer
From: paul@ramsey.cs.laurentian.ca (Paul Lalonde)
Subject: Need help with hires bitmapping/storage in C/asm
Organization: Dept. of Computer Science, Laurentian University, Sudbury, ON
Date: Mon, 28 Dec 1992 08:26:18 GMT

I just finished a tiny TSR program in C (activated by ALT-*) that grabs
the 64K of bitmap data at A000:0000 in hires mode 320x200x256colours.
It sends this 64k to a file called 'output.bin'. The purpose of this TSR
is to grab the graphics screen under Deluxe Paint so that I can use my
screens in my own programs. The TSR works.

However, when I use another program, DISPLAY.C, to read in the binary file
output.bin and display it back on the 320x200x256 screen, the colours are
mismatched.

I'm only a neophyte assembly programmer, but I'm assuming this is a result
of 16->8 bit truncation during register MOVes and fputc()/fgetc() operations.

I'm "enclosing" the code snippet from the TSR that dumps the video screen,
as well as the display program.

I would appreciate any help in getting both the TSR dumper to dump the
proper binary image and the displayer to read the proper image.

Thanks for any help!

--TSR 320x200x256colour video screen dumper function--

void dumpvideo(void)
{
	 unsigned int i;
	 FILE *fp;
	 unsigned char ch;         
	 
	 fp = fopen("\\output.bin", "wb");
		 if (fp == NULL) return(0);

	 asm mov cx, 0A000h;
	 asm mov es, cx;
	 asm mov di, 0;

	 for(i=0; i<64000; i++){
		asm mov ax, [byte ptr es:di];
		asm inc di;
		fputc(_AX, fp);
	 }
	 fclose(fp);

}

--displayer program--

#include <stdio.h>

void main(void)
{
        FILE *fp;
        unsigned i;
        unsigned char ch;

        fp = fopen("output.bin", "rb");
        if(fp==NULL) exit();

        asm mov ah, 0;
        asm mov al, 13h;
        asm int 10h;
        asm mov cx, 0A000h;
        asm mov es, cx;
        asm mov di, 0;

        for(i=0; i<64000; i++){
                _AX = fgetc(fp);
                asm mov [es:di], ax;
                asm inc di;
        }
        fclose(fp);
        getch();
        asm mov ah, 0;
        asm mov al, 3;
        asm int 10h;
}
                
-- 
------------------------------------+-----------------------------------------
Paul Lalonde, Dept. of CompSci      |  "C'mon baby, don't fear the Reaper"
Laurentian University - Sudbury/ONT |                           -B.O.C.
----'83-Mustang-GT-5.0L--&--RUSH----+-----------------------------------------
Newsgroups: comp.os.msdos.programmer
From: mcardleb@woods.ulowell.edu
Subject: * BorlandC++ overlay (or how to get blood from a stone)
Organization: University of Lowell
Date: Wed, 23 Dec 1992 00:36:12 GMT

Hi all,

	Got a problem with the new Borland C/C++ 3.1 protected mode compiler.

I got this compiler because I thought it would compile a protected mode program
(Borland  does say it "breaks the 640K barrier" but all they mean is the 
compiler runs in protected mode.  I sure wish they would mean what they say!

Anyway,  I am trying to use the overlay manager in the IDE.  I am trying to 
access multiple data arrays that each could be larger than 64K bytes.  I am
just writing a demo program now to test if the overlay system will help.
I have three modules(each one has one function) .  Each function has the line:

	static unsigned char huge arrayx[250000];

I do some setting of the arrays and then return to the previous module.

The module with main() initializes the overlay manager with
	
	_ovrbuffer = 0x8000;
	_OvrInitExt(0,0);

This gives me all the extended memory for the overlay swapper with 0x80000 of
overlay buffer (524288 bytes if I calculated this correctly - the Borland 
manuals don't say how this number is calculated but I can guess it is the 
number of paragraphs).

The compiler is compiling in DOS overlay with the HUGE memory model.

Now it will compile,  executable is over 750,000 bytes  but when I run it from
the IDE it says not enough memory.  I have 2M in the IDE and another 2M not 
used. When I run it from DOS it says cannot execute prog.c.  I guess this is
because DOS won't allow 750,000 to fit in < 640K.  

Anybody have a clue to what goes on.  I wouldn't like to think Borland is 
false advertising with their compiler. I would loose a lot of respect for
PC's in general if vendors sell full blown pc's with tons of memory that
only the pros can use.

	Thanks for any replies or comments.
		Bruce
-- 
Bruce McArdle                  /   So THIS is what being a GRAD student
mcardleb@woods.ulowell.edu    /   is all about... oUUUUUUUU . . .
Newsgroups: comp.os.msdos.programmer
From: herman@galileo.telecom.ti.com (Herman Schuurman)
Subject: Re: SIMPLE assembly question...
Organization: TI Telecom Systems, Dallas
Date: Tue, 22 Dec 1992 16:27:59 GMT

There is one more important difference between

	MOV ES,AX

and

	PUSH AX
	POP ES

If the stack pointer contains the value 1 before the PUSH, your
microprocessor may shut down due to lack of stack space.

--
Herman Schuurman               Internet: herman@telecom.ti.com
Texas Instruments Inc.         TI MSG:   DTCH
PO Box 869305  MS 8486         Voice:    (214) 575-6548
Plano, Tx 75086                Fax:      (214) 575-6567
Newsgroups: comp.os.msdos.programmer