home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / sigm / vols000 / vol089 / sysliba.hlp < prev    next >
Text File  |  1985-02-09  |  7KB  |  156 lines

  1. Introduction
  2. BDOS-Based Input Line Editors -- BBLINE and BLINE
  3. Independent Input Line Editor -- INLINE
  4. :Introduction
  5.  
  6.      Aεá Inpu⌠ Linσ Edito≥ i≤ useΣ t∩ accep⌠ ß linσ oµ tex⌠á froφ ì
  7. thσ user¼ allowinτ hiφ t∩ issuσ command≤ likσ backspacσ anΣ Ctrl-ì
  8. ╪á (erasσá al∞á oµ linσ typeΣ s∩ far⌐ t∩ edi⌠ hi≤ tex⌠ a≤á hσá i≤ ì
  9. inputtinτá it«á  Oncσ thσ tex⌠ ha≤ beeε entered¼á thσ Inpu⌠á Linσ ì
  10. Edito≥ return≤ t∩ thσ callinτ prograφ witΦ thσ user'≤ tex⌠ storeΣ ì
  11. in a buffer.  This text is terminated by a binary 0.
  12.  
  13.      Tw∩ oµ thσ Inpu⌠ Linσ Editor≤ iε SYSLI┬ usσ thσ CP/═ BDO╙ t∩ ì
  14. providσ thσ linσ edito≥ function«á  The∙ mainl∙ servσ t∩ preservσ ì
  15. thσá register≤á durinτá thσá functioεá cal∞á anΣá t∩á storσáá thσ ì
  16. terminatinτ zer∩ a⌠ thσ enΣ oµ thσ text«á  The∙ occup∙ les≤ spacσ ì
  17. than the third Input Line Editor, INLINE.
  18.  
  19.  
  20.      Thσ thirΣ Inpu⌠ Linσ Editor¼á INLINE¼á i≤ useΣ wheε securit∙ ì
  21. i≤á important«á  Unlikσá thσ othe≥ two¼á wheε typinτ ß Ctrl-├á t∩ ì
  22. INLINE¼á thσá Inpu⌠á Linσá Edito≥ (anΣ callinτá program⌐á i≤á no⌠ ì
  23. aborteΣ anΣ contro∞ returneΣ t∩ CP/M«á  Instead¼á thσ Ctrl-├ cha≥ ì
  24. i≤ simpl∙ storeΣ iε thσ user'≤ line«  Also¼ unlikσ thσ othe≥ two¼ ì
  25. INLIN┼á caεá bσá instructeΣá t∩á ech∩á o≥á no⌠á ech∩á thσáá inpu⌠ ì
  26. characters«á  Thi≤á featurσ i≤ usefu∞ fo≥ program≤ whicΦ wan⌠á t∩ ì
  27. inpu⌠á ßá password«á  INLIN┼á caε bσ instructeΣ no⌠ t∩á ech∩á thσ ì
  28. password¼á bu⌠á i⌠ wil∞ stil∞ providσ thσ linσ editinτá function≤ ì
  29. for the user so that he can correct mistakes if he makes them.
  30.  
  31.  
  32. :BDOS-Based Input Line Editors -- BBLINE and BLINE
  33.  
  34.      Routine Name:  BBLINE
  35.      Function:
  36.           BBLIN┼ provide≤ ß ver∙ convenien⌠ interfacσ t∩ thσ BDO╙ ì
  37. fo≥á inpu⌠ linσ edito≥ functions«á  I⌠ contain≤ it≤ owεá interna∞ ì
  38. buffe≥á fo≥ storagσ oµ thσ inpu⌠ linσ (20░ byte≤ allocated)¼á anΣ ì
  39. i⌠á return≤ ß pointe≥ t∩ thσ firs⌠ bytσ oµ thσ linσ upoεá return«  ì
  40. Thσá linσá storeΣ iε thi≤ buffe≥ i≤ terminateΣ b∙ ßá binar∙á zer∩ ì
  41. (0).
  42.      T∩á usσá BBLINE¼áá thσá use≥á neeΣá onl∙á cal∞á it¼á witΦá ß ì
  43. capitalizatioε flaτ storeΣ iε thσ ┴ Register«á  Iµ ┴ ╜ 0¼á BBLIN┼ ì
  44. doe≤ no⌠ capitalizσ thσ inpu⌠ linσ characters╗á iµ ┴ <╛ 0¼ BBLIN┼ ì
  45. capitalize≤á thσá inpu⌠ linσ character≤ beforσ returninτá t∩á thσ ì
  46. caller.
  47.      N∩ erro≥ code≤ arσ returneΣ b∙ BBLINE«  Oε return¼ H╠ point≤ ì
  48. t∩ thσ firs⌠ bytσ oµ thσ inpu⌠ linσ anΣ ┴ contain≤ ß coun⌠ oµ thσ ì
  49. numbe≥ oµ character≤ iε tha⌠ linσ (no⌠ countinτ thσ endinτ zero).
  50.  
  51.  
  52. BBLINE, Con't
  53.      Inputs:  A=0 to Not Capitalize Line, A<>0 to Capitalize Line
  54.      Outputs:  HL pts to first char in the line
  55.                A is number of characters in the line (not
  56.                     counting the ending zero)
  57.      Registers Affected:  PSW, HL
  58.      SYSLIB Routines Called:  CAPS
  59.      Special Error Conditions:  None
  60.  
  61.  
  62.      Routine Name:  BLINE
  63.      Function:
  64.           BLIN┼ provide≤ ß ver∙ convenien⌠ interfacσ t∩ thσá BDO╙ ì
  65. fo≥á inpu⌠ linσ edito≥ functions«á  I⌠ perform≤ thσ samσ typσá oµ ì
  66. functioεá a≤á BBLINE¼á bu⌠ i⌠ doe≤ no⌠ contaiε it≤á owεá interna∞ ì
  67. buffer«á  Thσ use≥ i≤ expecteΣ t∩ providσ sucΦ ß buffer¼ whicΦ i≤ ì
  68. structureΣ a≤ follows:
  69.  
  70.                SIZE:     DB   <Size of Buffer>
  71.                CCNT:     DS   1
  72.                LINE:     DS   <Size of Buffer + 1>
  73.  ì
  74. BLIN┼ return≤ ß pointe≥ t∩ thσ firs⌠ bytσ oµ thσ linσ (LINE⌐ upoε ì
  75. return«  Thσ linσ storeΣ iε thi≤ buffe≥ i≤ terminateΣ b∙ ß binar∙ ì
  76. zer∩ (0).
  77.      T∩ usσ BLINE¼á thσ use≥ neeΣ onl∙ cal∞ it¼ witΦ ß pointe≥ t∩ ì
  78. thσ user'≤ buffe≥ iε H╠ anΣ ß capitalizatioε flaτ storeΣ iε thσ ┴ ì
  79. Register«á  Iµá ┴ ╜ 0¼á BLIN┼ doe≤ no⌠ capitalizσ thσ inpu⌠á linσ ì
  80. characters╗áá iµá ┴á <╛á 0¼á BLIN┼á capitalize≤á thσá inpu⌠á linσ ì
  81. character≤ beforσ returninτ t∩ thσ caller.
  82.  
  83. BLINE, Con't
  84.  
  85.      N∩ erro≥ code≤ arσ returneΣ b∙ BLINE«á  Oε return¼ H╠ point≤ ì
  86. t∩ thσ firs⌠ bytσ oµ thσ inpu⌠ linσ anΣ ┴ contain≤ ß coun⌠ oµ thσ ì
  87. numbe≥ oµ character≤ iε tha⌠ line (not counting the ending zero).
  88.  
  89.      Inputs:  A=0 to Not Capitalize Line, A<>0 to Capitalize Line
  90.               HL pts to first byte (SIZE) of user-supplied buffer
  91.      Outputs:  HL pts to first char in the line
  92.                A is number of characters in the line (not
  93.                     counting the ending zero)
  94.      Registers Affected:  PSW, HL
  95.      SYSLIB Routines Called:  CAPS
  96.      Special Error Conditions:  None
  97.  
  98. :Independent Input Line Editor -- INLINE
  99.      Routine Name:  INLINE
  100.      Function║
  101.           INLIN┼á allow≤á thσ use≥ t∩ inpu⌠ ß linσ oµá tex⌠á froφ ì
  102. CON║á int∩ thσ buffe≥ pointeΣ t∩ b∙ HL«á  Thσ use≥ i≤ alloweΣá t∩ ì
  103. edi⌠á thσá tex⌠á a≤á hσ type≤ it¼á anΣá INLIN┼á respond≤á t∩á thσ ì
  104. followinτ edito≥ commands:
  105.  
  106.    Key Command    Function
  107.      <BS>           Delete previous character and back up cursor
  108.      <DEL>          Delete previous character and echo it
  109.      <CR>           Input complete -- return to calling program
  110.      <LF>           Skip down to next physical line and insert a
  111.                       <CR> <LF> into buffer
  112.      <TAB>          Tabulate to next tab stop (every 8)
  113.      Ctrl-U,        Erase current line (clear buffer) and restart
  114.        Ctrl-X         input
  115.      Ctrl-R         Retype current line
  116.      Ctrl-┼         Ski≡ dowε t∩ nex⌠ physica∞ line╗ inser⌠ 
  117.                       nothing into buffer
  118.  
  119.  
  120. INLINE, Con't
  121.  
  122.      Oε exit¼á thσ buffe≥ contain≤ thσ tex⌠ entereΣ followeΣ b∙ ß ì
  123. <NULL╛ (binar∙ 0)╗á thσ <CR╛ typeΣ t∩ enΣ thσ inpu⌠ i≤ NO╘ placeΣ ì
  124. iε thσ buffer.
  125.  
  126.      Inputs:  HL = pointer to input line buffer
  127.               A = Echo Flag (A=0 Means Don't Echo Input)
  128.      Outputs:  -None- (Input line buffer contains text typed by user)
  129.      Registers Affected:  -None-
  130.      SYSLIB Routines Called:  CCOUT, CIN, COUT, CRLF
  131.      Specia∞á Erro≥ Conditions║
  132.           <BEL╛á (Bee≡ a⌠ CON:⌐ i≤ outpu⌠ iµ attemp⌠ i≤á madσá t∩ ì
  133. deletσá characte≥ (<BS╛ o≥ <DEL>⌐ beforσ beginninτ oµá line«á  N∩ ì
  134. limi⌠á o≥á erro≥ checkinτ i≤ donσ oε thσ sizσ oµ thσá inpu⌠á linσ ì
  135. buffe≥á (buffe≥ overflo≈ i≤ possible¼á s∩ i⌠ i≤ recommendeΣá tha⌠ ì
  136. buffe≥á i≤ madσ arbitraril∙ large)«á  HasΦ marδ (#⌐ i≤ printeΣ iε ì
  137. responsσ t∩ Ctrl-R¼ Ctrl-U¼ anΣ Ctrl-X.
  138.  
  139.  
  140. INLINE, Con't
  141.  
  142.      Note║á  INLIN┼á offer≤á tw∩ feature≤ no⌠ founΣ iε BLIN┼á anΣ ì
  143. BBLINE«á  First¼á i⌠ canno⌠ bσ aborteΣ b∙ ß Ctrl-C╗ thi≤ i≤ good¼ ì
  144. sincσá i⌠á caε bσ useΣ iε "secureó program≤ withou⌠ fea≥á oµá thσ ì
  145. use≥ breakinτ ou⌠ oµ thσ program«  Second¼ i⌠ caε bσ madσ t∩ ech∩ ì
  146. o≥á no⌠á ech∩á thσá input╗á thi≤á provide≤á somσá protectioεá fo≥ ì
  147. inputtinτ sensitivσ information¼ likσ ß password.
  148.  
  149.      INLIN┼á essentiall∙á provide≤ al∞ oµ thσ conventiona∞á inpu⌠ ì
  150. linσ edito≥ functions«á  I⌠ i≤ somewha⌠ morσ flexiblσ thaεá BLIN┼ ì
  151. anΣá BBLINE¼á bu⌠ thσ tradeofµ i≤ tha⌠ INLIN┼ take≤ u≡ morσ spacσ ì
  152. thaε eithe≥ BLIN┼ o≥ BBLINE«á  Iµ securit∙ i≤ no⌠ required¼ i⌠ i≤ ì
  153. recommendeΣ tha⌠ thσ programme≥ emplo∙ BLIN┼ o≥ BBLIN┼ insteaΣ oµ ì
  154. INLINE.
  155.  
  156.