-// This is really wrong. We need to make some proper structures here so we
-// don't have to count sizes of objects, that's what the compiler's for! :-P
-#define FIXUP_BASE_SIZE (sizeof(uint16_t) + sizeof(uint32_t) + sizeof(uint16_t) + sizeof(uint16_t))
+//
+// A fixup record is at least 4 pieces of data long, with some optional data at
+// the end. Is of the form:
+//
+// SYMBOL EXPRESSION
+// ------ ----------
+// FU_EXPR.W FU_EXPR.W fixup type
+// loc.L loc.L location in section
+// fileno.W fileno.W file number fixup occurred in
+// lineno.W lineno.W line number fixup occurred in
+// symbol.* size.W &symbol (32 or 64 bits) / size of expression
+// token.L size (zero or more) TOKENS (32-bits each)
+// ENDEXPR.L End of expression (with size > zero)
+// JR.L Possible ORG address of RISC JR instruction