Out of curiousity, I'm reading the technical notes on the SCUMM engine. It's quite a fascinating read, but also very confusing to someone like me, who's not a game developer

These are some of the things I don't quite understand about the SCUMM VM:
- The reference says that every script runs once per frame redraw. Does that mean that every script runs from the first instruction again? Or does the engine keep a program-counter, and increments that after every redraw?
- if the engine keeps a program counter, what happens when the last instruction of the script is reached? Does it just restart the script? Or does it generate an error?
- How is the UI interaction handled within SCUMM? I don't see any mention of signal-functions in the technical reference. How does the game know I clicked "walk" for example? Is the UI-stuff handled in a separate thread?