[comp.sys.ibm.pc.digest] Info-IBMPC Digest V89 #103

Info-IBMPC@WSMR-SIMTEL20.ARMY.MIL (11/23/89)

Info-IBMPC Digest           Thu, 23 Nov 89       Volume 89 : Issue 103

Today's Editor:
         Gregory Hicks - Chinhae Korea <COMFLEACT@Taegu-EMH1.army.mil>

Today's Topics:
                       Re: First cluster of a file
                           march script updated
                       Windows 2.1 and serial ports
                 Re: Word Perfect <-> Word doc interchange
                   Re: CP/M Decompression Program query
                   Re: ^Z's to prt/con in Turbopascal v5
                      Re: ^Z's to Prt/Con in TP v5
              Re: Null Modem using Phone Company Equipment
Today's Queries:
                      decmate to MSDOS conversion
                   Desqview recognizing EMS problems
                          DOS 4.01 Questions
               PS/2 or 3270 -keyboard interfacable to XT?
                    Networking assistance Requested
                          Overlays in Turbo C
New Programs:
      CONV_A11.ARC - Assembly language case conversion util., v1.1

The Lending Library is available from: WSMR-SIMTEL20.ARMY.MIL (see
file PD1:<MSDOS.FILEDOCS>AAAREAD.ME details on file directories
and descriptions.)

Archives of past issues of the Info-IBMPC Digest are available from
WSMR-SIMTEL20.ARMY.MIL in directory PD2:<ARCHIVES.IBMPC>.

WSMR-SIMTEL20.ARMY.MIL can be accessed using LISTSERV commands from BITNET
via LISTSERV@NDSUVM1, LISTSERV@RPIECS, LISTSERV@FINTUVM and in Europe from 
EARN TRICKLE servers.  Send commands to TRICKLE@<host-name> (example: 
TRICKLE@TREARN).  The following TRICKLE servers are presently available: 
AWIWUW11 (Austria), BANUFS11 (Belgium), DKTC11 (Denmark), DB0FUB11 
(Germany), IMIPOLI (Italy), EB0UB011 (Spain) and TREARN (Turkey).

Send Replies or notes for publication to: <INFO-IBMPC@WSMR-SIMTEL20.ARMY.MIL>

Send requests of an administrative nature (addition to, deletion from the
distribution list, et al) to: <INFO-IBMPC-REQUEST@WSMR-SIMTEL20.ARMY.MIL>

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

Date: Tue, 7 Nov 89 11:34 N
From: <CAPPELLE%HROEUR51.BITNET@CUNYVM.CUNY.EDU>
Subject: Re: First cluster of a file

>I need to write a small, C callable routine that, given a file name,
>outputs the number of the first cluster on disk of the file. Is there
>something like a DOS/Bios call that I can Use for this purpose?

The starting cluster of a file can be found in the directory entry of this
file. A directory entry has the following format.

 Start  Description
 $00     Filename
 $08     Extension
 $0B     File attribute
 $0C     Reserved
 $16     Time created or last updated
 $18     Date created or last updated
 $1A     Starting cluster
 $1C     File size, 4 bytes
 $20
Total length is 32 ($20) bytes.

I think the bios calls (Int. $21 function $11 or $4e) do the same thing as
the function FINDFIRST in Turbo C and Turbo Pascal, they find the
directory entry, but they do not give the first cluster. Maybe the FCB
(File control block) contains the information otherwise you have to read
the full directory and look for the right information.

The information I give comes from the book :
    Advanced MSDOS programming
    Ray Duncan

Greeting, Gert

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

Date: Mon, 6 Nov 89 5:56:06 CDT
From: david@wubios.WUstl.EDU (David J. Camp)
Subject: march script updated

I have upgraded the 'march' script so that it does not attempt to remount
the archive if it is already mounted.  It is unclear why nfs allows this
to happen.  -David-

Bitnet:   david@wubios.wustl                ^      Mr. David J. Camp
Internet: david%wubios@wucs1.wustl.edu    < * >    Box 8067, Biostatistics
uucp:     uunet!wucs1!wubios!david          v      660 South Euclid
Washington University (314) 36-23635               Saint Louis, MO 63110

#! /bin/sh
if ( mount | grep wuarchive ) 
    then 
    exit 
    fi
/usr/etc/mount -o ro,soft,intr,bg,timeo=4,retry=2 
wuarchive:/archive /wuarchive/archive ; \

/usr/etc/mount -o ro,soft,intr,bg,timeo=4,retry=2 
wuarchive:/archive/mirrors /wuarchive/archive/mirrors &

[BOTH scripts broken at "retry=2" so that BITNET doesn't play with the
entire issue.  Each script is really ONE line.  gph]

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

Date: Mon, 06 Nov 89 15:34:43 MEZ
From: "M.J.Hepperle" <PACP%DS0RUS1I.BITNET@CUNYVM.CUNY.EDU>
Subject: Windows 2.1 and serial ports

In the last numbers of Info-IBMPC there were some comments on using
plotters with Microsoft Windows via the serial ports.  I had my Roland DXY
Plotter running properly with Windows 2.03 and when I switched to Version
2.1 I couldn't use it anymore.  The connection was made as well at COM1:
and on COM2:

I have read (I think is was on this list) that there are problems with the
serial port drivers in Version 2.1.  Because my plotter has both serial
and parallel connections I switched to the centronics version. The cable
seems to make no difference, I had tried two evenings on soldering n+1
different connections.

I will update to Windows version 2.11 this month and hope that I can use
the serial connection again; especially because I have my 2 parallel ports
now in use by a LaserJet and a PaintJet. Under Windows 2.1 I can use the
serial port at 300 Baud, but this is not what I intended when I bought a
386 machine.

      MARTIN J. HEPPERLE               MMMMMMMMMMMMH   HHH
     UNIVERSITAET STUTTGART            MM MMMMM MMMH   HHH
       PFAFFENWALDRING 9               M   MMM   MMHH HHHH
     D-7000 STUTTGART 80               M   MMM   MMHHHHHHH
        WEST GERMANY                   M   MMM   MMHH HHHH
                                       M   MMM   MMH   HHH
     PACP@DS0RUS1I.BITNET              M   MMM   MMH   HHH

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

Date: 5 Nov 89 19:22:47 GMT
From: dan@pipe.cs.wisc.edu (Dan Frank)
Subject: Re: Word Perfect <-> Word doc interchange

   In answer to an earlier query by chris@adms-rad.unisys.com:

   The best way I have found to interchange documents between Word and
Word Perfect is to use the ability of each to translate between DCA format
and its own.  You do lose a little in translation, in particular hanging
indents, but everything else seems to come through OK.

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

Date: Mon, 6 Nov 89 08:15:02 -0500
From: David Kirschbaum <kirsch@arsocomvax.socom.mil>
Subject: Re: CP/M Decompression Program query (Info-IBMPC #095)

>From: UNM407%DBNUAMA1.BITNET@CUNYVM.CUNY.EDU

>I've looked in the SIMCPM index and discovered some interesting files for
>my old OSBORNE 1 computer. But those files are compressed with a program
>i'm not familiar with. It seems it is a kind of squeezing, but instead of
>replacing the second character of the extension with Q there is a Z!! So
>the file names turn from ZCPR33.FOR    to   ZCPR33.FZR Can someone tell
>me, what decompression program i have to use??

I'd suspect ZOO compressed them.

David Kirschbaum
Toad Hall
kirsch@arsocomvax.socom.mil

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

Date: Mon, 6 Nov 89 14:29 N
From: <CAPPELLE%HROEUR51.BITNET@CUNYVM.CUNY.EDU>
Subject: Re: ^Z's to prt/con in Turbopascal v5

In Info-IBMPC Digest V89 #95, Robert Bloom <rbloom@apg-emh1.apg.army.mil>
asked:

>How do you output a CHR(26) in TurboPascal v5.0? ...  Something in the
>WRITE procedure doesn't allow it to pass.  I don't think I had this
>problem in v3 - the CHR(26) won't output to the screen either.

I encountered the same problem some time ago. Everything I tried to write
a code 26 to the printer failed (even untyped files). One way is to write
the graphic code to a disk file and to print this file from the dos
environment. The way I solved the problem is to write to the printer
immediately with a bios call. The next example shows which code is needed
to perform this action.

Var
  Reg : Registers; {8086 registers}

begin
      Reg.Ah := 0; {Write char to printer function}
      Reg.Al:= Out;{Character code 0..255}
      Reg.Dx := 0; {LPT1:}
      Intr($17,Reg);  {Character send to printer}
end

The disadvantage of this solution is that your printer must be connected
to the LPT1: port and I do not think you can redirect printer output.

Succes, Gert.

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

Date: Mon, 6 Nov 89 08:16:08 -0500
From: David Kirschbaum <kirsch@arsocomvax.socom.mil>
Subject: Re: ^Z's to Prt/Con in TP v5 (Info-IBMPC Digest #095)

>From: Robert Bloom  AMCICP-IM 3775 <rbloom@apg-emh1.apg.army.mil>
>Subject: ^Z's to Prt/Con in TurboPascal v5

>How do you output a CHR(26) in TurboPascal v5.0?  I'm writing a program
>that outputs graphical data and thus must be able to send all 256
>characters [CHR(0) through CHR(255)] to the printer.
...
>CHR(26) is a ^Z or EOF character.  Something in the WRITE procedure
>doesn't allow it to pass.  I don't think I had this problem in v3 - the
>CHR(26) won't output to the screen either.

>Bob Bloom (rbloom@apg-emh1.apg.army.mil)

Bob,

Use assembly language.  (Read your manual on how to produce inline code.)

  mov  ax,$001A    ;AL=Ctrl Z, AH=0 (send 1 byte to printer)
  int  $17         ;via BIOS

Alternatively:

  mov  dl,$1A      ;Ctrl Z
  mov  ah,5        ;printer output svc
  int  $21         ;via DOS

For console output:

  mov  ax,$0E1A    ;AL=Ctrl Z, AH=14 (write char as TTY)
  int  $10         ;via BIOS

Alternatively:

  mov  dl,$1A      ;Ctrl Z
  mov  ah,2        ;char output
  int  $21         ;via DOS

You'll need other code to separate the Ctrl Z's from "normal" characters,
of course.

To encode your above problem, it would look like this:

PROCEDURE Test_Prn;
  CONST
    EscScr : ARRAY[1..4] OF CHAR =
             ( #27, 'L', #10, #0);
  VAR i : Byte;
  BEGIN
    FOR i := 0 to 255 DO BEGIN
      WRITE(Lst, i:3,'->');                  {number of char}

Inline(
  $BA/>ESCSTR/   {  mov  dx,>EscStr  ;Escape Sequence}
  $BB/$04/$00/   {  mov  bx,4        ;PRN device}
  $B9/$04/$00/   {  mov  cx,4        ;4 chars to print}
  $B4/$40/       {  mov  ah,$40      ;write to file/device}
  $CD/$21/       {  int  $21}
  $8A/$96/>I/    {  mov  dl,>i[bp]   ;snarf loop counter val}
  $B9/$14/$00/   {  mov  cx,20       ;for j := 1 to 20 do}
                 {PrLup:}
  $B4/$05/       {  mov  ah,5        ;printer output svc}
  $CD/$21/       {  int  $21         ;via DOS}
  $E2/$FA);      {  loop PrLup       ;all 20 of them}
                 {;}

      WRITE(Lst,'<- ');                          {close pointer}
    END;
  END;  {of Test_Prn}

To make this work with STDOUT (console):

  change  mov bx,4   to   mov bx,2    (STDOUT)
          mov ah,5   to   mov ah,2    display output

  and remove the Lst commands, of course.


David Kirschbaum
Toad Hall
kirsch@arsocomvax.socom.mil

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

Date: Sun, 5 Nov 89 16:45 EST
From: NMILLER%TRINCC.BITNET@CUNYVM.CUNY.EDU
Subject: Re: Null Modem using Phone Company Equipment

Sometimes the best way of coming up with an answer to a stubborn problem
is to ask for help but to keep working on it oneself as well.  A little
while ago, I sent in a request for help on the pinouts for a null-modem
phone-cord connection between two computers.  Now I think I have an/the
answer.

The general idea was to make file transfers possible between two machines
that are more than a few feet apart, thus making it unnecessary to shlep
one's laptop to the second-story office after a hard day at the library.
The utility used is the excellent ZCOPY.COM from PC Magazine.  The
hardware is available from many dealers (Altec, JDR, etc.) and is nothing
more than a 25-pin or 9-pin RS-232 plug with a built-in modular jack.  The
only question was: which wires go where?  The answer turns out to be
somewhat counter-intuitive.

Here are the pinouts for connecting a 25-pin serial port with a 9-pin
serial port using a 4-wire telephone cord.

        25-pin                  9-pin

        Yellow    2             Black    2
        Black     3             Yellow   3
        Red       7             Green    5
        Green     8             Red      6

I don't know why the red and green wires are necessary, since in a
preliminary test with conventional plugs I found that switching 2 and 3
with two wires was all that was needed.  However, there it is for others
who may have a similar need.  My 100-foot phone wire works fine and the
time saved running the stairs can be spent reading the IBMPC Digest.

Norman Miller
NMILLER@TRINCC

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

Date: Mon, 6 Nov 89 09:39 MST
From: GORDON_A%CUBLDR.Colorado.EDU@CUNYVM.CUNY.EDU
Subject: decmate to MSDOS conversion

Does anyone know of a conversion pathway between Decmate files and
MSDOS???

Thanks 
Allen

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

Date: Sun, 05 Nov 89 16:16:53 CST
From: "Bill Ball" <C476721@UMCVMB.MISSOURI.EDU>
Subject: Desqview recognizing EMS problems

I am having a problem getting Desqview to properly recognize my EMS. The
program will list it as expanded "total available" but reports 0k under
expanded "largest available". The problem is that I want to have Procomm
loaded and bring up Word Perfect over it--which of course cannot be done
unless Desqview fully recognizes the EMS. From my extensive perusal of the
documentation I am guessing that this is because I cannot backfill any of
my lower 640k memory with EMS memory (at least I have been unable to get
my system to do this so far).  I would appreciate any help on the
following questions (details of hardware also follows):

Is the inability to backfill lower memory with EMS the problem?  What, if
anything, can be done?

BTW I can disable the shadow ram but it doesn't show up as extended.  Is
there a program that will allow Desqview to recognize it as extended?

System details:

Addonics MBA-286B motherboard in P.C. Brand system
   EMS 4.0 hardware drivers
   2meg total ram (Bank 0 only)
   384k shadow ram (can be disabled)
      note the Addonics manual indicates that this setup will allow
      1-2 meg of EMS memory but I have been unable to get more than
      1 meg without hanging the system.

20Mhz CPU with 16Mhz NEAT chip set
AMI BIOS ver 3.0
NEAT EMS 4.0 driver ver 1.52 in software

Desqview ver 2.2

Bill Ball
c476721@UMCVMB.MISSOURI.EDU

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

Date: Sat, 04 Nov 89 15:55:26 EDT
From: The Time Traveler <HE891C%GWUVM.BITNET@CORNELLC.cit.cornell.edu>
Subject: DOS 4.01 Questions

I have some questions concerning IBM DOS 4.01, which I recently acquired.

1) Why do I have to load file sharing (SHARE.EXE) if I have a primary
partitiion >32MB?  My disk has 1 120MB drive C:, and it gives me a warning
message.  I want to cut down on the # of TSR's I have installed, so what
would be the minimum memory configuration I could use.  Also, what do the
options mean?

[The book says "provides support for file sharing and diskette change
protection. ...Must be loaded if fixed disk partition size greater than
32MB is used.  Thought the primary purpose was to provide support for LANs
and file sharing.  gph]

2) Does anyone have an updated version of PC-mag's ANSI.COM that works
with DOS 4.0?  The CLS command doesn't clear the bottom half of a 50-line
screen anymore.  It did under DOS 3.30.

3) I have a 25Mhz machine, but the DOS SHELL runs so slowly under graphics
mode.  Is there any way to speed it up?

4) Is there an ANSI.SYS escape sequence to switch to 50-line mode?

5) Is there a way to run DOSSHELL in 50-line mode?  The /TEXT option only
recognizes the upper 25 lines.

6) What is the performance difference between BUFFERS=, IBMCACHE.SYS, and
Microsoft's SMARTDRV.SYS, which comes with Excel?  I have a 25 MHz 386,
emulating expanded memory via XMAEM.SYS (about 1.2M).  What is the best
disk caching I can use, and how memory should I apply, e.g. how many
buffers or how many KB for the disk cache?

7) What exactly is the /MSG parameter in the file CONFIG.SYS for the
primary command shell?

[Pg 140, Using DOS 4.0: /MSG parameter loads in system messages and
retains the text for all DOS parse and extended errors.  ...Only allowed
if /P is also present. gph]

8) What do the (n,m) parameters of FASTOPEN mean?  The manual doesn't tell
me anything.  

['n' specifies the number of directories or files most recently accessed
(min 10, max 999) while 'm' specifies the number of continuous space entries
(min 1, max 999) reserved.  gph]

Thanx in advance!

[If you find out, please info the Digest.  I have the same sort of
problems but I use NANSI.  gph]

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

Date:   Mon,  6-NOV-1989 12:49 GMT + 1:00
From:   "Walter Speth, Bonn " <SPETH%DBNPIB5.bitnet@cunyvm.cuny.edu>
Subject: PS/2 or 3270 -keyboard interfacable to XT ?

Hi everybody
I got a keyboard 2nd hand that looks very much like a PS/2 type
(MF-layout, F1...F12 on top line, ESC on the upper left corner etc.) It
has not got however LEDs and just 1 instead of the usual 2 large keys on
the very right column of the num-keypad (i.e. 3 small + 1 large).  A label
on the bottom of that keyboard says TYPE 3151 S/N 55-07283

I would like to use that keyboard for my XT. Anybody have an idea whether
that is possible in principle, how to do that, which driver to use or even
a schematic for the Keyboard or the connection to do ??  any hints and
objections are welcome

Walter   SPETH@DBNPIB5

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

Date: Mon, 16 Oct 89 12:36 EDT
From: <SSKRISHN%owucomcn.bitnet@cunyvm.cuny.edu>
Subject: Networking assistance...

List Users,

        We'd like some suggestions on a minor networking matter... We have
a 286 10MHz AT, and a WYSE terminal. We want to hook them up in such a way
that we can run software on the WYSE off the 286, while still being able
to use the 286 at the same time. Any idea on what software can help us
achieve this, and which environment to use? Say Xenix, Windows, etc...

        Please send the results to me or the list, as you desire... If you
send it to the list, a copy to me would be appreciated,

        TIA = Thanx in Advance!

Shriram Krishnamurthi / bitnet%"SSKRISHN@OWUCOMCN" / Bobby

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

Date: Sun, 5 Nov 89 16:11 N
From: <TORDA%HGRRUG52.BITNET@CUNYVM.CUNY.EDU> (Andrew Torda)
Subject: Overlays in Turbo C

Does anyone know how to make overlays in a Turbo C (V 2.0) program ?

I don't want the spawn... or exec... functions as they either don't clear
old bits out of memory or they replace the calling .exe file,
respectively.

Is there something obvious here?  The Microsoft linker provides for
overlays, but while it will link Borland turbo C object files, the overlay
manager is unhappy when dealing with the Borland objects.

What surprises me is that turbo pascal users tell me that there is a
compiler directive for their language that forces a subroutine to be
linked in as an overlay. I would be surprised if Borland did not provide a
similar mechanism for C users.

Andrew Torda              (bitnet   torda@hgrrug52

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

Date: Mon, 6 Nov 1989  21:50 MST
From: Keith Petersen <w8sdz@WSMR-SIMTEL20.ARMY.MIL>
Subject: CONV_A11.ARC - Assembly language case conversion util., v1.1

[--forwarded message--]
From: kirsch@arsocomvax.socom.mil

I have uploaded the following file to SIMTEL20:

<msdos.asmutl>
CONV_A11.ARC    Assembly language case conversion util., v1.1

This should be considered a Beta test version.  I've tested it extensively
on various assembly language source files (PC Magazine's source is usually
the worst for "mixed case" reserved words) .. seems to work just fine.

I have NOT made provisions for reserved words with assemblers other than
MASM.  If you want reserved words handled for TASM, CHASM, ASM86, whatever
..  add to the reserved word list in TOKENS_A.INC and have at it!

Full Turbo Pascal (v5.0) and assembly language (MASM 5.0) source is
provided.  Feedback on "special cases" that cause problems/errors would be
appreciated.  (You guys out there come up with them, one way or another!)
A segment of the code (original and converted; NOT huge huge files,
please) would be sufficient to chase the bug or special case.

If someone adds other reserved words (for TASM or whatever), you could
perhaps just upload them separately as a new TOKENS_A.INC archive to
SIMTEL20 (rather than the entire package).

Hope you find it useful .. I certainly do!  I'm AWFULLY tired of global
search-and-replace with assembly language source to get reserved word case
the way I like it.

Version 1.1 fixed a bug in TOKSTR_A (wasn't padding token strings properly
with spaces).  Added an external string uppercase function (rather than
the inline code previously used).  Tweaked the POSBM function (POS()
replacement) just a little.  Tested the POSBM speed against the FIRSTPOS
function in STRINGS.TPU and my own "brute-force" FIRSTPOS function ..
POSBM wins out again!

David Kirschbaum
Toad Hall
kirsch@arsocomvax.socom.mil

Thanks, David!

--Keith

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

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