HDTenEightyP/NetNews huggingface dataset:
From: tlhouse@nyx.cs.du.edu (Thomas House)
Subject: Re: vert menu - graphic mode sw
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.
Organization: Nyx, Public Access Unix at U. of Denver Math/CS dept.
Date: Sat, 10 Oct 92 01:05:19 GMT


Writing any type of animation graphics app using the BGI is pretty much
not a good idea if you want any sort of speed .. it DOES make things
easier, and if all you want is to make pictures or display different
images, its alright .. but for any serious semi-serious animation,
assembly is alot better.  I was trying to work with the BGI for animation
for awhile, and it didn't cut it .. having to write everything in ASM now
.. <sigh>

From: everett@hpcvra.cv.hp.com (Everett Kaser)
Date: Tue, 13 Oct 1992 22:25:32 GMT
Subject: Re: Asm. code needed to generate synth sound for soundblaster
Organization: Hewlett-Packard Co., Corvallis, OR, USA
Newsgroups: comp.os.msdos.programmer

Read the notesgroup comp.sys.ibm.pc.soundcard.  There are frequently postings
there about ftp sites that have all kinds of things related to this subject,
from sound files in different formats to source code to programs to document-
ation, etc.

** Everett Kaser                   Hewlett-Packard Company
** ...hplabs!hp-pcd!everett        work: (503) 750-3569   Corvallis, Oregon
** everett@hpcvra.cv.hp.com        "Today is a good day for change."
Newsgroups: comp.os.msdos.programmer
From: johna@mobdig.ncal.mobdig.com (John Antypas)
Subject: Need way to monitor actual memory on DOS heap
Organization: MobileDigital Corp. Alameda CA
Date: Wed, 14 Oct 1992 23:01:31 GMT

Here's one for the DOS veterans...

In my Microsoft C (or Borland) program, I allocate memory via malloc et al.
in small model.  The set of statements proceeds roughly as follows:

ptr1 = malloc(SIZEA);
...
ptr2 = malloc(SIZEB);
...
ptr3 = malloc(SIZEC);
...
if (_memavl() < MIN_SIZE) { error code here }
...
free(ptr2);
...
if (_memavl() < MIN_SIZE) { error code here }
...

What SHOULD happen is DOS should report that SIZEA+SIZEC bytes of 
memory are no longer available.  Instead it reports SIZEA+SIZEB+SIZEC
are used (or rather that top-SIZEA-SIZEB-SIZEC are available).
This may be correct for a heap, but it causes trouble for me.  
I can't be sure the heap will 'unwind' in the order wound.

Is there any way to find the actual amount of memory available for
allocation at any moment that takes into account the memory just
allocated or freed?  By the way, I'm not wed to using malloc/free,
if anything else works, let me know?
-- 
John Antypas / Senior Software Engineer	johna@mobdig.com
MobileDigital Corp -- Wireless Network Wizards 
Remember, the shortest distance between two points is a straight line, but it
gets even shorter when you don't have to string a line between those two
points.
Newsgroups: comp.os.msdos.programmer
From: gabriel@netcom.com (Gabriel Beccar-Varela)
Subject: Re: Turbo Vision Help?
Organization: Netcom - Online Communication Services (408 241-9760 guest)
Date: Sat, 17 Oct 1992 00:55:01 GMT

In article <CURT.92Oct16153511@vtucs.cc.vt.edu> curt@vtucs.cc.vt.edu (Curt Tilmes) writes:
>
>Is there enough interest in Turbo Vision for a mailing list, maybe 
>eventually 'comp.os.msdos.programmer.turbo-vision'?
>
>It would be nice to meet with other TV programmers and share 
>experiences/ new TV classes, etc..  With a mailing list, and
>maybe an ftp site for sample code and libraries, we all might
>spend a little less time re-inventing the same wheels.
>
>If someone else will run the mailing list, I will manage an
>ftp directory for any code/archives/whatever.
>
>Curt

 I would be interested although I cannot run the mailing list (I do
not have the facilities or the knowledge to do it). Also my
experience is limited to Pascal. I have done a lot of things in Pascal
which I am willing to share. I am just starting  in C++ so I would be
mostly asking questions.
From: everett@hpcvra.cv.hp.com (Everett Kaser)
Newsgroups: comp.os.msdos.programmer
Subject: Re: Random Number Generator
Date: 15 Oct 92 21:55:17 GMT
Article-I.D.: hpcvra.143140002
Organization: Hewlett-Packard Co., Corvallis, OR, USA

Since your project is going to be written in Microsoft C, why not use the
srand() and rnd() functions from the Microsoft C runtime libraries?  They're
really quite good as pseudo-random number generators go.

** Everett Kaser                   Hewlett-Packard Company
** ...hplabs!hp-pcd!everett        work: (503) 750-3569   Corvallis, Oregon
** everett@hpcvra.cv.hp.com        "Today is a good day for change."
Newsgroups: comp.os.msdos.programmer
From: fnorero@lascar.puc.cl (Fernando Norero (Ayudante dcc))
Subject: Help: free() in Borland C++ 2.0
Organization: Pontificia Universidad Catolica de Chile
Date: Tue, 6 Oct 1992 21:23:34 GMT


	Dear Hackers:

	I'm working with Borlang C++ 2.0 and I'm working in a program that
uses a lot of heap space, I have many problems with malloc() and free()
functions. I knew free() function sometime doesn't work. .

My question is:
	Has anybody developed a memory management routine, or something like
a heap garbage colector? Could you please help me?

	Thank you very much for your help.

	fnorero@lascar.puc.cl
	greetings from Chile.








Newsgroups: comp.os.msdos.programmer
From: rkms@edscom.demon.co.uk (Richard Spence)
Subject: Re: Loaders
Organization: EDS-Scicon, Milton Keynes, UK
X-Newsreader: TIN [version 1.1 PL6]
Date: Wed, 14 Oct 1992 12:33:51 GMT

[ something along the lines of .. what is a boot disc ]

I discovered a long time ago that all formatted discs can be booted, but
if they haven't had the system put on them the boot program on the disc
simply informs you that it is a non-system disc, waits for a keypress and
then reboots the machine.

Richard Spence
rkms@edscom.demon.co.uk
rspence@cix.compulink.co.uk
100112,304 (CompuSpend)
From: rideau@dmi.ens.fr (Francois-Rene Rideau)
Newsgroups: comp.os.msdos.programmer
Subject: Intermediate Resolution modes for SVGA cards
Date: 15 Oct 92 18:06:33 GMT
Organization: Ecole Normale Superieure, PARIS, France


 The main problem with the graphics modes in the PC is that
either le resolution is too low (320*200) or it is too slow
(640*480) and demand too much memory.
 Is it possible to use some intermediate mode, like 400*256,
400*320, 512*320, 512*384, or something like that ?

 Another question:
 How come the VGA and following cards used this stupid
bit planes system ? When you want to modify a 256 color
pixel, you must access 8 times the same adress, with
IO manipulations between ! It's very slow, and it's
pointless.
Newsgroups: comp.os.msdos.programmer
From: fijma@cs.utwente.nl (Duco Fijma)
Subject: Re: Floppy Disk 1: 1 interleave ?
Organization: University of Twente, Dept. of Computer Science
Date: Thu, 8 Oct 1992 15:02:08 GMT

In article <1992Oct6.062945.7158@cucs5.cs.cuhk.hk>, bmtong@cucs11.cs.cuhk.hk (Tong Bo-Ming) writes:
|> 	It seems to me that DOS format disks with 1:1 interleave.  When I
|> call BIOS to read a chunk of disk sectors, it is so fast !  Is this
|> true ?
|> 
|> Tong Bo-Ming

I think diskettes spin much slower then harddisks. Time enough to transfer all
the data of all consequtive sectors during one revolution. Even with a 1:1
interleave. So, a diskette is fast, because is it so slow :-).

But, anyway, this is only a guess.

--

Duco Fijma               tel. X31-53-893718
University of Twente     fax. X31-53-893811 
P.O. Box 217             internet: fijma@cs.utwente.nl
7500 AE  Enschede        
The Netherlands          | No ugly pictures in this sig! |
Newsgroups: comp.os.msdos.programmer,comp.lang.c
From: Bernard Orenstein <bernie@resntl.bhp.com.au>
Subject: C/C++7.0 .. 'null pointer assignments' .. but program's finished ! HELP!!
X-Xxdate: Thu, 8 Oct 92 01:45:41 GMT
Organization: BHP Research (Newcastle Laboratories)
X-Useragent: Nuntius v1.1.1d9
Date: Thu, 8 Oct 1992 07:37:13 GMT

I am currently working on a package that was developed and
tested under C version 6.0 .. it is a main program linked to
a few libraries. The package compiled correctly at some time
in the past with C6.0, but now, under C7.0 is giving the
error "null pointer assignment" when it finishes executing
(and it does execute correctly) . I have recompiled everything
with the debug option, and used 'CodeView' to step through it,
which shows that after the last "}" in my main() program, it
goes off to execute some machine langiage instructions, a
call to some routine or other, and it is THIS call which gives
me the "null pointer assignement" error.
I really need some help on this one, as I've no idea where
these extra instructions have come from, or what they are
for.
Does anyone have any ideas as to how I can overcome the
problem.
If so , please don't reply to this message directly, but
forward a reply to "c8930417@cs.newcastle.edu.au" .
Thanks.

	Rodney Bailey
Newsgroups: comp.os.msdos.programmer
From: jt@fuw.edu.pl (Jerzy Tarasiuk)
Subject: Re: Hardware information
Organization: Warsaw University Physics Dept.
Date: Thu, 8 Oct 1992 15:44:06 GMT

>>>>> On 5 Oct 92 18:12:40 GMT, johnb@bilton.demon.co.uk (John Burton) said:
John> I'm looking for hardware programming information about pc compatibles.
John> Particularly the DMA, interrupt controller, and hard and floppy disk
John> controllers, although any information about other hardware anyone has
John> would be welcome.

DMA, interrupt controller and floppy disk controller are made using
Intel chips (8237, 8259, 8272) and they are all described in Intel
Microprocessor&Peripheral Handbook. Of course need know how they are
connected to the system and this is described in Technical Reference
of the computer (I know IBM published T.R. for PC/XT and for PC/AT).
Also, BIOS listing in the T.R. contains a lot of useful information.
If looking for these manuals is too hard for you, I can look for some
programs accessing these devices I wrote. However, I didn't try do
anything sophisticated to interrupt controller, do you really need
to do (with the I.C.) more than is done in BIOS ?
From: joe@proto.com (Joe Huffman)
Newsgroups: comp.os.msdos.programmer
Subject: Re: vert menu - graphic mode sw
Date: 11 Oct 92 05:09:24 GMT
Organization: FlashTek, Inc.

tlhouse@nyx.cs.du.edu (Thomas House) writes:

>Writing any type of animation graphics app using the BGI is pretty much
>not a good idea if you want any sort of speed .. it DOES make things
>easier, and if all you want is to make pictures or display different
>images, its alright .. but for any serious semi-serious animation,
>assembly is alot better.  

There are other graphics libraries available.  Some of them are quite fast.
Call up and ask for some demo disks.  FlashTek (the company I work for) has 
one that can demonstrate up to 45 frames per second.  I'm sure other 
companies have impressive numbers they can demonstrate as well.

FlashTek, Inc.
121 Sweet Ave
Moscow, Idaho 83843
U.S.A.

FAX:    208-882-7275
Voice:  208-882-6893
Orders: 800-397-7310
Email:  flashtek@proto.com
-- 
netcom!proto!joe
joe@proto.com
Newsgroups: comp.os.msdos.programmer
From: davet@cbnewsj.cb.att.com (Dave Tutelman)
Subject: Re: "Sorry if this is an FAQ" Re: Hardware information
Organization: AT&T Bell Labs - Lincroft, NJ
Distribution: na
Date: Mon, 12 Oct 1992 11:45:48 GMT
Keywords: Warning: I'm on the warpath again.  

In article <BvwH68.FGJ@NCoast.ORG> brown@NCoast.ORG (Stan Brown) writes:
>In article <718326448snx@bilton.demon.co.uk> johnb@bilton.demon.co.uk (John Burton) writes:
>>
>>I apologise inadvance if this is an FAQ. 
> ...
>It seems to me that the quoted sentence says "I can't be bothered to
>look at the FAQ list.  I'll just sit back and let others do even that
>minimal research for me.  Ans I'm not even ashamed of it: I'll boast
>that I haven't looked at the FAQ list."
> ...

Stan,
You point out somthing that I'd never thought about, but which seems valid.
I think we ought to adopt a philosophy of responding to such posts (by Email,
don't waste posting bandwidth) with a stock answer:

  "It may be.  Have you checked?"

Dave
Newsgroups: comp.os.msdos.programmer
From: jt@fuw.edu.pl (Jerzy Tarasiuk)
Subject: Re: vert menu - graphic mode sw
Organization: Warsaw University Physics Dept.
Date: Fri, 9 Oct 1992 12:09:24 GMT

>>>>> On Thu, 8 Oct 1992 04:25:34 GMT, shi@ics.uci.edu (Edmond C. Shi) said:
Edmond> hiccup i ran into was trying to develop the code to
Edmond> support a vertical scrolling menu based on graphics code - 
Edmond> there are a number of text mode variations i've seen.
Edmond> rather than try to re-invent the wheel, does anybody out
Edmond> there have some source code (or shareware) that supports this.

If you write your program in either Turbo Pascal, Turbo C, or Borland C,
scrolling (or any movement of picture in graphic mode) can be done using
library functions getimage(), putimage() - in few lines of program :-).
Newsgroups: comp.os.msdos.programmer,comp.os.msdos.apps
From: s2525090@techst02.technion.ac.il (Eran Davidov)
Subject: Question about Heap Expanders
Organization: Technion, Israel Inst. of Technology
Date: Thu, 8 Oct 1992 14:51:25 GMT
Keywords: Heap

I am interested in a heap extender (expander) that will allow me to use
more then 1024 of memory using C (borland, turbo, microsoft...).
I have heard about a program named "The Heap Expander" by Tool Makers
That will allow to use up to 32MB of memory (includeing swaps to disk).
I would like to know if it is invisible to the programmer, or do certain
restrictions apply when using it. 
Any information will be appreciated. (including other programs that do
the above.)

			Thanks,
						ERan
From: wells@cdsmn.mn.org (Rich Wells)
Subject: Re: Generating 80x86 code from a compiler (NO DOS)
Organization: Dicomed, Inc
X-Newsreader: TIN [version 1.1 PL6]
Date: Tue, 13 Oct 1992 15:07:33 GMT

Patrick Draper (draper@ais.org) wrote:
: In article <9210061742.AA05172@deepthought.cs.utexas.edu> STDN%MARIST@VM.MARIST.EDU (Dan Newcombe) writes:
: >What I want to do is this:
: >  Generate pure 80x86 code from a compiler that could be used without
: >DOS.  I don't want stuff like INT 21 and all of those functions.
: >
: >Can this be done with any compilers out there?  Or do I need to
: >write my own?
: 
: You'll can do it with Borland C++, and I'm sure quite a few others. The two
: things you'll want to watch for is 1) the runtime libary and 2) the startup
: code. Borland includes the startup code for it's compiler, which you can
: modify and reassemble. The Borland 3.1 compiler also has source code for the
: runtime library which you can analyze to determine what functions don't use
: DOS.
: 
: Straight C won't generate DOS, or BIOS calls. If you throw away the standard
: runtime library, you are reduced to writing your own functions. It's a lot
: of work, but it can be done. As a reference, I recommend P.J. Plaugher's
: *The Standard C Library*. The source code in there can probably be adapted
: to your means. I understand that he's releasing an updated version of the
: source from that book.

Also, some compilers (HighC and Intel's C compiler come to mind) will
document what the _really_ low level calls are that are needed to
interact with the environment.  Usually this will consist of o/s-like
functions to open, close, read, and write files, and to allocate memory.
I have found that if you avoid stdio.h (except the sprintf functions),
the memory functions in stdlib.h, and the time functions in time.h,
everything else is pretty fair game and will resolve nicely within the
library itself.

Just to be safe, I usually use a librarian to extract just those modules
which are needed by the library routines I need.
-- 

Richard Wells  wells@cdsmn.mn.org  or  ...!tcnet!cdsmn!wells
Newsgroups: comp.os.msdos.programmer
From: weinstoc@sei.cmu.edu (Chuck Weinstock)
Subject: Turbovision Help
Reply-To: weinstoc@sei.cmu.edu (Chuck Weinstock)
Organization: Software Engineering Institute, Pittsburgh, PA
Date: Wed, 14 Oct 1992 02:58:09 GMT

(If this is the wrong newsgroup for this question, would someone please direct
me to the correct one?)

I'm a novice Turbovision user and a novice C++ programmer, as I expect that
the following question will show.

I'm trying to do something as simple as change the color of the desktop to
green.  I've read the manual and still can't make heads or tails out of it.
Could someone send me a code fragment that does it and explain it to me?

Chuck Weinstock				weinstock@sei.cmu.edu
Software Engineering Institute		(412) 268-7719
Carnegie Mellon University		(412) 268-5758 (Fax)
Pittsburgh, PA 15213
Newsgroups: comp.os.msdos.programmer
From: brown@NCoast.ORG (Stan Brown)
Subject: Re: function pointers (in C)
Organization: Oak Road Systems, Cleveland Ohio USA
Date: Wed, 7 Oct 1992 10:45:31 GMT

In article <1992Oct5.222801.12917@u.washington.edu> goble@hardy.u.washington.edu (Brian Goble) writes:
>I want to be able to pass a function pointer to another function, have that
>function store the function pointer in a structure field, and later,
>call that function from the structure field.  The function pointer is to
>a function that returns an "int" and takes a "LPWORD" as it's only arg.
>
>A #define would be nice too...

So often MS-DOS questions are posted in comp.lang.c, it's novel to see a
C question in comp.os.msdos.programmer.

I don't know what you mean by "a #define would be nice"; typedefs are
the way to go for this.

The general principle if a typedef is to write a normal declaration that
looks the way you want, stick the word _typedef_ in front of it, and the
"variable" is the name of the new type.  Also for function pointers I
find it easiest to define a type for the function not the pointer.

Therefore:
     typedef int LPIFUNC(LPWORD);

A pointer to such a function would be 
     LPIFUNC *funcptr;
either independently as a variable or as a structure member or as a
function argument.
-- 
Stan Brown, Oak Road Systems                      brown@Ncoast.ORG
Cleveland, Ohio, USA
From: rap@novell.com (Robert A. Pease)
Newsgroups: comp.os.msdos.programmer
Subject: Re: How can I determine the clock frequency on an 80xxx machine??
Date: 8 Oct 92 21:04:38 GMT
Organization: Novell -- San Jose, Ca.

In article <JT.92Oct7214603@fizyk1.fuw.edu.pl> (Jerzy Tarasiuk) writes:
>>>>>> On Wed, 30 Sep 1992 13:42:48 GMT, (menglund) said:
>m> I am wanting to know how to determine a machines clock frequency dynamically
>m> within a program. (eg: 8MHz, 16MHz ect).
>
>I don't see necessity to determine machine clock frequency. You can
>compare periods on the ADC board timer chip and main board timer chip
>(which has always same frequency on its input). Just the 8253 on the
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>ADC card makes the simplest way to determine the clock frequency!

Unfortuneatly, this is not true.  The higher quality clones will have
the correct clock frequency going to the timer, but there are some
clones that use a cheaper crystal which is off the standard frequency
for the PC clones.

Because of variations in board design, caching, memory archecture,
non-Intel chip vendors and other things it is not possible to determine
the CPU clock frequency via instruction timming with any degree of
accuracy.  The only alternative is to put a timer in of your own
specification.
-- 

rap.

-----------------------------------------------------------------------
Robert A. Pease, Novell Inc.
Internet: rap@novell.COM
Newsgroups: comp.os.msdos.programmer
From: jem@vuse.vanderbilt.edu (John Eric Meyer)
Subject:  Capturing COMx output	
Organization: Vanderbilt University School of Engineering, Nashville, TN, USA
Date: Mon, 12 Oct 1992 03:55:05 GMT

I am interested in capturing the output to a serial port.  For instance, the
ability to create a log of any communications software.  I work in C++, primarily, and tried a small program which intercepts interrupt 14h and outputs it to
a second monochrome monitor.  The simple comm package I use obviously trigers
this interrupt, but I don't know which of the fields in the REGS structure
(al, ah, bl, etc.) is the one I'm really interested in .  None of them show
any recognizeable strings (e.g., ATDT, modem init str, ph #, etc).  Am I even
on the right track?  If you know of a pub domain utility which will serve the
same purpose, that is almost as good.  Any advice or even sample code??

Here is the gist of the code I wrote. mprintf outputs to the second monitor.
This is Zortech C++ 3.0, incidently.

extern "C"{
int comtomono(struct INT_DATA *pd);
}

void main(int argc, char **argv)
{
// install interrupt hook for COM1 or COM2 as designated on command line
//  int 0x0b is COM1, 0x0c is COM2
   int_off();
   int_intercept(0x0a+atoi(argv[1]), &comtomono, 0);
   int_on();

   system(argv[2]);   // run comm software

// restore original interrupt service chain
   int_off();
   int_restore(0x0a+atoi(argv[1]));
   int_on();

   exit(0);
}
extern "C" {
int comtomono(struct INT_DATA *pd)
{
   mprintf("%c%c\n", pd->regs.h.al, pd->regs.h.ah);
   return 0;
}
}


Any help is appreciated!!

Eric
jem@vuse.vanderbilt.edu
Newsgroups: comp.os.msdos.programmer
From: jas37876@uxa.cso.uiuc.edu (John A. Slagel)
Subject: Re: flicker free drawing
Organization: University of Illinois at Urbana
Date: Wed, 7 Oct 1992 20:44:00 GMT

rajiv_sud@sw.stratus.com writes:

>	I am writing a graphics application and understand that to do
>flicker free animation one should do the screen update during the
>verticle retrace period. I believe I have a fairly good idea of catching
>the virtcle sycn pulse by setting it to cause a level 2 interrupt in
>turboC. What I am not clear on is how does one determine how much time
>one has to draw i.e., how many assembly instructions can I run. Since
>different instructions take different amounts of time has anyone come
>up with a method to determine when to stop updating the screen? 

    There are several ways to do flicker free animation....
    1. If you're not drawing very many items and you only have 1 page of
       video memory:
       -Wait for vertical retrace to start.
       -Draw the items before vertical retrace ends.
       -Interrupts cannot be used... they're very unreliable on most cards.
       -So, you need to poll for the vertical retrace to start.
    2. If you have 2 pages of video memory:
       Loop:
       -Draw the items on page 1
       -Show page 1                         
       -Wait for vertical retrace
       -Erase old stuff on page 2
       -Draw new items on page 2
       -Show page 2
       -Wait for retrace
       -Erase items on page 1
       -Goto loop
       *NOTE: the wait for verticle retrace is to make sure the eletron gun
	goes through the new page before you start erasing off the non-
	displayed page... If you didn't do this, then you could erase the
	sprites before the page flip comes into effect, thus erasing part
	 of the sprite that is shown... think about it...
    3. If you have 3 or more pages of video memory....
	This is where you don't need to worry about retrace. No waits
	whatsoever... 
	-Draw on page 1
	-Show page 1
	-Erase on page 2
	-Draw on page 2
	-Show page 2
	-Erase on page 3
	-Draw on page 3
	-Show page 3
	-Erase on page 1
	-go back up to top

	Unless your program can update 3 pages in 1 retrace cycle, you
	*NEVER* need to wait for verticle retrace!!!!!


-- 
------------------------------------------------------------------------
 "Never believe anything a female says, unless it rips your heart out."
 -A brilliant discovery by me on Sept 27, 1992
  John A. Slagel, email: jas37876@uxa.cso.uiuc.edu
Newsgroups: comp.os.msdos.programmer