Here are some EXTRA NOTES about the programming and structure of Genesis 1:28 that weren't part of the original package, but John Connolly sent them to me in a couple of emails, and I thought they were worth providing in case this game, stripped back to the bare bones though it is, inspires anyone else to want to have a crack at FORTH programming. Press Space to break into the program while it's beeping (not at the input prompt), then for each of the words in the list, type LIST followed by that word and you'll see how it's defined.
- JRW 3/2/21

========================================


It's a bit difficult providing a listing per se, since the ACE doesn't work on the normal line numbers you would get in BASIC - instead, you define words, which are programs in themselves. On top of that, the main string array was defined by a separate routine which was deleted to save space.

To break in, hold Shift+Space when during the pause between rounds, then type VIS to turn on the interpreter output. VLIST gives you all the words available in the computer, including those defined by the game and the built-in words from ROM. Typing LIST followed by a word name allows you to see the internal coding of the word, provided it isn't in ROM (note that it will be fairly difficult to decipher what does what - in order to save memory, there are no comments, and most word names are limited to two characters).

As a pointer, RUN provides the setup code and loops the game indefinitely, whilst GM actually performs the logic for each round. DS draws the screen layout, and .VW prints the "holy word" for the corresponding index (0-10).

I'll include a fuller summary below:

DL     - prints a 16-character wide line, starting from the current cursor position
DS     - sets up the screen layout, excluding the holy words
GM     - main game code: plays a single round
II     - integer input routine
RN     - generates next random number
RS     - random seed variable
RUN    - sets up interpreter environment, and loops game (GM) indefinitely
VA     - unused variable, originally meant to store holy number A
VB, VR - used to store temporary calculation results
VN     - array of holy numbers
VNC    - accessor for holy number array: takes top number from stack and returns corresponding holy number
VW     - string array of holy words
.VW    - accessor for holy word string array: takes top number from stack and prints corresponding holy word at current cursor position
