home *** CD-ROM | disk | FTP | other *** search
/ AMOS PD CD / amospdcd.iso / 551-575 / apd558 / amoner2 / doc / loancalc.doc < prev    next >
Text File  |  1993-11-29  |  4KB  |  120 lines

  1.            Things to look for when porting to AMOS
  2.                       by
  3.                  Michael Cox
  4.  
  5. Welcome, gentlemen and ladies, to another edition of the Amoner Project.  I 
  6. hope you have enjoyed the show so far!
  7.  
  8. It has come to my attention that many people buy newer BASIC flavors so 
  9. that their old BASIC programs will run faster, better, and, hopefully, more 
  10. efficiently.  Unfortunately, not all BASICs are the same.  I hope this 
  11. short little article will help you with translating your old programs to
  12. AMOS.
  13.  
  14.  
  15. The first difference that I noted was the LOCATE command.  In Amiga and
  16. HiSoft BASIC, the command is in the format:
  17.  
  18. LOCATE Y,X
  19.  
  20. In AMOS, it is in the format:
  21.  
  22. LOCATE X,Y [that makes more sense as a graph coordinate is represented by 
  23.         (x,y)]
  24.  
  25. So, the simple and obvious fix is to reverse the X,Y position.
  26.  
  27.  
  28. The second difference is the way the colour of printed text is changed.
  29. In Amiga and HiSoft BASIC, they use the COLOR command, with the following
  30. syntax:
  31.  
  32. COLOR [foreground][,background]
  33.  
  34. foreground is the text and graphics colour, represented by a number
  35. background is the screen background colour, represented by a number
  36.  
  37. In AMOS, the COLOUR command is used to change an individual colour in the
  38. current palette.  The format for this command:
  39.  
  40. COLOUR n,$RGB
  41.  
  42. n is the index for the colour and $RGB is the hex value for the new colour.
  43.  
  44. For instance, to change colour index 0 from its original colour to yellow,
  45. one would do:
  46.  
  47. COLOUR 0,$FF0
  48.  
  49. To change the colour of printed text in AMOS, you use the PEN command.
  50. PEN is used in the following way:
  51.  
  52. PEN n
  53.  
  54. Where n is the colour's index number.  So, from our preceding example, if we
  55. wished to print the word 'BEAN' in yellow, we would do as follows:
  56.  
  57. COLOUR 0,$FF0
  58. PEN 0
  59. PRINT "BEAN"
  60.  
  61. To change COLOR to PEN, you need to search and replace the word 'Col or' in
  62. the AMOS Editor.  Why?  Well, since COLOR is not a command, the AMOS Editor
  63. thinks you mean 'Col' (collision) and 'or' (logical OR) and automagically
  64. separates the word.
  65.  
  66.  
  67. The simplest difference is the CLS command.  AMOS also has a CLS
  68. command, but it acts differently from the CLS command in HiSoft BASIC.  If
  69. you look at the program LoanCalc, you will see that it opens a window to
  70. perform all its operations.  In AMOS, if you do a CLS after you open the
  71. window, it will erase the window's border, including both the top and bottom
  72. titles.  So, instead, one should use the CLW command if you want to clear
  73. the screen inside the window.  If you wish to wipe out everything, CLS is
  74. the way to go.  Believe it or not, this was tricky for me to catch as I
  75. did not think CLS would do such a thing.
  76.  
  77.  
  78. Another difference, and it is a large one, is that AMOS considers all numbers
  79. to be integers (which makes AMOS faster) unless told otherwise.  HiSoft and
  80. Amiga BASIC consider all numbers to be floating point unless told otherwise.
  81. So, if you have a program that uses floating point numbers, make sure you
  82. specify which variables are floats in AMOS.  To do so, you append the '#'
  83. (pound/hash mark) to the variable:
  84.  
  85. A#, A#()
  86.  
  87. One thing to remember is that the variable
  88.  
  89. A
  90.  
  91. is different from the variable
  92.  
  93. A#
  94.  
  95. So, if you change a variable from an integer to a float in one area of your
  96. program, make sure you do a global change.  Also, when using numbers that
  97. represent dollars and cents, it is always best to add the command:
  98.  
  99. FIX 2
  100.  
  101. at the beginning of the program.  This sets the floating point numbers to two
  102. (2) digits to the right of the decimal point.  As always, due to the nature
  103. of floating points, you will not get 100% accuracy.  Even if you compare the
  104. output from AMOS to the output from Amiga or HiSoft BASIC, you will not
  105. always get the same numbers.  This is due to the way that the individual
  106. BASIC rounds floating points.
  107.  
  108.  
  109. Well, that is all for this "How to" article.  In following articles, I will
  110. stick to the differences that I have had to make to get a program
  111. to run.  For this article, I ported a program called 'The Loan Calculator'
  112. from HiSoft BASIC to AMOS.  LoanCalc was originally written by Ira S. Davis
  113. of the USA.
  114.  
  115. If you have any questions about porting programs or anything else, you can
  116. mail them to me via Internet or Snail (Postal) mail.
  117.  
  118. Internet:  aj639@Cleveland.Freenet.EDU
  119.    Snail:  6970 Vaughn Pointe Drive, Suite H, Montgomery, AL 36116-1395 USA
  120.