home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 3 / TheARMClub_PDCD3.iso / hensa / programming / extasm_1 / !extASM_Manuals_!Addition < prev    next >
Encoding:
Text File  |  1995-07-12  |  7.2 KB  |  159 lines

  1. Added features for extASM 1.00
  2. ------------------------------
  3. This has been done since version 0.60
  4.  
  5. User interface
  6. --------------
  7. • Changes in the user interface.
  8.   - Solid sprite dragging
  9.   - Fixing of the Wimp save/load routines (it wouldn't work with scrapfile 
  10.     save/load, now it does).
  11.   - Desktop !Boot file saving, this is so that if you save a Desktop !Boot 
  12.     file (from the TaskManager), extASM will start up automatically when 
  13.     the !Boot file is run.
  14.  
  15. Instructions
  16. ------------
  17. • Condition code HS added, same as CS.
  18. • Auto-expanding CMP, CMN, TST and TEQ.
  19. • Auto-expanding LDR/STR, with a base register and an auto-expanded 
  20.   offset, like:
  21.   LDR R1,[R2,#&12344]. Same with LDF/STF and LFM/SFM.
  22. • Load/store instructions (both integer and Floating Point) can be expanded
  23.   beyond 1 Mbyte.
  24.  
  25. Extra instructions/statements
  26. -----------------------------
  27. • Added DBFS, DBFD, DBFE, DBFP, DBFEP for FP-constant blocks.
  28. • A new statement 'relative' is added. It starts and ends with braces 
  29.   ('{}') as struct. The labels inside a 'relative' statement are marked 
  30.   as relative to a given register, rather than relative to R15. This can 
  31.   reduce a lot of auto-expansion, as the given register will be closer to 
  32.   the variable than R15.
  33. • A new instruction variant, 'ADRL'. This is a minimum 16-bit ADR, i.e. 
  34.   it's the same as setting the 'Fast' option for this ADR. Using this for 
  35.   the ADR instructions that needs it can reduce the number of passes.
  36.   extASM will continue to assemble until the object code of two passes have
  37.   the same length and all variables are resolved. Therefore, if you specify
  38.   ADR's as minimum 16-bit then they will auto-expand to that the first 
  39.   time, instead of maybe a later pass, if it uses a forward referencing 
  40.   label.
  41.  
  42. Auto-expansion
  43. --------------
  44. • Auto-expansion of Floating Point instructions is now implemented. If a 
  45.   constant can not be coded in the instruction (e.g. 0.0-5.0, 0.5 or 10.0),
  46.   the number is stored at the next '#fppool' statement in the source, and 
  47.   a LDF instruction is used to load it. FPTEMP' and 'FPLOCK' are added to 
  48.   specify temporary FP registers.
  49.  
  50.   Also, for MVF, MNF, ADF, SUF, CMF and CNF, one instruction can be changed
  51.   to the other if the constant can be coded with that. This effectively 
  52.   sign-extends the range of values that can be coded with these 
  53.   instructions to include 0.0 - -5.0, -0.5 and -10.0.
  54.  
  55. Variables
  56. ---------
  57. • Implemented hash-searching for variables and macros. This dramatically 
  58.   reduces the assembly time.
  59. • Integers, Floating Point values and strings can now be used in 
  60.   expressions. Integers, FP and string variables can also be set, with 
  61.   '#set' (as before), '#fpset' and '#strset'.
  62.   The expression routine automatically casts between integer and FP values.
  63.   There is also a range of functions, and most of Basic's mathematical 
  64.   and string functions are supported.
  65. • All variable types (integer, FP, string) can be local.
  66.  
  67. Macros
  68. ------
  69. • New macro routines have been implemented. These can use ordinary variable
  70.   names for parameters in the macro, and also support macros with condition
  71.   code following the macro name. The range of macro parameter types is:
  72.   Register, FP Register, Integer, FP value,
  73.   String, Temp Register and FP Temp Register.
  74.  
  75. Switches ('#' statements)
  76. -------------------------
  77. • Implemented nestable #if-#else-#endif, nestable #rept-#endr and nestable 
  78.  'struct'.
  79. • #append is removed, because it gave problems in the source file 
  80.   organization. If included source files should be put at the end of 
  81.   the source, then you can put #include switches there.
  82.   
  83. Options
  84. -------
  85. • Option for turning Auto-shrink on/off. When it is on, it will try 
  86.   to shrink the code again, if at a later pass it turns out that a 
  87.   smaller or no auto-expansion is needed for a statement. As it is now, a 
  88.   NOP is inserted after a statement if it shrinks, to avoid recalculationg 
  89.   offsets etc. When this option is on it will make the most effecient code,
  90.   but it may use more passes. It may also not succeed at all, and in this 
  91.   case, a warning will be given and it will temporarily turn off the 
  92.   auto-shrink option (for the current assembling).
  93. • Option for getting Auto-expansion messages. When it is on it will give 
  94.   a warning when it wants to auto-expand a statement. You can also select 
  95.   to only show auto-expanding of ADR and load/store instructions. It will 
  96.   show a summary of the auto-expansion at the end.
  97. • Option for warnings when a variable is not used.
  98. • Options for various statistics, such as:
  99.   - Code statistics (number used of each instruction, and total number 
  100.     of instructions)
  101.   - Variable list, optionally sorted, and macro list.
  102.   - It can also show the number of references to each variable, and the 
  103.     number of times each macro is used.
  104.   - It can show two pie-charts of the distribution of the instruction 
  105.     types, for the ARM and FPA instructions.
  106. • Option for specifying labels without period in front of them.
  107. • Option for generating ARM Object Format file (AOF), for linking with 
  108.   C etc. This is done with the aid of extAOF, which is bundled with extASM.
  109.   This function will later be incorporated into extASM. The following 
  110.   statements are used added: '#area', '#end', '#import', '#export', 
  111.   '#entry' and '#%'. They are ignored by extASM, but used by the extAOF 
  112.   application.
  113. • Option for Throwback. If this is on, extASM will also use Throwback to 
  114.   display error, warning and 'output' information messages, so any editor 
  115.   that has Throwback can display them.
  116. • Option for Autoscroll on/off. When it is off, it won't scroll the 
  117.   Status window to the end when new text is added.
  118. • Option for auto-expanding all ADR's to minimum 16-bit (two instructions) 
  119.   ('Fast' option).
  120.   This may reduce the number of passes, at the expence of performance. 
  121.   However, it is more recommended to use the new 'relative' statement to 
  122.   reduce auto-expanding, and then use the new 'ADRL' (16-bit ADR) where 
  123.   it is needed.
  124.  
  125. Errors
  126. ------
  127. • The error system has been changed to the following:
  128.   - Only give one error message per error (previously it could give two or 
  129.     three).
  130.   - Only give one error per statement. Consequently a number of error 
  131.     messages have been removed because they would only be called after 
  132.     another error message
  133.   - Give a message about an error only one time. This is so that if an 
  134.     error message comes in one pass, the error message will not be 
  135.     repeated in later passes.
  136.   - CoreDump file saving is removed. If an exception occurs, now it 
  137.     asks if you want to try to continue with the program, which can be 
  138.     helpful in tracking down what caused the error. If you answer No to 
  139.     the question, the program exits.
  140.  
  141. Menu
  142. ----
  143. • Added an 'Abort' option in the menu, to abort an assembly, and also 
  144.   'Pause' and 'Continue'.
  145. • The Status Info text can be saved.
  146. • The colours in the Status Info window can be changed.
  147.  
  148. Help
  149. ----
  150. • Interactive help is implemented (using the !Help application), and also 
  151.   StrongHelp help (click on 'Info' in the menu).
  152.  
  153. Miscellaneous
  154. -------------
  155. • Assembling from Obey file, or command line, can now be done when the
  156.   program is loaded. Previously it would load the program each time.
  157. • It has the complete instruction set for ARM2/3/6 and FPA10.
  158. • Removed various bugs.
  159.