Directory Manipulation Routines -- DIRECT, DIR, DIRSEL, DIRALP Numeric String Evaluation Routines -- EVAL, EVAL16, EVAL10, EVAL8, EVAL2 Byte-Oriented File Input/Output Routines FI$OPEN and FO$OPEN, et al -- Byte-Oriented Input and Output File Open FI$CLOSE and FO$CLOSE, et al -- Byte-Oriented Input and Output File Close F$GET and F$PUT, et al -- Byte-Oriented Input and Output CP/M File Input/Output Routines INITFCB -- Initialize FCB File Manipulation -- F$OPEN, F$CLOSE, F$MAKE, F$DELETE File Input/Output Routines -- F$READ and F$WRITE Input Line Editor -- INLINE String Output Routines -- PRINT, LPRINT, PSTR, LPSTR Numeriã  Outpuô Routineó -- PHL4HC,PHL5DC,PHLDC,PA2HC,PA3DC,PADC¬ L's, M's String and Value Comparison Routines -- COMPHD,COMPB,COMPBC,SCANNER,INSTR Output -- CRLF and LCRLF Conditional Input -- CONDIN General Input Routines -- CST, CIN, RIN General Output Routines -- COUT, LOUT, POUT, CCOUT, CLOUT, CPOUT Misã Routineó -- BDOS¬ CAPS¬ CIO¬ EN¬ FILLB¬ FILLBC¬ MOVEB¬ MOVEBC¬ CATH :Directory Manipulation Routines -- DIRECT, DIR, DIRSEL, DIRALP Routine Name: DIRECT Functionº  DIRECÔ  loadó  á copù oæ thå directorù  oæ  thå  currentlù logged-iî disë drivå intï thå 3² ø 6´ bytå buffeò pointeä tï bù HL¬ selectó alì  filå entrieó whicè matcè thå contentó oæ thå 11-bytå filå namå  buffeò pointeä  tï  bù  DÅ (buffeò maù contaiî ?'ó aó  wilä  specifications)¬  anä alphabetizeó thå entrieó iî thå buffeò eitheò bù filå name/typå oò bù  filå type/name®  Onlù  entrieó  wherå thå extenô ió zerï (1sô filå  entry©  arå returned. Inputs: HL points to the 32 x 64 byte buffer for the directory DÅ pointó tï thå 11-bytå filå name/typå buffeò containinç thå file name/type to select Á  ió alphabetizatioî indicator»  A=° =¾ alphabetizå bù  filå name and type, A<>0 => alphabetize by file type and name Outputs: A = number of entries in directory buffer Registers Affected: PSW SYSLIB Routines Called: -None- (All calls within module) Special Error Conditions: -None- Routine Name: DIR Functionº  DIÒ loadó á copù oæ thå directorù oæ thå currentlù logged- iî disë drivå intï thå 3² ø 6´ bytå buffeò pointeä tï bù L®  Oî return¬  Á contains a count of the number of entries in the directory. Inputs: HL points to the 32 x 64 byte buffer for the directory Outputs: A = number of entries in directory buffer Registers Affected: PSW SYSLIB Routines Called: -None- Special Error Conditions: -None- Routiîe Îame: DIRSEL (DIRSELECT) Functionº DIRSEÌ scanó thå directorù buffeò pointeä tï bù HÌ foò  thå filå   name/typå  pointeä  tï  bù  DÅ  (maù  contaiî  ?'ó  foò  wilä   carä specifications)®  Iô restructureó thå directorù buffeò tï contaiî onlù thå matchinç entries®  Oî return¬ A=numbeò oæ entrieó iî buffer® Onlù entrieó witè extentó equaì tï zerï arå selected»  alì entrieó witè non-zerï extentó are rejected. Inputs: HL points to the 32 x 64 byte buffer for the directory DE points to the 11-byte file name/type buffer A = number of entries in directory buffer Outputs: A = number of entries in directory buffer Registers Affected: PSW SYSLIB Routines Called: -None- Special Error Conditions: -None- Routine Name: DIRALP (DIRALPHABETIZE) Functionº  DIRALÐ alphabetizeó thå directorù buffeò pointeä tï bù  HÌ accordinç  tï thå comparå optioî passeä iî à (iæ C=0¬  alphabetizå bù  filå name & type; if C<>0, alphabetize by file type & name). Inputs: HL points to the 32 x 64 byte buffer for the directory C = alphabetization flag (FN & FT if C=0, FT & FN if C<>0) A = number of entries in directory buffer Outputs: -None- (buffer is alphabetized) Registers Affected: -None- SYSLIB Routines Called: -None- Special Error Conditions: -None- :Numeric String Evaluation Routines -- EVAL, EVAL16, EVAL10, EVAL8, EVAL2 Routine Name: EVAL Functionº Thió routinå convertó thå characteò strinç pointeä tï bù HÌ intï  thå  16-biô  binarù  numbeò representeä bù  it®  EVAÌ  performó  thå conversioî untiì á non-hexadecimaì characteò ió encountered¬  aô whicè timå iô  lookó aô thå lasô characteò anä thå previouó characteò tï determinå  iæ thå strinç ió representinç á binary¬ octal¬ decimal¬ oò hexadecimaì number® Inpuô strinç characteró maù bå upper- oò lower-case® Valiä formató foò thå input string are -- bbbbbbbbbbbbbbbbB -- b=0 or b=1; Binary string ttttt or tttttD -- 0 <= t <= 9; Decimal string hhhhH or hhhhX -- 0 <= h <= F; Hexadecimal string oooooooO or oooooooQ -- 0 <= o <= 7; Octal string Inputs: HL points to the first byte of the string to convert String is loaded in a buffer Outputs: HL points to next character after converted string DE contains 16-bit value A = E CARRÙ  Flaç  Seô meanó aî erroò waó  encountereä  iî  strinç format Registers Affected: PSW, DE, HL SYSLIB Routines Called: CAPS, EVAL16, EVAL10, EVAL8, EVAL2 Speciaì  Erroò Conditionsº CARRÙ Flaç Seô indicateó thaô aî erroò waó encountereä  iî  thå evaluatioî oæ thå string»  iæ so¬  HÌ  pointó  tï  thå offending character Routine Name: EVAL16 Functionº  EVAL1¶ convertó thå strinç oæ ASCIÉ hexadecimaì characteró pointeä tï bù HÌ intï á 16-biô binarù value®  Conversioî progresseó  untiì an invalid hexadecimal digit (0-9, A-F) is encountered. Inputs: HL points to the first byte of the string to convert String is loaded in a buffer Outputs: HL points to the offending character DE contains the 16-bit value A = E Registers Affected: PSW, DE, HL SYSLIB Routines Called: CAPS Special Error Conditions: -None- Routine Name: EVAL10 Functionº  EVAL1°  convertó  thå strinç oæ ASCIÉ  decimaì  characteró pointeä tï bù HÌ intï á 16-biô binarù value®  Conversioî progresseó  untiì an invalid decimal digit (0-9) is encountered. Inputs: HL points to the first byte of the string to convert String is loaded in a buffer Outputs: HL points to the offending character DE contains the 16-bit value A = E Registers Affected: PSW, DE, HL SYSLIB Routines Called: -None- Special Error Conditions: -None- Routine Name: EVAL8 Functionº EVAL¸ convertó thå strinç oæ ASCIÉ octaì characteró pointeä tï  bù  HÌ  intï á 16-biô binarù value®  Conversioî  progresseó  untiì  aî invalid octal digit (0-7) is encountered. Inputs: HL points to the first byte of the string to convert String is loaded in a buffer Outputs: HL points to the offending character DE contains the 16-bit value A = E Registers Affected: PSW, DE, HL SYSLIB Routines Called: -None- Special Error Conditions: -None- Routine Name: EVAL2 Functionº  EVAL²  convertó  thå  strinç oæ  ASCIÉ  binarù  characteró pointeä tï bù HÌ intï á 16-biô binarù value®  Conversioî progresseó  untiì an invalid binary digit (0-1) is encountered. Inputs: HL points to the first byte of the string to convert String is loaded in a buffer Outputs: HL points to the offending character DE contains the 16-bit value A = E Registers Affected: PSW, DE, HL SYSLIB Routines Called: -None- Special Error Conditions: -None- :Byte-Oriented File Input/Output Routines Thå  followinç  documentatioî coveró thå serieó oæ byte-orienteä  filå input/outpuô  routineó  iî  SYSLIB®  Theså  routineó  allo÷  thå  useò  tï sequentiallù  reaä froí (GET© anä writå tï (PUT© á filå oî á  byte-for-bytå basis®  Hence¬  theså routineó providå aî exceptionallù simplå methoä  foò handling input from and output to a file. Á  typicaì prograí whicè employó theså routineó musô opeî thå requireä fileó beforå doinç anù processing¬  musô theî perforí thå processinç oî thå openeä  files¬  anä  musô  theî  closå thå fileó  wheî  thå  processinç  ió completå  (closinç thå fileó ió optionaì foò inpuô fileó anä mandatorù  foò output files). SYSLI provideó fouò setó oæ routineó foò byte-orienteä filå inpuô anä output. These routines are -- Input Open Output Open GET PUT Input Close Output Close ---------- ----------- --- --­ ----------- ------------ FI$OPEN FO$OPEN F$GET F$PUT FI$CLOSE FO$CLOSE F1I$OPEN F1O$OPEN F1$GET F1$PUT F1I$CLOSE F1O$CLOSE F2I$OPEN F2O$OPEN F2$GET F2$PUT F2I$CLOSE F2O$CLOSE F3I$OPEN F3O$OPEN F3$GET F3$PUT F3I$CLOSE F3O$CLOSE Thió systeí allowó thå useò tï havå uð tï ¸ fileó opeî  simultaneouslù -- fouò  arå  opeî foò inpuô usinç GEÔ anä fouò arå opeî foò  outpuô  usinç PUT®  Foò  example¬  thå  followinç ió á samplå codå sectioî  usinç  theså routines for two files: EXT FI$OPEN ; DECLARE LIBRARY REFERENCES EXT FO$OPEN EXT FI$CLOSE EXT FO$CLOSE EXT F$GET EXT F$PUT ... LXI D,FCBI ; PT TO FCB OF INPUT FILE CALL FI$OPEN LXI D,FCBO ; PT TO FCB OF OUTPUT FILE CALL FO$OPEN ... [body containing CALL F$GET and CALL F$PUT where required] ... CALL FI$CLOSE ; CLOSE FILE CALL FO$CLOSE ... END Notå  thaô  onlù  thå routineó tï bå useä arå referenceä  iî  thå  EXÔ statements®  Iæ yoõ dï noô neeä á particulaò routine¬ dï noô referencå it® Noô  referencinç  aî unneedeä routinå generallù saveó thå  overheaä  memorù spacå oæ loadinç iô froí thå library. Eacè seô oæ OPEN¬  CLOSE¬  GET¬  anä PUÔ routineó ió containeä iî  onå librarù  module¬  sï  referencinç anù oæ theså routineó causeó  thå  entirå modulå  tï  bå  loaded¬  anä alì thå routineó arå accessablå  tï  thå  useò (provideä  theù  arå  mentioneä  iî thå extenaì  definitions©  withouô  anù additionaì memorù  overhead®  Specifically¬  FI$OPEN¬  FI$CLOSE¬  FO$OPEN¬ FO$CLOSE¬  F$GET¬  anä F$PUÔ arå containeä iî onå module¬  anä referencå tï anù  oæ  theså routineó loadó thå entirå module»  thå samå ió truå foò  thå other sets of routines. Thå  CLOSÅ routinå foò outpuô (FO$CLOSE© ió ALWAYÓ required»  iô filló thå  resô  oæ thå currenô blocë witè Ctrl-Ú followeä bù  © oò less® Wilä cardó (?,*© maù bå includeä iî thå string® Á samplå usagå is: ... LXI H,NAME LXI D,FCB ; HL PTS TO FILE NAME, DE PTS TO BUFFER CALL INITFCB ... NAME: DB 'FILE.TYP',0 FCB: DS 33 ... Inputs: HL = pointer to file name string "filename.typ" DE = pointer to FCB buffer Outputs: A = Error Code 0 --> No Error 1 --> File name > 8 characters 2 --> File type > 3 characters Registers Affected: PSW SYSLIB Routines Called: -None- Special Error Conditions: -None- :File Manipulation -- F$OPEN, F$CLOSE, F$MAKE, F$DELETE Routine Name: F$OPEN Functionº  Opeî thå filå specifieä bù thå FC pointeä tï bù  DE®  Iæ filå ió noô found¬ F$OPEÎ askó thå useò (oî CON:© iæ hå wisheó tï creatå iô anä  doeó  sï iæ thå answeò ió 'Y§ oò 'y§ (F$OPEÎ simplù  returnó  witè  aî appropriate error code if answer is negative). Inputs: DE = pointer to FCB Outputs: A = Error Code 0 --> No Error 0FFH --> File not opened or created Registers Affected: PSW SYSLIB Routines Called: BDOS, CAPS, CIN, COUT, CRLF, PRINT Special Error Conditions: -None- Routine Name: F$CLOSE Function: Close the file whose FCB is pointed to by DE. Inputs: DE = pointer to FCB Outputs: A = Error Code 0 --> No Error 0FFH --> Error in closing file Registers Affected: PSW SYSLIB Routines Called: BDOS Special Error Conditions: -None- Routine Name: F$MAKE Function: Create (Make) the file whose FCB is pointed to by DE. Inputs: DE = pointer to FCB Outputs: A = Error Code 0FFH --> No directory space available Not 0FFH --> No Error; Value is byte address in TBUFF (80H-0FFH) of directory entry allocated to the FCB Registers Affected: PSW SYSLIB Routines Called: BDOS, F$DELETE Special Error Conditions: -None- Routine Name: F$DELETE Functionº  Deletå  thå filå whoså FC ió pointeä tï bù DE®  Iæ  filå does not exist, nothing happens (no error message or code is given). Inputs: DE = pointer to FCB Outputs: -None- Registers Affected: PSW SYSLIB Routines Called: BDOS Special Error Conditions: -None- :File Input/Output Routines -- F$READ and F$WRITE Routine Name: F$READ Functionº Reaä nexô blocë (12¸ bytes© froí thå openeä filå whoså  FC is pointed to by DE into TBUFF (buffer at 80H - 0FFH). Inputs: DE = pointer to FCB Outputs: A = Error Code 0 --> No Error 1 --> Read past end of file 2 --> Reading unwritten data in random access Registers Affected: PSW SYSLIB Routines Called: BDOS Special Error Conditions: -None- Routine Name: F$WRITE Functionº  Writå  nexô blocë (12¸ bytes© froí TBUFÆ (buffeò aô 80È  - 0FFH) to the opened file whose FCB is pointed to by DE. Inputs: DE = pointer to FCB Outputs: A = Error Code 0 --> No Error 1 --> Error in extending file 2 --> End of disk data 0FFH --> No more directory space Registers Affected: PSW SYSLIB Routines Called: BDOS Special Error Conditions: -None- :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ó he types it, and INLINE responds to the following editor commands: Key Command Function ----------- -------- Delete previous character and back up cursor Delete previous character and echo it (like CP/M) Input complete -- return to calling program Skip down to next physical line and insert a into buffer Tabulate to next tab stop (every 8, as in CP/M) Ctrl-U, Erase current line (clear buffer) and restart input Ctrl-X Ctrl-R Retype current line Oî exit¬  thå buffeò containó thå texô entereä followeä bù á typed to end the input is NOT placed in the buffer. Inputs: HL = pointer to input line buffer Outputs: -None- (Input line buffer contains text typed by user) Registers Affected: -None- SYSLIB Routines Called: CCOUT, CIN, COUT, CRLF Speciaì  Erroò Conditionsº © 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, and Ctrl-X. :String Output Routines -- PRINT, LPRINT, PSTR, LPSTR Routine Names: PRINT, LPRINT Functionº  Prinô  strinç  pointeä tï âù thå returî  addresó  oî  CONº (PRINT© oò LSTº (LPRINT)®  Strinç ió terminateä bù á binarù 0® Controì ió returned to byte following string. Inputs: Return Address = pointer to string to be printed Outputs: HL points to byte after string (string is printed on CON: or LST:) Registers Affected: HL SYSLIB Routines Called: PSTR (for PRINT); LSTR (for LPRINT) Speciaì  Erroò Conditionsº Thå strinç MUSÔ bå terminateä bù á  binarù 0!!! Routine Names: PSTR, LPSTR Functionº  Prinô  strinç  pointeä tï bù HÌ oî  CONº  (PSTR©  oò  LSTº (LPSTR). String is terminated by a binary 0. Inputs: HL = pointer to string to be printed Outputs: -None- (string is printed on CON: or LST:) Registers Affected: -None- SYSLI  Routineó Calledº CCOUT¬  COUÔ (foò PSTR)»  LCOUT¬  LOUÔ  (foò LPSTR) Speciaì  Erroò Conditionsº Thå strinç MUSÔ bå terminateä bù á  binarù 0!!! :Numeric Output Routines -- PHL4HC,PHL5DC,PHLDC,PA2HC,PA3DC,PADC, L's, M's Routine Names: PHL4HC, LHL4HC Functionº  Prinô  HÌ  aó  fouò (4©  hexadecimaì  characteró  oî  CONº (PHL4HC) or LST: (LHL4HC). Inputs: HL = value to be printed Outputs: -None- (Value is printed) Registers Affected: -None- SYSLIB Routines Called: PA2HC (for PHL4HC); LA2HC (for LHL4HC) Special Error Conditions: -None- Routine Name: MHL4HC Functionº  Storå HÌ aó fouò (4© hexadecimaì characteró iî thå  4-bytå memorù buffeò pointeä tï bù DE® Oî return¬ DÅ pointó tï thå bytå followinç this buffer. Inputs: HL = value to be converted and stored DE points to 4-byte buffer Outputs: DE points to byte after buffer Registers Affected: DE SYSLIB Routines Called: MA2HC Special Error Conditions: -None- Routine Names: PHL5DC, LHL5DC Functionº Prinô HÌ aó fivå (5© decimaì characteró oî CONº (PHL5DC© oò LSTº (LHL5DC). Inputs: HL = value to be printed Outputs: -None- (Value is printed) Registers Affected: -None- SYSLIB Routines Called: POUT (for PHL5DC); LOUT (for LHL5DC) Special Error Conditions: -None- Routine Name: MHL5DC Functionº Storå HÌ aô fivå (5© decimaì characteró iî memorù iî thå 5- bytå buffeò pointeä tï bù DE®  Oî return¬ DÅ pointó tï thå bytå afteò thió buffer. Inputs: HL = value to be converted and stored DE points to a 5-byte buffer Outputs: DE points to the byte following the buffer Registers Affected: DE SYSLIB Routines Called: -None- Special Error Conditions: -None- Routine Names: PHLDC, LHLDC Functionº Prinô HÌ aó uð tï fivå (5© decimaì characteró witè  leadinç spaces () on CON: (PHLDC) or LST: (LHLDC). Inputs: HL = value to be printed Outputs: -None- (Value is printed) Registers Affected: -None- SYSLIB Routines Called: POUT (for PHLDC); LOUT (for LHLDC) Special Error Conditions: -None- Routine Name: MHLDC Functionº  Storå HÌ aó uð tï fivå (5© decimaì characteró witè leadinç spaces in the 5-byte memory buffer pointed to by DE. Inputs: HL = value to be converted and printed DE points to the 5-byte buffer Outputs: DE points to the byte after the buffer Registers Affected: DE SYSLIB Routines Called: -None- Special Error Conditions: -None- Routine Names: PA2HC, LA2HC Functionº  Prinô Á aó twï (2© hexadecimaì characteró oî CONº  (PA2HC© or LST: (LA2HC). Inputs: A = value to be printed Outputs: -None- (Value is printed) Registers Affected: -None- SYSLI  Routineó Calledº EÎ (foò both)»  POUÔ (foò PA2HC)»  LOUÔ (foò LA2HC) Special Error Conditions: -None- Routine Name: MA2HC Functionº  Storå  Á aó twï (2© hexadecimaì characteró iî  thå  2-bytå memory buffer pointed to by HL. On return, HL points to byte after buffer. Inputs: A = value to be converted and stored HL points to 2-byte buffer Outputs: HL points to byte after this buffer Registers Affected: HL SYSLIB Routines Called: EN Special Error Conditions: -None- Routine Names: PA3DC, LA3DC Functionº Prinô Á aó threå (3© decimaì characteró oî CONº (PA3DC©  oò LST: (LA3DC). Inputs: A = value to be printed Outputs: -None- (Value is printed) Registers Affected: -None- SYSLIB Routines Called: POUT (for PA3DC); LOUT (for LA3DC) Special Error Conditions: -None- Routine Name: MA3DC Functionº  Storå  Á  aó threå (3© decimaì characteró  iî  thå  3-bytå memorù buffeò pointeä tï bù HL® Oî return¬ HÌ pointó tï thå bytå afteò thå buffer. Inputs: A = value to be converted and stored HL points to the 3-byte buffer Outputs: HL points to the byte after the buffer Registers Affected: HL SYSLIB Routines Called: -None- Special Error Conditions: -None- Routine Names: PADC, LADC Functionº  Prinô Á aó uð tï threå (3© decimaì characteró witè leadinç spaces () on CON: (PADC) or LST: (LADC). Inputs: A = value to be printed Outputs: -None- (Value is printed) Registers Affected: -None- SYSLIB Routines Called: POUT (for PADC); LOUT (for LADC) Special Error Conditions: -None- Routine Name: MADC Functionº Storå Á aó uð tï threå (3© decimaì characteró witè  leadinç spaceó iî thå 3-bytå memorù buffeò pointeä tï bù HL®  Oî return¬ HÌ pointó to the byte after the buffer. Inputs: A = value to be converted and stored HL points to the 3-byte memory buffer Outputs: HL points to the byte after the buffer Registers Affected: HL SYSLIB Routines Called: -None- Special Error Conditions: -None- :String and Value Comparision Routines -- COMPHD,COMPB,COMPBC,SCANNER,INSTR Routine Name: COMPHD Functionº Comparå HÌ tï DE® Oî return¬ Zerï Flaç Seô =¾ HL=DE¬ Carrù Flag Set => HL Output -- CRLF and LCRLF Routine Names: CRLF, LCRLF Function: Print and on CON: (CRLF) or LST: (LCRLF). Inputs: -None- Outputs: -None- ( is printed) Registers Affected: -None- SYSLIB Routines Called: POUT (for CRLF); LOUT (for LCRLF) Special Error Conditions: -None- :Conditional Input -- CONDIN Routine Name: CONDIN Functionº Inpuô á characteò froí CONº iæ onå ió available» otherwise¬ return a flag stating that a character is not available on CON:. Inputs: -None- Outputs: A = character typed at CON: (if available) Zero Flag is set (Z) if no character is available Zero Flag is reset (NZ) if character is available Registers Affected: PSW SYSLIB Routines Called: CST, CIN Special Error Conditions: -None- :General Input Routines -- CST, CIN, RIN Routine Name: CST Functionº  Inpuô  thå statuó oî CONº iî Registeò  A®  Iæ  Reaä  Datá Available, A=0; otherwise, A=1. Inputs: -None- Outputs: A = Console Status 0 --> Read Data Available (RDA) 1 --> Read Data Not Available (Not RDA) Registers Affected: PSW SYSLIB Routines Called: -None- Special Error Conditions: -None- Routine Names: CIN, RIN Functionº Inpuô characteò froí CONº (CIN© oò RDRº (RIN© iî Registeò A. Inputs: -None- Outputs: A = Character input from CON: or RDR: Registers Affected: PSW SYSLIB Routines Called: -None- Special Error Conditions: -None- :General Output Routines -- COUT, LOUT, POUT, CCOUT, CLOUT, CPOUT Routine Names: COUT, LOUT, POUT Functionº Outpuô characteò iî Registeò Á tï CONº (COUT)¬ LSTº (LOUT)¬ or PUN: (POUT). Inputs: A = Character to output Outputs: -None- (Character is output) Registers Affected: -None- SYSLIB Routine Called: -None- Special Error Conditions: -None- Routine Names: CCOUT, CLOUT, CPOUT Functionº Outpuô characteò iî Registeò Á tï CONº (COUT)¬ LSTº (LOUT)¬ oò  PUNº  (POUT© witè controì characteò processing®  Alì  characteró  witè ASCIÉ  codeó  lesó thaî ¬  ¬ ¬  ¬  anä  Any character of value greater than is output normally. Inputs: A = Character to output Outputs: -None- (Character/Code is output) Registers Affected: PSW (only the Flags; Register A is NOT affected) SYSLI Routineó Calledº COUÔ (foò CCOUT)» LOUÔ (foò CLOUT)» POUÔ (foò CPOUT) Special Error Conditions: -None- :Miscellaneouó Routineó -- BDOS¬  CAPS¬  CIO¬  EN¬  FILLB¬  FILLBC¬  MOVEB¬ MOVEBC, CATH Routine Name: BDOS Functionº  Calì CP/Í Entrù Poinô aô locatioî µ anä preservå Registeró HL and DE. Inputs: -As Required by User- Outputs: PSW, BC Registers Affected: PSW, BC SYSLIB Routines Called: -None- Special Error Conditions: -Determined by Routines Called- Routine Name: CAPS Functionº  Capitalizå ASCIÉ characteò iî Registeò Á iæ iô  ió  lower- case alphabetic (a-z); otherwise, return A unaffected. Inputs: A = character to capitalize Outputs: A = capitalized character Registers Affected: PSW SYSLIB Routins Called: -None- Special Error Conditions: -None- Routine Name: CIO Functionº  CP/Í  I/Ï througè BIOÓ Jumð Table®  Thió routinå  indexeó intï thå CP/Í BIOÓ Jumð Tablå anä allowó thå useò tï addresó anù routinå iî thå  BIOÓ  (accessablå  routineó  only)®  Iô ió  calleä  witè  Registeò  Á containinç  thå indeø offseô (seå tablå below© anä Registeró Bà containinç anù requireä inpuô arguments® Thå followinç tablå summarizeó thå BIOÓ Jumð Table entries -- Offset Function Offset Function 0 Warm Start 7 Home Disk Head 1 Console Status; A=0FFH if 8 Select Disk; C=Disk Number (A=0, char ready, A=0 if not B=1, C=2, D=3) passed 2 Console Input; A=result 9 Set Track Number; C=Track Number 3 Console Output; C=char passed passed 4 List Output; C=char passed 10 Set Sector Number; C=Sector 5 Punch Output; C=char passed Number passed 6 Reader Input; A=result 11 Set DMA Address; BC=adr passed 12 Read Disk; A=0 if ok, 1 if err 13 Write Disk; A=0 if ok, 1 if err Any other offset results in a Cold Start being performed. Inputs: A = Offset BC = Data Passed to Routine Outputs: A = Output or Error Indicator Registers Affected: PSW SYSLIB Routines Called: -None- Special Error Conditions: -None- Routine Name: EN Functionº  Exchangå Nybbleó iî Register A»  High-ordeò fouò bitó  arå exchanged with Low-order four bits of Register A. Inputs: A = Byte input Outputs: A = Byte output Registers Affected: PSW SYSLIB Routines Called: -None- Special Error Conditions: -None- Routine Names: FILLB, FILLBC Functionº  Theså routineó filì aî areá oæ memorù witè á constanô bytå value® FILL caî filì uð tï á 256-bytå buffer¬ anä FILLBà caî filì uð tï á 65,536-byte (within reason) buffer. Inputs: HL points to the first byte of the buffer to be filled B (for FILLB) or BC (for FILLBC) = number of bytes in buffer A = byte value to fill buffer with Outputs: -None- (Buffer is filled) Registers Affected: -None- SYSLIB Routines Called: -None- Special Error Conditions: -None- Routine Names: MOVEB, MOVEBC Functionº  Movå  thå blocë oæ memorù pointeä tï bù HÌ tï  thå  memorù locatioî  pointeä tï bù DE®  MOVE caî movå uð tï á 256-bytå  buffer¬  anä MOVEBC can move up to a 65,536-byte buffer. Inputs: HL points to the first byte of the buffer to move DE points to the first byte of the buffer to move to B (for MOVEB) or BC (for MOVEBC) = number of bytes in buffer Outputs: -None- (Buffer is moved) Registers Affected: -None- SYSLIB Routines Called: -None- Special Error Conditions: -None- Routine Name: CATH Functionº  Converô thå ASCIÉ Hexadecimaì characteò iî thå Á  Registeò tï binarù iî thå Á Register®  Iæ invaliä characteò (noô 0-9¬  A-F)¬ returî (20 Hex) in A Register as error code. Input: A = ASCII Hex Character (0-9, A-F) Output: A = Binary value represented by char Registers Affected: PSW SYSLIB Routines Called: -None- Speciaì Erroò Conditionsº Iæ invaliä heø char¬