HDTenEightyP/NetNews huggingface dataset:
From: af458@yfn.ysu.edu (Jon K. Salmon)
Subject: Re: Flush keyboard buffer
Organization: Youngstown State University/Youngstown Free-Net
Date: Fri, 1 Jan 1993 18:25:02 GMT


Lee,

> 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 would suggest either

               Mov    Ax,40h                ;
               Mov    Ds,Ax                 ;  Ds -> BIOS data area
               Cli                          ; Disable interrupts.
               Mov    Ax,[1Ah]              ; Set head and tail pointers
               Mov    [1Ch],Ax              ;  equal.
               Sti                          ; Enable interrupts.

or

    @@_Check:
               Mov    Ah,01h                ; Function = Check keyboard
               Int    16h                   ; Call BIOS.
               Jz     @@_Done               ; Exit if nothing in buffer.
               Xor    Ah,Ah                 ; Function = Read keyboard
               Int    16h                   ; Call BIOS.
               Jmp    @@_Check              ; Jump to check for keypress.
    @@_Done:

The first method clears the buffer at a low level by setting the
head and tail pointers of the circular queue equal, effectively
emptying the queue.

The second method simply uses the BIOS routines to check for a
keypress, and, if one is found, to read (and discard) it.  The
routine just keeps reading and discarding keys until there are none
left in the buffer.  With this approach you may wish to consider
using the extended keyboard functions, too (11h and 10h, respectively).
Also, you may have to make pseudo-calls to Int 16h to bypass your
own Int 16h handler.

               Pushf                        ; Simulate interrupt.
               Call   [OldInt16h]           ; Call previous handler.

Anyway, I would recommend the second approach.  Why?  If some other
TSR has taken over Int 16h as a means of stuffing the buffer, setting
the low-level queue to empty will NOT empty any buffer this other TSR
manages internally, whereas the Int 16h method will.

-- Jon
-- 
Newsgroups: comp.os.msdos.programmer
From: jenk@microsoft.com (Jen Kilmer)
Subject: Re: Normal MSDOS multitasking!
Date: 18 Dec 92 06:14:32 GMT
Organization: Microsoft Corporation

In article <NDuwVB6w165w@cybrspc.UUCP> roy%cybrspc@cs.umn.edu (Roy M. Silvernail) writes:
>bern@Uni-Trier.DE (Jochen Bern) writes:
>
>Depends on your command processor.  4dos puts its tempfiles in a single,
>known directory on your hard drive.  Handy feature, that.

Yup. 

Btw, MS-DOS 5 will also put its tempfiles in a single, known directory.
Whichever one you set the temp environment variable to. By default,

SET TEMP=C:\DOS

>That also means the 'DIR | MORE' example wouldn't be obviously
>successful in 4dos, because the tempfiles are likely to be in a
>different directory.

Same with 5.

-jen
 not an ms-dos support person anymore, I just sound like one
Newsgroups: comp.os.msdos.programmer
From: joe@proto.com (Joe Huffman)
Subject: Re: programming in a mouse interface
Organization: FlashTek, Inc.
Date: Thu, 31 Dec 1992 20:52:06 GMT

pdh@netcom.com (Phil Howard ) writes:

>What is the typical way this kind of thing is done?  Do programs actually
>trap the serial signals sent by the mouse itself, or do they depend on the
>int 33h functions?

I strongly suggest you use int 33h subfunction 12 to have the mouse driver
call your code to handle the mouse events.

>I notice the int 33h functions mostly deal with a row and column, and I
>assume this refers to the existing video mode.  Can the mouse drivers
>handle all the video modes at least through to 1280x1024 in terms of
>knowing correctly the number of columns and rows?  Or do you HAVE to use
>functions 7 and 8 to tell the driver?

Use subfunction 12 and draw the mouse cursor yourself.  I don't know of
any mouse drivers that know of all the various super VGA modes.

Alternately you can use a graphics library that does all this for you.

Flash Graphics from FlashTek, Inc. is one such library...
-- 
netcom!proto!joe
joe@proto.com
Xref: sparky comp.os.msdos.programmer:11762 comp.os.msdos.misc:6817 comp.sys.ibm.pc:1062
From: aki@cruzio.santa-cruz.ca.us
Newsgroups: comp.os.msdos.programmer,comp.os.msdos.misc,comp.sys.ibm.pc
Subject: BIOS and how to determine your CPU type
Keywords: BIOS CPUID INT15H
Date: 3 Jan 93 00:35:49 GMT
Reply-To: aki@cruzio.santa-cruz.ca.us


 
Browsing through Ralf's interrupt list I noticed that some new
BIOS chips return the CPU type and revision numbers via
INT 15H AX=C910H.
 
I would like to see how many have this function available and
what type of data the call returns. If you have a 386SX+ system,
please uudecode the program below and run it.
 
The program (INT15C9.COM) returns three lines of data with the
contents of the AH, CH and CL registers. AH is 00 if the call
was successful (otherwise it's usually 86 for invalid command).
CH indicates the CPU type, which is 3 for 386 and 4 for 486
(I imagine 5 would be 586). CL contains the revision number for
the design. Typical values are 30-3F = 486 Overdrive and 23=386SX.
 
If you run the program and AH is 00, i.e. your BIOS did support
the call, PLEASE e-mail, mail, fax or phone in your results.
I would like to know:
 
  a) CH and CL register contents as you can see them on screen
                                            (for example: 04 03)
  b) Your BIOS make and if you know it, the date
                                     (for example: AMI 09/12/92)
  c) Your computer make and model (if not "Noname")
                                     (for example: IBM PS/2 M56)
  d) What CPU you actually have _and_ the clock frequency
                                    (for example:  50MHz 486DX2)
 
I will post a summary of responses (nicely tabulated, etc.)
for everyone to enjoy if I get lots of replies. Otherwise
expect a summary by e-mail.
 
*THANK YOU* for your help.
 
Aki.
 
PS. Please, if you make a follow-up to this message, LIMIT
the number of newsgroups. I will cross-post this to several
newsgroups.
 
----CUT HERE (if you want to; you probably don't have to)----
begin 644 int15c9.com
MM`FZ5P'-(;@0R3/)S151BL2Z9`'H%`!948K%NF@!Z`H`68K!NFP!Z`$`PU"T
M"<TA6%"Q!-+H)0\`Z`\`6"4/`.@(`+0)NF$!S2'#NW`!`]B*%[0"S2'#24Y4
F,34O0SDQ,`T*)$%,/21#2#TD0TP])#`Q,C,T-38W.#E!0D-$148`
`
end
----CUT HERE----
-- 
/  Phone: 408-662 9664   Fax: 662 9676  |  586 is a 586 no matter what  \ 
\  125 Searidge Ct #D, Aptos, CA 95003  |  Intel seez.  "Pent... WHAT?" /
From: aliu@aludra.usc.edu (Alex Liu)
Newsgroups: comp.os.msdos.programmer
Subject: Re: Normal MSDOS multitasking!
Date: 22 Dec 1992 10:13:10 -0800
Organization: None to Speak of
NNTP-Posting-Host: aludra.usc.edu

Hi,
  I think what some people are missing is what is the idea of pipes.
Under Unix, the concept of Pipes comes from the idea of linking small
prewritten utilities to get something done as opposed to writing a
entirely new application.

For example, let say, I want to display all the files in a UNIX directory
that were created on a certain date, I also want to only display the filenames
and in reverse sort order in columns.  One way to do it under Unix is:

ls -l | grep 'Aug 12 1990' | cut -c65- | sort -r | pr -t -4

(This is an example. May not work exactly right, but it will with some tweaking
depending on the version of Unix you are using)

Now, doing something like that, as cryptic and complicated that it might look
to the uninitated, it is MUCH MUCH better than writing a "ls" (or DIR) program
that will do EVERYTHING under the sun.

You will be asking by now, what does this have to do with MS-DOS pipes?
Well, this is just to illustrate a point.  A previous poster was arguing that
doing:
	zcat file.tar.Z | tar tvf - | grep foo
is bad design, because you shouldn't have to do a compress just to find a file.
But the point is that when they designed zcat/compress and tar, it was to 
be modular.  compress is a generic file compressor, that you could use with
any utility.  The fact that you have pipes allows you to use compress
without having to write your own LZW compression routines.
	unzip -v file.zip foo*.*
Doing that, for you is fine, but it is not necessarily better.  It is just
a different way to do things.  One could argue for example, that unzip is
a more complicated program than any of the unix equivalents, and at the
same token not as flexible.  For example, the 3 previous commands, you
can also grep for files of certain size, certain date, etc.  By adding
an extra command you could also sort them in reverse order or by size,
etc.  If unzip was to accomplish all that flexibility, that would make
the program much bigger.  If later, someone invents a new algorighm to
make 1000:1 compression, you could still use tar, just replace zcat with
your new compression program, but you will have to modify unzip (or wait
until PKWare makes a new version).


-- 
_____________________________________________________________________________
Alejandro Liu           |EMail: aliu@usc.edu |All mispellings are intentional
1551A Ridgecrest Apt A  |Voice: 213-264-9400 |Anything mentioned here is not
Monterrey Park, CA91754 |                    |necessarily true.
From: venaas@flipper.pvv.unit.no (Stig Venaas)
Newsgroups: comp.os.msdos.programmer
Subject: Re: Need help with hires bitmapping/storage in C/asm
Date: 28 Dec 92 12:18:18 GMT
Organization: Nettverksgruppa - UNIT

To do what you want, you need to save the palette registers too.

Stig
Newsgroups: comp.os.msdos.programmer
From: fox@rei.com (Fuzzy Fox)
Subject: Re: Difference between "ESC" and "8" ??
Date: Mon, 21 Dec 1992 18:53:03 GMT
Organization: Recognition Equipment, Inc.

slindsay@nyx.cs.du.edu (Steve Lindsay) writes:

>Sorry people.... I meant to say in this original post how
>do you make it tell the difference between the "8" key and
>the "Backspace" key not the ESC key...

When I read the keyboard with getch(), the backspace key returns 0x08,
and the 8 key returns 0x38.  What method are you using to read the
keyboard?

-- 
#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."
Xref: sparky comp.os.msdos.programmer:11676 comp.os.ms-windows.programmer.misc:4502 comp.unix.programmer:5790 comp.sys.amiga.programmer:17904 comp.sys.mac.programmer:20376 comp.sys.next.programmer:7932
From: mlake@irscscm.UUCP (Marshall Lake)
Newsgroups: comp.os.msdos.programmer,comp.os.ms-windows.programmer.misc,comp.unix.programmer,comp.sys.amiga.programmer,comp.sys.mac.programmer,comp.sys.next.programmer
Subject: Business Opportunity
Date: 28 Dec 92 13:03:33 GMT
Reply-To: mlake@irscscm.UUCP (Marshall Lake)
Distribution: usa
Organization: Internal Revenue Service, Washington, DC


We at TEAM Software are considering putting together a catalogue of
computer software for the end user.  This software could be any type
(entertainment, utility, educational, etc.) and run on any platform
(PC, Amiga, Macintosh, Atari, NeXT, UNIX, etc.).  The software would be
inexpensive to the end user (we envision $5 to $15).  It would be kept
inexpensive by not including any type of packaging and providing the
documentation as a disk file.  We would not necessarily exclude higher
priced software, however.

For this approach to work we feel we would need to offer a lot of
product in the catalogue.  We have access to extensive mailing lists for
various platforms.  The programmer would retain all rights to the
software and there would be a contract between the programmer and TEAM
Software.  We expect the programmer to make a royalty of 10% to 15% of
our gross.

Do you know anyone who might be interested in providing software for
something like this?


Marshall Lake
TEAM Software
POB 7332
Washington, DC  20044-7332
tel 703-533-2132
fax 703-538-4598
uucp ...!uunet!{media,mimsy!bogart}!irscscm!mlake
Internet mlake@irscscm.UUCP
CIS 73717,3174
GEnie MLAKE

-- 
Marshall Lake
...!uunet!{media,mimsy!bogart}!irscscm!mlake
mlake@irscscm.UUCP
Xref: sparky comp.os.msdos.programmer:11745 comp.sys.ibm.pc.hardware:34591
From: ics.style@Control.Com (Scott Remick)
Newsgroups: comp.os.msdos.programmer,comp.sys.ibm.pc.hardware
Subject: Re: Null Modem Cable Dilusion Confusion
Date: 2 Jan 93 07:02:33 GMT
Reply-To: ics.style@control.com
Followup-To: comp.os.msdos.programmer
Organization: Industrial Computing Society

rbairos@cayley.uwaterloo.ca (Rob Bairos) writes:

> 
> Hi, a couple of days ago, I posted my problem concerning file transfers
> between my two PC's.  The following is the solution and my experiences
> if anyone's who's interested.  Thanks for the responses!
>  
Sorry to say I haven't been following the chain, just saw this message, but 
it surprises me that you had so much trouble... (?).  I have never had a 
real problem doing it.  Hmmmm.....


  \^o-o^/ *****************************************************************
  -(_I_)- * Another message from ------->  S c o t t  I .  R e m i c k    *
  /_||| \ *~~~~~~~~~~~~~~~~~~~~~~~~~~|------------------------------------*
 ~(_|||   *    FidoNet: (1:325/203)  |   InterNet: ics.style@control.com  *
  \ @ @   *****************************************************************
Newsgroups: comp.os.msdos.programmer
From: gchunt@rio.dixie.edu (Galen C. Hunt)
Subject: Where to find DPMI Server for a 286
Organization: The Ohio State University Department of Computer and Information Science
Date: Sun, 3 Jan 1993 00:57:12 GMT

Does anyone know where I can find a DPMI server for a 286 machine.  DPMI servers
seem to be fairly abundant in the form of 386max, QDPMI and Windows 3.x for the
386, but I need one for the 286.  My understanding of the DPMI spec is that it
does support 286 processors.

Any help would be greatly appreciated.

Thanks,
	galen
Newsgroups: comp.os.msdos.programmer
From: darcy@druid.uucp (D'Arcy J.M. Cain)
Subject: Re: Relationship between IRQ's & INT's ?
Date: Sat, 2 Jan 1993 00:30:07 GMT
Organization: D'Arcy Cain Consulting

bomr@erich.triumf.ca (Rod Nussbaumer) writes:
>there is the possibility of intercepting the software interrupt service
>routine invoked by a hardware interrupt, since the CPU INTerrupts are mapped
>one-to-one to IRQ's.

And the relationship is IRQ x is handled by INT (x + 8).  For example,
the first COM port triggers IRQ 4 and this can be handled by hooking
into INT 12 (0x0c)

-- 
D'Arcy J.M. Cain (darcy@druid.com)  |
D'Arcy Cain Consulting              |   There's no government
Toronto, Ontario, Canada            |   like no government!
+1 416 424 2871          DoD#0082   |
From: shri@unreal.cs.umass.edu (H.Shrikumar)
Newsgroups: comp.os.msdos.programmer
Subject: Is there a util to record and play back keystrokes ?
Date: 2 Jan 93 04:56:39 GMT
Reply-To: shri@unreal.cs.umass.edu (H.Shrikumar)
Organization: UMass, Amherst MA + Temporal Sys & Computer Networks Bombay India

Hi,

  Pardon me if this is not appropriate for this group.

 I am looking for a utility that will record key strokes at the
lowest possible level (close to the INt 9 keyboard interrupt), and
should play them back ... and importantly must preserve the timing
between the keystrokes. I sure I would not have to reinvent this
wheel !

  PLease E-mail (shri@legato.cs.umass.edu) since I dont read this
group regularly.

Many thanx.

-- shrikumar ( shri@legato.cs.umass.edu )

Newsgroups: comp.os.msdos.programmer
From: af458@yfn.ysu.edu (Jon K. Salmon)
Subject: Re: Anybody know of Kermit source for PC's?
Organization: Youngstown State University/Youngstown Free-Net
Date: Fri, 1 Jan 1993 21:04:42 GMT


Try nic.funet.fi in pub/msdos/communications/kermit.  There is a file
called ker30src.lzh which is described as source for Kermit 3.0
protocol.

-- Jon
-- 
Newsgroups: comp.os.msdos.programmer
From: wmark@msw (Mark S. Winsor)
Subject: Equivilent of UNIX exec shell cmd
Organization: ProVAR
Date: Thu, 31 Dec 1992 14:25:34 GMT

I'm porting a menu system in C from UNIX that for purposes of memory 
conservation in dos creates a temporary batch file and execvp()'s it
to run whatever option was chosen, then re-executes the menu program
with options that tell it where it was, etc. My problem is that the
temporary batch file is still active while it executes the menu program
and then a new temporary batch file is created and execvp()'d. When you
exit out if the menu system, it goes back into it again for the number
of times that the batch file was executed. An illustration below:

+---------+          +---------+
|  Menu   |     ---->|  Menu   |     Batch1 is still active when menu
+---------+     |    +---------+     execvp()'s batch2.
	\/          |        \/
    \/          |        \/
+---------+     |    +---------+     Example of batch1:
|  Batch1 |------    |  Batch2 |     ECHO OFF
+---------+          +---------+     COMMAND.COM
                                     MENU /F

The equivilent of the UNIX shell exec in front of the MENU command is
what I need, does something like this exist? Forgive my ignorance of
MS-DOS.

-- 
                                __                
email: wmark@wb3ffv.ampr.org   '  )--,--,          /       Mark S. Winsor 
                                 /  /  / __.  __  /__,     Systems Analyst
#include <stddisclaimer.h>      /  /  (_(_/|_/ (_/ \_      ProVAR, Inc.

-- 
                                __                
email: wmark@wb3ffv.ampr.org   '  )--,--,          /       Mark S. Winsor 
                                 /  /  / __.  __  /__,     Systems Analyst
#include <stddisclaimer.h>      /  /  (_(_/|_/ (_/ \_      ProVAR, Inc.
Newsgroups: comp.os.msdos.programmer
From: venaas@flipper.pvv.unit.no (Stig Venaas)
Subject: Using the latch in 640x480x16
Organization: ProgramVareVerkstedet - UNIT
Date: Mon, 21 Dec 92 20:09:45 GMT

Could anyone please give me some info or
pointers on how to use the latch when
plotting pixels in 640x480x16?

Stig
From: kleyngel@dutiws.twi.tudelft.nl (Raymond Kleijngeld)
Newsgroups: comp.os.msdos.programmer
Subject: Relationship between IRQ's & INT's ?
Date: 30 Dec 92 10:35:08 GMT
Organization: Delft University of Technology

I know that an IRQ is a hardware interrupt and an INT is a software
interrupt. Though I can't figure out what the relationship is between those
two.

To be more specific is there a way to intercept an IRQ and link it to my own
routine like a software generated interrupt? 

Can someone help me on this.

Thanks in advance

Raymond Kleijngeld (kleyngel@dutiws.TWI.TUDelft.NL)
-- 
+--------------------------------------+------------------------------------+
|     Raymond Kleijngeld               |   Delft University of Technology   |
+--------------------------------------+------------------------------------+
|                       kleyngel@dutiws.TWI.TUDelft.NL                      |
From: davis@aurs01.UUCP (Alan Davis)
Newsgroups: comp.os.msdos.programmer
Subject: Re: Normal MSDOS multitasking!
Date: 22 Dec 92 21:39:02 GMT
Reply-To: davis@aurw17.aur.alcatel.com.UUCP (Alan Davis)
Organization: Alcatel Network Systems, Raleigh NC

In article <1h7lrmINNpde@aludra.usc.edu> aliu@aludra.usc.edu (Alex Liu) writes:
>Hi,
>  I think what some people are missing is what is the idea of pipes.
>Under Unix, the concept of Pipes comes from the idea of linking small
>prewritten utilities to get something done as opposed to writing a
>entirely new application.
>
.... explanation of KISS re: unix tools deleted

I missed the beginning of the thread, but I haven't seen anyone mention
daemons, named pipe services, sockets, and other IPC type applications
of multiprocessing. DOS/Windows does limited IPC, NT will probably do
it robustly (Dave Cutler knows how to design robust OS's even if
Bill Gates is clueless).

Unix allows several different flavors of multitasking, multiple processes
launched from a single command line is one flavor, and is probably the
most visible to the user. Multiple command lines is another user-oriented
flavor, whether the additional commands are put into background or are
running in a different console window. 

Then there are the programs that run essentially in background doing
nothing but waiting for input, these are database servers, network
daemons, cron, etc. These programs do essentially what TSR's do for DOS,
but take advantage of the multitasking features of Unix to continue
processing while other work is being done on the same system.

All of this is common knowledge for most of the readers here. For those
folks that haven't used a true multitasking system long enough to find
it's usefulnes, it's difficult to envision just how convenient multitasking
is. Like any tool more complex than a hammer, tho, it does take time to
learn to use efficiently.

Alan Davis                      aur : davis@aurfs1
Alcatel Network Systems         BIX : adavis
adavis@rockdal.aud.alcatel.com  CIS : 72317,3661
From: joe@proto.com (Joe Huffman)
Newsgroups: comp.os.msdos.programmer
Subject: Re: VIRTUAL MEMORY
Date: 31 Dec 92 02:03:12 GMT
Organization: FlashTek, Inc.

jeff.carbonell@cutting.hou.tx.us (Jeff Carbonell)  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

FlashTek can be contacted as follows:

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

The others can be found in various advertisements.

-- 
netcom!proto!joe
joe@proto.com
Newsgroups: comp.os.msdos.programmer
From: verghese@boi.hp.com (Phil Verghese)
Subject: Re: Can't get BC++ 3.0 dual-monitor mode to work!
Date: Wed, 23 Dec 1992 21:54:37 GMT
Organization: Hewlett-Packard

In article <1992Dec23.173412.13462@odin.diku.dk> joker@diku.dk (Morten Christian Holmgreen) writes:

>By "doesn't work" I mean doesn't work - there's NOTHING on the 12" except
>blackness (and YES it's turned on and in working condition - this is not
>a hardware problem).

It's been a while since I've done this, but it sounds like you want to
view your source on one screen and your output on another.  With Turbo
Debugger, use TDINST to configure it for dual monitor debugging.  I
think the option is called "Other Display."  Type MODE MONO.  You
should now have your DOS prompt on the mono screen.  Run TD386, your
output will be on the color screen, your source will be on the mono
screen.  No you can't reverse this as far as I know.

Good Luck!




Newsgroups: comp.os.msdos.programmer
From: psykseth@aau.dk (Seth Chaiklin)
Subject: globally defining large arrays
Summary: How do I define a global array over 64K?
Organization: Aarhus University, Denmark
Date: Mon, 21 Dec 1992 17:33:47 GMT

Dear DOS-ites,

I am trying to port a program from unix to MS-DOS (using TC 2.0).  I
have run into a problem with a large (40,000 element, unsigned
integer) array.  I get a "Too much global data defined in file" error
message.  So I figure the "trick" is to define a far pointer and then 
read in values from a file.  Well I have tried this, but without much
success.   Is this because it is not possible (I hope not)?  Or is it
because I have not mastered the right syntax (much more likely)?

[For what it is worth, I got the exact same error in the same place
when I had a friend compile the source file in BC++ 3.0, but it
compiled with no problems under OS2/2.0]

Any advice (or just undocumented code) is appreciated.

Humbly yours,

 Seth Chaiklin
 psykseth@aau.dk