Add step 1 of assembler
diff --git a/as/main.c b/as/main.c
new file mode 100644
index 0000000..cf966f8
--- /dev/null
+++ b/as/main.c
@@ -0,0 +1,44 @@
+#include "as.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <bits/getopt_core.h>
+#include <unistd.h>
+
+int main(int argc, char **argv)
+{
+ char c;
+ FILE *in = stdin,
+ *out = stdout;
+
+ while ((c = getopt(argc, argv, "i:o:")) != -1)
+ {
+ switch (c)
+ {
+ case 'i':
+ in = fopen(optarg, "r");
+ break;
+ case 'o':
+ out = fopen(optarg, "w");
+ break;
+ case 'h':
+ case '?':
+ printf("6502 assembler\n"
+ "Usage:\n"
+ " -i <input> set input file (default stdin)\n"
+ " -o <output> set output file (default stdout)\n");
+ }
+ }
+
+ fseek(in, 0, SEEK_END);
+ ssize_t len = ftell(in);
+ fseek(in, 0, SEEK_SET);
+
+ char *text = malloc(len + 1);
+ fread(text, len, 1, in);
+ text[len] = 0;
+
+ uint32_t built = assemble(text, out);
+
+ free(text);
+}