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 void m6502cg(int op);
|
||||
extern void m6502obj(int ofd);
|
||||
extern void m6502raw(int ofd);
|
||||
extern void m6502c64(int ofd);
|
||||
|
||||
#endif // __6502_H__
|
||||
|
||||
|
|
10
direct.c
10
direct.c
|
@ -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
|
||||
|
|
5
object.c
5
object.c
|
@ -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
5
rmac.c
|
@ -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
1
rmac.h
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue