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