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¬