aboutsummaryrefslogtreecommitdiff
path: root/doc/cpkerm.bwr
diff options
context:
space:
mode:
authorJeff Armstrong <jeff@approximatrix.com>2026-10-25 17:42:06 -0400
committerJeff Armstrong <jeff@approximatrix.com>2026-10-25 17:42:06 -0400
commitebb2ff2af569d5822b70ee555a32d27cf7494816 (patch)
tree7ac5e7b3fa73f7a8d996129086932ecce66374ad /doc/cpkerm.bwr
downloadkermit-80-ebb2ff2af569d5822b70ee555a32d27cf7494816.tar.gz
kermit-80-ebb2ff2af569d5822b70ee555a32d27cf7494816.zip
Initial import of 4.11HEADmain
Diffstat (limited to 'doc/cpkerm.bwr')
-rw-r--r--doc/cpkerm.bwr565
1 files changed, 565 insertions, 0 deletions
diff --git a/doc/cpkerm.bwr b/doc/cpkerm.bwr
new file mode 100644
index 0000000..538cea4
--- /dev/null
+++ b/doc/cpkerm.bwr
@@ -0,0 +1,565 @@
+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)
+
+------------------------------