Megalextoria
Retro computing and gaming, sci-fi books, tv and movies and other geeky stuff.

Home » Archive » net.micro.pc » MS-DOS Kermit
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Switch to threaded view of this topic Create a new topic Submit Reply
MS-DOS Kermit [message #79159] Sun, 02 June 2013 23:11
Anonymous
Karma:
Originally posted by: gbs@voder.UUCP (George Smith)
Message-ID: <455@voder.UUCP>
Date: Fri, 12-Oct-84 01:26:42 EDT
Article-I.D.: voder.455
Posted: Fri Oct 12 01:26:42 1984
Date-Received: Sat, 13-Oct-84 06:41:22 EDT
Distribution: net
Organization: National Semiconductor, Santa Clara
Lines: 71


   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
  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: LISP Query
Next Topic: Re: PROLOG for PC/IX Query
Goto Forum:
  

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Fri Apr 19 18:01:53 EDT 2024

Total time taken to generate the page: 0.01737 seconds