[comp.sys.ibm.pc.digest] Info-IBMPC Digest V7 #53

Info-IBMPC@WSMR-SIMTEL20.ARMY.MIL (11/21/88)

Info-IBMPC Digest           Sun, 20 Nov 88       Volume 7 : Issue  53

Today's Topics:
    10(19) sector/track floppy disk beta test prog avail. from Germany
                   Expanded vs. Extended memory (2 msgs)
                           Extended Memory Usage
                       Enlarging the DOS Environment

Today's Queries:

                              DMA Programming
                        Educational software needed
                      Fast Hard Drives and AT Clones
                         Grammar Checking Software
                             Relation grapher
                            SWEEP-like utility

New Programs Available:

                       Directory Control, ver 1.05B
                           New Kermit Available
                     Multiple Windows in Turbo Pascal
                    New PibCat 1.5 disk catalog program

----------------------------------------------------------------------

Date: Thu, 17 Nov 88 20:11 PST
From: <MULTI%TRIUMFCL.BITNET@CORNELLC.ccs.cornell.edu>
Subject: 10(19) sector/track floppy disk beta test prog avail. from Germany

I am well aware of the problem that requires HDREAD.COM  Specifically,
MS-DOS pokes the Disk Parameter Table (Pointed to by Int 1Eh) frequently
so that modifying the number of sectors/track (offset 4) has no effect.
Like you, I have written a program so that every READ/WRITE/VERIFY call
(via INT 13h) causes offset 4 (Sectors/Track) of the Disk Parameter Table
to be overwritten by the value 10 (you use 19, I presume you can fit more
sectors on an AT floppy too...)

Please note that the BIOS is NOT responsible for the value of 9 sectors
per track, in fact you will find that the BIOS has hardwired 8
sectors/track.  It is MS-DOS that overlays the Disk Parameter Table, and
this is the reason that I am crying at Microsoft and not at the author of
my XT bios.  Thanks for the programs - they work excellently and I can fit
10 sectors/track, and you DO use a FORMAT gap of 40h (as recommended by
QUAID).  Now if only IBM and MICROSOFT would get their act together and
give us 400K/800K on floppy disk as a supported standard...

                                        <multi@triumfcl.bitnet>

ps:     HDFORMAT.EXE works excellently.  If MICROSOFT supported it then we
        could have standard, bootable 400K/800K floppy disks.  I noticed
        that you actually wrote a BPB (Bios Parameter Block) so a special
        floppy disk driver is not required...

------------------------------

Date: Thu, 17 Nov 88 18:16:01 EST
From: ejs@goldhill.com (Eric Swenson)
Subject: Expanded vs. Extended memory

One important fact that so far everyone has failed to point out is that in
order to use Extended memory, the 286 or 386 processor must be running in
its native "protected" mode.  (The 386 can also be running in "virtual
8086 mode."  Under DOS, this means that either you have to have custom
software switch the processor from "real" mode (the normal operating mode
under DOS) to protected mode, or you can use some of the available DOS
extenders like A. I. Architects' OS/286 or OS/386 to provide a protected
mode operating environment.  Under OS/2, of course, the default mode is
protected-mode and access to extended memory is transparent.  Various
software products like Alsys' ADA compiler and Gold Hill's
GCLISP/GoldWorks environment run their software in protected mode under
DOS.

------------------------------

Date: Fri, 18 Nov 88 08:49:57 +0100
From: Andre' PIRARD <A-PIRARD%BLIULG11.BITNET@CUNYVM.CUNY.EDU>
Subject: Expanded vs Extended memory

The worst confusion exists for these terms.

As correctly stated, extended memory is simply memory of a 80286 or 80386
processor that is mapped above the 1 Mb limit. Thus, it's no special kind
of memory, except that it is not accessible unless special "tricks" when
those processors are working in 8086/8088 compatibility mode and that it
is not available to these processors at all.

How to allocate extended memory in 8086/8088 compatibility mode is not
explicitly stated. The best is to use the technique that VDISK uses to
avoid overlapping storage allocated to multiple virtual disks.  If any
program fails to implement this de facto convention, it will raise
compatibility problems and fail the system when not used alone.

Expanded memory is additional memory available to *any* processor and maps
within the 1Mb address range. It is implemented by a bank switching tech-
nique that, through the control of I/O ports, makes selected pieces of
that memory appear at selected addresses in that range. Because of the
limit of that range, only a part of the expanded memory is accessible at a
time.  To provide a standard programming interface, an expanded memory
manager, EMM (or EEMM, see below), must be used. This is a device driver
that implements the LIM (Lotus Intel Microsoft) standard.

To be able to map Expanded memory somewhere, no conventional memory may
exist at that location.

Two variations of expanded memory exist.

   EMS maps in a (free) 64 Kb range by 16 Kb chunks and is supported by a
LIM 3.2 EMM.

   EEMS was designed later and maps *any* number of 16 Kb chunks
*anywhere*.  An EEMM driver is upward compatible with an EMM driver.

Consequently, EEMS is by far superior to EMS. It can in fact provide bank-
ing below the 640 Kb limit and allow a multitasking software to run
multiple *standard* programs concurrently (your C really compiles while
your text processor prints) as long as they do not write directly to the
screen memory or if they have been modified or fooled to write to a copy
of it instead (a technique common to DESQview, Topview and MS-Windows).
EMS only allows an EMS aware program to store more data (but EEMS does
that too).  But to install EEMS efficiently, one has to disable (and
that's not just unplugging!) the most of standard memory. Main boards vary
as to the mini- mum that cannot be disabled. The part of that minimum
which is above DOS and the multitasking software will only be usable by
one program at a time and will limit the size of the other programs that
can run concurrently (in the banked part only). So, check your hardware
first!

But the situation is further complicated by a new LIM 4.0 EMM standard
that can support memory of the EEMS type too. So, what can be sold now
with EMS label (a card and a driver) can be of the restricted EMS type or
of the extended EEMS one. It all depends on the hardware capabilities, not
only the software level.

Last (but not least), if you are lucky enough to own a 80386 machine,
there is no need to buy special hardware at all. The marvellous design of
that chip allows fooling the 8086/8088 mode by remapping any storage
anywhere through processor control. Consequently, an (E)EMS driver can be
designed to simulate the bank switching by this method. Furthermore, it
can also dynamically remap the screen memory where programs think they are
writing, a way to dodge this problem without any software change.

I have been using DESQview for some time now (and made a clear mind about
much of this from its excellent documentation).  While it does not provide
the security a promising OS/2 builds upon hardware (it's not its fault, it
cannot prevent programs to misbehave), its a real gem of a software. As
opposed to OS/2, it requires some technical understanding. But as opposed
to OS/2, it provides a cheap alternative and can run a host of these
programs you run just now in a much better way.  And it offers very
powerful cut-and-paste and macro capabilities to solve many practical
problems.  I sure would recommend anyone with a minimum of technical
insight a try to discover what running programs concurrently can add to
ease of use and productivity.

I think MS-Windows 2 is designed to use LIM 4.0 the EEMS way too and could
be an alternative solution to those tempted by icons and the graphic API.
But it's far more bulky, and I have been very deceived by the way 1.03
implements (nonprehentive) multitasking and by many related
inconveniences.  Is it a sign? I've run Windows under DESQview (8 of them
before a 386 would give up), but I did not manage the other way round to
be practical!

Andr).

------------------------------

Date: Thu, 17 Nov 88 16:28:52 CST
From: david@wubios.WUstl.EDU (David J. Camp)
Subject: Extended Memory Usage

     A footnote on the Ex[pt][ae]nded memory issue:  Extended memory
cannot be used by a 80286 unless it switches to real 80286 mode.  In its
default 8086 mode, I think it is unable to use Extended memory.  This
explains why Windows can use Expanded memory, but not Extended memory.

-David-

------------------------------

Date: Fri, 18 Nov 1988   14:09:02   CET
From: A0045%DK0RRZK0.BITNET@CUNYVM.CUNY.EDU
Subject: Enlarging the DOS Environment

Some weeks ago I posted a question to INFO-IBMPC how to enlarge the
default space that DOS reserves for the environment. I got some answers to
that question, but they all did not spot exactly the problem I was
referring to.

Meanwhile I found the patch myself, that I was looking for and learned
several more things about the problem which I would like to summarize to
the list.

When the first copy of COMMAND.COM starts, it allocates space for its
environment, the size of which is either 160 bytes by default or can be
set by the E:nnnn parameter on newer DOS versions (SHELL-Statement in
CONFIG.SYS).  This space is available in its entirety for SET-variables,
which are defined by the intrinsic DOS command SET.

There are also numerous utilities which help you to change entries in the
environment. Many of them try more or less successfull to access DOS's
master-copy of the environment.  This is a bit tricky, because it is not
documented where this master-copy is actually situated in memory. The
place seems to wander around in the various DOS versions, especially the
latest DOS 3.3 has it different from previous versions.

When COMMAND.COM now loads another program it passes a copy of the
environment to this program, but the length is shortened to the actually
used part| If such a program calls again another programm it usually
passes the inherited environment further to its child process.

Now when somewhere in this chain COMMAND.COM is called a second time it
constructs a new environment space from the inherited environment and its
parameters (E:xxx or the default 160 bytes), taking the greater of both
sources.

That means: If you are able to specify the E-parameter on the call to
COMMAND.COM, you can adjust the environment length to your wishes even in
this case. If not, you are stuck to the 160 bytes default or an already
filled up space. In both cases you have not many chances to add additional
variables.

This latter case usually comes up, if you push to DOS from some
application program or call programs from a File Commander (Norton, Xtree
or the like) or a Menu system, where you have no influence on the way
these programs call COMMAND.COM.

I have found a program in the PD-archives (<MSDOS.SYSUTL>ENV.ARC) which
adresses exactly this problem, where the author comes to the conclusion:

"... the only way to carry upwards an environment of the size set in
CONFIG.SYS ... seems to be to stuff it full|" His program now fills and
unfills the environment with dummy variables and it could be used to solve
my problem, ...  if it would run under DOS 3.3 (see my remarks above about
locating the master-environment).

Well, at last I was back at my original idea that a patch to change the
default allocation in COMMAND.COM could be the solution and this worked
indeed successfully.  After a little 'Code-Viewing' I found the place. I
can not give an exact location to change, because this will be different
in every DOS version, but in every COMMAND.COM I looked there was an easy
to find instruction in the initialization code of the form

           MOV some memory location!,000A

where the 000A is the default length in paragraphs (10*16 = 160 Bytes).
After changing this number to the desired length the changed value was
honoured in every call to COMMAND.COM.

Jochen Roderburg
Regional Computing Center
University of Cologne
Robert-Koch-Str. 10                    Tel. :  49-221/470-4564
D-5000 Koeln 41                        Email:  A0045 @ DK0RRZK0.BITNET
West Germany

------------------------------

Date: Wed, 16 Nov 88 08:30 CST
From: <SILBER%TAMCHEM.BITNET@CUNYVM.CUNY.EDU>
Subject: DMA Programming

     Does anyone 'out there' have, or know where to obtain, information on
how to program the Intel 8237A-5 DMA controller chip used in the AT?  I
have a streaming mag tape drive that uses DMA, and need to program it at
the block I/O level in order to read tapes written by a different machine
on the same type of media.  The IBM Technical Reference Manual barely
acknowleges the existance of DMA, and the tape manual cryptically tell me
to "set up the DMA registers and access location BASE+2" in order to
initiate the DMA transfer.

advTHANKSance,
Steve Silber
Texas A&M University
Department of Chemistry

Reply to either SILBER@TAMCHEM
             or SILBER@CHEMVX.TAMU.EDU

------------------------------

Date: Fri, 18 Nov 88 19:05 CST
From: <RAYMOND%AUDUCVAX.BITNET@CUNYVM.CUNY.EDU>
Subject: Educational software needed

Hi,
 Anybody out there have access to public domain software for the IBM PC...
I am mostly interested in educational programs, such as: 1) A chemistry
tutorial    - preferably highschool and up.  2) A physics tutorial      -
highischool and up.  3) An electronics tutroial - Highschool and up.  4)
Math tutorials: a) Trig.  b) Calc.  C) Alg.  I have access to several
configurations AT's and XT's with CGA, EGA, and Herculies graphics.

                                      Thank you,
                                      Raymond M. A. Erdey
                                      RAYMOND@AUDUCVAX

------------------------------

Date: Thu, 17 Nov 88 9:18:34 EST
From: Dave Swindell <dswindel@cic.cs.net>
Subject: Fast Hard Drives and AT Clones

I have a question about fast hard disks.  I'm in the market for a fast (12
MHz or better) and inexpensive AT clone.  I want to get a fast hard drive,
where "fast" is defined as having optimal throughput.  Initially, I had
assumed I should purchase a Seagate 251-1 40MB drive with a rated time of
28ms.  However, I have also heard that an RLL controller with an
interleave factor of 1:1 matched with a 40ms RLL disk can provide better
throughput than a 28ms MFM controller.  Looking at a review of 40MB hard
disks in the July 88 issue of Byte, they rated a RLL-controlled 40ms
access time drive as the best per- former.

So, my question is, what is the better option, a disk with fast access
time, or a RLL disk with a fast controller?  I would also be interested in
anyone's experience with the Zeos international AT clones; their price
looks rather attractive.

Thanks,

     -- Dave Swindell
        BBN Systems and Technologies
        Internet: dswindell@bbn.com

------------------------------

Date: Thu, 17 Nov 88 18:37:59 EDT
From: Donalee Flaningam <3RLRB2U%CMUVM.BITNET@CUNYVM.CUNY.EDU>
Subject: Grammar Checking Software

I think I am interested in getting a grammar checking package.  I know of
two that are available:  Right Writer and Grammatica 3.  Has anyone used
these packages?  In particular, I am interested in how effective they are
and how easy they are to use.  I would be using it in conjunction with
WordPerfect 5.0.  Is there some other package that would be a better
choice?

======================================================================
3RLRB2U@CMUVM.BITNET            WHEN *IT* IS FRUSTRATING YOU, REMEMBER:
DONALEE FLANINGAM                     THE ATTENTION SPAN OF A COMPUTER
COMPUTER SCIENCE DEPARTMENT           IS ONLY AS LONG AS ITS ELECTRICAL
CENTRAL MICHIGAN UNIVERSITY           CORD.
======================================================================

------------------------------

Date: Thu, 17 Nov 88  18:25:58 EST
From: Mitch%UMASS.BITNET@MITVMA.MIT.EDU
Subject: Relation grapher

I've been looking for a CGA plotting program which can graph relations,
that is, F(X,Y)=0. Therefore, if you give it 'X^2-Y^2-1', it will plot a
circle. Can anyone help me find this program?

                              Mitchell Dickerman

------------------------------

Date: Thu, 17 Nov 88 11:39:08 EST
From: rpk@goldhill.com (Robert Krajewski)
Subject: SWEEP-like utility

Is there something out there that works like SWEEP (i.e., executes a com-
mand in the current directory and all its subdirectories, recursively),
but allows the command to refer to the current directory ?

In particular, I'd like to refer to the directory RELATIVE to the
directory in which I executed the command.  Suppose I want to make an
archive using the same directory structure as the unarchived files.  It
would be very con- venient to say something like:

     cd \sources
     sweep arc a d:\archive\=r\arc.arc *.*

where the relative directory names would be substituted for =r.  For ex-
ample, if \sources had subdirectories A, B, and C, and B had
subdirectories OLD and NEW, the following strings would be substituted for
=r:

     ""    (empty, the directory in which SWEEP started running)
     A
     B
     B\OLD
     B\NEW
     C

------------------------------

Date: Fri, 18 Nov 1988  21:41 MST
From: Keith Petersen <W8SDZ@WSMR-SIMTEL20.ARMY.MIL>
Subject: Directory Control, ver 1.05B now available from SIMTEL20]

From: Peter Echerick <esheric at sandia-2.arpa>

Now available via standard anonymous FTP from SIMTEL20:

Filename             Type   Bytes      CRC

Directory PD1:<MSDOS.DIRUTL>
DC105B.ARC                BINARY      14165  0889H

--------
                 DC - Directory Control
                      Version 1.05
                   by Peter Esherick   <ESHERIC@SANDIA-2.ARPA>


Purpose:  To allow selective copying, moving, deleting and browsing
          of files displayed in a directory listing.

Remarks:

   This program is closely based on the CO and DR programs, both written
by Michael J. Mefford and published in PC Magazine, vol.6, #17 and #21,
1987.  I have combined features from these two programs and also added a
number of new features of my own.   DC let's you view a directory, mark
files for copying, moving, renaming or deleting.  You can also view a file
(like LIST) or view a different dir by typing enter with the file
highlighted.  There are a lot of subtle improvements over the original CO
program that may not be immediately obvious like how many times does the
computer switch between drives in copying a file from a: to b:.

------------------------------

Date: Thu, 17 Nov 1988 10:16:21 EST
From: Christine M Gianone <cmg@cunixc.cc.columbia.edu>
Subject: New Kermit Available

Kermit Versions, Listed by system, as of:
Tue Nov  1 15:46:01 EST 1988

Prefix,                 Operating  Program   Program  Released
 Tape  Machine          System     Language  Version  yy/mm/dd  Contributor

CKO B  IBM PC/AT & PS/2 OS/2       C            1.0b  88/10/10  C.Adie, UK


Kermit files may be obtained over networks and by mail order.  On the
Internetwork, use FTP to log in to host CUNIXC, CUNIXC.CC.COLUMBIA.EDU, a
VAX 8700 running UNIX (Ultrix).  The IP host number is 128.59.40.130.  You
should be able to to FTP to CUNIXC, login as user ANONYMOUS (any password)
and GET the desired files.  The Kermit files are in directories kermit/a,
kermit/b, kermit/c, kermit/d, and kermit/e.  You can also get Kermit files
over BITNET/EARN; to get started send a message with text HELP to KERMSRV,
the Kermit file server, at host CUVMA.  For detailed instructions, read
the file k1/aanetw.hlp (AANETW HLP on KERMSRV).  To order by mail, request
a complete list of Kermit versions and an order form from Kermit Distribu-
tion, Columbia University Center for Computing Activities, 612 West 115th
Street,

New York, NY 10025 USA.

First GET the file ckaaaa.hlp

------------------------------

Date: Sat, 19 Nov 1988  22:09 MST
From: Keith Petersen <W8SDZ@WSMR-SIMTEL20.ARMY.MIL>
Subject: Multiple Windows in Turbo Pascal

Filename             Type   Bytes      CRC

Directory PD1:<MSDOS.TURBOPAS>
WNDW_MSJ.ARC              BINARY       6662  3522H

WNDW_MSJ.ARC    - Turbo Pascal multiple windows From Micro/Systems 
	Journal, Nov & Dec 88.  Two source code files demonstrating
	multiple windows (simple and multiple-tasking).  Runs nicely 
	when compiled with TP3.0, should be ok in 4.0, 5.0.

          David Kirschbaum
          Toad Hall
          kirsch@braggvax.ARPA

Thanks, Dave!
--Keith

------------------------------

Date: Thursday, 17 November 1988  21:48-MST
From: Phil Burns <PIB@nuacc.acns.nwu.edu>
Subject: New PibCat 1.5 disk catalog program

I uploaded a revised version of my PibCat program to SIMTEL20.

Filename             Type   Bytes      CRC

Directory PD1:<MSDOS.CATALOG>
PIBCAT15.ARC              BINARY      86955  BBCAH

PibCat is a disk cataloguer that can also catalog the contents of .ARC,
.DWC, .LBR, .MD, and .ZOO files.  The program and code are public domain.
The code is intended to be compiled with Turbo Pascal v5.0.

I added a disclaimer to this version, such that I would take no
responsibility for anyone using the .ARC processing code in PibCat in a
commercial program.

-- Phil "Pib" Burns
   Northwestern University
   Evanston, IL

   PIB@NUACC.BITNET         (BITNET)
   PIB@NUACC.ACNS.NWU.EDU   (ARPANET)

------------------------------

************************
End of Info-IBMPC Digest
-------