MCPcopy Create free account
hub / github.com/cmuratori/computer_enhance / LoadMemoryFromFile

Function LoadMemoryFromFile

perfaware/sim86/sim86.cpp:56–79  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

54};
55
56static u32 LoadMemoryFromFile(char *FileName, segmented_access SegMem, u32 AtOffset)
57{
58 u32 Result = 0;
59
60 // NOTE(casey): Because we are simulating a machine, we only attempt to load as
61 // much of a file as will fit into that machine's memory.
62 // Any additional bytes are discarded.
63 u32 BaseAddress = GetAbsoluteAddressOf(SegMem, AtOffset);
64 u32 HighAddress = GetHighestAddress(SegMem);
65 u32 MaxBytes = (HighAddress - BaseAddress) + 1;
66
67 FILE *File = fopen(FileName, "rb");
68 if(File)
69 {
70 Result = fread(SegMem.Memory + BaseAddress, 1, MaxBytes, File);
71 fclose(File);
72 }
73 else
74 {
75 fprintf(stderr, "ERROR: Unable to open %s.\n", FileName);
76 }
77
78 return Result;
79}
80
81static segmented_access AllocateMemoryPow2(u32 SizePow2)
82{

Callers 1

mainFunction · 0.85

Calls 3

GetAbsoluteAddressOfFunction · 0.85
GetHighestAddressFunction · 0.85
fprintfFunction · 0.85

Tested by

no test coverage detected