Ah great, applying that patch finally allowed psgo.scm to complete loading successfully, and it popped up three blank windows named g1, g2, and g3, as expected from the source code of psgo.scm from the book's website.
However, I tried (paint g1 fovnder), where g1 is the window and fovnder is the loaded painter, and it complained that
"The procedure c-call has been called with 2 arguments; it requires at least 0 arguments. Type D to debug error, Q to quit back to REP loop".
I typed D but instead of popping up the debugger (as it did when I was debugging a previous issue in this thread), it only echoed at the bottom "Internal error: Unbound variable: nmv-header?". Hence, I will attempt to manually trace out the stack.
In the "paint" function , the offending line is the final one, which in my case evals to (picture-display g1 *the-screen* 0 256). The "picture-display" function is in src/6001/picture.scm, and is quite opaque, and I cannot find any instances of "c-call" anywhere. Any idea what might be the problem here?
 from hend.scm:
(define (paint window painter)
(if (not (graphics-device? window))
(error "bad window" window))
(picture-display window *the-screen* 0 256))