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.