The front is always normal, but when you paint the roof and lock it is wrong.
I read the book several times, and carefully scrutinize my code, but still did not find out the problem.
I really want to get help. Thank you.
Look at the "Argument" values. Screen.drawLine called
Screen.drawPixel(280, -449);
Although address (local 0) is not shown in your screen shot, you can see its value on the stack at address 283. address = -14351.
screenAddress[address] is trying to reference RAM[16384-14351] = RAM[2033].
I see nothing wrong with the code you included. Please edit your post to remove the source code.