[fa.info-kermit] Info-Kermit Digest V3 #16

SY.FDC@CU20B.CC.COLUMBIA.EDU (Frank da Cruz) (09/07/85)

Info-Kermit Digest         Fri,  6 Sep 1985       Volume 3 : Number 16

Today's Topics:

             Downloading .EXE Files Which Destroy Monitor
                           CR/LF Processing
   How to Make Kermit Work over European Packet Switching Networks
                          Kermit on NEC 8001
                        Concurrent DOS Kermit
                  New BITNET KERMSRV Command Syntax
       Kermit for Japanese Microcomputers and NTT Lisp Machine
                     Kermit for Sharp PC 1500 A?

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

Date: Thu, 15 Aug 85 11:58:49 pdt
From: reynolds@AMES-NAS.ARPA (Don Reynolds)
Subject: Downloading .EXE Files Which Destroy Monitor

Welcome to a new user of Kermit on an IBM compatible!  We like the frog
a lot here, but he sometimes croaks!  This may not be your problem, but
the symptoms happened to me before.  By mistake I used the host command:

	kermit s filename.ext

which sends 7-bit ascii text files, but will not send 8-bit (image mode)
executable (.COM & .EXE) files, Wordstar format files, or other binary
files.  The command for image mode is

	kermit si filename.ext

If you try it without the "i" switch it really trashes the files, and gives
the results Brzozowski states a couple messages down from your message.
However, the file size still looks reasonable using the DOS DIR command.

Question for the net:

People have noted in this digest problems burning out the IBM monochrome
display trying to execute such a file.  I wonder if something like Norton's
Utilities, U-File, or some other utility that looks at disk sectors or one
that looks at memory can easily look at the header to see if the file has
been trashed?  Will DEBUG work?  What do you look for?  Note that I person-
ally have only academic interest since we have mostly color monitors here,
but someday I may have to download executables to a monochrome system.

Best,
Don

[Ed. - The Kermit protocol allows file transmission in both text and binary
mode.  Text mode means that any necessary conversions are done on the file
-- by both the sender and the receiver -- to make the file useful and
readable on the target system.  Binary mode means no conversions are done.
Unfortunately, most Kermit programs have to rely on the user to specify
whether a file is text or binary, because (a) the sending Kermit program
usually can't tell because most systems (e.g. MS-DOS) don't provide this
information in the file descriptor, and (b) the receiving Kermit certainly
doesn't know (unless the sender informs it using the almost universally
unimplemented Attribute packet).  Now, it might be observed that text files
tend to contain bytes whose high-order bits are all off, whereas binary
files tend to have many bytes with this bit on.  However, for the sending
Kermit program to determine whether a file is binary by this method would
require it to make a preliminary pass through the file (the WHOLE file if it
turns out to be text) which would be undesirable for many reasons (e.g.
timeouts when files are long).  Many operating systems require executable
programs to be in a certain format or to be tagged in a certain way, and
will therefore not attempt to execute text files.  But since not all OS's
guard themselves in this way, users should also take precautions.  On a
case-by-case basis, heuristics can be added to some of the Kermit programs
but they will never be foolproof.  For instance, PDP-11 Kermit allows the
use to specify a list of filetypes to determine the mode of the file -- but
how can it know whether a .COM file is a DCL command file (text) or, say, a
CP/M-80 program image (binary)?]

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

Date:     Fri, 23 Aug 85 15:06:18 BST
From:     Chris-on-Fridays <cjk@ucl-cs.arpa>
Subject:  CR/LF Processing.

Info:

     Is there an accepted policy about when Kermit should and should not do
CR/LF (logical-end-of-record) processing?

     Obviously it is wanted in text-files and not in binaries.  By default
any 7-bit file is probably text, and any file sent as 8-bit image is
probably not; but what assumption do you make if 8th-bit-prefixing is
switched on?

     If the answer to the previous is "binary", shouldn't Kermits in general
make it rather difficult to accidentally switch on 8th-bit-prefixing?  And
if the answer to that one is "yes", then is it wise for a Kermit server, or
in fact any mainframe Kermit, to regularly offer 8th-bit-prefixing in its
I-exchange?  (This is suggested in the protocol manual.)

     Those of us who live on unix (with its LF as record-terminator) are
keenly aware of the problems of files which come in with CR instead.
Unsophisticated users tend to get absoultely floored; and it's they who are
most likely to get into trouble if the two Kermits they are using do not,
between them, pick sensible defaults.

     As an extension, what about the filing-systems which expect to find
carriage-control-characters either at the start of each line (as per
Fortran), or even at the end (older IBM formats)?

                                Chris Kennington (cjk@ucl-cs)

[Ed. - 8th-bit prefixing is totally unrelated to text vs binary mode.  The
prefixing mechanism is just a trick to squeeze 8-bit bytes through a 7-bit
link.  Most Kermit programs do (and should) enable 8th-bit prefixing
automatically if parity is not none (i.e. is even, odd, mark, or space); it
is a transmission technique akin to TELNET IAC doubling.  All Kermit
programs I know about run in text mode by default, and 8th bit prefixing is
off by default except in systems (like IBM mainframes, or Prime computers)
that always use parity.  In Unix, text mode means LF/CRLF conversion is
done, and it works Unix-to-anything, anything-to-Unix, so long as the
"anything" Kermit is also in text mode.  But see the discussion after the
previous message about the perils of automatic mode selection.  Systems that
have carriage control or other "structured text" formats bear the
responsibility for converting them to canonical (CRLF) format before
transmission; VAX/VMS Kermit (the Stevens Bliss version) does this.]

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

Date: Fri, 30 Aug 85 10:12 MET
From: Peter Bendall, DECUS VAX SIG Europe
  <decus%v750.ira%germany.csnet@csnet-relay.arpa>
Subject: How to Make Kermit Work over European Packet Switching Networks

Since I started distributing 6800 and 6809 FLEX Kermits I have received MANY
calls to say that Kermit is not able to work over the European packet
switching networks.

The following "work around" does however work for the German DATEX-P system
and will probably work for other systems also:

For Kermit-32 on VAX/VMS systems:

Call the VAX using CONNECT and start Kermit-32, and issue the commands:

SET RECEIVE START_OF_PACKET 7
SET SEND START_OF_PACKET 7

and then start the server if required.  Then escape to your own Kermit and
issue the equivalent commands:

SET REC SOP=7
SET SEN SOP=7

(or whatever they look like)

and then it works.

[Ed. - Apparently DATEX-P does not pass through Control-A's, which are
used by Kermit as the start-of-packet character.]

In the case of the VAX systems, we have checked that the control-As are
still in the packet when they reach our machine but we have found no
simple way to get them into the packets...  If anyone knows the proper
workaround please let me know!

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

Date: Wed 28 Aug 85 11:17:59-PDT
From: Ronald Blanford <CONTEXT@WASHINGTON.ARPA>
Subject: Kermit on NEC 8001

Some time ago there was a complaint that the Generic version of Kermit
only partially worked on the NEC 8001.  I had reason to need it recently
and found the following fix which works quite well.

Generic Kermit uses the iobyte to switch to the BAT console (which takes
its input from the RDR device) so that it can check the serial port input
status using the Console Status BIOS call.  The BIOS therefore must check
the iobyte twice in this situation, once to determine that the BAT console
is in use, then again to decide which physical device RDR is set to.  The
NEC 8001 does this for the Console Input routine, but not for Console Status.
The default Console Status routine always returns No Input Available, so
that Kermit never tries to receive a character even though it can send them
just fine.

The solution is to patch the dispatch table for the Console Status routine
so that it proceeds to the serial status routine instead of the default.
It might be hard to determine the address of the status routine if RDR is
set to the PTR, UR1, or UR2 device, but for the TTY device the address is
just two entries earlier in the table to be patched.  Fortunately Kermit
uses the TTY device by default.

On the NEC 8001, the serial driver is loaded dynamically, and the address
of the status routine varies depending on which driver is used.  Therefore
this patch must be made each time the system is cold-booted, after installing
the serial device driver but before running Kermit.  It's easiest to make
the patch into a simple program using DDT as follows:

A>DDT
DDT VERS 2.2
-A100
0100 LHLD 1		; get the address of the BIOS jump table
0103 INX  H		; step forward to the Console Status entry
0104 INX  H
0105 INX  H
0106 INX  H
0107 MOV  A,M		; get the address of the Console Status dispatcher
0108 INX  H
0109 MOV  H,M
010A MOV  L,A
010B INX  H		; step past the dispatcher's initial JMP instruction
010C INX  H
010D INX  H
010E MOV  C,M		; pick up the address for the TTY Status routine
010F INX  H
0110 MOV  B,M
0111 INX  H
0112 INX  H		; step forward to the BAT entry
0113 INX  H
0114 MOV  M,C		; save the TTY address in the BAT entry
0115 INX  H
0116 MOV  M,B
0117 RET		; return to CP/M
0118 .
-^C			; Now get out of DDT
A>SAVE 1 KPATCH.COM	;  and save the patch as a COM file

With this patch program available, perform the following sequence of
actions after cold boot to bring up Kermit:

A>INSTALL8 IRS232A TTY: [,,,,O]		; install the driver as device TTY
					; set up for Object files.  The driver
					; name may vary.
A>KPATCH				; Patch the BAT status routine
A>KERMIT				; Start Kermit

With the interrupt-driven serial driver in place, this has worked perfectly
for me at up to 9600 baud.  Good luck.

-- Ron

[Ed. - Thanks, Ron!  I've stored this message in the Kermit distribution as
CP4NEC.HLP.]

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

Date:  Wed, 4 Sep 85 03:14 EDT
From:  "John C. Klensin" <Klensin@MIT-MULTICS.ARPA>
Subject:  Concurrent DOS Kermit

PC-DOS Kermit seems to work fine under Concurrent DOS, with a few
qualifications, as you expect.  First, most of the 'internal' commands
that require PC-DOS interactions don't work, e.g., LOCAL DIR (wildcard
SENDs work fine).  This is, of course, less of a problem under
Concurrent than it would be under PCDOS, since, with Concurrent, you can
switch processes and do anything of these things (or even keep the
current directory or whatever in a handy window).  Second, you must use
SUSPEND=OFF if you expect to do transfers in background.  Third,
experience with the PC indicates that you may want to arrange a bit more
waiting time and/or retry count maximum with your mainframe kermit if
that is possible -- things sometimes get a little slow if there is a lot
of other stuff going on in the machine, especially if kermit is a
background, rather than foreground, process.  I would suspect that this
would be less of a problem on the AT, but haven't tried.

I keep fussing with a CDOS-specific version of Kermit, based on the
CP/M86 version when I manage to be around for more than a couple of
weeks (not frequent in the last year).  It is, of necessity, heavily
dependent on the operating system, and is quite slow when it works.  But
this message is coming to you from a Concurrent DOS 4.1 system, using
PC-DOS kermit, for whatever that is worth.  If someone else would like
to take that on, I would be happy to transfer everything I have done,
and try to transfer everything I know/have found out, otherwise I will
keep fussing as I have time.

The combination of MSDOS kermit and Concurrent also worked fine under
version 3.2 of the latter; versions before 3.2 are hopeless, since they
don't support PCDOS mode.

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

Date: Fri 16 Aug 85 11:03:59-EDT
From: Daphne Tzoar <Sy.Daphne@CU20B.ARPA>
Subject: New BITNET KERMSRV Command Syntax

 The syntax of Kermsrv commands has changed slightly so the file
 AANETW.HLP should be modified.  Here is the command format:

?
HELP
SEND { DIR | fn ft | ?}
PUNCH { DIR | fn ft | ?}

Send returns information in netdata format.  Punch uses punch format.
If PUNCH is used, files with LRECL 80 or under will be punched Class
A.  The others will be disk dumped Class N.  The DIR (directory
command) has been replaced by SEND DIR or PUNCH DIR.  File names may
contain wildcards.  Requests to Kermsrv can be either in the form of
messages or reader files, where the file contains a single line with a
valid Kermsrv command.

/daphne

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

From: ihnp4!kddlab!nttmecl!nttmecl!NTT-20!MURAKAMI@seismo.CSS.GOV
Date: 27 Aug 1985 2023
Subject: Kermit for Japanese Microcomputers and NTT Lisp Machine

 Kermit for Japanese micro computers is supported.  Kermit for the
following computers is available:

   (1) NEC PC8800 on CP/M-80
   (2) NEC PC9800 on CP/M-86
   (3) FUJITSU FM-8 on CP/M-80
   (4) FUJITSU FM-11 on MS-DOS
   (5) IBM5550 on MS-DOS
   
In addition to these computers, Kermit for NTT Lisp Machine ELIS
was written by its language TAO. TAO is a dialect of Lisp which
unifies an object-oriented programming paradigm and a logic
programming paradigm with a procedural programming paradigm.
NTT Lisp Machine (interpreter) runs 1.3 times faster than SYMBOLICS
LISP MACHINE (compiler). 
 
If you are interested in these Kermits, please send me mail to

           hplabs!kddlab!nttmecl!murakami@Berkeley

Is it useful for you to get Kermit sources for Japanese computers?
I hesitate to send these sources because of the following reasons.
 (1) These Kermits will not be widely used in your country.
 (2) Kermit on CP/M-80 is based on the old Kermit version.

We are translating an important part of the Kermit manuals into Japanese.
I would appreciate if you'd allow me to distribute these manuals in Japan.

					Thank you for your attention

[Ed. - Does everyone agree that the programs listed above are not of general
interest outside of Japan?  If not, I'll try to get them into the Kermit
distribution.]

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

DATE: 26 Aug 85 1735 WEZ
FROM: U02F%CBEBDA3T.BITNET@WISCVM.ARPA  (Franklin A. Davis)
SUBJECT: Kermit for Sharp PC 1500 A?

Anyone know of a Kermit for the Sharp PC 1500 A?  A colleague needs it, and
unfortunately isn't even sure if it uses CP/M, but our guess is that it may
be a close clone.  Please answer directly.

Thanks -- Franklin  <U02F@CBEBDA3T.BITNET>
Institute for Informatics and Applied Mathematics
University of Bern
Laenggassstrasse 51
CH-3012  Bern
Switzerland

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

End of Info-Kermit Digest
*************************
-------