Plan your program before worrying about the Hack assembly.
Mark Blackwell wrote
I don't understand how to set the A register to a variable memory location.
Can you be more specific? The instruction
@foo
Specifically stores the address of foo in the A register. This also creates a variable for you in Hack assembly. At this level of abstraction, you don't need to worry about what that specific memory address is (since you've named it). However, variables in Hack assembly are stored in addresses 16 and up.
For the project you're on, isn't your goal to merely write a certain value to addresses @SCREEN through @24575?