diff -burN mknbi-1.4.4/first32.c mknbi-1.4.4-t1500/first32.c
--- mknbi-1.4.4/first32.c	2004-08-16 00:32:01.000000000 -0400
+++ mknbi-1.4.4-t1500/first32.c	2005-12-06 04:04:27.000000000 -0500
@@ -10,7 +10,7 @@
 #endif
 
 #ifdef	FIRST32LINUX
-#define SERIAL_CONSOLE 0
+#define SERIAL_CONSOLE 1
 /*
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License as
@@ -96,7 +96,7 @@
 #if SERIAL_CONSOLE
 	ttys0_tx_byte(c);
 #endif
-	console_putc(c);
+	//console_putc(c);
 }
 
 static inline void quit(void)
diff -burN mknbi-1.4.4/memsizes.c mknbi-1.4.4-t1500/memsizes.c
--- mknbi-1.4.4/memsizes.c	2003-01-12 04:20:47.000000000 -0500
+++ mknbi-1.4.4-t1500/memsizes.c	2005-11-18 09:17:09.000000000 -0500
@@ -6,12 +6,30 @@
 
 struct meminfo meminfo;
 
+#define fbms ( ( unsigned short * ) _prot_to_real ( 0x413 ) )
+#define BASE_MEMORY_MAX ( 640 )
+#define FREE_BASE_MEMORY ( (unsigned int) ( *fbms << 10 ) )
+
+unsigned int get_free_base_memory ( void ) {
+	return FREE_BASE_MEMORY;
+}
+
+unsigned short basememsize ( void )
+{
+  return BASE_MEMORY_MAX;
+}
+
+unsigned int memsize ( void )
+{
+  return 60*1024;
+}
+
 void get_memsizes(void)
 {
 	int i;
 	meminfo.basememsize = basememsize();
 	meminfo.memsize = memsize();
-	meminfo.map_count = meme820(meminfo.map, E820MAX);
+	meminfo.map_count = 0;
 	if (meminfo.map_count == 0) {
 		/* If we don't have an e820 memory map fake it */
 		meminfo.map_count = 2;
diff -burN mknbi-1.4.4/nfl.h mknbi-1.4.4-t1500/nfl.h
--- mknbi-1.4.4/nfl.h	2003-01-12 03:39:03.000000000 -0500
+++ mknbi-1.4.4-t1500/nfl.h	2005-12-06 04:02:58.000000000 -0500
@@ -182,7 +182,7 @@
 extern int auto_fill;
 
 /* This variable specifies which console should be used.  */
-extern int terminal;
+//extern int terminal;
 
 #define TERMINAL_CONSOLE	(1 << 0)	/* keyboard and screen */
 #define TERMINAL_SERIAL		(1 << 1)	/* serial console */
diff -burN mknbi-1.4.4/start32.S mknbi-1.4.4-t1500/start32.S
--- mknbi-1.4.4/start32.S	2004-08-16 00:32:01.000000000 -0400
+++ mknbi-1.4.4-t1500/start32.S	2005-12-06 04:03:42.000000000 -0500
@@ -85,147 +85,6 @@
 	jmp	_exit
 
 /**************************************************************************
-CONSOLE_PUTC - Print a character on console
-**************************************************************************/
-	.globl	console_putc
-console_putc:
-	pushl	%ebp
-	movl	%esp,%ebp
-	pushl	%ebx
-	pushl	%esi
-	pushl	%edi
-	movb	8(%ebp),%cl
-	call	_prot_to_real
-	.code16
-	movl	$1,%ebx
-	movb	$0x0e,%ah
-	movb	%cl,%al
-	int	$0x10
-	DATA32 call	_real_to_prot
-	.code32
-	popl	%edi
-	popl	%esi
-	popl	%ebx
-	popl	%ebp
-	ret
-
-/**************************************************************************
-E820_MEMSIZE - Get a listing of memory regions
-**************************************************************************/
-	.globl	meme820
-#define SMAP	0x534d4150
-meme820:
-	pushl	%ebp
-	movl	%esp, %ebp
-	pushl	%ebx
-	pushl	%esi
-	pushl	%edi
-	movl	8(%ebp), %edi	/* Address to return e820 structures at */
-	subl	$RELOC, %edi
-	movl	12(%ebp), %esi	/* Maximum number of e820 structurs to return */
-	pushl	%esi
-	call	_prot_to_real
-	.code16
-	xorl	%ebx, %ebx
-jmpe820:	
-	movl	$0xe820, %eax
-	movl	$SMAP, %edx
-	movl	$20, %ecx
-	/* %di was setup earlier */
-	int	$0x15
-	jc	bail820
-
-	cmpl	$SMAP, %eax
-	jne	bail820
-
-good820:	
-	/* If this is useable memory, we save it by simply advancing %di by
-	 * sizeof(e820rec)
-	 */
-	decl	%esi
-	testl	%esi,%esi
-	jz	bail820
-
-	addw	$20, %di
-again820:
-	cmpl	$0, %ebx	/* check to see if %ebx is set to EOF */
-	jne	jmpe820
-
-bail820:
-	DATA32 call	_real_to_prot
-	.code32
-	popl	%eax
-	subl	%esi, %eax	/* Compute how many structure we read */
-
-	/* Restore everything else */	
-	popl	%edi
-	popl	%esi
-	popl	%ebx
-	movl	%ebp, %esp
-	popl	%ebp
-	ret
-
-/**************************************************************************
-MEMSIZE - Determine size of extended memory
-**************************************************************************/
-	.globl	memsize
-memsize:
-	pushl	%ebx
-	pushl	%esi
-	pushl	%edi
-	call	_prot_to_real
-	.code16
-	stc					# fix to work around buggy
-	xorw	%cx,%cx				# BIOSes which dont clear/set
-	xorw	%dx,%dx				# carry on pass/error of
-						# e801h memory size call
-						# or merely pass cx,dx though
-						# without changing them.
-	movw	$0xe801,%ax
-	int	$0x15
-	jc	3f
-	cmpw	$0,%cx				# Kludge to handle BIOSes
-	jne	1f				# which report their extended
-	cmpw	$0,%dx				# memory in AX/BX rather than
-	je	2f				# CX/DX.  The spec I have read
-1:
-	movw	%cx,%ax				# seems to indicate AX/BX 
-	movw	%dx,%bx				# are more reasonable anyway...
-2:
-	andl	$0xffff,%eax
-	andl	$0xffff,%ebx
-	shll	$6,%ebx
-	addl	%ebx,%eax
-	jmp	4f
-3:
-	movw	$0x8800,%ax
-	int	$0x15
-	andl	$0xffff,%eax
-4:
-	movl	%eax,%esi
-	DATA32 call	_real_to_prot
-	.code32
-	movl	%esi,%eax
-	popl	%edi
-	popl	%esi
-	popl	%ebx
-	ret
-
-/**************************************************************************
-BASEMEMSIZE - Get size of the conventional (base) memory
-**************************************************************************/
-	.globl	basememsize
-basememsize:
-	call	_prot_to_real
-	.code16
-	int	$0x12
-	movw	%ax,%cx
-	DATA32 call	_real_to_prot
-	.code32
-	movw	%cx,%ax
-	ret
-
-/**************************************************************************
 XSTARTLINUX - Transfer control to the kernel just loaded in real mode
 **************************************************************************/
 	.globl	xstartlinux
@@ -340,7 +199,7 @@
 	movw	%ax,%ds
 	movw	%ax,%es
 	movw	%ax,%ss
-	sti
+#	sti	this causes the t1500 to hang! Works as well without it.
 	DATA32 ret	/* There is a 32 bit return address on the stack */
 	.code32
 
