home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 3 / PDCD_3.iso / utilities / utilss / sasm / SAsm / New < prev    next >
Text File  |  1993-09-15  |  7KB  |  174 lines

  1. Version 1.4 of SAsm introduces several completely new feature. To 
  2. save you pouring through the manual from cover to cover looking for
  3. them the most important ones are detailed here.
  4.  
  5.  
  6. The changes which have been introduced are to allow all of the
  7. parameters which previously had to be typed at the command line (and
  8. more) to be inluded in the file as Directives. This should mean that
  9. only the name of a single 'make' file needs to be typed and this file
  10. can contain all other data needed to assemble the program. Once I am
  11. sure that this works properly it will be possible to write a desktop
  12. 'front end' for SAsm which will enable programs to be assembled within
  13. the desktop in a similar manner to Acorns (unbelievably expensive) DDE.
  14.  
  15. Even without the 'front end' you can now use SAsm within the desktop
  16. very easily and assemble projects by clicking on a single 'Obey' file.
  17. You will not now need to set the CSD as you will be able to use the
  18. <Obey$Dir> OS variable to define the 'start point' of your project
  19. directory structure.
  20.  
  21. The new directives
  22. ~~~~~~~~~~~~~~~~~~
  23.  
  24. # OBJ <filename>   This is the name of the object file. If you also type
  25.                    an object filename at the CLI the CLI filename will
  26.                    override any internal OBJ filename.
  27.   
  28.  
  29. # LIB <filename>   The name of the Library file to be used. This will
  30.                    override any library defined in the SAsm$Lib
  31.                    variable. Using just '# LIB' without a filename will
  32.                    force the assembler to ignore the SAsm$Lib variable
  33.                    and is thus equivalent to the CLI 'L' switch.
  34.  
  35.  
  36. # ERRFILE <filename>  The name of the error file to be used. Again an
  37.                    error filename typed at the CLI will override an
  38.                    internal name.
  39.  
  40.  
  41. # CLI              The text following this is passed DIRECTLY to the
  42.                    operating system. There is no error trapping. You
  43.                    should not put comments on the same line as this
  44.                    could confuse the OS.
  45.  
  46.  
  47. # VERBOSE          Equivalent to the CLI 'V' switch to force display of
  48.                    macros inserted from a Library. The advantage of this
  49.                    over the CLI switch is that it can be placed anywhere
  50.                    in the source file(s) and only takes effect when it
  51.                    is encountered.
  52.  
  53.  
  54. # QUIET            Switches off 'verbose'. Again can be introduced at
  55.                    any point in the source so that macro info can be
  56.                    turned on/off as required.
  57.                    
  58.  
  59. # XREF           Switches label x-ref on
  60.  
  61.  
  62. # NOXREF       Switches label x-ref off. This and the previous
  63.                    command can be used as often as needed to display
  64.                    label info only where required.
  65.  
  66.  
  67. As with all other directives there should be at least one space
  68. following the directive.
  69.  
  70. Other improvements
  71. ~~~~~~~~~~~~~~~~~~
  72. I have tried to make SAsm accept Tab characters (ascii 9) instead of
  73. spaces wherever field separators are required in order to enable users
  74. who wish to use editors such as Zap which can save files with Tab
  75. characters instead of expanding them to spaces. I haven't tested this
  76. feature extensively so if you have any problems with files using Tab
  77. characters please send me a copy of the file that gives the trouble and
  78. I'll try to fix it.
  79.  
  80. The 'line too long' error is now trapped by the pre-processor and will
  81. generate a 'recoverable' error
  82.  
  83. There have been a couple of other minor 'internal' improvements which
  84. result in a slight speed increase.
  85.  
  86.  
  87. Using SAsm from the Desktop
  88. ~~~~~~~~~~~~~~~~~~~~~~~~~~~
  89. As you can see from the new directives you can now include everything
  90. needed to assemble an extensive project in a single short 'make' file.
  91. This would normally be a text file and will contain all the preliminary
  92. directives (org, size, type, etc) plus directives to define the object
  93. and error filenames and the library to be used. Following these will
  94. come a list of Include files to be assembled.
  95.  
  96. The main advantage of this system for desktop use is that it enables an
  97. Obey file to run SAsm. For example, to assemble a desktop project you
  98. should set up a directory structure as shown.
  99.  
  100.  
  101.                                   root
  102.                                    |
  103.                                    |
  104.                      ----------------------------
  105.                     |                            |
  106.                   source                       !app
  107.                                              
  108.  
  109. The 'root' directory would contain your 'make' file and the Obey file
  110. which will run it. It need not, of course, be the actual root
  111. directory of a disc, it is just the root directory of your project. The
  112. !App directory will be the RiscOS application directory for your
  113. project. The 'Source' directory will contain all of your source files.
  114. You could, of course, also have other directories to hold special
  115. library files, error files, notes, etc. if required.
  116.  
  117. Assuming the Make file is simply called 'Make' the Obey file would
  118. contain just two lines -
  119.  
  120.             Set   Project$Dir <Obey$Dir>
  121.             Sasm  <Project$Dir>.Make            
  122.             
  123. When you double-click on this file it will atomatically create an OS
  124. variable 'Project$Dir (or whatever you want) and set it to 'Obey$Dir',
  125. ie. to the 'root' directory of your project. It will then Run SAsm
  126. (either from the RMA if you have loaded the Module version or from disc)
  127. with the filename of the Make file.
  128.  
  129. The Make file should define the various parameters to assemble the
  130. program using the <Project$Dir> variable. Alternatively you could set
  131. the OS variable using the CLI directive from within the Make file. It
  132. would also contain directives to define the error file, library and
  133. object file, for example -
  134.  
  135.         # errfile <Project$Dir>.err
  136.         # obj     <Project$Dir>.!App.!Runimage
  137.  
  138. and the files to be assembled would be -
  139.  
  140.         # include <Project$Dir>.source.first_*
  141.         # include <Project$Dir>.source.second_*
  142.         # include <Project$Dir>.source.third_*
  143.  
  144. or whatever they are called. Note that you can still use the
  145. 'descending trailing digits' wildcard to assemble the latest version.
  146.  
  147. Your Make file need not, of course, be in the 'root' directory, it could
  148. be in the source directory if you prefer, (it is, technically, just
  149. another source file).
  150.  
  151. If you don't have a hard disc you will probably prefer to have your
  152. source files (and certainly the error file) on the RAM disc. As SAsm
  153. doesn't create any temporary files you don't need much spare space.
  154.  
  155. To assemble a project in this way just double-click on the Obey file.
  156. You will have to wait for the new 'front end' to have the messages
  157. trapped in a desktop window, at present they'll just appear in a Command
  158. window. You can, of course, use SAsm in a 'Task' window but this means
  159. that you will need to define directories and type filenames again.
  160.  
  161. IMPORTANT
  162. ~~~~~~~~~
  163. I'm continually trying to improve SAsm. PLEASE tell me if you have any
  164. problems, even if you haven't registered. It's only by acting on your
  165. bug reports and suggestions that I can continue to improve SAsm.
  166.  
  167. If possible send a copy of the source code that cause the problem, 
  168. preferably all the files, not just the one that caused the error, plus
  169. any error files generated or any other information. Especially I need to
  170. know exactly how the program failed, 'it wouldn't work with this' isn't
  171. very helpful!
  172.  
  173.          David Holden  --  August 1993
  174.