home *** CD-ROM | disk | FTP | other *** search
/ TCE Demo 2 / TCE_DEMO_CD2.iso / demo_cd_.2 / mags / stosser / stoser01.arj / stoser01.msa / A / A10.DOC < prev    next >
Text File  |  1987-04-22  |  9KB  |  208 lines

  1.  
  2.  
  3.                        UNDERSTANDING STOS BASIC
  4.                       ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  5.                             By Dion Guy
  6.                Part 1 of a complete guide to variables
  7.  
  8.   This article has been copied in it's entirety from STOS MAGAZINE 
  9. thank's to the kind permision of it's author DION GUY who  retains 
  10. the copyright to the said article
  11.  
  12.                            **************
  13.  
  14.   Variables are simply thing's which hold information  inside  the 
  15. computer,  There are mainly three types of variables,  an  integer 
  16. variable,  a  string variable,  and a real number variable  ,  The 
  17. first  the  integer variable can only  hold  whole  number's,  The 
  18. second  a string variable can hold letters and numbers,  Lastly  a 
  19. real  number  variable can hold any number whole  or  otherwise-eg 
  20. 1.32.
  21.  
  22.   Variable names can take the form of any word or phrase you  like 
  23. but  to  a length of 31 character's.  The only condition  is  that 
  24. within  the 31 character's there must not be any of the  following 
  25. STOS basic keyword's:
  26.  
  27.  TO,STEP,THEN,ELSE,XOR,OR,AND,GOTO,GOSUB,MOD,and AS.
  28. For example the following names are illegal :
  29.  HANDLE, SCORE, TOP, MAST,-hANDle, scORe, TOp, mASt.
  30. However the following names are perfectly acceptable:
  31.  TEXT, LIVES, BONUS, HELP.
  32.  
  33.   To specify whether the variable name applies to a integer  ,real 
  34. number  or string variable you have to apply the following .If  it 
  35. is  a integer variable you can just use the name on it's  own.  eg 
  36. TEST,  SET,  A  or  something like that .If it is  a  real  number 
  37. variable  then you have to add a # to the name so the above  names 
  38. would become -TEST# ,  SET#, A#. For a string variable you have to 
  39. add a $ so the above would be - TEST$, SET$, A$.
  40.  
  41.   The kind of information you can store in these variable's is  as 
  42. follows :
  43.   integer  variable  -  any  whole  number  from  -2147483648   to 
  44. +2147483648 
  45.   real number variable- any number from 1E-14 to 1E+15(STOS  V2.4 
  46. or V2.5 only).
  47.  
  48.   String variables can hold any text - numbers,letters etc - up to 
  49. a maximum of 65500 characters.
  50.  
  51.   So- let SET=15,let TEST#=32.56 and let A$="hello!" are all legal 
  52. uses  of  variables.Different kinds of variables can be  used  and 
  53. manipulated  in different  ways.  There  are quite a  lot  of  ways 
  54. to  manipulate string variables,but on the other hand there are  a 
  55. lot of ways to use integer and real number variables.
  56.   
  57.    Following  is  part 1  of an A-Z list of  things  to  do  with 
  58. variables.Some are commands which directly affect variables,others 
  59. are  just handy things I use in conjunction with variables.When  a 
  60. command  has brackets it will have something inside them -  either 
  61. var or num var.Var means use of a string variable,  num var  means 
  62. use an integer or real number variable.
  63.  
  64.   ABS(num var)
  65.   
  66.   ABS stands for ABSolute and will return the absolute value of  a 
  67. number, regardless of the sign. Eg - print abs(-73) - will display 
  68. 73.
  69.  
  70.   ASC(var)
  71.  
  72.    ASC  stands for ASCII (American Standard Code  for  Information 
  73. Interchange).  This is used to assess the ASCII value of a letter. 
  74. It  is  often  used in conjunction  with  inkey$ to  read  keyboard 
  75. input.The  computer  holds 255 ASCII codes in  memory.Eg  -  print 
  76. asc(A) - displays 65 (the ASCII code for A).
  77.  
  78.   BIN$(num var)
  79.  
  80.     Used  to convert numbers into binary strings,  BIN$ is  one  of 
  81. those functions I rarely use!  Eg - print bin$(63) - will  display 
  82. %111111 which is the binary value  for 63.
  83.  
  84.   CHR$(num var)
  85.  
  86.     CHR$ is used to display or create the character with the ASCII 
  87. code that is in the brackets.  Eg - print chr$(65) - will  display 
  88. A. See ASC.
  89.  
  90.   CLEAR
  91.  
  92.      CLEAR  is  a useful command which clears  all  variables  and 
  93. memory banks defined by the current program.  It also resets  thee 
  94. read pointer to the first data statement in the program.
  95.  
  96.   DATE$(var)
  97.  
  98.     DATE$ is a reserved variable that holds the current  date.  If 
  99. you  haven't got a clock card then this needs to be  set  directly 
  100. using  the format - date$="DD/MM/YYYY" where DD is the  day,MM  is 
  101. the  month and YYYY is the year.  Eg date$="03/09/1989"  sets  the 
  102. date to the 3rd September 1989.
  103.  
  104.   DEC num var
  105.  
  106.      Just  DECreases a number variable by 1.  Inc.  Eg  -  A=1:dec 
  107. A:print A will display 0.
  108.  
  109.   DFREE
  110.  
  111.      DFREE  is a reserved variable that holds the amount  of  free 
  112. disk  space on the current disk in the drive.  Eg - print dfree  - 
  113. might  display 349304 is you have a freshly GEM formulated  single 
  114. sided disk in the drive.
  115.  
  116.   DIM num var/var(num var)
  117.  
  118.     Dim DIMensions a variable ready for holding more than 1  piece 
  119. of  information.  The  maximum  you are  allowed  to  dimension  a 
  120. variable  to is 65535 elements.Each of these elements are  treated 
  121. separately.  Eg dim a$(4):a$(1)="Hello":a$(2)="bye" and so  on.You 
  122. can also dimension like this - dim A(4,4) or dim B$(8,10,10)  etc. 
  123. These   are   used  like  normal  dimensioned   variables   -   Ie 
  124. A(1,1)=10:A(1,2)=20:B$(1,1,1)="Hello" etc etc.
  125.  
  126.   DRIVE$
  127.    
  128.      DRIVE$ is a reserved variable which holds the letter  of  the 
  129. current drive.If you are using drive A then - print drive$ -  will 
  130. display  A.  to change the currently used drive you just  have  to 
  131. change  drive$.  Ie to change from drive A to drive B  just  enter 
  132. drive$="B".
  133.  
  134.   DRVMAP
  135.  
  136.     DRVMAP is a variable that holds a list of the drives connected. 
  137. The  list  is in the form of a binary number.  Each digit  in  the 
  138. number  contains  the status of one the drives,starting  with  bit 
  139. 0.Ifif the number is 1 then this means that the drive is connected 
  140. to  the computer.Bit 0 holds info on drive A,bit 1 on drive B  and 
  141. so on.  Eg - print bin$(drvmap,32) - will probably display 30  0's 
  142. and  2   1's - if you only have drive A + B  attached.  Note  that 
  143. DRVMAP always assumes a minimum of 2 drives even if you only  have 
  144. a standard ST.
  145.                                                                              
  146.   ERRL
  147.  
  148.     ERRL holds the line number of the last error it came across in 
  149. a program. Type in this small program to see what I mean:
  150. 10 on error goto 30
  151. 20 print"This is an error line!":end
  152. 30 print"error in line";errl:end
  153.  
  154.   ERRN
  155.  
  156.      ERRN holds the error number of the last error it came  across 
  157. in a program.Type in the program for ERRL but replace line 30 with 
  158. :30  print"error number";errn:end - to see this reversed  variable 
  159. in operation.
  160.  
  161.   FALSE
  162.  
  163.      FALSE  simply  equals the number  0.  Whenever  you  ask  the 
  164. computer  a  question like - if Q>6 then ....  - then a  value  is 
  165. produced to determine whether the condition is true or  false.  If 
  166. it  is true then the value will equal minus 1 else if it is  false 
  167. then it will hold 0. You can use this in your programs. Eg:
  168. 10  if x>10=false then print"X is lower than 10" else print "X  is 
  169. higher than 10"
  170.  In this example however the use of false is pointless as it could 
  171. have  been  ommited.There  are some ways of using  false  to  your 
  172. advantage though. See true.
  173.  
  174.   FILESELECT$(var,var,num var)
  175.  
  176.     FILESELECT$ will bring up a fileselector box for you to pick a 
  177. file  from.The  first variable in the brackets  holds  the  search  
  178. pattern, eg "*.bas". The second variable is optional and holds the 
  179. title for  the fileselect box,  eg "Load a file".  The last  number 
  180. variable  is  also  optional and holds the  border  type  for  the 
  181. fileselect    box.    The    format   of    this    function    is 
  182. var=fileselect$(var,var,num var).  The var before the  fileselect$ 
  183. bit  is  the  variable which will hold the name of  the  file  you 
  184. choosewhile  in  the  box.  Eg  -  a$=fileselect$("*.bas","save  a 
  185. file",4).Once  you enter this line and choose a filename  then  a$ 
  186. will  hold  that  name - which you could then  use  with  load  or 
  187. save,eg load a$ or save a$. If you select quit from the fileselect 
  188. box the  a$ will hold nothing,it will be an empty string.
  189.  
  190.   FKEY
  191.     
  192.      FKEY can be used to read the function keys  directly  without 
  193. having to use scancode to do it.FKEY will hold 1 if you press F1,2 
  194. if  you  press F2 and so on until FKEY will hold 20 if  you  press 
  195. F20(shift+10).Eg A$=fkey.
  196.  
  197.   FLIP$(var)
  198.  
  199.      FLIP$  simply  reverses the order of the  characters  in  the 
  200. specified  string.   Eg  :a$="HELLO":a$=flip$(a$):print  a$.  Once 
  201. entered it should display "OLLEH".
  202.  
  203.  
  204.  
  205.  
  206.  
  207.  
  208.