home *** CD-ROM | disk | FTP | other *** search
/ The CIA World Factbook 1992 / k3bimage.iso / sel / 12 / 0003 / basdlx.doc next >
Encoding:
Text File  |  1991-12-02  |  30.0 KB  |  842 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.              BASDLX (C) Copyright 1986-87 By Gustavo Verdun       Page 1
  8.  
  9.  
  10.                                      BASDLX.LIB
  11.  
  12.            Deluxe Library of routines written in assembly language for the
  13.                                    BASIC Compiler
  14.  
  15.           BASDLX, Basic Deluxe,  is a library of powerful routines for com-
  16.           piled  BASIC.  To  use  BASDLX.LIB you will need,  either the IBM
  17.           Basic  compiler or the Microsoft Quickbasic compiler.  I  suggest
  18.           that  you  use PC-DOS/MS-DOS versions 2.0 or later to insure full
  19.           compatibility. These routines have been tested with the IBM Basic
  20.           compiler version 2.0 and have caused no problems.  However,  I am
  21.           not  responsible  for any damages caused by but,  not limited to,
  22.           the use, misuse or inability to use BASDLX.  These deluxe routine
  23.           are intended to be used in compiled basic only.  Do  not  confuse
  24.           compiled   BASIC   with  the  BASIC  interpreter,   BASIC.COM  or
  25.           BASICA.COM that comes with DOS.  The routines  provided  in  this
  26.           library  have been designed to run faster than it's correspondent
  27.           basic code,  and often take up less space,  leaving you with more
  28.           room to write longer programs!
  29.  
  30.           This  is  the Third,  of many public releases of the Basic Deluxe
  31.           library.  You are free to use the routines provided in the BASDLX
  32.           library  in your programs. The copyright is only here to preserve
  33.           my work and to protect you from any unauthorized modifications of
  34.           BASDLX;  it  is NOT here to protect against the free distribution
  35.           of BASDLX.  You may copy and distribute BASDLX to  others as long
  36.           as no  fee or special consideration is charged and all of the re-
  37.           lated  files  to  BASDLX  are included together in the unmodified
  38.           form.  If you use BASDLX in your programs and find it a  valuable
  39.           tool  then I would appreciate it if you would send a contribution
  40.           ($25 suggested).  It  would be nice if you could acknowledge  use
  41.           of  BASDLX  routines  in  your programs or documentation that use
  42.           them.  With a minimum contribution of $25 I will send you a  disk
  43.           with the source code to BASDLX.  Previous contributors will  need
  44.           only send $10 for an update of BASDLX. A contribution of $55 will
  45.           grant you a one year subscription to BASDLX.  With a subscription
  46.           you  will  automatically receive new updates as soon as they come
  47.           out. All contributions are non-refundable.  Updates come complete
  48.           with source code, BASDLX library, and documentation.
  49.  
  50.           These routines have been incorporated into a library to make them
  51.           easily  accessible by the DOS LINK.EXE program.   All you have to
  52.           do is copy BASDLX.LIB to the directory or  disk  where  you  keep
  53.           your  library  files.    When  you  link  your  programs that use
  54.           routines from BASDLX,  be sure to specify: BASDLX when the linker
  55.           prompts you for a Library [.LIB] file(s).  Please refer  to  your
  56.           DOS manual for more information on the LINK.EXE program.
  57.  
  58.  
  59.  
  60.                       --- BASDLX   Version 1.3   March 1987 ---
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.              BASDLX (C) Copyright 1986-87 By Gustavo Verdun       Page 2
  68.  
  69.                                     Special Notes
  70.  
  71.           The  routines  provided  in  this library are available to you by
  72.           using the CALL command from compiled BASIC. All numeric variables
  73.           passed as arguments to the routines  must  defined  as  integers.
  74.           This means that you can either globally set all numeric variables
  75.           to integers by issuing the DEFINT A-Z command at the beginning of
  76.           your program or,  you can declare a single variable as integer by
  77.           adding a "%" symbol at the end of its name. (i.e.  I%,  this will
  78.           declare the variable as being integer). I will always add the "%"
  79.           symbol  at  the  end of all my numeric variables in all of my ex-
  80.           amples, to remind you that they MUST be integers.
  81.  
  82.           The variable names used in my examples don't have to  be  exactly
  83.           the  same.  you  may  choose  other  names that would be more ap-
  84.           propriate. keep in mind that the variable types do have to be the
  85.           same in the argument list (i.e. strings must be strings, integers
  86.           must be integers).
  87.  
  88.           As I mentioned before I have tested these routines and  they,  to
  89.           the best of my knowledge,  work bug free.  But,  if you happen to
  90.           find any bugs I'll be happy to fix them.  Be sure to  check  that
  91.           you are CALLing the routines properly. That is that you are send-
  92.           ing the correct arguments to the routine.  One of the most common
  93.           error that occurs is when the  calling  program  sends  to    the
  94.           routine  an incorrect variable type.  Remember that numeric vari-
  95.           ables must be declared integer.
  96.  
  97.  
  98.  
  99.           Please refer any questions,  comments,  requests for new routines
  100.           or contributions to the following address:
  101.  
  102.                                  Gustavo  H. Verdun
  103.                                  6424 Hollins Drive
  104.                                  Bethesda, MD 20817
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.                       --- BASDLX   Version 1.3   March 1987 ---
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.              BASDLX (C) Copyright 1986-87 By Gustavo Verdun       Page 3
  128.  
  129.           Routine Name : BSORTN
  130.           Arguments    : (Num_of_elements,Integer_array%(start))
  131.           type         : integer array service
  132.           Purpose      : Sorts an integer array in ascending order with
  133.                          negative numbers appearing at the end  in
  134.                          ascending order.
  135.  
  136.           Description:
  137.           Integer  variables  in  BASIC can contain numbers between -32,768
  138.           and 32,767. This routine does not distinguish between negative or
  139.           positive numbers.  It will sort the elements in  ascending  order
  140.           with  all  the negative numbers (if existing) appearing after the
  141.           positive numbers in ascending order.  Make sure that the array is
  142.           of type integer. Unpredictable results may occur if not!
  143.  
  144.           Example:
  145.           dim a%(300):print "Array Before sort:"
  146.           for i%=0 to 300:a%(i%)=int(rnd(1)*30000):print a%(i%),:next
  147.           enum%=301:call bsortn(enum%,a%(0))
  148.           rem enum%=301 because there are 301 elements in the array (0-300)
  149.           print "Array After sort:":for i%=0 to 300:print a%(i%),:next
  150.           rem the list should be sorted in ascending numerical order!
  151.  
  152.           Routine Name : BSORTS
  153.           Arguments    : (Num_of_elements%,Array$(start_position))
  154.           Type         : String array service
  155.           Purpose      : Sorts a string array in ascending alphabetical
  156.                          order.
  157.  
  158.           Description:
  159.           The  first argument should contain the number of elements to sort
  160.           in the array. The second argument is the array itself. be sure to
  161.           specify   the   starting   position   in    the    array    [i.e.
  162.           BSORTS(elements%,a$(0))]
  163.           IMPORTANT:  All  of  the  elements  in  the array MUST have equal
  164.           lengths, if not, unpredictable results will occur to BASIC
  165.  
  166.           Example:
  167.           dim a$(10):a$(0)"First":a$(1)="Second":a$(2)="Third"
  168.           a$(3)="Fourth":a$(4)="Fifth":a$(5)="Sixth":a$(6)="Seventh"
  169.           a$(7)="Eighth":a$(8)="Ninth":a$(9)="Tenth"
  170.           for i%=0 to 9:b$=space$(10):call setl(a$(i%),b$):a$(i%)=b$:next
  171.           rem the above line will make all of the elements in the array
  172.           rem have equal lengths.
  173.           print "Array before sort:":for i%=0 to 9:print a$(i%):next
  174.           enum%=10:call bsorts(enum%,a$(0))
  175.           rem enum%=10 because there are 10 elements  in  the  array  (0-9)
  176.           print "Array After sort:":for i%=0 to 9:print a$(i%):next
  177.           rem the list should be sorted in ascending alphabetical order!
  178.  
  179.  
  180.                       --- BASDLX   Version 1.3   March 1987 ---
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.              BASDLX (C) Copyright 1986-87 By Gustavo Verdun       Page 4
  188.  
  189.           Routine Name : DATESTR
  190.           Arguments    : (String_space$,Length%,mode%)
  191.           Type         : Date support
  192.           Purpose      : Reads  the  date and writes string_space$ with the
  193.                          date  in the following format: week-day month day,
  194.                          year. (i.e. Thursday, March 12, 1987)
  195.  
  196.           Description  :
  197.           The first argument,  String_space$,  must be  of    at  least  30
  198.           characters  of length.  If Length% returns with a zero then there
  199.           wasn't enough space in the  string  variable  String_space$.  The
  200.           Mode% argument tells the routine to either write the full name of
  201.           the  week-day  and month or just the first three letters of each.
  202.           If Mode%=0, or any number other than one,  then the full names of
  203.           the week-day and month will be written.  If Mode%=1 then only the
  204.           first three characters of the week-day and month will be written.
  205.           The Length% argument is used to tell BASIC  the  true  and  final
  206.           length  of  String_space$  (This  way  you  easily get rid of the
  207.           trailing characters after the year since,  the actual  length  of
  208.           String_space$ will vary greatly depending on the date.)
  209.           NOTE:  String_space$  will never be any longer than 30 characters
  210.           of length.
  211.  
  212.           Example:
  213.           D$=space$(30):l%=0:mode%=0:call datestr(d$,l%,mode%)
  214.           if l%=0 then print "Not enough space in D$!":stop
  215.           d$=left(d$,l%):print "Today is ";d$
  216.           D$=space$(30):l%=0:mode%=1:call datestr(d$,l%,mode%)
  217.           if l%=0 then print "Not enough space in D$!":stop
  218.           d$=left(d$,l%):print "Today is ";d$
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.                       --- BASDLX   Version 1.3   March 1987 ---
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.              BASDLX (C) Copyright 1986-87 By Gustavo Verdun       Page 5
  248.  
  249.           Routine Name : GETSTRD
  250.           Arguments    :
  251.  
  252.                (String$,length%,frame%,overwrite%,insert%,color%,mode%)
  253.  
  254.           Type         : String/Data entry enhancement
  255.           Purpose      : This routine accepts input from the  keyboard  and
  256.                          stores  it in String$ argument allowing the use of
  257.                          standard editing commands.
  258.  
  259.           Description  :
  260.           To start with I will describe each of the arguments:
  261.  
  262.           String$,  This is the space where the input data will be  stored.
  263.           The  field  size  of  the input data will be set to the length of
  264.           this string.  If there is already some data in the string it will
  265.           not be erased. Just be sure to set the length to the proper value
  266.           to  let  GETSTRD  know  that there is already data in the String$
  267.           variable that is ready to be edited.
  268.  
  269.           Length%,  I added this argument so if you have  a  string  length
  270.           that  is  shorter than the field size that you have allocated for
  271.           the data,  GETSTRD will be able to know and upon return tell  you
  272.           the actual length of the string. This makes it easy to remove the
  273.           trailing  spaces  in  the  String$  if they are not important.  a
  274.           Length% of zero tells GETSTRD that it is  a  `fresh'  data  field
  275.           containing no information.
  276.  
  277.           Overwrite%  &  Insert%,  These  two  arguments contain the cursor
  278.           shapes  that  indicate if overwrite or insert    is  active.  The
  279.           formula for the values that must be stored in these two arguments
  280.           is  as follows: =(START and 31)*256+STOP   Where START & STOP are
  281.           the values for cursor start & stop scan lines which  must  be  in
  282.           the range of 0-31.  (See the BASIC LOCATE command for more infor-
  283.           mation on cursor shapes.)
  284.  
  285.           Frame%,  this argument contains the  ASCII  code  for  the  frame
  286.           character.  GETSTRD  draws  a  one  line  frame  of the length of
  287.           String$ to let you see the field size.
  288.  
  289.           Color%,  here is where you may specify the color  attribute  that
  290.           GETSTRD will use.  The formula for the color value is as follows:
  291.           Color%=(BACKGROUND and 7)*16+FOREGROUND
  292.  
  293.           Mode%,  GETSTRD currently supports two  modes  of  operation.  If
  294.           Mode%=0  GETSTRD  will  operate  normally  without exiting unless
  295.           [ESC] or [RETURN] is pressed.  If Mode%=1  GETSTRD  will  operate
  296.           normally  except  that  if it reads from the keyboard an extended
  297.           scan code that is not one of it's editing commands it  will  exit
  298.           the routine and return with the extended scan code to that key in
  299.  
  300.                       --- BASDLX   Version 1.3   March 1987 ---
  301.  
  302.  
  303.  
  304.  
  305.  
  306.  
  307.              BASDLX (C) Copyright 1986-87 By Gustavo Verdun       Page 6
  308.  
  309.           Mode%.  This  feature  makes it easy to write programs that allow
  310.           the user to scroll through other data fields without changing  or
  311.           having  to  re-enter data.  If upon exit from the GETSTRD routine
  312.           Mode%=-1 then the [ESC] key was pressed and your  program  should
  313.           do  whatever the [ESC] key means.  If [ESC] means nothing to your
  314.           program then just go back to the line that CALLs GETSTRD and con-
  315.           tinue.
  316.  
  317.           The following Editing keys are supported:
  318.  
  319.           [LEFT-ARROW]             Move cursor one space left.
  320.           [RIGHT-ARROW]            Move cursor one space right.
  321.           [HOME]                   Move cursor to beginning of line.
  322.           [END]                    Move cursor to the end of line.
  323.           (NOTE:    The end of the line is determined by the current length
  324.           of the input data and not the maximum length of the data field.)
  325.           [CTRL]-[RIGHT-ARROW]     Move cursor one word right.
  326.           [CTRL]-[LEFT-ARROW]      Move cursor one word left.
  327.           [CTRL]-[HOME]            Erase entire input field.
  328.           [CTRL]-[END]             Erase from cursor position to the end of
  329.                                    the line.
  330.           [INS]                    Set/Clear Insert mode.
  331.           [DEL]                    Deletes character at cursor position.
  332.           [BACKSPACE]              Deletes character to the left of cursor.
  333.  
  334.           Example      :
  335.           10 rem This example is for mode 0.
  336.           12 mode%=0:oc%=(0 and 31)*256+7:ic%=(5 and 31)*256+7:frame%=95
  337.           14 c%=31:rem oc% & ic% are the overwrite and insert cursors.
  338.           16 A$=""
  339.           18 l%=len(A$):b$=space$(50):call setl(a$,b$):a$=b$:rem add field
  340.           20 print "Enter data ";
  341.           22 call getstrd(a$,l%,frame%,oc%,ic%,c%,mode%)
  342.           24 a$=left$(a$,l%):if mode%=-1 then 18
  343.           .
  344.  
  345.           10 rem this example is for mode 1.
  346.           12 mode%=1:oc%=(0 and 31)*256+7:ic%=(5 and 31)*256+7:frame%=95
  347.           14 c%=31: rem oc% & ic% are the overwrite and insert cursors.
  348.           16 A$="":c
  349.           18 l%=len(A$):b$=space$(50):call setl(a$,b$):a$=b$:rem add field
  350.           20 locate 10,5:print "Enter data 1 ";
  351.           22 call getstrd(a$,l%,frame%,oc%,ic%,c%,mode%)
  352.           24 a$=left$(a$,l%):if mode%=-1 then 36
  353.           26 l%=len(C$):b$=space$(50):call setl(C$,b$):C$=b$:rem add field
  354.           28 locate 11,5:print "Enter data 2 ";
  355.           30 call getstrd(c$,l%,frame%,oc%,ic%,c%,mode%)
  356.           32 a$=left$(c$,l%):if mode%=-1 then 36
  357.           34 if mode%=72 or mode%=80 then 18
  358.           36 print "Data A: ";a$:print "Data B: ";c$:end
  359.  
  360.                       --- BASDLX   Version 1.3   March 1987 ---
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.              BASDLX (C) Copyright 1986-87 By Gustavo Verdun       Page 7
  368.  
  369.           Routine Name : GUN
  370.           Arguments    : (Num_of_shots%)
  371.           Type         : Speaker support
  372.           Purpose      : Simulates the sound of a gun or machine gun
  373.  
  374.           Description  :
  375.           This routine generates the sound by sending spurts of white noise
  376.           to the speaker.  This will create the sound of a quick explosion.
  377.           the only parameter needed is the number of shots to fire.
  378.  
  379.           Example:
  380.           input "Number of shots to fire :",shots%:if shots%=0 then end
  381.           call gun(shots%)
  382.  
  383.           Routine Name : READP
  384.           Arguments    : (Port_num%)
  385.           Type         : Printer support
  386.           Purpose      : Reads the printer status of the specified port
  387.                          number (1-3) and returns with the status byte
  388.                          for that port in the Port_num% variable.
  389.  
  390.           Description:
  391.           The status byte of contains the following information:
  392.  
  393.           bit:     7    6    5    4    3    2-1  0
  394.                    |    |    |    |    |    |    |_Time out
  395.                    |    |    |    |    |    |_Unused
  396.                    |    |    |    |    |_1 = I/O Error
  397.                    |    |    |    |_1 = Selected
  398.                    |    |    |_1 = Out of Paper
  399.                    |    |_1 = Acknowledge
  400.                    |_1 = Not Busy
  401.  
  402.           IMPORTANT:  This  routine does not check for a valid port number.
  403.           Be sure that the port number is in the range of 1-3
  404.  
  405.           Example:
  406.           port%=1:call readp(port%):print port%
  407.           if port% and 32=32 then print "Printer is out of paper"
  408.           if port% and 128=0 then print "Printer is Off-line"
  409.  
  410.  
  411.  
  412.  
  413.  
  414.  
  415.  
  416.  
  417.  
  418.  
  419.  
  420.                       --- BASDLX   Version 1.3   March 1987 ---
  421.  
  422.  
  423.  
  424.  
  425.  
  426.  
  427.              BASDLX (C) Copyright 1986-87 By Gustavo Verdun       Page 8
  428.  
  429.           Routine Name : RESETP
  430.           Arguments    : (Port_num%)
  431.           Type         : Printer support
  432.           Purpose      : Resets the specified printer port number (1-3)
  433.                          and returns with its status byte (see the READP
  434.                          routine description for information on the
  435.                          printer status byte)
  436.  
  437.           Description:
  438.           This routine sends a  reset status through the parallel interface
  439.           of the  specified  port  number.  This  routine  does  check  the
  440.           parameters  to  be sure that they are in the range of 1 to 3.  If
  441.           the Port_num% argument is equal to -1  upon return then the  port
  442.           number is not valid.
  443.  
  444.           Example:
  445.           port%=1:call resetp(port%):print port%
  446.           if port%=-1 then print"Port number must be in the range of 1-3"
  447.           if port% and 32=32 then print "Printer is out of paper"
  448.           if port% and 128=0 then print "Printer is Off-line"
  449.  
  450.           Routine Name : SETL
  451.           Arguments    : (Source_string$,Destination_string$)
  452.           Type         : String manipulation
  453.           Purpose      : This routine will place the source string inside
  454.                          of the destination left-justified. If the source
  455.                          string is longer than the destination string then
  456.                          the right portion of the string will be truncated.
  457.  
  458.           Description  :
  459.           This  routine  automatically  clears  the  destination  string to
  460.           spaces (ASCII 32) even if the source string is of length zero. Be
  461.           sure to save the destination string into the source string  after
  462.           the call.
  463.  
  464.           Example:
  465.           a$="Enter Name":b$=space(20):call setl(a$,b$):a$=b$
  466.           rem the last command "a$=b$" saves the destination string in the
  467.           rem source string since the routine cant' change the length of
  468.           rem any string.
  469.           print ">";a$";"<":REM this will show you the new length of a$
  470.  
  471.  
  472.  
  473.  
  474.  
  475.  
  476.  
  477.  
  478.  
  479.  
  480.                       --- BASDLX   Version 1.3   March 1987 ---
  481.  
  482.  
  483.  
  484.  
  485.  
  486.  
  487.              BASDLX (C) Copyright 1986-87 By Gustavo Verdun       Page 9
  488.  
  489.           Routine Name : SETR
  490.           Arguments    : (Source_string$,Destination_string$)
  491.           Type         : String manipulation
  492.           Purpose      : This routine will place the source string inside
  493.                          the destination string right justified. If the
  494.                          destination string is shorter than the source
  495.                          string then the right portion of the string will
  496.                          be truncated.
  497.  
  498.           Description  :
  499.           This  routine  automatically  sets  the destination string to all
  500.           spaces (ASCII 32) even if the source string is of length zero. Be
  501.           sure to save the destination string into the source string  after
  502.           the call.
  503.  
  504.           Example:
  505.           a$="Enter Name":b$=space(20):call setr(a$,b$):a$=b$
  506.           rem the last command "a$=b$" saves the destination string in the
  507.           rem source string since the routine cant' change the length of
  508.           rem any string.
  509.           print ">";a$;"<":REM this will show you the new length of a$
  510.  
  511.           Routine Name : SNDOFF
  512.           Arguments    : NONE
  513.           Type         : Speaker support
  514.           Purpose      : Turns speaker off. If this routine is used then
  515.                          the BASIC SOUND or BEEP commands will not work.
  516.  
  517.           Description  :
  518.           This  routine  can  be  useful  for those programs that use sound
  519.           prompts to get  attention  when  input  is  required.  With  this
  520.           routine you can easily add the feature to your programs that will
  521.           let  the  user decide if he wants to have the sound prompts on or
  522.           off.  If he wants the off then at the beginning of  your  program
  523.           just call this routine.  Any sound statements following this com-
  524.           mand will execute without producing a single sound.  Be sure  not
  525.           to forget to turn them on before the program finishes (SNDON).
  526.  
  527.  
  528.           Example :
  529.           sound 200,1:sound 300,1:sound 400,1:call sndoff
  530.           sound 200,1:sound 300,1:sound 400,1
  531.  
  532.  
  533.  
  534.  
  535.  
  536.  
  537.  
  538.  
  539.  
  540.                       --- BASDLX   Version 1.3   March 1987 ---
  541.  
  542.  
  543.  
  544.  
  545.  
  546.  
  547.             BASDLX (C) Copyright 1986-87 By Gustavo Verdun       Page 10
  548.  
  549.           Routine Name : SNDON
  550.           Arguments    : NONE
  551.           Type         : Speaker support
  552.           Purpose      : Turns sound on so that the BASIC SOUND and BEEP
  553.                          commands work.
  554.  
  555.           Description:
  556.           This  routine can help solve the problem that occurs when you use
  557.           some memory resident programs that use the speaker and when  they
  558.           are done the turn it off so that any SOUND or BEEP commands won't
  559.           produce an audible signal.  It can also turn on the sound when it
  560.           was turned off by the routine SNDOFF!
  561.  
  562.           Example:
  563.           sound 200,1:sound 300,1:sound 400,1:call sndoff
  564.           sound 200,1:sound 300,1:sound 400,1:call sndon
  565.           sound 200,1:sound 300,1:sound 400,1
  566.  
  567.           Routine Name : TIMESTR
  568.           Arguments    : (String_space$)
  569.           Type         : Time support
  570.           Purpose      : Reads  clock and loads String_space$ with the time
  571.                          in  decimal  ASCII.  The  format  is  as  follows:
  572.                          HH:MM:SS.HD
  573.                          Where, HH are hours,MM are minutes, SS are seconds
  574.                          and, HD are Hundredths of a second.
  575.  
  576.           Description  :
  577.           String_space$  must  be  of  at least 11 characters of length for
  578.           this routine to work successfully.  If it is not  of  the  proper
  579.           minimum  length  then the routine will do nothing and return with
  580.           the String_space$ unmodified.
  581.  
  582.           Example:
  583.           t$=space$(11):call timestr(t$):print t$
  584.  
  585.  
  586.           Routine Name : XLC
  587.           Arguments    : (String$)
  588.           Type         : String manipulation
  589.           Purpose      : Converts the string to lower case.
  590.  
  591.           Description:
  592.           No further explanations are necessary, I hope!
  593.  
  594.           Example:
  595.           a="THIS WILL BE IN LOWER CASE!":call xlc(a$):print a$
  596.  
  597.  
  598.  
  599.  
  600.                       --- BASDLX   Version 1.3   March 1987 ---
  601.  
  602.  
  603.  
  604.  
  605.  
  606.  
  607.             BASDLX (C) Copyright 1986-87 By Gustavo Verdun       Page 11
  608.  
  609.           Routine Name : XUC
  610.           Arguments    : (String$)
  611.           Type         : String manipulation
  612.           Purpose      : Converts the string to upper case.
  613.  
  614.           Description:
  615.           No further explanations are necessary, I hope!
  616.  
  617.           Example:
  618.           a="this will be in upper case!":call xuc(a$):print a$
  619.  
  620.  
  621.  
  622.  
  623.  
  624.  
  625.  
  626.  
  627.  
  628.  
  629.  
  630.  
  631.  
  632.  
  633.  
  634.  
  635.  
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.  
  659.  
  660.                       --- BASDLX   Version 1.3   March 1987 ---
  661.  
  662.  
  663.  
  664.  
  665.  
  666.  
  667.             BASDLX (C) Copyright 1986-87 By Gustavo Verdun       Page 12
  668.  
  669.                                  Summary of Routines
  670.  
  671.           Please use this as a quick summary to BASDLX routines.  This sum-
  672.           mary  should  only be used once you understand the routines,  but
  673.           just need a quick refreshment.
  674.  
  675.           Routine Name : BSORTN
  676.           Arguments    : (Num_of_elements,Integer_array%(start))
  677.           type         : integer variable service
  678.           Purpose      : Sorts   an integer array in ascending  order  with
  679.                          negative  numbers appearing at the end  in ascend-
  680.                          ing order.
  681.  
  682.           Routine Name : BSORTS
  683.           Arguments    : (Num_of_elements%,Array$(start_position))
  684.           Type         : String service
  685.           Purpose      : Sorts  a string array  in  ascending  alphabetical
  686.                          order.
  687.  
  688.           Routine Name : DATESTR
  689.           Arguments    : (String_space$,Length%,mode%)
  690.           Type         : Date support
  691.           Purpose      : Reads  the  date and writes string_space$ with the
  692.                          date  in the following format: week-day month day,
  693.                          year. (i.e. Thursday, March 12, 1987)
  694.  
  695.           Routine Name : GETSTRD
  696.           Arguments    :
  697.  
  698.                (String$,length%,frame%,overwrite%,insert%,color%,mode%)
  699.  
  700.           Type         : String/Data entry enhancement
  701.           Purpose      : This routine accepts input from the  keyboard  and
  702.                          stores  it in String$ argument allowing the use of
  703.                          standard editing commands.
  704.  
  705.           Routine Name : GUN
  706.           Arguments    : (Num_of_shots%)
  707.           Type         : Speaker support
  708.           Purpose      : Simulates the sound of a gun or machine gun
  709.  
  710.           Routine Name : READP
  711.           Arguments    : (Port_num%)
  712.           Type         : Printer support
  713.           Purpose      : Reads the   printer status  of  the specified port
  714.                          number (1-3) and returns with the status byte  for
  715.                          that port in the port_num% variable.
  716.  
  717.  
  718.  
  719.  
  720.                       --- BASDLX   Version 1.3   March 1987 ---
  721.  
  722.  
  723.  
  724.  
  725.  
  726.  
  727.             BASDLX (C) Copyright 1986-87 By Gustavo Verdun       Page 13
  728.  
  729.                              Summary of Routines (Cont.)
  730.  
  731.           Routine Name : RESETP
  732.           Arguments    : (Port_num%)
  733.           Type         : Printer support
  734.           Purpose         : Resets  the specified printer port number (1-3)
  735.                          and returns with its status byte  (see  the  READP
  736.                          routine   description   for   information  on  the
  737.                          printer status byte)
  738.  
  739.           Routine Name : SETL
  740.           Arguments    : (Source_string$,Destination_string$)
  741.           Type         : String manipulation
  742.           Purpose      : This   routine will place the source string inside
  743.                          of the destination left-justified.  If the  source
  744.                          string  is longer than the destination string then
  745.                          the right portion of the string will be truncated.
  746.  
  747.           Routine Name : SETR
  748.           Arguments    : (Source_string$,Destination_string$)
  749.           Type         : String manipulation
  750.           Purpose      : This  routine will place  the source string inside
  751.                          the destination string  right  justified.  If  the
  752.                          destination  string  is  shorter  than  the source
  753.                          string then the right portion of the  string  will
  754.                          be truncated.
  755.  
  756.           Routine Name : SNDOFF
  757.           Arguments    : NONE
  758.           Type         : Speaker support
  759.           Purpose      : Turns  speaker off.   If this routine is used then
  760.                          the BASIC SOUND or BEEP commands will not work.
  761.  
  762.           Routine Name : SNDON
  763.           Arguments    : NONE
  764.           Type         : Speaker support
  765.           Purpose      : Turns sound on so that the BASIC  SOUND  and  BEEP
  766.                          commands work.
  767.  
  768.           Routine Name : TIMESTR
  769.           Arguments    : (String_space$)
  770.           Type         : Time support
  771.           Purpose      : Reads  clock and loads String_space$ with the time
  772.                          in  decimal  ASCII.  The  format  is  as  follows:
  773.                          HH:MM:SS.HD
  774.                          Where, HH are hours,MM are minutes, SS are seconds
  775.                          and, HD are Hundredths of a second.
  776.  
  777.  
  778.  
  779.  
  780.                       --- BASDLX   Version 1.3   March 1987 ---
  781.  
  782.  
  783.  
  784.  
  785.  
  786.  
  787.             BASDLX (C) Copyright 1986-87 By Gustavo Verdun       Page 14
  788.  
  789.                              Summary of Routines (Cont.)
  790.  
  791.           Routine Name : XLC
  792.           Arguments    : (String$)
  793.           Type         : String manipulation
  794.           Purpose      : Converts the string to lower case.
  795.  
  796.           Routine Name : XUC
  797.           Arguments    : (String$)
  798.           Type         : String manipulation
  799.           Purpose      : Converts the string to upper case.
  800.  
  801.  
  802.  
  803.  
  804.  
  805.  
  806.  
  807.  
  808.  
  809.  
  810.  
  811.  
  812.  
  813.  
  814.  
  815.  
  816.  
  817.  
  818.  
  819.  
  820.  
  821.  
  822.  
  823.  
  824.  
  825.  
  826.  
  827.  
  828.  
  829.  
  830.  
  831.  
  832.  
  833.  
  834.  
  835.  
  836.  
  837.  
  838.  
  839.  
  840.                       --- BASDLX   Version 1.3   March 1987 ---
  841.  
  842.