+
+//
+// Generate a C64 .PRG output file
+//
+void m6502c64(int ofd)
+{
+ uint8_t header[2];
+
+ CHUNK * ch = sect[M6502].scode;
+
+ // If no 6502 code was generated, bail out
+ if ((ch == NULL) || (ch->challoc == 0))
+ return;
+
+ if (currentorg != &orgmap[1][0])
+ {
+ // More than one 6502 section created, this is not allowed
+ error("when generating C64 .PRG files only one org section is allowed - aborting");
+ return;
+ }
+
+ SETLE16(header, 0, orgmap[0][0]);
+ register uint8_t * p = ch->chptr;
+
+ // Write header
+ uint32_t unused = write(ofd, header, 2);
+ // Write the data
+ unused = write(ofd, p + orgmap[0][0], orgmap[0][1] - orgmap[0][0]);
+}