Typing in hex is fun and all, but it gets old quickly. Thankfully, Intel provided an EPROM expansion option that makes this easier. By soldering in an additional socket, you can add your own 2 kilobyte 8755A EPROM that is mapped to address 800-FFF hex. (It's also worth noting that you can replace the factory ROM with your own 8755A as well. I haven't tried that yet).
8755As are still readily available on eBay and other vintage parts sources. However, these devices used a 25 volt programming voltage which is not supported by modern day programmers such as the venerable TL-866. I searched the interweb and found Matt Millman's design for an 8748 programmer with optional 8755 adapter. This is a fine design, but is overkill for my needs. I don't need to program 8748s and don't own the Arduino Mega needed to host it.
Since I already have the "Arduino of the 1970s", with ample RAM and GPIOs out the wazoo, the best choice for me was to build another daughterboard to program ROMs. The design is trivially simple. I use an off the shelf DC-DC converter module to produce the 25 volt programming voltage. Matt's switching circuit was used to provide either 5 or 25 volts to Vdd. Everything else is just straight through GPIO connections (see eprom.pdf).
The support software is at https://github.com/jimshortz/sdk-85/tree/main/sys. eprom.a80 contains the core programming routines written in assembly. epmgr.plm is a fully featured, menu driven programming manager written in Intel's PL/M high level language. It includes commands to download files from the host as Intel hex, perform blank checks, verify ROM contents against the buffer and, of course program the buffer to ROM. It can also read ROMs into the buffer and upload contents back to the host. This allows it to be used to duplicate or reverse engineer ROMs.
To avoid the multiple stages of bootstrapping, I built a copy of my hex loader and located it at 800 hex. I also included a copy of Simon at A00 hex. I burned this to a ROM, so I can now easily download hex code after power-on by typing GO 800 enter. (Or go A00 enter for Simon).