// These are copied from the section descriptor, the current code chunk
// descriptor and the current fixup chunk descriptor when a switch is made into
// a section. They are copied back to the descriptors when the section is left.
// These are copied from the section descriptor, the current code chunk
// descriptor and the current fixup chunk descriptor when a switch is made into
// a section. They are copied back to the descriptors when the section is left.
-CHUNK * scode; // Current (last) code chunk
-LONG challoc; // # bytes alloc'd to code chunk
-LONG ch_size; // # bytes used in code chunk
-char * chptr; // Deposit point in code chunk buffer
+CHUNK * scode; // Current (last) code chunk
+LONG challoc; // # bytes alloc'd to code chunk
+LONG ch_size; // # bytes used in code chunk
+char * chptr; // Deposit point in code chunk buffer
-CHUNK * sfix; // Current (last) fixup chunk
-LONG fchalloc; // # bytes alloc'd to fixup chunk
-LONG fchsize; // # bytes used in fixup chunk
-PTR fchptr; // Deposit point in fixup chunk buffer
+CHUNK * sfix; // Current (last) fixup chunk
+LONG fchalloc; // # bytes alloc'd to fixup chunk
+LONG fchsize; // # bytes used in fixup chunk
+PTR fchptr; // Deposit point in fixup chunk buffer
-unsigned fwdjump[MAXFWDJUMPS]; // forward jump check table
-unsigned fwindex = 0; // forward jump index
+// BOLLOCKS
+//unsigned fwdjump[MAXFWDJUMPS]; // forward jump check table
+//unsigned fwindex = 0; // forward jump index
// Return a size (SIZB, SIZW, SIZL) or 0, depending on what kind of fixup is
// associated with a location.
static char fusiztab[] = {
// Return a size (SIZB, SIZW, SIZL) or 0, depending on what kind of fixup is
// associated with a location.
static char fusiztab[] = {
DEBUG printf("FIXUP@$%X: $%X\n", loc, attr);
// Compute length of expression (could be faster); determine if it's the
DEBUG printf("FIXUP@$%X: $%X\n", loc, attr);
// Compute length of expression (could be faster); determine if it's the
// We need to do a final check of forward 'jump' destination addresses that
// are external
for(i=0; i<MAXFWDJUMPS; i++)
// We need to do a final check of forward 'jump' destination addresses that
// are external
for(i=0; i<MAXFWDJUMPS; i++)
cfileno = *fup.wp++;
curlineno = (int)*fup.wp++;
DEBUG { printf("ResolveFixups: cfileno=%u\n", cfileno); }
cfileno = *fup.wp++;
curlineno = (int)*fup.wp++;
DEBUG { printf("ResolveFixups: cfileno=%u\n", cfileno); }
rmark(sno, loc, 0, flags, esym);
}
else if (tdb)
{
rmark(sno, loc, 0, flags, esym);
}
else if (tdb)
{
rmark(sno, loc, tdb, flags, NULL);
}
rmark(sno, loc, tdb, flags, NULL);
}
*locp++ = (char)(eval >> 24);
*locp++ = (char)(eval >> 16);
*locp++ = (char)(eval >> 8);
*locp = (char)eval;
break;
*locp++ = (char)(eval >> 24);
*locp++ = (char)(eval >> 16);
*locp++ = (char)(eval >> 8);
*locp = (char)eval;
break;
// Fixup a 3-bit "QUICK" reference in bits 9..1
// (range of 1..8) in a word. Really bits 1..3 in a byte.
case FU_QUICK:
// Fixup a 3-bit "QUICK" reference in bits 9..1
// (range of 1..8) in a word. Really bits 1..3 in a byte.
case FU_QUICK: