[net.sources.bugs] MS-DOS Kermit

gbs@voder.UUCP (George Smith) (10/12/84)

   Let me state that we think that the kermit package for the
IBM PC is SUPER!
   We have found a couple of problems with the
h19 emulator portion of the code, however.  These problems
show up when using vi or vnews.  The first is that a real h19
has a non-destructive tab where the emulator just used spaces.
When vi used a tab for positioning, characters would be erased.
The second is that the emulator used the IBM PC ROM BIOS to scroll
up the screen for a delete line command; when the cursor was
on the bottom line, a lot of garbage is output to the screen.
The code below fixes both problems in file "msyibm.asm".
One last change is in the termcap entry used with vi - the `am'
capability must not be specified since the kermit h19 emulator
does not do line wrap (i.e. automatic margins in termcap jargon).
I should say that we have an IBM PC/XT with 640k running DOS 2.1.

   Again, thanks to all the people that provided the public with
such a fine program.

old code for outputting a tab:

outtab:	mov	dl,byte ptr cursor	; get initial column
outta1:	mov	dh,dl			; save column ptr
	push	dx
	mov	al,' '			; output a space
	call	outtty			; convenient, huh?
	pop	dx

new code for outputting a tab:

outtab:	mov	dl,byte ptr cursor	; get initial column
outta1:	mov	dh,dl			; save column ptr
	push	dx
	mov	al,chesc		; output a cursor forward
	call	outtty
	mov	al,'C'
	call	outtty
	pop	dx

old code for deleting a line:

dellin1:mov	ch,dh			; start at current row
	xor	cl,cl			; column 0
	mov	dx,low_rgt
;	mov	dx,174fh		; to bottom of screen
	mov	ah,6h			; scroll up.
	mov	bh,curattr		; attribute
	int	screen
	ret

new code for deleting a line:

dellin1:mov	ch,dh			; start at current row
	xor	cl,cl			; column 0
	mov	dx,low_rgt		; ... and end at bottom of screen
	cmp	ch,dh			; check for cursor at bottom
	jb	dellin2			; if not at bottom then scroll
	mov	dx,cx			; else clear end of line
	call	clreol
	ret
dellin2:
	mov	ah,6h			; scroll up.
	mov	bh,curattr		; attribute
	int	screen
	ret

-- 
George B. Smith
National Semiconductor
{apple, nsc, ucbvax}!voder!gbs