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 --