mirror of
https://github.com/RevCurtisP/C02.git
synced 2024-11-27 19:49:41 +00:00
Added A02 Assembler to Makefile
This commit is contained in:
parent
37d0fee589
commit
1b061ec033
3
Makefile
3
Makefile
@ -4,5 +4,6 @@ mainfile=src/c02.c
|
|||||||
outfile=c02
|
outfile=c02
|
||||||
c02: ${incfiles} ${mainfile}
|
c02: ${incfiles} ${mainfile}
|
||||||
gcc ${gccopts} ${incfiles} ${mainfile} -o ${outfile}
|
gcc ${gccopts} ${incfiles} ${mainfile} -o ${outfile}
|
||||||
|
gcc ${gccopts} a02.h a02.c -o a02
|
||||||
clean:
|
clean:
|
||||||
rm ${outfile}
|
rm ${outfile} a02
|
||||||
|
34
a02.c
34
a02.c
@ -284,6 +284,21 @@ void outwrd(int w) {
|
|||||||
outbyt(w >> 8);
|
outbyt(w >> 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Lookup Opcode */
|
||||||
|
int lkpopc(struct opc opl[]) {
|
||||||
|
if (DEBUG) printf("Looking up Mnemonic %s\n", mnmnc);
|
||||||
|
token = 0xFF; //Set Token to Invalid
|
||||||
|
char mne[5]; strncpy(mne, mnmnc, 4); mne[4] = 0; //Truncate Mnemonic to Four Characters
|
||||||
|
for (int i=0; opl[i].name[0]; i++) {
|
||||||
|
if (strcmp(opl[i].name, mne)) continue;
|
||||||
|
token = opl[i].token;
|
||||||
|
amode = opl[i].amode;
|
||||||
|
if (DEBUG) printf("Found token %02X, amode %04X\n", token, amode);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
/* Assemble BYTE Pseudo-Op */
|
/* Assemble BYTE Pseudo-Op */
|
||||||
void asmbyt(void) {
|
void asmbyt(void) {
|
||||||
if (DEBUG) puts("Assembling BYTE Pseudo-Op");
|
if (DEBUG) puts("Assembling BYTE Pseudo-Op");
|
||||||
@ -405,21 +420,6 @@ int asmpso(int dot) {
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Lookup Opcode */
|
|
||||||
int lkpopc(struct opc opl[]) {
|
|
||||||
if (DEBUG) printf("Looking up Mnemonic %s\n", mnmnc);
|
|
||||||
token = 0xFF; //Set Token to Invalid
|
|
||||||
char mne[5]; strncpy(mne, mnmnc, 4); mne[4] = 0; //Truncate Mnemonic to Four Characters
|
|
||||||
for (int i=0; opl[i].name[0]; i++) {
|
|
||||||
if (strcmp(opl[i].name, mne)) continue;
|
|
||||||
token = opl[i].token;
|
|
||||||
amode = opl[i].amode;
|
|
||||||
if (DEBUG) printf("Found token %02X, amode %04X\n", token, amode);
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Check for Valid Addressing Mode */
|
/* Check for Valid Addressing Mode */
|
||||||
int chkmod(int mode) {
|
int chkmod(int mode) {
|
||||||
char* s = NULL; //Pointer to Addressing Mode Description
|
char* s = NULL; //Pointer to Addressing Mode Description
|
||||||
@ -513,9 +513,9 @@ void dbgopc(void) {
|
|||||||
case 0x11: puts("(Indirect)"); break;
|
case 0x11: puts("(Indirect)"); break;
|
||||||
case 0x04: puts("ZeroPage"); break;
|
case 0x04: puts("ZeroPage"); break;
|
||||||
case 0x0C: puts("Absolute"); break;
|
case 0x0C: puts("Absolute"); break;
|
||||||
case 0x14: puts("ZeroPage,X"); break;
|
case 0x14: if ((token == 0x82 || token == 0xA2)) puts("ZeroPage,Y");
|
||||||
|
else puts("ZeroPage,X"); break;
|
||||||
case 0x1C: puts("Absolute,X"); break;
|
case 0x1C: puts("Absolute,X"); break;
|
||||||
case 0x14: puts("ZeroPage,Y"); break;
|
|
||||||
case 0x18: puts("Absolute,Y"); break;
|
case 0x18: puts("Absolute,Y"); break;
|
||||||
default: puts("UNKOWN");
|
default: puts("UNKOWN");
|
||||||
}
|
}
|
||||||
|
10
c02.ppj
10
c02.ppj
@ -8,7 +8,7 @@ POC_PROJECT_TYPE = 13#
|
|||||||
POC_PROJECT_OUTPUTDIR = output#
|
POC_PROJECT_OUTPUTDIR = output#
|
||||||
POC_PROJECT_RESULTDIR = .#
|
POC_PROJECT_RESULTDIR = .#
|
||||||
POC_PROJECT_ARGUMENTS = #
|
POC_PROJECT_ARGUMENTS = #
|
||||||
POC_PROJECT_WORKPATH = .#
|
POC_PROJECT_WORKPATH = src#
|
||||||
POC_PROJECT_EXECUTOR = #
|
POC_PROJECT_EXECUTOR = #
|
||||||
POC_PROJECT_ZIPEXTRA = #
|
POC_PROJECT_ZIPEXTRA = #
|
||||||
CC = pocc.exe#
|
CC = pocc.exe#
|
||||||
@ -153,8 +153,10 @@ output\label.obj: \
|
|||||||
src\label.c \
|
src\label.c \
|
||||||
src\asm.h \
|
src\asm.h \
|
||||||
src\common.h \
|
src\common.h \
|
||||||
|
src\files.h \
|
||||||
src\label.h \
|
src\label.h \
|
||||||
src\parse.h
|
src\parse.h \
|
||||||
|
src\vars.h
|
||||||
$(CC) $(CCFLAGS) "$!" -Fo"$@"
|
$(CC) $(CCFLAGS) "$!" -Fo"$@"
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -164,9 +166,11 @@ output\parse.obj: \
|
|||||||
src\parse.c \
|
src\parse.c \
|
||||||
src\asm.h \
|
src\asm.h \
|
||||||
src\common.h \
|
src\common.h \
|
||||||
|
src\expr.h \
|
||||||
src\files.h \
|
src\files.h \
|
||||||
src\label.h \
|
src\label.h \
|
||||||
src\parse.h
|
src\parse.h \
|
||||||
|
src\stmnt.h
|
||||||
$(CC) $(CCFLAGS) "$!" -Fo"$@"
|
$(CC) $(CCFLAGS) "$!" -Fo"$@"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
Loading…
Reference in New Issue
Block a user