mirror of http://shamusworld.gotdns.org/git/rmac
Files missed in the last commit. :-P
This commit is contained in:
parent
45c9dc2361
commit
c6808e75ed
2
6502.h
2
6502.h
|
@ -19,6 +19,8 @@ extern void Init6502();
|
||||||
extern int d_6502();
|
extern int d_6502();
|
||||||
extern void m6502cg(int op);
|
extern void m6502cg(int op);
|
||||||
extern void m6502obj(int ofd);
|
extern void m6502obj(int ofd);
|
||||||
|
extern void m6502raw(int ofd);
|
||||||
|
extern void m6502c64(int ofd);
|
||||||
|
|
||||||
#endif // __6502_H__
|
#endif // __6502_H__
|
||||||
|
|
||||||
|
|
10
direct.c
10
direct.c
|
@ -628,11 +628,13 @@ allright:
|
||||||
{
|
{
|
||||||
// Parse size and position parameters
|
// Parse size and position parameters
|
||||||
uint64_t requested_size = -1; // -1 means "not set" for these two
|
uint64_t requested_size = -1; // -1 means "not set" for these two
|
||||||
|
|
||||||
if (*tok++ != ',')
|
if (*tok++ != ',')
|
||||||
{
|
{
|
||||||
close(fd);
|
close(fd);
|
||||||
return error("expected comma after incbin filename");
|
return error("expected comma after incbin filename");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tok != EOL)
|
if (tok != EOL)
|
||||||
{
|
{
|
||||||
if (*tok != ',')
|
if (*tok != ',')
|
||||||
|
@ -642,12 +644,14 @@ allright:
|
||||||
close(fd);
|
close(fd);
|
||||||
return ERROR;
|
return ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((int64_t)requested_size <= 0 || requested_size > size)
|
if ((int64_t)requested_size <= 0 || requested_size > size)
|
||||||
{
|
{
|
||||||
close(fd);
|
close(fd);
|
||||||
return error("invalid incbin size requested");
|
return error("invalid incbin size requested");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (*tok != EOL)
|
if (*tok != EOL)
|
||||||
{
|
{
|
||||||
if (*tok++ != ',')
|
if (*tok++ != ',')
|
||||||
|
@ -655,6 +659,7 @@ allright:
|
||||||
close(fd);
|
close(fd);
|
||||||
return error("expected comma after size parameter");
|
return error("expected comma after size parameter");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (*tok != EOL)
|
if (*tok != EOL)
|
||||||
{
|
{
|
||||||
if (abs_expr(&pos) != OK)
|
if (abs_expr(&pos) != OK)
|
||||||
|
@ -662,6 +667,7 @@ allright:
|
||||||
close(fd);
|
close(fd);
|
||||||
return ERROR;
|
return ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((int64_t)pos <= 0 || pos > size)
|
if ((int64_t)pos <= 0 || pos > size)
|
||||||
{
|
{
|
||||||
close(fd);
|
close(fd);
|
||||||
|
@ -682,7 +688,7 @@ allright:
|
||||||
{
|
{
|
||||||
requested_size = size - pos;
|
requested_size = size - pos;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Are we going to read past the end of the file?
|
// Are we going to read past the end of the file?
|
||||||
if (pos + requested_size > size)
|
if (pos + requested_size > size)
|
||||||
{
|
{
|
||||||
|
@ -1215,7 +1221,7 @@ int d_ds(WORD siz)
|
||||||
|
|
||||||
if (expr(exprbuf, &eval, &eattr, NULL) < 0)
|
if (expr(exprbuf, &eval, &eattr, NULL) < 0)
|
||||||
return ERROR;
|
return ERROR;
|
||||||
|
|
||||||
// Check to see if the value being passed in is negative (who the hell does
|
// 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)
|
// 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
|
// N.B.: Since 'eval' is of type uint64_t, if it goes negative, it will
|
||||||
|
|
5
object.c
5
object.c
|
@ -831,6 +831,11 @@ for(int j=0; j<i; j++)
|
||||||
// Just write the object file
|
// Just write the object file
|
||||||
m6502obj(fd);
|
m6502obj(fd);
|
||||||
}
|
}
|
||||||
|
else if (obj_format == C64PRG)
|
||||||
|
{
|
||||||
|
// Just write the object file
|
||||||
|
m6502c64(fd);
|
||||||
|
}
|
||||||
else if (obj_format == P56 || obj_format == LOD)
|
else if (obj_format == P56 || obj_format == LOD)
|
||||||
{
|
{
|
||||||
// Allocate 6MB object file image memory
|
// Allocate 6MB object file image memory
|
||||||
|
|
5
rmac.c
5
rmac.c
|
@ -163,6 +163,7 @@ void DisplayHelp(void)
|
||||||
" -f[format] Output object file format\n"
|
" -f[format] Output object file format\n"
|
||||||
" a: ALCYON\n"
|
" a: ALCYON\n"
|
||||||
" b: BSD (use this for Jaguar)\n"
|
" b: BSD (use this for Jaguar)\n"
|
||||||
|
" c: PRG (C64)\n"
|
||||||
" e: ELF\n"
|
" e: ELF\n"
|
||||||
" p: P56 (use this for DSP56001 only)\n"
|
" p: P56 (use this for DSP56001 only)\n"
|
||||||
" l: LOD (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':
|
case 'B':
|
||||||
obj_format = BSD;
|
obj_format = BSD;
|
||||||
break;
|
break;
|
||||||
|
case 'c':
|
||||||
|
case 'C':
|
||||||
|
obj_format = C64PRG;
|
||||||
|
break;
|
||||||
case 'e': // -fe = ELF
|
case 'e': // -fe = ELF
|
||||||
case 'E':
|
case 'E':
|
||||||
obj_format = ELF;
|
obj_format = ELF;
|
||||||
|
|
1
rmac.h
1
rmac.h
|
@ -198,6 +198,7 @@ LOD, // DSP 56001 object format
|
||||||
P56, // DSP 56001 object format
|
P56, // DSP 56001 object format
|
||||||
XEX, // COM/EXE/XEX/whatever a8 object format
|
XEX, // COM/EXE/XEX/whatever a8 object format
|
||||||
RAW, // Output at absolute address
|
RAW, // Output at absolute address
|
||||||
|
C64PRG, // C64 .PRG format
|
||||||
};
|
};
|
||||||
|
|
||||||
// Assembler token
|
// Assembler token
|
||||||
|
|
|
@ -15,6 +15,6 @@
|
||||||
|
|
||||||
#define MAJOR 2 // Major version number
|
#define MAJOR 2 // Major version number
|
||||||
#define MINOR 2 // Minor version number
|
#define MINOR 2 // Minor version number
|
||||||
#define PATCH 7 // Patch release number
|
#define PATCH 11 // Patch release number
|
||||||
|
|
||||||
#endif // __VERSION_H__
|
#endif // __VERSION_H__
|
||||||
|
|
Loading…
Reference in New Issue