extern int d_6502();
extern void m6502cg(int op);
extern void m6502obj(int ofd);
+extern void m6502raw(int ofd);
+extern void m6502c64(int ofd);
#endif // __6502_H__
{
// Parse size and position parameters
uint64_t requested_size = -1; // -1 means "not set" for these two
+
if (*tok++ != ',')
{
close(fd);
return error("expected comma after incbin filename");
}
+
if (tok != EOL)
{
if (*tok != ',')
close(fd);
return ERROR;
}
+
if ((int64_t)requested_size <= 0 || requested_size > size)
{
close(fd);
return error("invalid incbin size requested");
}
}
+
if (*tok != EOL)
{
if (*tok++ != ',')
close(fd);
return error("expected comma after size parameter");
}
+
if (*tok != EOL)
{
if (abs_expr(&pos) != OK)
close(fd);
return ERROR;
}
+
if ((int64_t)pos <= 0 || pos > size)
{
close(fd);
{
requested_size = size - pos;
}
-
+
// Are we going to read past the end of the file?
if (pos + requested_size > size)
{
if (expr(exprbuf, &eval, &eattr, NULL) < 0)
return ERROR;
-
+
// Check to see if the value being passed in is negative (who the hell does
// that?--nobody does; it's the code gremlins, or rum, what does it)
// N.B.: Since 'eval' is of type uint64_t, if it goes negative, it will
// Just write the object file
m6502obj(fd);
}
+ else if (obj_format == C64PRG)
+ {
+ // Just write the object file
+ m6502c64(fd);
+ }
else if (obj_format == P56 || obj_format == LOD)
{
// Allocate 6MB object file image memory
" -f[format] Output object file format\n"
" a: ALCYON\n"
" b: BSD (use this for Jaguar)\n"
+ " c: PRG (C64)\n"
" e: ELF\n"
" p: P56 (use this for DSP56001 only)\n"
" l: LOD (use this for DSP56001 only)\n"
case 'B':
obj_format = BSD;
break;
+ case 'c':
+ case 'C':
+ obj_format = C64PRG;
+ break;
case 'e': // -fe = ELF
case 'E':
obj_format = ELF;
P56, // DSP 56001 object format
XEX, // COM/EXE/XEX/whatever a8 object format
RAW, // Output at absolute address
+C64PRG, // C64 .PRG format
};
// Assembler token
#define MAJOR 2 // Major version number
#define MINOR 2 // Minor version number
-#define PATCH 7 // Patch release number
+#define PATCH 11 // Patch release number
#endif // __VERSION_H__