Remove dependency on mem.s.
diff --git a/contiki-cpc/arch/malloc.c b/contiki-cpc/arch/malloc.c
index d4e91b5..d9b8539 100644
--- a/contiki-cpc/arch/malloc.c
+++ b/contiki-cpc/arch/malloc.c
@@ -21,39 +21,31 @@
 /* Address of this variable is the last byte of the heap. */
 //extern char _sdcc_heap_end;
 
-extern char *get_ram_start();
-extern char *get_ram_end();
-extern void calc_free_ram();
 extern char progend;
 
 static MEMHEADER *firstheader;
 /* setup two headers. One at start of free ram, second at end of free ram.
- We find free ram range by asking Amstrad's firmware. */
+ *
+ * Free ram starts after the _BSS segment.
+ * Free RAM ends before the memory used by expansion ROMs. For now we only
+ * consider ROM 7 (AMSDOS), which must be initialized before calling
+ * _sdcc_heap_init - probably in crt0.s...
+ */
 
 void
 _sdcc_heap_init(void)
 {
   MEMHEADER *lastheader;
-  unsigned int size;
-  char * ramstart;
-
-  /* ask firmware for free ram */
-  calc_free_ram();
-
-  /* start of ram is either start of range given by firmware,
-  or end of program; whichever is largest */
-  ramstart = get_ram_start();
-  if (ramstart<&progend)
-	ramstart = &progend;
+  int ramend;
 
   /* this is our first mem header */
-  firstheader = (MEMHEADER *)ramstart;
+  firstheader = (MEMHEADER *)(&progend);
   
   /* this is the size of ram available */
-  size = get_ram_end() - ramstart;
+  ramend = *(int*)(0xb8e8);
 
   /* calc address of last header */
-  lastheader = (MEMHEADER *)((char *)firstheader + size - HEADER_SIZE); 
+  lastheader = (MEMHEADER *)(ramend - HEADER_SIZE); 
   
   /* setup last header */
   lastheader->next = NULL;