/* */
/* */
/* */
-/* (C) 1999-2009, Ullrich von Bassewitz */
+/* (C) 1999-2011, Ullrich von Bassewitz */
/* Roemerstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
#include "fileio.h"
#include "global.h"
#include "lineinfo.h"
+#include "memarea.h"
#include "o65.h"
#include "spool.h"
O65Desc* D; /* File format descriptor */
long Val; /* The offset value */
int TooComplex; /* Expression too complex */
- Memory* MemRef; /* Memory reference if any */
+ MemoryArea* MemRef; /* Memory reference if any */
Segment* SegRef; /* Segment reference if any */
Section* SecRef; /* Section reference if any */
ExtSym* ExtRef; /* External reference if any */
*/
{
/* Get the memory area from the expression */
- Memory* M = ED->MemRef;
+ MemoryArea* M = ED->MemRef;
/* Remember the "nearest" segment and its offset */
Segment* Nearest = 0;
/* Get the segment from the list node */
S = Seg [I];
- /* Relocate line info for this segment */
- RelocLineInfo (S->Seg);
-
/* Keep the user happy */
Print (stdout, 1, " Writing `%s'\n", GetString (S->Name));
/* Write this segment */
if (DoWrite) {
- SegWrite (D->F, S->Seg, O65WriteExpr, D);
+ SegWrite (D->Filename, D->F, S->Seg, O65WriteExpr, D);
}
/* Mark the segment as dumped */
-void O65SetAlignment (O65Desc* D, unsigned Align)
+void O65SetAlignment (O65Desc* D, unsigned Alignment)
/* Set the executable alignment */
{
/* Remove all alignment bits from the mode word */
D->Header.Mode &= ~MF_ALIGN_MASK;
/* Set the alignment bits */
- switch (Align) {
+ switch (Alignment) {
case 1: D->Header.Mode |= MF_ALIGN_1; break;
case 2: D->Header.Mode |= MF_ALIGN_2; break;
case 4: D->Header.Mode |= MF_ALIGN_4; break;
case 256: D->Header.Mode |= MF_ALIGN_256; break;
- default: Error ("Invalid alignment for O65 format: %u", Align);
+ default: Error ("Invalid alignment for O65 format: %u", Alignment);
}
}
D->ZPCount = 0;
/* Walk over the memory list */
- for (I = 0; I < CollCount (&F->MemList); ++I) {
+ for (I = 0; I < CollCount (&F->MemoryAreas); ++I) {
/* Get this entry */
- Memory* M = CollAtUnchecked (&F->MemList, I);
+ MemoryArea* M = CollAtUnchecked (&F->MemoryAreas, I);
/* Walk through the segment list and count the segment types */
unsigned J;
/* Walk again through the list and setup the segment arrays */
TextIdx = DataIdx = BssIdx = ZPIdx = 0;
- for (I = 0; I < CollCount (&F->MemList); ++I) {
+ for (I = 0; I < CollCount (&F->MemoryAreas); ++I) {
/* Get this entry */
- Memory* M = CollAtUnchecked (&F->MemList, I);
+ MemoryArea* M = CollAtUnchecked (&F->MemoryAreas, I);
/* Walk over the segment list and check the segment types */
unsigned J;