Files missed in the last commit. :-P

This commit is contained in:
Shamus Hammons 2022-12-21 16:37:53 -06:00
parent 45c9dc2361
commit c6808e75ed
6 changed files with 22 additions and 3 deletions

2
6502.h
View File

@ -19,6 +19,8 @@ extern void Init6502();
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__

View File

@ -628,11 +628,13 @@ allright:
{
// 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 != ',')
@ -642,12 +644,14 @@ allright:
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++ != ',')
@ -655,6 +659,7 @@ allright:
close(fd);
return error("expected comma after size parameter");
}
if (*tok != EOL)
{
if (abs_expr(&pos) != OK)
@ -662,6 +667,7 @@ allright:
close(fd);
return ERROR;
}
if ((int64_t)pos <= 0 || pos > size)
{
close(fd);
@ -682,7 +688,7 @@ allright:
{
requested_size = size - pos;
}
// Are we going to read past the end of the file?
if (pos + requested_size > size)
{
@ -1215,7 +1221,7 @@ int d_ds(WORD siz)
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

View File

@ -831,6 +831,11 @@ for(int j=0; j<i; j++)
// 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

5
rmac.c
View File

@ -163,6 +163,7 @@ void DisplayHelp(void)
" -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"
@ -443,6 +444,10 @@ int Process(int argc, char ** argv)
case 'B':
obj_format = BSD;
break;
case 'c':
case 'C':
obj_format = C64PRG;
break;
case 'e': // -fe = ELF
case 'E':
obj_format = ELF;

1
rmac.h
View File

@ -198,6 +198,7 @@ LOD, // DSP 56001 object format
P56, // DSP 56001 object format
XEX, // COM/EXE/XEX/whatever a8 object format
RAW, // Output at absolute address
C64PRG, // C64 .PRG format
};
// Assembler token

View File

@ -15,6 +15,6 @@
#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__