Mercurial > hg > index.cgi
changeset 143:42a7a16a058f
Documented the addition of data/code address streams for OS9 modules.
author | lost@l-w.ca |
---|---|
date | Sat, 20 Aug 2011 00:02:55 -0600 |
parents | 697bc543368c |
children | 86d097dceebc |
files | docs/manual.docbook.sgml |
diffstat | 1 files changed, 18 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/docs/manual.docbook.sgml Fri Aug 19 23:55:40 2011 -0600 +++ b/docs/manual.docbook.sgml Sat Aug 20 00:02:55 2011 -0600 @@ -114,13 +114,26 @@ <para> -It is also critical to understand that unlike many OS9 assemblers, LWASM -does NOT maintain a separate data address counter. Thus, you must define -all your data offsets and so on outside of the mod/emod segment. It is, -therefore, likely that source code targeted at other assemblers will require -edits to build correctly. +As of version 4.5, LWASM also implements the standard data/code address +streams for OS9 modules. That means that between MOD and EMOD, any RMB, +RMD, RMQ, or equivalent directives will move the data address ahead and +leave the code address unmodified. Outside of an actual module, both the +code and data addresses are moved ahead equally. That last bit is critical +to understand because it means any directives that follow an EMOD directive +may have different results than other assemblers. </para> +<para> + +Additionally, within a module body, the ORG directive sets only the data +address, not the code address. However, outside a module body, ORG sets both +addresses. + +</para> + +<para> +Both code and data addresses are reset to 0 by the MOD directive. +</para> <para>