diff --git a/README.md b/README.md
index e7ed2a1..f38744e 100644
--- a/README.md
+++ b/README.md
@@ -23,6 +23,10 @@
 - [ ] Preemptive multitasking
   - [x] Multi-threading
   - [ ] Multi-process support
+- [ ] Device drivers
+  - [x] PCI
+  - [ ] USB
+    - [ ] Mouse + keyboard drivers
 - [ ] Filesystem
   - [x] Virtual file system
   - [x] Initial ramdisk
@@ -36,6 +40,12 @@
   - [ ] Filesystem API
   - [ ] Memory management API (`sbrk`, `mmap`, etc)
   - [ ] Process/thread API (`spawn_process`, `spawn_thread`, etc)
+- [ ] Lisp compiler
+  - [ ] JIT compiler using dynasm
+    - [x] Basic compilation
+    - [ ] Lexical closures
+    - [ ] GC
+  - [ ] Standard library
 - [ ] Lisp integrated into kernel
 - [ ] User-space driver API
   - [ ] Lisp API
diff --git a/include/kernel/dri/pci/pci.h b/include/kernel/dri/pci/pci.h
index 75262d3..3a3a8fa 100644
--- a/include/kernel/dri/pci/pci.h
+++ b/include/kernel/dri/pci/pci.h
@@ -11,3 +11,4 @@
 
 uint pci_config_readd(uchar bus, uchar slot, uchar func, uchar offset);
 struct pci_vendor *pci_check_vendor(uchar bus, uchar slot, uchar func, uint *v);
+void pci_print_devices();
diff --git a/src/kernel/Jmk b/src/kernel/Jmk
index 0ae3053..ddbc343 100644
--- a/src/kernel/Jmk
+++ b/src/kernel/Jmk
@@ -16,7 +16,10 @@
 # AHCI not yet implemented
 # depends(ahci, dri/ahci, ahci.a)
 
-CFLAGS += -I $(ROOT)/include/kernel
+TEST ?=
+test_defines = $(TEST:%=-DTEST_%)
+
+CFLAGS += -I $(ROOT)/include/kernel $(test_defines)
 
 LDFLAGS += -Tlink.ld -melf_i386
 ASMFLAGS += -felf -Fdwarf
diff --git a/src/kernel/dri/pci/pci.c b/src/kernel/dri/pci/pci.c
index 67355a0..f9ebadb 100644
--- a/src/kernel/dri/pci/pci.c
+++ b/src/kernel/dri/pci/pci.c
@@ -49,3 +49,25 @@
 			start = guess;
 	}
 }
+
+void pci_print_devices()
+{
+	kprintf("Enumerating PCI devices:\n");
+	for (int bus = 0; bus < 0xff; bus++)
+	{
+		for (int slot = 0; slot < 32; slot++)
+		{
+			for (int func = 0; func < 8; func++)
+			{
+				uint vendor;
+
+				struct pci_vendor *v = pci_check_vendor(bus, slot, func, &vendor);
+
+				if (vendor != ~0)
+				{
+					kprintf("%d %d %d --- 0x%x --- %s\n", bus, slot, func, vendor, v->name);
+				}
+			}
+		}
+	}
+}
diff --git a/src/kernel/main.c b/src/kernel/main.c
index fc9ee22..bc40ff8 100644
--- a/src/kernel/main.c
+++ b/src/kernel/main.c
@@ -74,46 +74,28 @@
 	}
 #endif
 
-	asm volatile("sti");
+	asm("sti");
 
 	kprintf("initializing tasks\n");
 	init_tasks();
 	kprintf("\ndone initializing tasks\n");
 
-//#ifdef TEST_THREADS
+#ifdef TEST_THREADS
 	spawn_thread(other_thread, NULL);
 
 	greet();
-//#endif
+#endif
 
 #ifdef TEST_ATA_PIO
 	test_ata_pio();
 #endif
 
 #ifdef TEST_PCI
-	kprintf("Enumerating PCI devices:\n");
-	for (int bus = 0; bus < 0xff; bus++)
-	{
-		for (int slot = 0; slot < 32; slot++)
-		{
-			for (int func = 0; func < 8; func++)
-			{
-				uint vendor;
-
-				struct pci_vendor *v = pci_check_vendor(bus, slot, func, &vendor);
-
-				if (vendor != ~0)
-				{
-					kprintf("%d %d %d --- 0x%x --- %s\n", bus, slot, func, vendor, v->name);
-				}
-			}
-		}
-	}
+	pci_print_devices();
 #endif
 
 	while (true)
-		asm volatile("hlt");
-
+		asm("hlt");
 
 	return 0xCAFEBABE;
 }
diff --git a/src/kernel/paging.h b/src/kernel/paging.h
index 045b872..20ecce9 100644
--- a/src/kernel/paging.h
+++ b/src/kernel/paging.h
@@ -4,7 +4,7 @@
 #include "registers.h"
 
 #define VIRT_TO_PHYS(virt) ((uint)(virt) - 0xC0000000)
-#define PHYS_TO_VIRT(phys) ((void *)(phys) + 0xC0000000)
+#define PHYS_TO_VIRT(phys) ((void *)((phys) + 0xC0000000))
 #define KERNEL_VIRTUAL_BASE 0xC0000000
 #define KERNEL_PAGE_NUMBER (KERNEL_VIRTUAL_BASE >> 22)
 
diff --git a/src/kernel/task.c b/src/kernel/task.c
index 564119a..b8ce525 100644
--- a/src/kernel/task.c
+++ b/src/kernel/task.c
@@ -83,7 +83,7 @@
 
 void spawn_thread(void (*function)(void *), void *data)
 {
-	asm volatile("cli");
+	asm("cli");
 
 	struct process *proc = current_task->task.proc;
 	// Virtual address of page directory (in kernel memory)
@@ -115,12 +115,12 @@
 	ll_task->prev = last_task;
 	last_task = ll_task;
 
-	asm volatile("sti");
+	asm("sti");
 }
 
 void kill_this_thread()
 {
-	asm volatile("cli");
+	asm("cli");
 
 	if (current_task->prev == NULL && current_task->next == NULL)
 	{
@@ -152,7 +152,7 @@
 
 	switch_to_task(&current_task->task);
 
-	asm volatile("sti");
+	asm("sti");
 }
 
 extern void _switch_to_task(uint page_directory, uint eip, uint ebp, uint esp);
@@ -170,7 +170,7 @@
 void _do_switch_task(uint eip, uint ebp, uint esp)
 {
 	// sti is called in switch_to_task
-	asm volatile("cli");
+	asm("cli");
 
 	// save context for this task
 	current_task->task.ebp = ebp;
diff --git a/src/lisp/.gitignore b/src/lisp/.gitignore
index ee89f4f..6a43045 100644
--- a/src/lisp/.gitignore
+++ b/src/lisp/.gitignore
@@ -1,2 +1,2 @@
 compiler.c
-lisp
\ No newline at end of file
+lisp
