home *** CD-ROM | disk | FTP | other *** search
-
- Additions and amendments from version 1.70
- ------------------------------------------
-
- This file documents additions and amendments made after version 1.70. If
- you have a version before 1.70 you will probably find that there have
- been so many changes (mainly due to a 'proper' front end appearing) that
- you are advised to read it all again. This file will draw attention to
- any changes made after that version so that you won't need to read the
- whol;e manual to find out what has changed.
-
-
- 1.71 Aug 95
- --------------
- #STRUC (structure) directive introduced. This has (almost) the same
- syntax as #AREA exacept that it ends with #ES instead of #EA. The
- difference is that it does NOT reserve any memory, it just sets up the
- offsets. These can then be used to address affsets in any data area, eg.
- in an extension of the Wimpslot, in a file header etc.
-
- Because #STRUC does not reserve any memory it can't use the label on the
- first line to point to it, as is done with #AREA, for example -
-
- # struc
- first 4
- second &40
- third 28
- forth 4
- # es
-
- Would set up the variables first, second, third and forth such that if a
- register was set to point to a certain piece of memory then -
-
- <instruction>,[<reg>,#first] points to <reg>+0
- <instruction>,[<reg>,#second] points to <reg>+4
- <instruction>,[<reg>,#third] points to <reg>+&44
- <instruction>,[<reg>,#forth] points to <reg>+96
-
- and the data area will take a total of 1000 bytes. If you want 'first'
- to be offset from the start of the area you would put the value on the
- first line after #STRUC. Note that all values must be numeric (in hex or
- decimal), variables cannot be used. As you can see, this is particularly
- useful directive, and has equivalents in many high level languages.
-
-
- 1.73 Sept 95
- ---------------
-
- HS and LO are now accepted as conditions with conditional ADRL, MOVL,
- etc. This hadn't been done before because these were never really part
- of the ARM instruction set, the 'real' conditions are CS and CC, the
- others were tacked on when Basic IV became Basic V. As I learned to
- write ARM code before the textbooks mentioned HS or LO I have never
- used them and so never noticed that they weren't there.
-
- SASM_ERR variable
- -----------------
- It was suggested by a user that it would be very useful if the SAsm
- error count were made 'available' to other routines. Errors are now
- counted in the variable SASM_ERR (I know it's upper case and FP, but
- it's more obvious and there's less chance of a clash).
-
- If, for example, you have a routine that would only need to be called if
- there's benn no errors during assembly then you could check that
- SASM_ERR is 0 before you call it. Similarly if you have 'internal' error
- checks in your own routines and you want to make sure that the error is
- counted 'officially' then you can increase the count (#SASM_ERR+=1).
-
- This is particularly useful after the #END directive as it enables you
- to write LOCAL error handlers in functions and still record the errors.
- In the main part of the code you can simple use #ERROR <num>,<message>
- and the SAsm error handler will intercept it.
-
-
- Still to do (soon, I hope!)
- ===========================
-
- These are some of the things that are either under serious development
- or that are on the 'to do' list and will be dealt with when I have time.
- This list is not necessarily in any particular order, and so features
- may appear at any time (or not at all!). please do write if you have a
- particular need.
-
- A major re-write has been going on under the surface for some time to
- enable SAsm to refer all errors back to the Module which will then
- decide how to report them (error file, printed to screen, pass on to
- desktop, etc.). When this is complete SAsm will then have complete
- control of its error handling and I will be able to intoroduce eroor
- throwback, either throught the DDE module (which I want to avaoud
- because I can't supply it with SAsm) or through my own system. At this
- time I will probably abandon the Utility version os SAsm, and I may then
- introduce a 'key file' registration file as with all my other Shareware
- programs so that you can get the latest version of SAsm from any source.
-
- Floating point instructions are also under consideration. I must confess
- that I can't see why anyone would want to write machine code and then
- screw it up with FP, but if you really must have them ......
-
- The whole Macro Library system is being completely re-written. The
- library creation tool will then be a desktop tool whch will make things
- much easier. Multiple libraries will also be permitted. I have had a few
- bug reports with the Library system, so please bear with me I don't want
- to waste time on the current system at present.
-
- There is no reason why SAsm can't have functions added to output code in
- AOF. I have considered this in the past, but I hadn't bothered because
- most C programmers won't use asssembler unless they're absolutely forced
- to, and AASM is now bundled with Acorn C, so there didn't seem much
- point (SAsm was really intended for 'stand alone' machine code
- programs). However, three people so far have pointed out to me that
- although Beebug C has an in-line assembler it's only really suitable for
- very simple routines, and they would like to be able to use SAsm. So,
- I'll look at it again and try to arrange something.
-
- David Holden - September 1995
-