>I understand how it works and why it uses the MAKEWORD macro. the address it starts from is a 16bit address,
An address is an address. Whether you're reading bytes (8 bits) or words (16 bits), the address points to the same data, it's just that for 16-bit reads, you're fetching two bytes: one from the current address and another from the next byte. Since this is a little endian architecture, the first byte read from the base address is the least significant byte (LSB, or low byte) and the next one is the most significant byte (MSB), the high byte (bits 16-8.)
>Also, In this scenario, it will return an address in the
The way you've written the code, yes. When it sees the address C000, it appears that the memory handler accesses it from there.