home *** CD-ROM | disk | FTP | other *** search
/ The Fred Fish Collection 1.5 / ffcollection-1-5-1992-11.iso / ff_progs / prog_oth / comal.lzh / COMAL / INFOTEXT / VARIATIONS < prev    next >
Encoding:
Text File  |  1991-08-16  |  3.8 KB  |  111 lines

  1. Any programmer who has worked on more than one
  2. computer system will tell you about subtle
  3. differences among them. As standard as COMAL is, it
  4. also must deal with system variations. ANYONE
  5. PROGRAMMING ON ONE COMPUTER FOR PERSONAL USE DOES
  6. NOT HAVE TO WORRY ABOUT THIS. However, those who
  7. use several systems should make a point of learning
  8. the differences. For example, graphics were omitted
  9. from the COMAL standard because of the
  10. incompatibility of the screen and color resolution
  11. on various computers. HOWEVER, THERE IS A COMMON
  12. SET OF GRAPHICS/TURTLE KEYWORDS.
  13.  
  14. One difference comes with devices and filenames.
  15. COMAL usually supports the naming conventions of
  16. the specific computer system. Commodore filenames
  17. can contain as many as 16 characters, while IBM and
  18. CP/M names are restricted to eight characters plus
  19. a three character extension. IBM and Amiga also
  20. support subdirectories and time/date stamping of
  21. files. Commodore disk drive names use numbers; CP/M
  22. and IBM use letters; Amiga uses words such as DF0:.
  23. All COMALs call the screen and printer DS: and LP:,
  24. except IBM, which uses the name CON: for the screen
  25. and several names for the printers.
  26.  
  27. Another difference concerns data storage. Most
  28. computers can use 5 or 3 inch disks, yet each
  29. computer has its own method of storing information
  30. on that disk. Thus an IBM PC cannot read a disk
  31. written on a Commodore 1541 drive.  However, this
  32. is not the only problem. There are ways to transfer
  33. data between different computer systems (including
  34. modem transfers). But even if the computers can
  35. share data, there still is one more factor to
  36. consider.
  37.  
  38. Different methods are used to represent data and
  39. programs. The user never needs to understand this,
  40. that is one of COMAL's jobs. What is important to
  41. the user is knowing that COMAL has two methods for
  42. storing programs and data on disk. One uses compact
  43. files for quick access. WRITE FILE and SAVE create
  44. these efficient files. They can only be understood
  45. by the version of COMAL that wrote them. COMAL also
  46. supports ASCII text files which can be read by most
  47. computer software including the other versions of
  48. COMAL. LIST, DISPLAY, and PRINT FILE produce ASCII
  49. files.
  50.  
  51. A debate has been going on for years concerning the
  52. null string and the IN operator. For example, what
  53. should "" IN "abc" return? The COMAL standard
  54. originally stated that the result was to be TRUE
  55. (true has a value of 1). A slight enhancement on
  56. this theme returns the length of the second string
  57. plus one. This value is accepted as true, and it
  58. allows a program to differentiate between the null
  59. string and a string matching the first character in
  60. the second string. Now, Common COMAL specifies that
  61. the null string is not part of any string. Thus
  62.  
  63.   "" IN "text"
  64.  
  65. will always be FALSE.
  66.  
  67. A similar situation involves KEY$. What should it
  68. return if no key is pressed? Power Driver and C64
  69. COMAL cartridge return CHR$(0); other COMALs return
  70. "" (null string).
  71.  
  72. Another situation involves PRINTing several items
  73. on one line. There are 3 common ways to do this:
  74.  
  75.   * with no space between the items
  76.   * with one space between items
  77.   * using a preset tab zone system
  78.  
  79. If you do not use the ZONE statement to set up your
  80. own tab zone intervals all COMALs will be
  81. identical: a comma (,) gives no space between items
  82. and a semicolon (;) gives one space.
  83.  
  84. However, the tab character has changed from the
  85. comma to the semicolon, and the default zone
  86. changed to match. IBM and AmigaCOMAL use the new
  87. standard. CP/M and Commodore COMALs use the
  88. original method.
  89.  
  90. BENCHMARK TIMINGS
  91.  
  92. Here are some benchmark run times from benchmark
  93. tests mentioned in the Compatible Article,
  94. converted into bar charts.
  95.  
  96. AHLS
  97. A-C   3.1 ######
  98. A-B  12.8 ########################
  99.  
  100. SIEVE
  101. A-C   6.6 #####
  102. A-B  16.0 ###########
  103.  
  104. SUBSTRING REPLACEMENT
  105. A-C  0.2 #
  106. A-B  5.1 ###################
  107.  
  108. A-C=AmigaCOMAL
  109. A-B=AmigaBASIC
  110. Base model Amiga 500 was used for the tests.
  111.