; LNED1.M68 (18) 7-Sept-84 Patch to LINEED.LIT 1.5A(108) 571-431-140-110
; By Irv Bromberg, Medic/OS Consultants, 78 Wildginger Way, Toronto, Ontario,
; CANADA M3H 5X1
; Patch #1:
; To correct cursor right bug which caused the following LINEED commands to
; malfunction: ^L or -->, ^Gn, ^W, ^X, ^N.
; Original LINEED did not work properly on ADDS Viewpoint, Cybernex MDL-100
; or Hewlett-Packard or any other terminal that does not use CTRL-L for
; cursor right. LINEED sends CTRL-L to move the cursor right, this patch
; fixes this by sending the contents of the input buffer from the
; current cursor position to the new cursor position thereby avoiding the
; need to know how to move the cursor right on any CRT type.
; Patch #2:
; This patch changes handling of RETURN or CTRL-M so that insert
; character mode is always turned off after the line is entered.
COPY PATCH
OVER 1,5,1,108.,0
NVER 1,5,1,108.,2 ; this file does 2 new different patches
OHASH 571,431,140,110
NHASH 017,434,127,622
T.ICC =22
Worksp =A0
TCB =A5
NewPos =D0 ; new cursor position in line
Char =D1
Count =D3
BS =10
=1142
WORD RETURN-. ; change branch for processing ^M
=2436
JMP L3034
NOP ; clean-up so garbage not left here
NOP
NOP
L2450: ; queue up backspaces to move left
=2460
L2460: TRMBFQ
L2462:
=2472
L2472:
=3034
L3034: ; original PRGEND
MOV NewPos,Count ; has position changed?
SUB T.ICC(TCB),Count
JEQ L2472 ; no
JMI L2450 ; yes, move left
LEA A6,0(Worksp)[~NewPos] ; new cursor right routine
MOV A6,D1 ; D1 now has new cursor position
SUB Count,D1 ; subtract count to calculate
JMP L2460 ; original cursor position
; jump to queue up input line from original pos'n to new pos'n
RETURN: ; modified ^M processing routine
BCLR #4,@A1 ; clear insert character mode
Loop: TSTB 0(Worksp)[~D0] ; find end of entry line
JEQ L2462
ADD #1,D0
BR Loop