amiga-allocmem-example-code/fast_ram_bye_bye.c

38 lines
945 B
C

#include <stdio.h>
#include <proto/exec.h>
#include <exec/memory.h>
#define RAM_SIZE (16)
int main(void) {
void *FastRAM, *MoreFastRAM;
char wow;
FastRAM = AllocMem(RAM_SIZE, MEMF_FAST);
// this will happen on a machine that has no fast ram at all installed
if (FastRAM == 0) {
printf("We couldn't allocate Fast RAM. Does this machine have any?\n");
return 1;
}
((char*)FastRAM)[0]=10;
printf("Memory location: %d\n", FastRAM);
printf("Data at byte 0: %d\n",((char*)FastRAM)[0]);
printf("Now, run NoFastMem, then return here and hit Enter\n");
wow = getc(stdin);
MoreFastRAM = AllocMem(RAM_SIZE, MEMF_FAST);
printf("Attempt to allocate more RAM as Fast RAM: %d\n", MoreFastRAM);
if (MoreFastRAM > 0) {
printf("We got more RAM, but it's very likely Chip RAM\n");
FreeMem(MoreFastRAM, RAM_SIZE);
}
printf("Data still at byte 0: %d\n", ((char*)FastRAM)[0]);
FreeMem(FastRAM, RAM_SIZE);
}