diff --git a/.gitignore b/.gitignore index e15802e..ae1d7b7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,10 @@ #Compiled source code *.exe -#Pelles C Auxillary Files +#Pelles C Auxiliary Files & Folders *.ppx *.tag +output #Files created when compiling a C02 program */*.asm @@ -16,6 +17,7 @@ #Converted Object Files *.asc +*.dsk *.out *.s9 *.wav diff --git a/Makefile b/Makefile index 1912634..82f34e4 100644 --- a/Makefile +++ b/Makefile @@ -1,9 +1,8 @@ gccopts=-Wno-format-extra-args -incfiles=common.c files.c label.c asm.c parse.c vars.c expr.c cond.c stmnt.c dclrtn.c include.c -mainfile=c02.c -outfile=c02 +incfiles=$(addprefix src/,common.c files.c label.c asm.c parse.c vars.c expr.c cond.c stmnt.c dclrtn.c include.c) +mainfile=src/c02.c +outfile=c02 c02: ${incfiles} ${mainfile} gcc ${gccopts} ${incfiles} ${mainfile} -o ${outfile} clean: - rm *.o ${outfile} - + rm ${outfile} diff --git a/asm6502/asm6502 b/asm6502/asm6502 new file mode 100644 index 0000000..61cb747 Binary files /dev/null and b/asm6502/asm6502 differ diff --git a/asm6502.c b/asm6502/asm6502.c similarity index 100% rename from asm6502.c rename to asm6502/asm6502.c diff --git a/c02.ppj b/c02.ppj index 5222616..518be17 100644 --- a/c02.ppj +++ b/c02.ppj @@ -4,7 +4,7 @@ # POC_PROJECT_VERSION = 7.00# -POC_PROJECT_TYPE = 3# +POC_PROJECT_TYPE = 13# POC_PROJECT_OUTPUTDIR = output# POC_PROJECT_RESULTDIR = .# POC_PROJECT_ARGUMENTS = # @@ -16,186 +16,184 @@ AS = poasm.exe# RC = porc.exe# LINK = polink.exe# SIGN = posign.exe# -CCFLAGS = -std:C11 -Tx86-coff -Ot -Ob1 -fp:precise -W0 -Gd -Zx -Go# -ASFLAGS = -AIA32# +CCFLAGS = -Tx64-coff -Ot -W1 -std:C11# +ASFLAGS = -AAMD64# RCFLAGS = -r# -LINKFLAGS = -machine:x86 -subsystem:console kernel32.lib advapi32.lib delayimp.lib# +LINKFLAGS = -machine:amd64 -subsystem:console kernel32.lib advapi32.lib delayimp64.lib# SIGNFLAGS = -location:CU -store:MY -timeurl:http://timestamp.verisign.com/scripts/timstamp.dll -errkill# INCLUDE = $(PellesCDir)\Include\Win;$(PellesCDir)\Include# -LIB = $(PellesCDir)\Lib\Win;$(PellesCDir)\Lib# +LIB = $(PellesCDir)\Lib\Win64;$(PellesCDir)\Lib# # # Build c02.exe. # c02.exe: \ - output\asm.obj \ output\c02.obj \ + output\asm.obj \ output\common.obj \ output\cond.obj \ + output\dclrtn.obj \ output\expr.obj \ output\files.obj \ output\include.obj \ output\label.obj \ output\parse.obj \ output\stmnt.obj \ - output\vars.obj \ - output\dclrtn.obj + output\vars.obj $(LINK) $(LINKFLAGS) -out:"$@" $** # # Build c02.obj. # output\c02.obj: \ - c02.c \ - asm.h \ - common.h \ - cond.h \ - dclrtn.h \ - expr.h \ - files.h \ - include.h \ - label.h \ - parse.h \ - stmnt.h \ - vars.h + src\c02.c \ + src\asm.h \ + src\common.h \ + src\cond.h \ + src\dclrtn.h \ + src\expr.h \ + src\files.h \ + src\include.h \ + src\label.h \ + src\parse.h \ + src\stmnt.h \ + src\vars.h $(CC) $(CCFLAGS) "$!" -Fo"$@" # # Build asm.obj. # output\asm.obj: \ - asm.c \ - asm.h \ - common.h \ - files.h + src\asm.c \ + src\asm.h \ + src\common.h \ + src\files.h $(CC) $(CCFLAGS) "$!" -Fo"$@" # # Build common.obj. # output\common.obj: \ - common.c \ - common.h + src\common.c \ + src\common.h $(CC) $(CCFLAGS) "$!" -Fo"$@" # # Build cond.obj. # output\cond.obj: \ - cond.c \ - asm.h \ - common.h \ - cond.h \ - expr.h \ - label.h \ - parse.h \ - vars.h - $(CC) $(CCFLAGS) "$!" -Fo"$@" - -# -# Build expr.obj. -# -output\expr.obj: \ - expr.c \ - asm.h \ - common.h \ - expr.h \ - label.h \ - parse.h \ - vars.h - $(CC) $(CCFLAGS) "$!" -Fo"$@" - -# -# Build files.obj. -# -output\files.obj: \ - files.c \ - common.h \ - files.h - $(CC) $(CCFLAGS) "$!" -Fo"$@" - -# -# Build include.obj. -# -output\include.obj: \ - include.c \ - asm.h \ - common.h \ - dclrtn.h \ - files.h \ - include.h \ - label.h \ - parse.h \ - stmnt.h \ - vars.h - $(CC) $(CCFLAGS) "$!" -Fo"$@" - -# -# Build label.obj. -# -output\label.obj: \ - label.c \ - asm.h \ - common.h \ - label.h \ - parse.h - $(CC) $(CCFLAGS) "$!" -Fo"$@" - -# -# Build parse.obj. -# -output\parse.obj: \ - parse.c \ - asm.h \ - common.h \ - files.h \ - parse.h - $(CC) $(CCFLAGS) "$!" -Fo"$@" - -# -# Build stmnt.obj. -# -output\stmnt.obj: \ - stmnt.c \ - asm.h \ - common.h \ - cond.h \ - expr.h \ - label.h \ - parse.h \ - stmnt.h \ - vars.h - $(CC) $(CCFLAGS) "$!" -Fo"$@" - -# -# Build vars.obj. -# -output\vars.obj: \ - vars.c \ - asm.h \ - common.h \ - files.h \ - label.h \ - parse.h \ - vars.h + src\cond.c \ + src\asm.h \ + src\common.h \ + src\cond.h \ + src\expr.h \ + src\label.h \ + src\parse.h \ + src\vars.h $(CC) $(CCFLAGS) "$!" -Fo"$@" # # Build dclrtn.obj. # output\dclrtn.obj: \ - dclrtn.c \ - asm.h \ - common.h \ - cond.h \ - dclrtn.h \ - expr.h \ - label.h \ - parse.h \ - stmnt.h \ - vars.h + src\dclrtn.c \ + src\asm.h \ + src\common.h \ + src\cond.h \ + src\dclrtn.h \ + src\expr.h \ + src\label.h \ + src\parse.h \ + src\stmnt.h \ + src\vars.h + $(CC) $(CCFLAGS) "$!" -Fo"$@" + +# +# Build expr.obj. +# +output\expr.obj: \ + src\expr.c \ + src\asm.h \ + src\common.h \ + src\expr.h \ + src\label.h \ + src\parse.h \ + src\vars.h + $(CC) $(CCFLAGS) "$!" -Fo"$@" + +# +# Build files.obj. +# +output\files.obj: \ + src\files.c \ + src\common.h \ + src\files.h + $(CC) $(CCFLAGS) "$!" -Fo"$@" + +# +# Build include.obj. +# +output\include.obj: \ + src\include.c \ + src\asm.h \ + src\common.h \ + src\dclrtn.h \ + src\files.h \ + src\include.h \ + src\label.h \ + src\parse.h \ + src\stmnt.h \ + src\vars.h + $(CC) $(CCFLAGS) "$!" -Fo"$@" + +# +# Build label.obj. +# +output\label.obj: \ + src\label.c \ + src\asm.h \ + src\common.h \ + src\label.h \ + src\parse.h + $(CC) $(CCFLAGS) "$!" -Fo"$@" + +# +# Build parse.obj. +# +output\parse.obj: \ + src\parse.c \ + src\asm.h \ + src\common.h \ + src\files.h \ + src\parse.h + $(CC) $(CCFLAGS) "$!" -Fo"$@" + +# +# Build stmnt.obj. +# +output\stmnt.obj: \ + src\stmnt.c \ + src\asm.h \ + src\common.h \ + src\cond.h \ + src\expr.h \ + src\label.h \ + src\parse.h \ + src\stmnt.h \ + src\vars.h + $(CC) $(CCFLAGS) "$!" -Fo"$@" + +# +# Build vars.obj. +# +output\vars.obj: \ + src\vars.c \ + src\asm.h \ + src\common.h \ + src\files.h \ + src\label.h \ + src\parse.h \ + src\vars.h $(CC) $(CCFLAGS) "$!" -Fo"$@" .SILENT: - -.EXCLUDEDFILES: diff --git a/asm.c b/src/asm.c similarity index 100% rename from asm.c rename to src/asm.c diff --git a/asm.h b/src/asm.h similarity index 100% rename from asm.h rename to src/asm.h diff --git a/c02.c b/src/c02.c similarity index 100% rename from c02.c rename to src/c02.c diff --git a/common.c b/src/common.c similarity index 100% rename from common.c rename to src/common.c diff --git a/common.h b/src/common.h similarity index 100% rename from common.h rename to src/common.h diff --git a/cond.c b/src/cond.c similarity index 100% rename from cond.c rename to src/cond.c diff --git a/cond.h b/src/cond.h similarity index 100% rename from cond.h rename to src/cond.h diff --git a/dclrtn.c b/src/dclrtn.c similarity index 100% rename from dclrtn.c rename to src/dclrtn.c diff --git a/dclrtn.h b/src/dclrtn.h similarity index 100% rename from dclrtn.h rename to src/dclrtn.h diff --git a/expr.c b/src/expr.c similarity index 100% rename from expr.c rename to src/expr.c diff --git a/expr.h b/src/expr.h similarity index 100% rename from expr.h rename to src/expr.h diff --git a/files.c b/src/files.c similarity index 100% rename from files.c rename to src/files.c diff --git a/files.h b/src/files.h similarity index 100% rename from files.h rename to src/files.h diff --git a/include.c b/src/include.c similarity index 95% rename from include.c rename to src/include.c index 71c0f93..1eac98e 100644 --- a/include.c +++ b/src/include.c @@ -192,7 +192,7 @@ void setinm(char* filext) { strcat(incnam, filext); } -/* Set Input to Souyrce File */ +/* Set Input to Source File */ void setsrc() { inpfil = srcfil; strcpy(inpnam, srcnam); diff --git a/include.h b/src/include.h similarity index 66% rename from include.h rename to src/include.h index 2f7b9fd..87fd3d0 100644 --- a/include.h +++ b/src/include.h @@ -6,5 +6,9 @@ char line[255]; /*Entire line parsed from include file*/ void logdef(); //Print Definition Table to Log File void pdefin(); //Process define directive +void pdefin(); //Process define directive +void penumd(); //Process enum directive +void phdrfl(); //Process command line header file void pincfl(); //Process include file void pprgma(); //Parse Pragma Directive +void setsrc(); ///Set Input to Source File diff --git a/label.c b/src/label.c similarity index 100% rename from label.c rename to src/label.c diff --git a/label.h b/src/label.h similarity index 100% rename from label.h rename to src/label.h diff --git a/parse.c b/src/parse.c similarity index 100% rename from parse.c rename to src/parse.c diff --git a/parse.h b/src/parse.h similarity index 100% rename from parse.h rename to src/parse.h diff --git a/stmnt.c b/src/stmnt.c similarity index 100% rename from stmnt.c rename to src/stmnt.c diff --git a/stmnt.h b/src/stmnt.h similarity index 100% rename from stmnt.h rename to src/stmnt.h diff --git a/vars.c b/src/vars.c similarity index 100% rename from vars.c rename to src/vars.c diff --git a/vars.h b/src/vars.h similarity index 100% rename from vars.h rename to src/vars.h diff --git a/test/test.h b/test/test.h deleted file mode 100644 index 8f48ea2..0000000 --- a/test/test.h +++ /dev/null @@ -1,9 +0,0 @@ -/* Generic 6502 header file */ - -//int getchar() = $f000 -//void putchar() = $f002 - -#label exit $FF00 - -#origin $0300 -