Fix assembler
diff --git a/as/main.c b/as/main.c
index 8c2b577..9c409d7 100644
--- a/as/main.c
+++ b/as/main.c
@@ -11,7 +11,7 @@
 {
 	char c;
 	FILE *in = stdin,
-		*out = stdout;
+		*out = NULL;
 
 	while ((c = getopt(argc, argv, "i:o:")) != -1)
 	{
@@ -32,6 +32,12 @@
 		}
 	}
 
+	if (!out)
+	{
+		fprintf(stderr, "-o flag is now mandatory\n");
+		return 1;
+	}
+
 	fseek(in, 0, SEEK_END);
 	ssize_t len = ftell(in);
 	fseek(in, 0, SEEK_SET);
@@ -40,22 +46,7 @@
 	fread(text, len, 1, in);
 	text[len] = 0;
 
-	FILE *temp = tmpfile();
-
-	map_t *macros = new_map();
-	uint32_t processed = preproc(text, temp, macros, 0);
-	free_map_items(macros);
-
-	fseek(temp, 0, SEEK_END);
-	ssize_t temp_len = ftell(in);
-	fseek(temp, 0, SEEK_SET);
-
-	char *processed_text = malloc(len + 1);
-	fread(processed_text, len, 1, in);
-	text[temp_len] = 0;
-	
-	uint32_t built = assemble(processed_text, out);
+	uint32_t built = assemble(text, out);
 
 	free(text);
-	free(processed_text);
 }