home *** CD-ROM | disk | FTP | other *** search
/ APDL Public Domain 1 / APDL_PD1A.iso / program / assembler / sasm / Docs / Updates < prev   
Encoding:
Text File  |  1995-10-02  |  5.4 KB  |  116 lines

  1.         
  2.                 Additions and amendments from version 1.70
  3.                 ------------------------------------------
  4.  
  5. This file documents additions and amendments made after version 1.70. If
  6. you have a version before 1.70 you will probably find that there have
  7. been so many changes (mainly due to a 'proper' front end appearing) that
  8. you are advised to read it all again. This file will draw attention to
  9. any changes made after that version so that you won't need to read the
  10. whol;e manual to find out what has changed.
  11.  
  12.  
  13.         1.71    Aug 95  
  14.         --------------
  15. #STRUC (structure) directive introduced. This has (almost) the same
  16. syntax as #AREA exacept that it ends with #ES instead of #EA. The 
  17. difference is that it does NOT reserve any memory, it just sets up the
  18. offsets. These can then be used to address affsets in any data area, eg.
  19. in an extension of the Wimpslot, in a file header etc.
  20.  
  21. Because #STRUC does not reserve any memory it can't use the label on the
  22. first line to point to it, as is done with #AREA, for example -
  23.  
  24.         # struc
  25.                 first   4
  26.                 second  &40
  27.                 third   28
  28.                 forth   4
  29.         # es
  30.  
  31. Would set up the variables first, second, third and forth such that if a
  32. register was set to point to a certain piece of memory then -
  33.  
  34.         <instruction>,[<reg>,#first]            points to <reg>+0
  35.         <instruction>,[<reg>,#second]           points to <reg>+4
  36.         <instruction>,[<reg>,#third]            points to <reg>+&44
  37.         <instruction>,[<reg>,#forth]            points to <reg>+96
  38.  
  39. and the data area will take a total of 1000 bytes. If you want 'first'
  40. to be offset from the start of the area you would put the value on the
  41. first line after #STRUC. Note that all values must be numeric (in hex or
  42. decimal), variables cannot be used. As you can see, this is particularly
  43. useful directive, and has equivalents in many high level languages.
  44.  
  45.  
  46.         1.73    Sept 95
  47.         ---------------
  48.  
  49. HS and LO are now accepted as conditions with conditional ADRL, MOVL,
  50. etc. This hadn't been done before because these were never really part
  51. of the ARM instruction set, the 'real' conditions are CS and CC, the
  52. others were tacked on when Basic IV became Basic V. As I learned to
  53. write ARM code before the textbooks mentioned HS or LO I have never
  54. used them and so never noticed that they weren't there.
  55.  
  56. SASM_ERR variable
  57. -----------------
  58. It was suggested by a user that it would be very useful if the SAsm
  59. error count were made 'available' to other routines. Errors are now
  60. counted in the variable SASM_ERR (I know it's upper case and FP, but
  61. it's more obvious and there's less chance of a clash).
  62.  
  63. If, for example, you have a routine that would only need to be called if
  64. there's benn no errors during assembly then you could check that
  65. SASM_ERR is 0 before you call it. Similarly if you have 'internal' error
  66. checks in your own routines and you want to make sure that the error is
  67. counted 'officially' then you can increase the count (#SASM_ERR+=1).
  68.  
  69. This is particularly useful after the #END directive as it enables you
  70. to write LOCAL error handlers in functions and still record the errors.
  71. In the main part of the code you can simple use #ERROR <num>,<message>
  72. and the SAsm error handler will intercept it.
  73.  
  74.  
  75.         Still to do (soon, I hope!)
  76.         ===========================
  77.  
  78. These are some of the things that are either under serious development
  79. or that are on the 'to do' list and will be dealt with when I have time.
  80. This list is not necessarily in any particular order, and so features
  81. may appear at any time (or not at all!). please do write if you have a
  82. particular need.
  83.  
  84. A major re-write has been going on under the surface for some time to
  85. enable SAsm to refer all errors back to the Module which will then
  86. decide how to report them (error file, printed to screen, pass on to
  87. desktop, etc.). When this is complete SAsm will then have complete
  88. control of its error handling and I will be able to intoroduce eroor
  89. throwback, either throught the DDE module (which I want to avaoud
  90. because I can't supply it with SAsm) or through my own system. At this
  91. time I will probably abandon the Utility version os SAsm, and I may then
  92. introduce a 'key file' registration file as with all my other Shareware
  93. programs so that you can get the latest version of SAsm from any source.
  94.  
  95. Floating point instructions are also under consideration. I must confess
  96. that I can't see why anyone would want to write machine code and then
  97. screw it up with FP, but if you really must have them ...... 
  98.  
  99. The whole Macro Library system is being completely re-written. The
  100. library creation tool will then be a desktop tool whch will make things
  101. much easier. Multiple libraries will also be permitted. I have had a few
  102. bug reports with the Library system, so please bear with me I don't want
  103. to waste time on the current system at present.
  104.  
  105. There is no reason why SAsm can't have functions added to output code in
  106. AOF. I have considered this in the past, but I hadn't bothered because
  107. most C programmers won't use asssembler unless they're absolutely forced
  108. to, and AASM is now bundled with Acorn C, so there didn't seem much
  109. point (SAsm was really intended for 'stand alone' machine code
  110. programs). However, three people so far have pointed out to me that
  111. although Beebug C has an in-line assembler it's only really suitable for
  112. very simple routines, and they would like to be able to use SAsm. So,
  113. I'll look at it again and try to arrange something.
  114.  
  115.         David Holden - September 1995
  116.