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 CCNT: DS 1 LINE: DS 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 Delete previous character and back up cursor Delete previous character and echo it Input complete -- return to calling program Skip down to next physical line and insert a into buffer 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ù á © 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.