home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Columbia Kermit
/
kermit.zip
/
cpm80
/
cpkerm.bwr
< prev
next >
Wrap
Internet Message Format
|
2020-01-01
|
22KB
From: Vace Kundakci <VVVCU@CUVMB.columbia.edu>
To: Frank da Cruz <fdc@cunixc.cc.columbia.edu>
Subject: Something in my rdr
Dear VVVCU AT CUVMBA
Yesterday I tried to contact OBSchou@Loughborough.Multics
on JANET, for this was the address I found in the file
CPAAA TXT on KERMSRV AT CUVMBA. I wanted to report a bug
in CP/M kermit and to ask him a question about two source
files on KERMSRV. Would you please be so kind to forward
this message below to the one who is responsible for the
files CP???? ASM on KERMSRV AT CUVMBA. Thanks a lot.
While assembling a new KERMIT 4.09 for my good old CP/M 3
computer I found a bug in the system independent part of
the KERMIT source. The routine PAUSIT in the file
CPSUTL.ASM doesn't end with a ret. As a result of this the
program enters the routine GETFIL and falls trough it every
time PAUSIT is executed: the disk drive is activated.
This ends in an error when PAUSIT is executed after a
wildcard operation.
The bug is fixed by placing a ret instruction at the end of
the PAUSIT routine.
After creating a new CPSKER.HEX it appeared, that the file
CPSKER.HEX on KERMSRV AT CUVMA used the files CPSPK1.ASM
update 12 of 1-feb-88 and CPSPK2.ASM update 5 of 1-feb-88.
The file CPSPK1.ASM on KERMSRV AT CUVMA is update 11 of
28-jul-87, whereas CPSPK2.ASM is update 4 of 27-oct-87.
Would you please be so kind to get the two files updated
on KERMSRV ON CUVMA, so I can build an updated version of
my KERMIT without the bug in CPSUTL.ASM.
Thank you in advance! Hans Petri
WINFPET AT HDETUD1 on EARN
/Vace
------
Date: Sun, 12 Mar 89 03:22:57 EST
From: Mark W. Eichin <eichin@athena.mit.edu>
Subject: Bug report, CP/M kermit (and other notes)
Keywords: CP/M Kermit
The latest kermit from ~ftp/kermit/a/cp[sx]*.asm has a minor (but
visible) bug. In cpspk2.asm, line 341 is
mvi a,'$' ; dollar terminate string
call prtstr
(these are after the label gofi7g.)
The problem is that the '$' has to be actually moved into the string
to terminate it. Adding the line
stax d
between the above two solves the problem.
The bug manifests itself when doing a "receive": as soon as the remote host
sends the filename, it gets displayed on the local screen, followed by
arbitrarily large amounts of garbage (whatever code followed the filename
buffer up to the first '$', which for me tended to be about 4-5 lines of
garbage...)
On a related note: I have successfully ported kermit to TurboDOS (a CP/M-like
operating system written by Software 2000) so that it uses the "T-functions",
a set of standard extensions to CP/M, particularly a set of generic serial
routines. I have only tested it on my personal system, a custom port of
TurboDOS to the Radio Shack Model 4P, but it is likely to work on any TurboDOS
system. Are you interested in adding this to your collection? Are there any
stylistic constraints you require on submitted code? (I would like to see it
included, if only because there have been "people working on" TurboDOS
versions, according to your list, for at least 4 years now.)
Also, I have patches to the Simtel20 PD2:<UNIX-C.CPM>XASM.SHAR[12], an 8080
assembler which runs under UNIX, which add a LINK command, that enables it to
assemble the entire CP/M Kermit release. I will be submitting them to the
Simtel20 people, but I can send them to you as well if you are interested.
Thanks for providing such a good *FREE* system!
Mark Eichin
<eichin@athena.mit.edu>
------------------------------
. From BPA
. Postmark:30-Aug-89:09:32:15
. To MAILER
. Expires:29-Sep-89:09:31:49
. Subject: bitnet%"fdccu@cuvma"
Re: Problems with CP/M Kermit Version 4.09
Following is a list of problems and their solutions for CP/M Kermit
Version 4.09. Bear in mind that the latest version of CPSPK1.ASM I have is
edit (4) and of CPSPK2.ASM is edit (11).
Problem: When the terminal is in "quiet" mode, initiation of file-transfers
causes lots of garbage to appear on the screen which is distracting
and which raises havoc with voice output devices.
Diagnosis: In the module CPXCOM.ASM, the routine "prtstr" has two flavors:
one for machines which cannot display control-characters via BDOS
function 9 and one which can display such characters via function 9.
In this latter case, only register pair BC is saved around the BDOS
call. This is insufficient as BDOS also clobbers register pairs
DE and HL during the call. In "quiet" mode, at least one of these
pairs is expected to remain constant.
Solution: Save register pairs DE and HL around the function 9 BDOS call.
Problem: When GETting a file, the initialization routine "init" is executed
twice. This doesn't harm anything and may not be noticeeable in
print but is most annoying when using voice output as "init" types
out the Kermit version and screen initialization strings and thus
one hears them twice.
Solution: In the module CPSPK1.ASM, move the label "read0a" down one line
so that the common code for the "receive" and "get" commands starts
just *after* the call to "init" is made in "receive" mode.
Problem: With "auto-receive" set to "off", after a RECEIVE has completed,
Kermit waits for Console input; then looks for more data to receive
when there is none.
Diagnosis: In the module CPSPK1.ASM, when the status of "auto-receive" is
checked, the wrong label is branched to if "auto-receive" is OFF.
Solution: Change the instruction "jz read5c" to "jz read5b".
Problem: Files whose filenames are less then 8 characters in length have
ASCII zeros ("0") appended to them.
Diagnosis: In the module CPSPK2.ASM, after label "gofi7b", where the status
of "file-warning" is checked, the code for the appending of "&"
characters to filenames if the file already exists on disk has been
commented out and new code putting numeric suffixes on filenames
in this case has been substituted. In the process, the code for
checking for a file's existence has been accidentally commented out.
Thus, if "file-warning" is "on", *every* file is assumed to have
a duplicate and a numeric suffix is added to each filename. In
addition, no warning of this is given on-screen.
Solution: (1) Uncomment the code which checks for the existence of each file.
(2) Uncomment the code which prints the file-warning error message
and put a "lxi d,fnbuf" instruction between the "stax d" shown in
CPKERM.BWR and the call to "prtstr" so that routine can print the
filename of any file whose existence has been detected.
Problem: In the files CPXSY2.ASM and CPXSYS.ASM, various conditionals are
ignored.
Diagnosis: In many places, a semicolon is followed by a form-feed which is
immediately followed by an "IF" conditional. My copy of LASM in-
terprets the "<FF>IF" as a comment.
Solution: Make the "<FF>IF" into "<FF>;<CR>IF".
With these changes, Kermit-80 performs like a champ.
Following are file comparisons showing the changes noted above.
************
File DISK$USER:[OGRFJMF.KERMIT.CPM]CPXCOM.ASM;1
418 push b
******
File DISK$USER:[OGRFJMF.KERMIT.CPM.HP125]CPXCOM.ASM;1
418 PUSH H
419 PUSH D
420 push b
************
************
File DISK$USER:[OGRFJMF.KERMIT.CPM]CPXCOM.ASM;1
422 ret ; all done for good machines
******
File DISK$USER:[OGRFJMF.KERMIT.CPM.HP125]CPXCOM.ASM;1
424 POP D
425 POP H
426 ret ; all done for good machines
************
Number of difference sections found: 2
Number of difference records found: 4
DIFFERENCES /IGNORE=()/MERGED=1/OUTPUT=DISK$USER:[OGRFJMF.KERMIT.CPM.HP125]CPXCO
M.DIF;1-
DISK$USER:[OGRFJMF.KERMIT.CPM]CPXCOM.ASM;1-
DISK$USER:[OGRFJMF.KERMIT.CPM.HP125]CPXCOM.ASM;1
File 1) DSKE:CPSPK1.ASM[10,50,KERMIT,CPM] created: 1940 26-Aug-89
File 2) DSKE:CPSPK1.ASM[10,50,KERMIT,CPM,HP125] created: 2247 27-Aug-89
1)1 read0a: call init ;clear line, initialise buffers
1) lxi d,remnam ;[gnn] save local name here
1) mvi a,cmtxt ;[gnn]
****
2)1 call init ;clear line, initialise buffers
2) read0a: lxi d,remnam ;[gnn] save local name here
2) mvi a,cmtxt ;[gnn]
**************
1)2 jz read5c ; no autoreceives, so drop out
1) lxi d,anymes ; load up Press any key to continue
****
2)2 jz read5b ; no autoreceives, so drop out
2) lxi d,anymes ; load up Press any key to continue
**************
File 1) DSKE:CPSPK2.ASM[10,50,KERMIT,CPM] created: 0829 28-Aug-89
File 2) DSKE:CPSPK2.ASM[10,50,KERMIT,CPM,HP125] created: 2259 27-Aug-89
1)1 ; mvi c,openf ;See if the file exists.
1) ; lxi d,fcb
1) ; call bdos
1) ; cpi 0FFH ;Does it exist?
1) ; jz gofil9 ;If not create it.
1) ; lxi d,infms5
1) ; call error3
1) ; lda temp2 ;Get the number of chars in the file nam
e.
****
2)1 mvi c,openf ;See if the file exists.
2) lxi d,fcb
2) call bdos
2) cpi 0FFH ;Does it exist?
2) jz gofil9 ;If not create it.
2) lxi d,infms5
2) call error3
2) ; lda temp2 ;Get the number of chars in the file nam
e.
**************
1)1 call prtstr ; write string to console
****
2)1 lxi d,fnbuf ;[MF]Point to string
2) call prtstr ; write string to console
**************
I may be reached on BITNET by E-mail to mailer@uwalocke with the subject-line
containing the phrase <dec10%"bpa">.
-- Mike Freeman; Bonneville Power Administration; Vancouver, Wa;
Telephone (206)690-2307 --
------------------------------
Date: Thu, 31 Aug 89 13:07 PST
From: <MAILER@UWALOCKE.BITNET>
Subject: Re: Inconsistency in CP/M Kermit Version 4.09
Problem: Comments in the source-files indicate that the routine which
processes the "Set Port" command, "prtset" in CPSCOM.ASM, returns
the port value in the register pair DE for the system-dependent
routine to process. In fact, the value is returned in the HL
register pair.
Solution: Either (1) put a "xchg" instruction after the "shld port"
instruction in "prtset" and modify all port-setting routines which
expect the port parameter in HL, e.g., that for those systems using
iobyte redirection, to get the value from DE (this would be, I
suppose, philosophically correct since this would correspond to
the way the baud-rate-setting routine handles things) or
(2) change the comments in CPSDAT.ASM and CPXLNK.ASM to show the
return value from "prtset" in HL and modify the "sysprt" routines
which expect the port value in DE to get it from HL. I chose this
approach as it appeared that this would involve less code changes
(the only system I saw getting port values from DE was the Lobo).
Below are FILCOMs of the appropriate files showing these changes.
File 1) DSKE:CPSDAT.ASM[10,50,KERMIT,CPM] created: 1925 26-Aug-89
File 2) DSKE:CPSDAT.ASM[10,50] created: 1202 31-Aug-89
1)4 ; called with value from table in DE
1) sysscr: jmp $-$ ; screen setup for file transfer
****
2)4 ; called with value from table in HL
2) sysscr: jmp $-$ ; screen setup for file transfer
**************
File 1) DSKE:CPXLNK.ASM[10,50,KERMIT,CPM] created: 1826 26-Aug-89
File 2) DSKE:CPXLNK.ASM[10,50] created: 1157 31-Aug-89
1)1 ; called with value from table in DE
1) jmp sysscr ; screen setup for file transfer
****
2)1 ; called with value from table in HL
2) jmp sysscr ; screen setup for file transfer
**************
File 1) DSKE:CPXSY2.ASM[10,50,KERMIT,CPM] created: 0743 28-Aug-89
File 2) DSKE:CPXSY2.ASM[10,50] created: 1210 31-Aug-89
1)4 mov a,e ;[hh] get the data port value and store
at
1) sta outmd3+1 ;[hh] the two places we use...
****
2)4 mov a,l ;[hh] get the data port value and store
at
2) sta outmd3+1 ;[hh] the two places we use...
**************
1)4 mov a,d ;[hh] now get the baud rate port value
1) sta getbd+1 ;[hh] store it in the two places we use.
..
****
2)4 mov a,h ;[hh] now get the baud rate port value
2) sta getbd+1 ;[hh] store it in the two places we use.
..
**************
E-mail replies may be sent to me via Bitnet at mailer@uwalocke.
Please place on the subject line the phrase <dec10%"bpa"> (less the angle-
brackets).
-- Mike Freeman (routing MORF); Bonneville Power Administration; P.O. Box
491; Vancouver, Wa 98666; Telephone (206)690-2307 --
------------------------------
Date: Sat, 25 Nov 89 08:16:41 pst
From: holmes@well.sf.ca.us (Tim Holmes)
To: jrd@watsun.cc.columbia.edu
Subject: Re: Kermit for Epson
The Epson PX-8, also known as the Geneva, is a CP/M 2.2 machine. It is
a portable. It is listed on the list of Kermit versions by machine as
Epson Px-8; program version 4.09. This version I have never been able
to do anything but get the machine to freeze up. An earlier version,
4.05, basically works, but with some problems, such as handshaking
and flow control (I think). The PX-4, better known as the HX-40, is
a similar computer with an even smaller screen.
The PX-8 version comes on the "A" tape. By the way, I cannot get the
"Generic" kermit versions to work on the HX-40, whereas they basically
work on the PX-8.
Thanks again.
------------------------------
Date: Thu, 1 Mar 90 16:48 PST
From: <MAILER@UWALOCKE>
Subject: dec10%"BPA" originated mail follows:-
To: fdccu@cuvma
Original_To: JNET%"fdccu@cuvma"
. From BPA
. Postmark:26-Feb-90:09:36:20
. To MAILER
. Expires:28-Mar-90:09:35:00
. Subject: bitnet%"fdccu@cuvma"
Re: Problem with CP/M-80 Kermit
I have come up with a better, more general solution to the problem
involving Kermit's interpretation of characters at the beggining of the CP/M
command-line than the one I sent you a few days ago. This more general
solution and the description of the problem/diagnosis appear below:
PROBLEM
B>A:KERMIT ;SET FI B;SET BL 3;SET TER Q
Kermit-80 v4.09 configured for HP-125 Series 100
For help, type ? at any point in a command
Kermit-80 0B:>
?Ambiguous
Kermit-80 0B:>SET FI B
Kermit-80 0B:>SET BL 3
Kermit-80 0B:>SET TER Q
B>
DIAGNOSIS
CP/M begins the buffer containing the tail to the command-line with
the count of characters in the buffer, followed by the characters in the
command- tail, beginning with the space(s) immediately following the
transient program name (in this case, Kermit). Kermit does not ignore
leading spaces when reading command input from the CP/M command-line.
Kermit therefore interprets the leading space(s) as part of the first
command to be executed, leading to the "?Ambiguous" message.
SOLUTION
Rewrite Kermit so that leading spaces in input from the CP/M
command-line are ignored. This is done by adding code just prior to
label CMINB1 in the module CPSCMD.ASM and adding a label a few lines
following the label CMINB1 in the same module. This gives, as a
side-effect, the advantage that a leading semicolon is not required
before the commands Kermit is to execute from the command-line, so that
a command-line like:
A>KERMIT SET FILE-MODE ASCII;SET TERMINAL QUIET;SET NO-EXIT
executes without errors. A Vax DIFFERENCES output showing the changes
in CPSCMD.ASM follows:
************
File DISK$USER:[OGRFJMF]CPSCMD.ASM;1
981 cminb1: lxi h,cmccnt ;Increment the char count.
******
File DISK$USER:[OGRFJMF]CPSCMD.ASM;2
981 lda takflg ;[JMF]See if chars from file or command-
line
982 ora a ;[JMF]...
983 jz cminb1 ;[JMF]No
984 ani 1 ;[JMF]Yes, char from command-line?
985 jnz cminb1 ;[JMF]No
986 cminb0: mvi c,conin ;[JMF]Yes, get a character
987 call bdos ;[JMF]...
988 cpi 40o ;[JMF]If leading characters are spaces
989 jz cminb0 ;[JMF]Ignore them, else
990 lxi h,cmccnt ;Increment the char count.
991 inr m
992 jmp cmin1a ;[JMF]and proceed with command buffer
993 cminb1: lxi h,cmccnt ;Increment the char count.
************
************
File DISK$USER:[OGRFJMF]CPSCMD.ASM;1
985 lhld cmcptr ;Get the pointer into the buffer.
986 mov m,a ;Put it in the buffer.
******
File DISK$USER:[OGRFJMF]CPSCMD.ASM;2
997 cmin1a: lhld cmcptr ;Get the pointer into the buffer.
998 mov m,a ;Put it in the buffer.
************
Number of difference sections found: 2
Number of difference records found: 13
DIFFERENCES /IGNORE=()/MERGED=1/OUTPUT=DISK$USER:[OGRFJMF]CPSCMD.DIF;1-
DISK$USER:[OGRFJMF]CPSCMD.ASM;1-
DISK$USER:[OGRFJMF]CPSCMD.ASM;2
I can be addressed via E-mail on Bitnet at address
MAILER@UWALOCKE. Place the following as the subject of the message:
<dec10%"bpa"> (less the angle-brackets). Thanks.
Michael Freeman (Routing MORF)
Bonneville Power Administration
P.O. Box 491
Vancouver, WA 98666
Telephone (206)690-2307
------------------------------
Date: Mon, 14 May 90 10:26:54 EDT
From: rochester!ames!claris!voder!nsc!thoreau.nsc.com!rtodd@columbia.edu
(Ron Todd)
To: fdc@watsun.cc.columbia.edu
Subject: My kermit problem( Kermit-80 to Kermit-32)
Frank,
I finally got my Kermit-80 (v4.09) on the Kaypro II to work with our
Kermit-32 (v3.1.066) (the problem had to do with the protocol timing out
during disk sector writes on the Kaypro). The fix is some where in the
combination of sets I am using, I tried your suggestion of turning off the
timeouts on the mainframe. The significant sets I am using are:
Kermit-80
set flow on
Kermit-32
set server_time 0
set send time 0
VMS
set term/readsync/ttsync
DEC-Server
set session pasthru
So far I have only tried ascii file transfer but will be testing binary
soon, I have a feeling that that should work also. I am mostly using the
GET command with Kermit-32 running in server so I may not need to do the
"set send time". I am sure I need to use the "set session pasthru" on the
server and probably atleast one of the "sync" options on the "set term"
of the VMS side.
Thanks for your help, I'll e-mail the final minimum set to you and also
post it to the net as a followup to help anyone else who may be running
into the same or similar problems.
Regards,
Ron Todd, K3FR
------------------------------
Subject: Kermit-80 4.09 ported to new system, bug report
From: Russell Lang <rjl@monu1.cc.monash.edu.au>
Date: Tue, 19 Jun 90 11:04:47 +1000
Sender: eln272v@monu1.cc.monash.edu.au
Frank,
I have ported Kermit-80 4.09 to an Australian CP/M computer,
the Microbee. I have created a new system dependent file
CPXBEE.ASM for this computer.
I sent some mail to Bertil Schou, but he informs me that he is
no longer maintaining CP/M kermit.
Could you please tell me who is currently working on CP/M Kermit?
During the testing of kermit-80 on the Microbee, I found a bug
in the system independent part of kermit.
Bug report for Kermit-80 4.09.
Problem: When receiving a file with WARNING ON, kermit-80 will avoid
overwriting an existing file by creating a unique file name.
This unique file will have the attributes of the file being avoided.
If the created file is opened with Read-Only attribute, kermit-80 is
unable to write to the file, and crashes with the message:
BDOS Err on A: File R/O
Diagnosis: Kermit checks for the existence of a file by attempting
to open it. If the file exists, its directory entry is copied
into the FCB. Kermit then modifies the file name in the FCB
in an attempt to find a unique name. The name in the FCB has
the attributes of the previously existing file, so when kermit
eventually finds a unique name, it creates a file with the
attributes of the most recently opened file!
Solution:
Clear bit 7 (attribute bit) of all file name and type characters
before opening/creating file.
A Unix context diff for CPSPK2.ASM (4) 27-Oct-87 is at the
end of this mail.
--
Russell Lang Email: rjl@monu1.cc.monash.edu.au Phone: (03) 565 3460
Department of Electrical and Computer Systems Engineering
Monash University, Australia
diff -c cpspk2.asm cpxpk2.asm.new
*** cpspk2.asm Tue Jun 19 10:48:54 1990
--- cpspk2.asm.new Tue Jun 19 10:52:30 1990
***************
*** 299,305
;
; Part 2) open the file (if success, then it exists)
! gofi7d: lxi d,fcb
mvi c,openf
call BDOS
inr a ; if 0ffh returned, error (ie does not exist)
--- 299,315 -----
;
; Part 2) open the file (if success, then it exists)
! gofi7d:
! ;zero the attribute bits. [rjl@monu1.cc.monash.edu.au]
! lxi h,fcb+1 ;[rjl]
! mvi c,11 ;[rjl]
! gofi7z: mov a,m ;[rjl]
! ani 07fh ;[rjl]
! mov m,a ;[rjl]
! inx h ;[rjl]
! dcr c ;[rjl]
! jnz gofi7z ;[rjl]
! lxi d,fcb
mvi c,openf
call BDOS
inr a ; if 0ffh returned, error (ie does not exist)
------------------------------