New .FEATURE org_per_seg. If enabled, .org/.reloc do only influence the

current segment. Idea by Peter Wendrich <pwsoft@syntiac.com>.


git-svn-id: svn://svn.cc65.org/cc65/trunk@3794 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
cuz
2007-08-23 19:48:43 +00:00
parent 5eadec958c
commit a7358314a0
11 changed files with 131 additions and 50 deletions

View File

@@ -2273,6 +2273,13 @@ Here's a list of all control commands and a description, what they do:
<bf/Note:/ This does not work in conjunction with <tt/.FEATURE
loose_string_term/, since in this case the input would be ambiguous.
<tag><tt>org_per_seg</tt><label id="org_per_seg"></tag>
This feature makes relocatable/absolute mode local to the current segment.
Using <tt><ref id=".ORG" name=".ORG"></tt> when <tt/org_per_seg/ is in
effect will only enable absolute mode for the current segment. Dito for
<tt><ref id=".RELOC" name=".RELOC"></tt>.
<tag><tt>pc_assignment</tt></tag>
Allow assignments to the PC symbol (`*' or `&dollar;' if <tt/dollar_is_pc/
@@ -2798,12 +2805,14 @@ Here's a list of all control commands and a description, what they do:
assembled. Use <tt><ref id=".RELOC" name=".RELOC"></tt> to switch back to
relocatable code.
Please note that you <em/do not need/ this command in most cases. Placing
By default, absolute/relocatable mode is global (valid even when switching
segments). Using <tt>.FEATURE <ref id="org_per_seg" name="org_per_seg"></tt>
it can be made segment local.
Please note that you <em/do not need/ <tt/.ORG/ in most cases. Placing
code at a specific address is the job of the linker, not the assembler, so
there is usually no reason to assemble code to a specific address.
You may not switch segments while inside a section of absolute code.
Example:
<tscreen><verb>