From ebb2ff2af569d5822b70ee555a32d27cf7494816 Mon Sep 17 00:00:00 2001 From: Jeff Armstrong Date: Sun, 25 Oct 2026 17:42:06 -0400 Subject: Initial import of 4.11 --- doc/cpkerm.bw2 | 131 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 doc/cpkerm.bw2 (limited to 'doc/cpkerm.bw2') 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 . +-- Mike Freeman; Bonneville Power Administration; Vancouver, Wa; +Telephone (206)690-2307 -- -- cgit v1.2.3