diff --git a/fast_ram_bye_bye.c b/fast_ram_bye_bye.c new file mode 100644 index 0000000..079a683 --- /dev/null +++ b/fast_ram_bye_bye.c @@ -0,0 +1,37 @@ +#include +#include +#include + +#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); +}