So it appears that the enemy's hit points are being stored in $27, correct me if I am wrong. And if it is correct, how do I find the address $27, so I can edit the value of the enemy hit points?
Geiger's debugger/tracer, by default, doesn't print all of the information that is needed in a trace. I have no idea why. In the Debug Console there should be a checkbox called "Squelch" -- uncheck it and run your trace again.
I can infer enough of the missing information. The question is really about addressing modes
, and you're seeing the "[direct],y"
mode. The square brackets  read a 24-bit address at the indicated location, and the ,y means that the value of the Y register is added to the address. LDA
grabs the value at the calculated address. The indicated location $27 is an 8-bit value, so it represents the address $27 + D (but to see the value of D you have to unsquelch the trace output) in bank $00.
So $27 doesn't contain HP, nor a pointer to HP. It contains a pointer to a data sheet of some kind. The debugger says that LDA [$27],y
with Y=$d2e8 grabs the data at $83d2e8
, so I guess at addresses D+$27/$28/$29 you'll see $00,$00,$83 = $830000 which is not really what you want. The HP value is probably what's stored at $83d2e8.
Finding that in the ROM file is a little weird because Separation Anxiety uses a "lorom"-type PCB
. Looking at the top 9 bits of $83d2e8 (1000 0011 1), clear the high bit and shift right once (0000 0001 1). The result is $01d2e8 and should be where in the file you can find the value $12,$00 = $0012 for that enemy's HP.