rem: DebugPrintF("====> AllocMem2 %lx\n", a);
context: AllocPages( size_t size, ULONG req ){  void* address;#ifdef __AMIGAOS4__  unsigned long a;  // FIXME: This should be non-cachable, DMA-able memory  address = AllocVec( size + PAGE_SIZE, MEMF_PUBLIC );  DebugPrintF("====> AllocMem %lx size = %ld\n", address, size);    if( address != NULL )  {    a = (unsigned long) address;    a = (a + PAGE_SIZE - 1) & ~(PAGE_SIZE - 1); //(((unsigned long) (a + 4096)) / 4096) * 4096; // get a 4K-aligned memory pointer    DebugPrintF("====> AllocMem2 %lx\n", a);    address = (void *) a; // tbd: we just lost a couple of bytes  }#else  // FIXME: This should be non-cachable, DMA-able memory  address = AllocMem( size + PAGE_SIZE - 1, req & ~MEMF_CLEAR );  if( address != NULL )  {    Forbid();    FreeMem( address, size + PAGE_SIZE - 1 );    address = AllocAbs( size,			(void*) ((ULONG) ( address + PAGE_SIZE - 1 )				 & ~(PAGE_SIZE-1) ) );    Permit();  }#endif  if( address != NULL && ( req & MEMF_CLEAR ) )  {    memset( address, 0, size );  }  return address;}