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.