aboutsummaryrefslogtreecommitdiff
path: root/doc/cpkerm.bw2
blob: ae3d6de3aeeb6672096005984c17654e29eadae1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
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 --