Creating an ASM file that will return the characters located in 8 consecutive registers
Step back and think about the whole problem.  No, you haven't done A, B, and D yet.  There are so many things wrong here that demonstrate such major misunderstanding that I don't know how to begin explaining.  All I can do is enumerate some problems:

You haven't defined any variables at all.  All EQU does is create a symbol of a particular value.  It has nothing to do with allocating variables.  Only the RES directive does that.

You seem to be writing this in absolute mode.  You didn't say what compiler you are using, but most likely it only works in relocatable mode.

You don't need a label for every byte in the buffer.  The MapNamex names are clutter that gives the impression these names will be used separately.  In reality, you'll never use them because you will be indexing into the buffer at run time.

This code is written like it's the single stand-alone module of a project.  Clearly this can't be if there is at least one C routine in the project.

The C runtime library needs to be initialized at startup, but you are preventing that by trying to own the reset vector.

You are running your routine directly from the reset vector.  That makes no sense since it is intended to be called from C.  You need to create a subroutine.

There is no place for the code to go two instructions after getMapChar.  Your code just ends, so the machine will execute whatever happens to be in memory after the last instruction in this module.  That makes no sense.



You need to step back and try to understand how compiled code gets run on the machine, what the subroutine linkage conventions are, and then how to implement them in assembler to make a C function that returns a byte.  Try to understand the role of compiler, assembler, and linker and how they interact.  You're nowhere near ready for this problem yet.