# HG changeset patch # User lost@l-w.ca # Date 1313820175 21600 # Node ID 42a7a16a058f807f1bcd7ab6a9b2cf7fb4ef5fe3 # Parent 697bc543368c5d656b3026e4b0bb06f84ce53a2c Documented the addition of data/code address streams for OS9 modules. diff -r 697bc543368c -r 42a7a16a058f docs/manual.docbook.sgml --- 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 @@ -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. + + +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. + + + + +Both code and data addresses are reset to 0 by the MOD directive. +