aboutsummaryrefslogtreecommitdiff
path: root/doc/cpkerm.bw2
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.bw2
downloadkermit-80-main.tar.gz
kermit-80-main.zip
Initial import of 4.11HEADmain
Diffstat (limited to 'doc/cpkerm.bw2')
-rw-r--r--doc/cpkerm.bw2131
1 files changed, 131 insertions, 0 deletions
diff --git a/doc/cpkerm.bw2 b/doc/cpkerm.bw2
new file mode 100644
index 0000000..ae3d6de
--- /dev/null
+++ b/doc/cpkerm.bw2
@@ -0,0 +1,131 @@
+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 (11) and of CPSPK2.ASM is edit (4).
+
+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.
+
+
+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]CPXCOM.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 name.
+****
+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 name.
+**************
+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 --