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

Info-IBMPC@WSMR-SIMTEL20.ARMY.MIL (02/18/89)

Info-IBMPC Digest           Sat, 18 Feb 89       Volume 89 : Issue  26

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

Today's Topics:
               Hercules Card Screen Dump Methods Resume
                Data acquisition for IBM PS 2 model 80
                            Anonymous ftp
               A/D Converter Sampling Rate for PC-XT
                  Re: Changing Interleave Values
                          Millisecond timing
        New PKWare PKZIP archiver now available from Simtel20
                            Sanyo MBC-555
                            Serial printer
        TIDY - Fortran renumber/clean pgm uploaded to Simtel20
       TK_LS.ARC - Timonthy Kay's "ls" for MS-DOS w/source v1.0
                           Very Slow Drive

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

Date: Thu, 16 Feb 89 11:12:47 est
From: Darren Kinley <kinley%bond.crim.ca@RELAY.CS.NET>
Subject: Hercules Card Screen Dump Methods Resume

	Some time ago a made a request to this list for information on how
to do a screen dump of a PC with a Hercules card. I would like to post the
responses to my query, and also would like to thank the people who took
the time to answer me.

> Hello.  I need to create a screen dump of a PC/AT with a Hercules card
>in a file so that it can be manipulated and eventually sent to a laser
>printer (not connected to the PC).  Does there exist a (possibly
>memory-resident) program to do this?  In what format is the resulting
>file?
 
i.
 When i want to do something like that I just capture the screen with
the import feature of the sidekick notedpad.

ii.
 Two suggestions: A program called Pizazz which is memory resident
(replaces the prtscr, although still allows you to use it) and performs
excellent screen dumps onto printers or files, but I don't know the
format of the resulting file. Other suggestion is good old Turo Pascal
4.0 (5.0, 5.0, my kingdom for TP 5.0) which can (Via getpixel(x,y) )
read the screen and then you can write the file in any format you like.
TP 4.0 is capable of terminating and staying resident, but I don't know
much about this.

iii.
 _PC_World_ had just such a utility in it a few months back.  Called
PRN2FILE, it is a memory-resident utility that directs all PRN output,
such as the screen dump data, to the disk file of your choice.  Output
format is ASCII.  I've used it extensively to do documentation for Lotus
1-2-3 screens.  If you want a copy I can send it.  I know I have the
executables, but I may also have the ASM source.  If you want it, let me
know how you can handle it -- I'd recommend a .ARC file.

iv.
 I've been using the program SCRNDUMP that I downloaded from Compu$erve a
while back, and it works very well.  It gives you a choice of Hercules,
EGA & CGA screens, and Epson/IBM, C.Itoh 8510, and Okidata 92 and 192
printers.  You then simply use PD1:<MSDOS.SYSUTL>PRN2FILE.ARC to save 
it to disk.  As long as the laser printer can emulate an Epson or IBM 
printer, you're home free.  BTW:  I see there's a file 
PD1:<MSDOS.SCREEN>HPRTSC.ARC that seems to do something similar.  
I haven't used it at so I can't vouch for it.

v.
 Regarding your request for info on a Herc dump routine:
  
 Some time ago I wrote a TSR to replace PRTSCRN with a routine to take 
hercules graphics, and write a file in TEK format (for uploading to an 
LN03+ on our VAX).  It works, but has problems with non-reentrant use of
DOS interrupts, thus it crashes if called from the DOS prompt or from a
program using DOS input routines.  Many of the occasions I have had for 
using it have had no problem.  When it does crash, it generally only does
on return (i.e. after the file is written), so it is ok for getting that
important screen dump out, but not so hot for regular everyday use.  
Since it is buggy, I never released it to general public domain.  If you 
still want it, however, let me know.

vi.
 Hi there, in the ibm digest #13 i rea u needed a TSR to dump ur hercules
screen to disk.  I wrote a pgm wich does just that. (on cga and ega) 
 Let me know if you want to have it...  

Question Background:
	The research center for which I work uses micros primary for
document generation (Macintoshs only) and consequently our PC/XT, PC/AT,
and a few PS/2 have very little software and very little in the budget. As
a result comercially available solutions could not be considered. This
ruled out the possibilities of Sidekick and Turbo (oh, anyone with
non-authorized copies at work will have to answer to the VP). I was very
interested in SCRNDUMP from Compuserve but being a first time user of this
service, I was unable to find it. I finally accomplished my task with
PRN2FILE and HPRTSC from SIMTEL20.ARPA in the directory
PD1:<MSDOS.SCREEN>. PRN2FILE redirects PRN: output to a file, and HPRTSC
performs a Hercules dump (ascii or graphics) with Epson escape sequences.

	I unfortunately found out that our Imagen 7320 laserwriter which
emulates a whole canoe full of different printers emulates Epson printers
very well. That is to say, outputs looks as though it was printed on a dot
matrix. Also, this emulator is based on a 1984 document for the FX+, and
as a result the extended graphics character set is not supported.
Documents containing these characters have to be printed with the IBM 5152
emulator.

	Again, thank you to everyone.

	Darren Kinley
	kinley@crim.ca
        Centre de Recherche Informatique de Montreal

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

Date: 16 Feb 89   19:13 EDT
From: FAC2285%UOFT01.BITNET@CUNYVM.CUNY.EDU
Subject:  Data acquisition for IBM PS 2 model 80

Recently I had enquired on the net about software for data acquisition on
the PS2 model 80 with DT 2905 (A/D board). Thanks to all who replied.
Everyone suggested that I should contact the suppliers of ASSYST. But
unfortunately I had contacted them before I made this enquiry on the net,
and at that time they were still in the process of developing the software
for microchannel architecture. Now I'm burning the midnight oil in trying
to write my own!

I once again thank all.

-Kumar

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

Date:    Thu, 16 Feb 89 12:55 EST
From:    <HENDRIKX%QUCDN.bitnet@cunyvm.cuny.edu>
To:      i-ibmpc@uiucvmd
Subject: Anonymous ftp

   I don't know if this is the right place for this question, but here it
goes anyway: For the short time that I have been using bitnet, I have
read several dicussions in which they say that it is possible to download
documents via anonymous ftp and they give a series of numbers (eg:
(18.72.0.3)), I guess that these numbers must be some kind of address. The
question is, what is ftp? How does it works? Can it be accessed (?)
through bitnet and what about through your personal computer?

Thanks!

  ***> Replies to <HENDRIKX@QUCDN> <***

    'I only know that I know nothing'  - Socrates

[Well, can WSMR-Simtel20.army.mil be accessed through BITNET?  Not unless
your host is also on the internet.  Hosts that are strictly on BITNET
do not have access to the MILnet/ARPAnet...

However, It is possible for you to access the archives through the 
file server at RPICICGE.bitnet.  I've sent you instructions.

The series of numbers (Simtel20's address is currently [26.0.0.74]) 
provides a 'logical' address for the host.  This series of numbers 
identifies the network (26 ==> MILnet), and in this case, the PSN (74).  
Around the 20th of March, the address will change to [26.2.0.74].

Hope this helps.  gph]

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

Date: Thu, 16 Feb 89 23:33 EST
From: V126KF7Y@ubvmsc.cc.buffalo.edu
Subject: A/D Converter Sampling Rate for PC-XT

    I am considering interfacing an A/D conveter to an IBM PC to be used
for data acquisition.  Considering the IBM PC's overhead, what is the
fastest sampling rate that I can obtain?  I would like to use this (hope
fully) for some kind of speech processing.  Would it be better perhaps to
design a separate microprocessor controlled system and link it to the IBM?
Could someone provide recommendations and direct me to the proper board.  
Thank You.

						James Sicolo
						SUNY Buffalo
						v126kf7y@ubvmsc

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

Date: 16 Feb 89 15:49:08 GMT
From: crdos1!davidsen@uunet.UU.NET (bill davidsen)
Subject: Re: Changing Interleave Values

In Info-IBMPC Digest V89 #21:

| There are a couple of packages that will allow you to change the
| interleave without having to perform a low level format.  The only one I
| can remember off the top of my head is OPTUNE by Gazelle Systems (standard
| disclaimer).

  I think what you mean to say is that they perform an incremental low
level format. Since the interleave is set only by low level formating, it
*must* be done. What these programs do is to read the data on one track,
low level format just that one track, and rewrite the track. This is all
very well unless (a) a bad sector pops up during the operation, or (b)
your system goes down while the data from a track is valid only in memory.

  There are some ways to get around this, but I personally would take a
backup before running one of these programs. This advice applies to
defragmenting (disk organizer) programs, also.  

-- bill davidsen
(wedu@ge-crd.arpa) {uunet | philabs}!steinmetz!crdos1!davidsen 
"Stupidity, like virtue, is its own reward" -me

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

Date: Thu, 16 Feb 89 08:46:24 CST
From: Don Branson <C08922DB%WUVMD.BITNET@CUNYVM.CUNY.EDU>
Subject: Millisecond timing

>time measurements on a PC is a problem for us, to. We need a millisecond
>timer for a physical experiment (MICHELSON Interferometer).

Walter,

  If I were going to do this, I would probably program the timer chip (the
8253) at a faster rate and then just attach an interrupt handler to int
08h. I think you could re-program it to generate a tick about 5000
times/sec, then have it increment a counter somewhere (perhaps in the
inter-program area), then your application could set this counter to zero
to start, then when the interval is over, check the counter and record the
value.

  The timer handler should chain to the old int 08h handler at the same
rate, so keep a counter and chain to the old handler at 18.2 times/sec
(approx.) This is done so that your real-time clock maintains the correct
time. Note that on those times that you don't chain to the old handler,
you need to tell the 8259 chip that you are done processing the interrupt.
This is done (I believe- I don't have my manual sitting here) by
outputting a 0x20 to port 0x20.

  If this sounds like the way you want to go, I would recommend getting
Peter Norton's Programmer's Guide to the IBMPC. It has a lot of info on
programming the 8253 chip. He has some BASIC code to program the 8253, but
note that the "magic number" he uses in the code is not quite correct, but
the one in the text is correct.

I do have some code that shows how to do this (in C), but I'd need to up
load it to the mainframe. Let me know if you'd like to see it.

In your case, you will almost definitely want to program your handler in
assembler for the best speed. An AT level machine should be able to keep
up with no problem.

Don Branson
Washington University Information Systems
C08922DB@WUVMD

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

Date: Thu, 16 Feb 1989  15:24 MST
From: Keith Petersen <w8sdz@WSMR-SIMTEL20.ARMY.MIL>
Subject: New PKWare PKZIP archiver now available from Simtel20

[--forwarded message--]
From: "Leslie C. Brown" <lbrown@BRL.MIL>

I've uploaded PKWare's new ZIP archiver PKZ090.EXE to Simtel20.  I did a
couple of comparison tests on the same file YAMDEMO.EXE.

PKPAK  used squashing with a 30% reduction
PKZIP with default was also 30% reduction.
PKZIP with factor 3 gave 40% reduction
PKZIP with factor 4 gave 41% reduction.

I didn't do any timing but it is does slow down with the higher
compression factors.

---

[--forwarded message--]
From: Alan Ariel <1052P%NAVPGS.BITNET@CUNYVM.CUNY.EDU>
Re:   PKZ090.EXE

Here's a copy of a message I uploaded to some of the local BBS on a
comparison:

I just thought I might enlighten a few people with some stats on PKZIP.
There's a large software package on my hard disk.  I don't use it all of
the time, so I keep it ARC'ed up and UNARC it when I need it.  Here is a
comparison of PKPAK and PKZIP using the extra compression feature:

Uncompressed: 1,088,419 bytes
PKPAK:          765,177 bytes (29.7% Compression)
PKZIP:          636,923 bytes (41.5% Compression)
 (used with -ea4 and -eb4 parameters)

It ran a lot slower, but space is more critical than time.  And, if PKZIP
is run without extra compression, it's execution time is comparable to
PKPAK.

This one was worth waiting for !
                                   -Alan

Thanks, Les and Alan.

PKZ090.EXE is now in the PD1:<MSDOS.ZIP> directory.

--Keith

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

Date: Thu, 16 Feb 89 16:24:55 GMT
From: UG1459%SYSE.SALFORD.AC.UK@CUNYVM.CUNY.EDU
Subject: Sanyo MBC-555

Calling all IBM old-timers (Sanyo MBC-555)

Yes it's true I have a Sanyo MBC-555 IBM-PC (in)compatible. However I do
use it and would like to add a hard disk. Does anyone know how I would
perform this feat? The connector is not quite standard XT so will I need a
custom interface? Just as importantly is the software available, if it is,
where do I get it and how much is it?

In addition does anyone know of an easy way of expanding the Sanyo past
the 256K configuration?

Any comments will be gratefully recieved.


UUCP:               ...!ukc!salford!syse!ug1459
DARPA:              ug1459%syse.salford.ac.uk@ucl-cs
JANET:              ug1459%uk.ac.salford.syse

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

Date: Thu, 16 Feb 89 19:20 UT+1
From: "GERBEN POSTMA 015 - 567934" <DDGMPOS%HDETUD51.BITNET@CUNYVM.CUNY.EDU>
Subject: Serial printer

Hi Neil!

Yep, serial printers will often cause problems. However the solution isn't
too hard if you know the way. Once I helped out somebody connecting a
Digital LA50 printer to an IBM PC-XT, perhaps it's the same for the LN03.

First some general RS-232-C info.

In the early 1960s the Electronic Industries Association developed in
conjunction with the Bell system a standard for asynchronous data
communications between the Data Communications Equipment (DCE) and the
Data Terminal Equipment (DTE). This standard defines a 25-pin connector
interface and specifies the voltages to be used and the way the lines
should be used.  It's called RS-232-C, where RS stands for Remote Serial
and the 'C' reflects the latest revision.

Serial communication consists of two "parts": the actual transmission of
the data and the control of this data flow, called the handshaking (from
here HS). This HS can be done either by the software, using ^S (also
called XOFF or DC3) and ^Q (XON or DC1) as a part of the data flow, or by
the hardware, using specific lines of the interface.

Quite essential is the difference between a DTE (e.g. your PC) and a DCE
(e.g. your modem). If both ports are defined the right way you can simply
connect the PC to the modem using a 1-to-1 cable. Definition is such, that
any input-pin on the modem corresponds to the equally numbered output-pin
on the PC, and vice versa. So far so good.

Now lets introduce a few minor contraventions. However the RS-232-C
defines a 25 pins male connector on the DTE and a female on the DCE, thus
needing a male-female cable, some manufacturers equip their PC with a
female connector.  The reason for this is that a male connector is more
vulnerable and it's easier to replace a cable than a PC mounted connector.
Next to this often 9 pins connectors are used instead of the DB-25
connector.

The difference between the 9 and 25 pin assignments are shown in the table
below. Note that these definitions are from the DTE point of view.

    9   25  pins connector                to/from DTE

    1    8     DCD  Carrier Detect            to
    2    3     RXD  Received Data             to
    3    2     TXD  Transmitted Data          from
    4   20     DTR  Data Terminal Ready       from
    5    7     GND  GrouND                    both
    6    6     DSR  Data Set Ready            to
    7    4     RTS  Request To Send           from
    8    5     CTS  Clear To Send             to
    9   22     RI   Ring Indicator            to

Now lets get printer specific, and introduce more problems...

The problem with serial printers is that these are defined as a DTE! So we
have to connect two DTEs to each other. This dates from the older
terminals, which were printing terminals, rather than videoterminals.
Obviously 1-to-1 connection will fail. How to make your cable depends on
the LN03 printer and which HS you want to use. Minimum printer cables for
either software or hardware HS CAN be made using three wires only. However
I would discourage the use of software HS on a printer, because MOST
software does not use software HS for printing.

Now find out (somewhere in your printer manual) which lines are used in
what way. Most probably your printer uses line 11 "Busy" (not a standard
RS-232-C line) or 20 "DTR" for the hardware HS.

I'll give you a few examples how it works.

The Digital LA50 printer puts both lines DTR and RTS high indefinitely
after power up, and uses the Busy line for the HS. We can build a suitable
minimum cable, capable of both hardware and software HS, as follows:

  LA50                            PC          comments

  TXD    2  ---------------->  3  RXD  2      line used for software HS
  RXD    3  <----------------  2  TXD  3      data line and software HS
  RTS    4                                    we don't need this line
  GND    7  -----------------  7  GND  5      always connect GND line
  BUSY  11  ---------------->  5  CTS  8 -,   line used for hardware HS
  DTR   20                     6  DSR  6 -'   we don't need this line either

        25                    25       9  pins connector

Note that at the PC side DSR and CTS are short-circuited. This is because
the PC won't start sending as long as one of these lines is low.

If you want a software HS cable only, you can leave out the Busy-->CTS
line and short circuit the DTR-DSR-CTS at the PC side (or RTS-DSR-CTS or
DTR-DSR and RTS-CTS).

If you want a hardware HS cable only, just leave out the LA50 TXD-->IBM
RXD line.

So far the Digital LA50. A lot of printers work a little different and use
DTR (sometimes connected to BUSY within the interface) for the HS and are
equipped with a DSR, resulting in the following scheme.

printer                           PC

  TXD    2  ---------------->  3  RXD  2      line used for software HS
  RXD    3  <----------------  2  TXD  3      data line and software HS
,-DSR    6                                    we don't need this line
| GND    7  -----------------  7  GND  5      always connect GND line
|                              5  CTS  8 -,
'-DTR   20  ---------------->  6  DSR  6 -'   line used for hardware HS

        25                    25       9  pins connector

Instead of short-circuiting the printer DSR with the DTR it can be
connected to the PC DTR, needing an extra wire.

The last example is hardwiring 2 PC's (null modem) using software HS. This
can be very useful if you have to transfer files between two PC's with non
compatible disk formats.


  3  TXD   2  ---------------->  3  RXD  2
  2  RXD   3  <----------------  2  TXD  3
,-7  RTS   4                     4  RTS  7-,
'-8  CTS   5                     5  CTS  8-'
,-6  DSR   6                     6  DSR  6-,
| 5  GND   7  -----------------  7  GND  5 |
'-4  DTR  20                    20  DTR  4-'

  9       25                    25       9  pins connector

Some additional notes.

- Some printers (e.g. the LA50) need the lid to be closed to work
- Baud rate, stop bits and parity must be set correctly, i.e. in agreement
  with each other at both sides of the connection
- Sometimes a dipswitch on the printer determines whether hardware or
  software handshake is used
- Sometimes another dipswitch determines whether the busy line should go
  high or low when busy (the normal case is busy=low and ready=high)

Aloha!

Gerben M. Postma
Delft University of Technology
Bitnet:   DDGMPOS @ HDETUD51

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

Date: Thursday, 16 February 1989  12:37-MST
From: forags@violet.berkeley.edu
Subject: TIDY - Fortran renumber/clean pgm uploaded to Simtel20

Now available from Simtel20:

Filename			Type	 Bytes	 CRC

Directory PD1:<MSDOS.FORTRAN>
TIDY.ARC			BINARY	159633  C937H

TIDY is a program for renumbering and cleaning up FORTRAN source code.  It
is derived from a program written in 1966 at the Air Force Weapons Lab.
It is set up for MS-DOS machines, but is easily converted to UNIX or to
IBM CMS systems.

Al Stangenberger                    Dept. of Forestry & Resource Mgt.
forags@violet.berkeley.edu          145 Mulford Hall - Univ. of Calif.
uucp:  ucbvax!ucbviolet!forags      Berkeley, CA  94720
BITNET: FORAGS AT UCBVIOLE          (415) 642-4424                      

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

Date: Thursday, 16 February 1989  10:29-MST
From: tim@csvax.caltech.edu (Timothy L. Kay)
Subject: TK_LS.ARC - Timonthy Kay's "ls" for MS-DOS w/source v1.0

Now available from Simtel20:

Filename			Type	 Bytes	 CRC

Directory PD1:<MSDOS.DIRUTL>
TK_LS.ARC			BINARY	 21566  38C6H

This is my version of ls.  It combines some of the features of Unix ls
with some of my ideas of what Unix find should be able do.

Copyright 1989 Timothy L. Kay -- non-commercial use permitted

Please feel free to use this program, but only for non-commercial use.  I
am interested in receiving suggestions as well as modified source code.  I
will try to keep an up-to-date version of the code available to all
interested users.

If you type "ls -?" you will see the following.

 Usage: ls [-c] [?] [--] [-?] [-1FRabltv] [-f[abis[#]]] [file ...]
    where
      -,? print this message      c print copyright message
      1   print files in single column with path prepended
      F   enable inverse video for directories (or SET TERM=ansi)
      R   recursively list contents of subdirectories
      a   list all (including hidden and system) files
      b#  print files in single column preceded with %i, i=1..#
      f   find files that match particular criteria
          a#  find files that contain > #% ASCII text (default 90%)
          b   find files with extension .bak
          i   find files with archive bit on
          s#  find files smaller than # bytes (default 10000 bytes)
      l   long format includes file date, time, size, attributes
      t   list files in time order rather than alphabetic
      v   verbose details of find decisions
 
   examples
      ls                list files in current directory
      ls -Rfas1000 /    lists all ASCII files smaller than 1000 bytes
      ls -vRfas1000 /   same but explains why some files do not qualify
      ls -Rfas / | zoo aI /backup   backs up all ASCII files of reasonable size
      ls -b2 *.c > temp.bat ; temp cc -DMSDOS   compile all .c files

Timothy L. Kay
Caltech, 256-80
Pasadena, CA  91125
tim@csvax.caltech.edu

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

Date: Thu, 16 Feb 1989 15:38:51 EST
From: Kalman Schecter <kms@cunixb.cc.columbia.edu>
Subject: Very Slow Drive

  I have an Seagate 30MB drive which runs very slowly.  When I perform a
disk seek with Vseek it gives me an average reading of 91ms.  Although I
use a disk cache and optimize frequently, it is still painfully slow.  I
have gone so far as to do a low-level format to readjust the interleave to
3 and the step pulse rate to 13 microseconds, but there was no
improvement.  The controller is an Adaptec ACB-2072 for which I have the
installation documentation.

     I have tried to use some of the interleave adjustment utilities on
SIMTEL but none of them work, claiming that the drive is not supported (it
is formatted with 25 sectors per track).  I have heard about RLL and MFM
controllers, but to be honest the difference escapes me (the controller
instructions say "either MFM or RLL encoding can be used").  If anyone has
any suggestions (aside from throwing out the drive) they would be
appreciated.  Thanks in advance.

KMS

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

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