X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=mark.c;h=7495c71c1eeecf571b26b7031dba32ae97495495;hb=d1f5f1caccb26da6a3da7fc00b94b79000a55302;hp=6c40c304292586e6b0c2f620aef5c071a9597f77;hpb=60f204cb9e3905100da0d89f14bb40db764acd9e;p=rmac diff --git a/mark.c b/mark.c index 6c40c30..7495c71 100644 --- a/mark.c +++ b/mark.c @@ -1,7 +1,7 @@ // -// RMAC - Reboot's Macro Assembler for the Atari Jaguar Console System +// RMAC - Reboot's Macro Assembler for all Atari computers // MARK.C - A record of things that are defined relative to any of the sections -// Copyright (C) 199x Landon Dyer, 2011-2012 Reboot and Friends +// Copyright (C) 199x Landon Dyer, 2011-2017 Reboot and Friends // RMAC derived from MADMAC v1.07 Written by Landon Dyer, 1986 // Source utilised with the kind permission of Landon Dyer // @@ -90,16 +90,13 @@ if (symbol) // // Complain about some things are not allowed in '-p' (PRG) mode: - // o Marks that aren't to LONGs - // o External references + // o Marks that aren't to LONGs + // o External references // if (prg_flag) { - if ((flags & MLONG) == 0) - error("illegal word relocatable (in .PRG mode)"); - if (symbol != NULL) - errors("illegal external reference (in .PRG mode) to '%s'", + error("illegal external reference (in .PRG mode) to '%s'", symbol->sname); } @@ -368,7 +365,7 @@ printf("MarkBSDImage():\n"); continue; #ifdef DEBUG_IMAGE_MARKING -printf(" validsegment: raddr = $%08X\n", raddr); +printf(" validsegment: raddr = $%08X\n", loc); #endif uint32_t rflag = 0x00000040; // Absolute relocation @@ -527,14 +524,11 @@ uint32_t CreateELFRelocationRecord(uint8_t * buf, uint8_t * secBuf, uint16_t sec else r_type = 1; // R_68K_32 - if (symbol != NULL) - r_addend = symbol->svalue; // Mark offset into section - else - r_addend = GETBE32(secBuf + r_offset, 0); + r_addend = GETBE32(secBuf + r_offset, 0); // Deposit the relocation record D_long(r_offset); - D_long((r_sym << 8) | r_type); + D_long(((r_sym << 8) | r_type)); D_long(r_addend); rsize += 0x0C; }