Introduction
BDOS-Based Input Line Editors -- BBLINE and BLINE
Independent Input Line Editor -- INLINE
:Introduction

    A� Inpu� Lin� Edito� i� use� t� accep� � lin� o� tex� fro� �
th� user� allowin� hi� t� issu� command� lik� backspac� an� Ctrl-�
ؠ (eras� al� o� lin� type� s� far� t� edi� hi� tex� a� h� i� �
inputtin� it��  Onc� th� tex� ha� bee� entered�� th� Inpu� Lin� �
Edito� return� t� th� callin� progra� wit� th� user'� tex� store� �
in a buffer.  This text is terminated by a binary 0.

    Tw� o� th� Inpu� Lin� Editor� i� SYSLI� us� th� CP/� BDO� t� �
provid� th� lin� edito� function��  The� mainl� serv� t� preserv� �
th� register� durin� th� functio� cal� an� t� stor堠 th� �
terminatin� zer� a� th� en� o� th� text��  The� occup� les� spac� �
than the third Input Line Editor, INLINE.


    Th� thir� Inpu� Lin� Editor�� INLINE�� i� use� whe� securit� �
i� important��  Unlik� th� othe� two�� whe� typin� � Ctrl-à t� �
INLINE�� th� Inpu� Lin� Edito� (an� callin� program�� i� no� �
aborte� an� contro� returne� t� CP/M��  Instead�� th� Ctrl-� cha� �
i� simpl� store� i� th� user'� line�  Also� unlik� th� othe� two� �
INLINŠ ca� b� instructe� t� ech� o� no� ech� th堠 inpu� �
characters��  Thi� featur� i� usefu� fo� program� whic� wan� t� �
inpu� � password��  INLINŠ ca� b� instructe� no� t� ech� th� �
password�� bu� i� wil� stil� provid� th� lin� editin� function� �
for the user so that he can correct mistakes if he makes them.


:BDOS-Based Input Line Editors -- BBLINE and BLINE

    Routine Name:  BBLINE
    Function:
         BBLIN� provide� � ver� convenien� interfac� t� th� BDO� �
fo� inpu� lin� edito� functions��  I� contain� it� ow� interna� �
buffe� fo� storag� o� th� inpu� lin� (20� byte� allocated)�� an� �
i� return� � pointe� t� th� firs� byt� o� th� lin� upo� return�  �
Th� lin� store� i� thi� buffe� i� terminate� b� � binar�� zer� �
(0).
    T� us� BBLINE��� th� use� nee� onl�� cal� it�� wit� � �
capitalizatio� fla� store� i� th� � Register��  I� � � 0�� BBLIN� �
doe� no� capitaliz� th� inpu� lin� characters�� i� � <� 0� BBLIN� �
capitalize� th� inpu� lin� character� befor� returnin� t� th� �
caller.
    N� erro� code� ar� returne� b� BBLINE�  O� return� H� point� �
t� th� firs� byt� o� th� inpu� lin� an� � contain� � coun� o� th� �
numbe� o� character� i� tha� lin� (no� countin� th� endin� zero).


BBLINE, Con't
    Inputs:  A=0 to Not Capitalize Line, A<>0 to Capitalize Line
    Outputs:  HL pts to first char in the line
              A is number of characters in the line (not
                   counting the ending zero)
    Registers Affected:  PSW, HL
    SYSLIB Routines Called:  CAPS
    Special Error Conditions:  None


    Routine Name:  BLINE
    Function:
         BLIN� provide� � ver� convenien� interfac� t� th� BDO� �
fo� inpu� lin� edito� functions��  I� perform� th� sam� typ� o� �
functio� a� BBLINE�� bu� i� doe� no� contai� it� ow� interna� �
buffer��  Th� use� i� expecte� t� provid� suc� � buffer� whic� i� �
structure� a� follows:

              SIZE:     DB   <Size of Buffer>
              CCNT:     DS   1
              LINE:     DS   <Size of Buffer + 1>

BLIN� return� � pointe� t� th� firs� byt� o� th� lin� (LINE� upo� �
return�  Th� lin� store� i� thi� buffe� i� terminate� b� � binar� �
zer� (0).
    T� us� BLINE�� th� use� nee� onl� cal� it� wit� � pointe� t� �
th� user'� buffe� i� H� an� � capitalizatio� fla� store� i� th� � �
Register��  I� � � 0�� BLIN� doe� no� capitaliz� th� inpu� lin� �
characters��� i� �� <�� 0�� BLINРcapitalize� th� inpu� lin� �
character� befor� returnin� t� th� caller.

BLINE, Con't

    N� erro� code� ar� returne� b� BLINE��  O� return� H� point� �
t� th� firs� byt� o� th� inpu� lin� an� � contain� � coun� o� th� �
numbe� o� character� i� tha� line (not counting the ending zero).

    Inputs:  A=0 to Not Capitalize Line, A<>0 to Capitalize Line
             HL pts to first byte (SIZE) of user-supplied buffer
    Outputs:  HL pts to first char in the line
              A is number of characters in the line (not
                   counting the ending zero)
    Registers Affected:  PSW, HL
    SYSLIB Routines Called:  CAPS
    Special Error Conditions:  None

:Independent Input Line Editor -- INLINE
    Routine Name:  INLINE
    Function�
         INLINŠ allow� th� use� t� inpu� � lin� o� tex� fro� �
CON�� int� th� buffe� pointe� t� b� HL��  Th� use� i� allowe� t� �
edi� th� tex� a� h� type� it�� an� INLINРrespond� t� th� �
followin� edito� commands:

  Key Command    Function
    <BS>           Delete previous character and back up cursor
    <DEL>          Delete previous character and echo it
    <CR>           Input complete -- return to calling program
    <LF>           Skip down to next physical line and insert a
                     <CR> <LF> into buffer
    <TAB>          Tabulate to next tab stop (every 8)
    Ctrl-U,        Erase current line (clear buffer) and restart
      Ctrl-X         input
    Ctrl-R         Retype current line
    Ctrl-�         Ski� dow� t� nex� physica� line� inser�
                     nothing into buffer


INLINE, Con't

    O� exit�� th� buffe� contain� th� tex� entere� followe� b� � �
<NULL� (binar� 0)�� th� <CR� type� t� en� th� inpu� i� NO� place� �
i� th� buffer.

    Inputs:  HL = pointer to input line buffer
             A = Echo Flag (A=0 Means Don't Echo Input)
    Outputs:  -None- (Input line buffer contains text typed by user)
    Registers Affected:  -None-
    SYSLIB Routines Called:  CCOUT, CIN, COUT, CRLF
    Specia� Erro� Conditions�
         <BEL�� (Bee� a� CON:� i� outpu� i� attemp� i� mad� t� �
delet� characte� (<BS� o� <DEL>� befor� beginnin� o� line��  N� �
limi� o� erro� checkin� i� don� o� th� siz� o� th� inpu� lin� �
buffe� (buffe� overflo� i� possible�� s� i� i� recommende� tha� �
buffe� i� mad� arbitraril� large)��  Has� mar� (#� i� printe� i� �
respons� t� Ctrl-R� Ctrl-U� an� Ctrl-X.


INLINE, Con't

    Note��  INLINŠ offer� tw� feature� no� foun� i� BLINŠ an� �
BBLINE��  First�� i� canno� b� aborte� b� � Ctrl-C� thi� i� good� �
sinc� i� ca� b� use� i� "secure� program� withou� fea� o� th� �
use� breakin� ou� o� th� program�  Second� i� ca� b� mad� t� ech� �
o� no� ech� th� input�� thi� provide� som� protectio� fo� �
inputtin� sensitiv� information� lik� � password.

    INLINŠ essentiall�� provide� al� o� th� conventiona� inpu� �
lin� edito� functions��  I� i� somewha� mor� flexibl� tha� BLIN� �
an� BBLINE�� bu� th� tradeof� i� tha� INLIN� take� u� mor� spac� �
tha� eithe� BLIN� o� BBLINE��  I� securit� i� no� required� i� i� �
recommende� tha� th� programme� emplo� BLIN� o� BBLIN� instea� o� �
INLINE.