diff lwlink/link.c @ 204:048ebb85f6ef

Added 8 bit external references for base page addressing mode
author lost
date Sun, 29 Mar 2009 14:52:28 +0000
parents 857cb407229e
children 42df94f30d82
line wrap: on
line diff
--- a/lwlink/link.c	Sun Mar 22 22:11:12 2009 +0000
+++ b/lwlink/link.c	Sun Mar 29 14:52:28 2009 +0000
@@ -356,8 +356,15 @@
 			{
 				// put the value into the relocation address
 				rval = lw_expr_get_value(rl -> expr);
-				sectlist[sn].ptr -> code[rl -> offset] = (rval >> 8) & 0xff;
-				sectlist[sn].ptr -> code[rl -> offset + 1] = rval & 0xff;
+				if (rl -> flags & RELOC_8BIT)
+				{
+					sectlist[sn].ptr -> code[rl -> offset] = rval & 0xff;
+				}
+				else
+				{
+					sectlist[sn].ptr -> code[rl -> offset] = (rval >> 8) & 0xff;
+					sectlist[sn].ptr -> code[rl -> offset + 1] = rval & 0xff;
+				}
 			}
 		}
 	}