Index: .gitignore
===================================================================
--- .gitignore	(revision 59ea67d75465ee51d8cf581227514928aaf6bb41)
+++ .gitignore	(revision 0edef063f9f44e2ab2453cf3de946f485c6efbc6)
@@ -4,4 +4,5 @@
 midas.elf
 
+build/*
 buchla
 buchla.exe
Index: emu/all.h
===================================================================
--- emu/all.h	(revision 59ea67d75465ee51d8cf581227514928aaf6bb41)
+++ emu/all.h	(revision 0edef063f9f44e2ab2453cf3de946f485c6efbc6)
@@ -63,4 +63,5 @@
 extern const char *bios;
 extern const char *disk;
+extern const char *font;
 
 extern SDL_atomic_t run;
Index: emu/main.c
===================================================================
--- emu/main.c	(revision 59ea67d75465ee51d8cf581227514928aaf6bb41)
+++ emu/main.c	(revision 0edef063f9f44e2ab2453cf3de946f485c6efbc6)
@@ -41,4 +41,5 @@
 const char *bios = "bios.abs";
 const char *disk = "buchla.disk";
+const char *font = "ttf/vera-sans-mono.ttf";
 
 SDL_atomic_t run;
@@ -46,5 +47,5 @@
 static void usage(FILE *fh)
 {
-	fprintf(fh, "usage: buchla [-h] [-v comp [-v comp [...]]] [-b bios] [-d disk]\n");
+	fprintf(fh, "usage: buchla [-h] [-v comp [-v comp [...]]] [-b bios] [-d disk] [-f font]\n");
 	fprintf(fh, "where comp is one of: ");
 
@@ -83,4 +84,15 @@
 
 			disk = argv[i];
+			continue;
+		}
+
+		if (strcmp(argv[i], "-f") == 0) {
+			if (++i == argc) {
+				usage(stderr);
+				fprintf(stderr, "missing argument to -f\n");
+				exit(1);
+			}
+
+			font = argv[i];
 			continue;
 		}
Index: emu/ser.c
===================================================================
--- emu/ser.c	(revision 59ea67d75465ee51d8cf581227514928aaf6bb41)
+++ emu/ser.c	(revision 0edef063f9f44e2ab2453cf3de946f485c6efbc6)
@@ -37,6 +37,4 @@
 #define CON_FGR ((SDL_Color){ .r = 255, .b = 255, .g = 255, .a = 255 })
 
-#define CON_FONT "ttf/vera-sans-mono.ttf"
-
 #define REG_IER_ISR 0
 #define REG_CFR_SR  1
@@ -287,8 +285,8 @@
 	SDL_AtomicSet(&frame, 1);
 
-	SDL_RWops *ops = SDL_RWFromFile(CON_FONT, "rb");
+	SDL_RWops *ops = SDL_RWFromFile(font, "rb");
 
 	if (ops == NULL) {
-		fail("error while opening font file " CON_FONT ": %s", SDL_GetError());
+		fail("error while opening font file %s: %s", font, SDL_GetError());
 	}
 
@@ -296,5 +294,5 @@
 
 	if (fon == NULL) {
-		fail("error while loading font file " CON_FONT ": %s", TTF_GetError());
+		fail("error while loading font file %s: %s", font, TTF_GetError());
 	}
 
