diff --git a/kernel/makefile b/kernel/makefile
index 8768820..be081db 100644
--- a/kernel/makefile
+++ b/kernel/makefile
@@ -137,37 +137,45 @@ task.obj: task.c        $(HEADERS) $(TARGET).lnk
 
 config.obj:   config.c  $(INITHEADERS) $(TARGET).lnk  
 	$(CC) $(INITCFLAGS) $*.c
+	objdump --reloc $*.obj > $*.rel || true
 	$(INITPATCH) $*.obj
 
 initoem.obj:  initoem.c  $(INITHEADERS) $(TARGET).lnk  
 	$(CC) $(INITCFLAGS) $*.c
+	objdump --reloc $*.obj > $*.rel || true
 	$(INITPATCH) $*.obj
 
 main.obj:     main.c  $(INITHEADERS) $(TARGET).lnk 
 	$(CC) $(INITCFLAGS) $*.c
+	objdump --reloc $*.obj > $*.rel || true
 	$(INITPATCH) $*.obj
 
 inithma.obj:  inithma.c  $(INITHEADERS) $(TARGET).lnk  
 	$(CC) $(INITCFLAGS) $*.c
+	objdump --reloc $*.obj > $*.rel || true
 	$(INITPATCH) $*.obj
 
 dyninit.obj:  dyninit.c  $(INITHEADERS) $(TARGET).lnk  
 	$(CC) $(INITCFLAGS) $*.c
+	objdump --reloc $*.obj > $*.rel || true
 	$(INITPATCH) $*.obj
 
 initdisk.obj: initdisk.c  $(INITHEADERS) $(TARGET).lnk  
 	$(CC) $(INITCFLAGS) $*.c
+	objdump --reloc $*.obj > $*.rel || true
 	$(INITPATCH) $*.obj
 
 initclk.obj: initclk.c  $(INITHEADERS) $(TARGET).lnk  
 	$(CC) $(INITCFLAGS) $*.c
+	objdump --reloc $*.obj > $*.rel || true
 	$(INITPATCH) $*.obj
 
 #the string functions for INIT_TEXT
 iasmsupt.obj: asmsupt.asm $(TARGET).lnk
-	$(NASM) -D$(COMPILER) -D_INIT -f obj $(NASMFLAGS) -o iasmsupt.obj asmsupt.asm
+	$(NASM) -D$(COMPILER) -D_INIT -f obj $(NASMFLAGS) -o iasmsupt.obj asmsupt.asm -l iasmsupt.lst
 
 #the printf for INIT_TEXT - yet another special case, this file includes prf.c
 iprf.obj: iprf.c prf.c $(HDR)portab.h $(TARGET).lnk
 	$(CC) $(INITCFLAGS) $*.c
+	objdump --reloc $*.obj > $*.rel || true
 	$(INITPATCH) $*.obj
diff --git a/mkfiles/gcc.mak b/mkfiles/gcc.mak
index abc09de..79c1ede 100644
--- a/mkfiles/gcc.mak
+++ b/mkfiles/gcc.mak
@@ -57,8 +57,8 @@ CFLAGSC=
 # -mfar-function-if-far-return-type treat `int __far f ();' as a far function
 
 ALLCFLAGS+=-I../hdr $(TARGETOPT) -mcmodel=small -fleading-underscore -fno-common -fpack-struct -ffreestanding -fcall-used-es -mrtd -Wno-pointer-to-int-cast -Wno-pragmas -Werror -Os -fno-strict-aliasing -mfar-function-if-far-return-type
-INITCFLAGS=$(ALLCFLAGS) -o $@
-CFLAGS=$(ALLCFLAGS) -o $@
+INITCFLAGS=$(ALLCFLAGS) -o $@ -Wa,-a=$*.lst -Wa,--listing-cont-lines=9999 -Wa,--listing-rhs-width=9999 -Wa,--listing-lhs-width=2 -Wa,-ag
+CFLAGS=$(ALLCFLAGS) -o $@ -Wa,-a=$*.lst -Wa,--listing-cont-lines=9999 -Wa,--listing-rhs-width=9999 -Wa,--listing-lhs-width=2 -Wa,-ag
 
 DIRSEP=/
 RM=rm -f
@@ -78,7 +78,8 @@ LINK=$(XLINK) -Tkernel.ld -nostdlib -Wl,-Map,kernel.map -o kernel.exe $(OBJS) -W
 
 #               *Implicit Rules*
 .asm.obj :
-	$(NASM) -D$(COMPILER) $(NASMFLAGS) -o $@ $<
+	$(NASM) -D$(COMPILER) $(NASMFLAGS) -o $@ $< -l $*.lst
 
 .c.obj :
 	$(CC) $(CFLAGS) $*.c
+	objdump --reloc $*.obj > $*.rel || true
diff --git a/sys/makefile b/sys/makefile
index 5e64bec..e8c7434 100644
--- a/sys/makefile
+++ b/sys/makefile
@@ -52,7 +52,8 @@ fdkrncfg.obj:   fdkrncfg.c ../hdr/kconfig.h
 talloc.obj:     talloc.c
 
 sys.com:        $(SYS_EXE_dependencies)
-		$(CL) $(CFLAGST) $(TINY) $(SYS_EXE_dependencies)
+		$(CL) $(CFLAGST) $(TINY) $(SYS_EXE_dependencies) -Wl,-Map,sys.map
+		convlist.pl sys.map sys.lst > sys.tls
 
 clobber:	clean
 		-$(RM) bin2c.exe bin2c.com sys.com fat*.h oemfat*.h
@@ -62,5 +63,7 @@ clean:
 
 #		*Individual File Dependencies*
 sys.obj: sys.c ../hdr/portab.h ../hdr/device.h fat12com.h fat16com.h fat32chs.h fat32lba.h oemfat12.h oemfat16.h
-		$(CC) $(CFLAGS) $*.c
-
+		$(CC) $(CFLAGS) -Wa,-a=$*.lst \
+		-Wa,--listing-cont-lines=9999 -Wa,--listing-rhs-width=9999 \
+		-Wa,--listing-lhs-width=2 -Wa,-ag $*.c
+		objdump --reloc $*.obj > $*.rel || true
