December 4, 1988 About TILE15 version 2.0: TILE15 version 2 includes color support, using the standard 'colorsetup' predicate built into Turbo Prolog 2.0. When selected from the menu, this places a color pallette onscreen; use the cursor keys to highlight one of the many selections, then key 'Enter' to confirm your choice. Among all the available combinations, #0 and #8, when selected for the puzzle background screen, make the on-screen instructions disappear, so that only the puzzle itself is visible when you're working it. Note that this also would make the Program Info and Money Matters screens appear as blank, so if #0 or #8 is selected for the background color, those two screens default to #7 (black and white). I've always felt the program should do something, should _salute_ you somehow, whenever you solve the puzzle, so version 1 of TILE15 played a computer arpeggio whenever the tiles came into the correct positions. I like that; maybe you do, too. Or maybe you find it the most annoying thing you've ever heard (in which case, why didn't you tell me?) Anyway, that arpeggio is still part of version 2, but now it's possible to shut it off by choosing 'Set the Sounds' at the main menu. You can turn the arpeggio off by setting a sound duration value of zero at that point. Computers may vary, but on my AT-clone the arpeggio sounds like what I had in mind when the duration value is set to 5; with a value between 1 and 4, the 'tail' of the arpeggio goes silent and only the two opening notes are sounded. (All this has to do with the quirks of the Turbo Prolog 'sound()' predicate.) With duration set to 10, the whole thing is painfully slow -- but, for all I know, your machine may respond differently to all this, and that's why I've incorporated these controls into version 2. In addition to the arpeggio, and regardless of whether the arpeggio is turned on or off, TILE15 version 2 looks in the current disk directory for a file named "TILETUNE.DMZ". If it finds it, the program will 'consult()' it; if the contents of the file are in the expected form, TILE15 will attempt to use the contents to play you a song following the arpeggio (or _instead_ of the arpeggio if it's been turned off.) Included with TILE15 v.2.0 is a sample music file, named ODE2JOY.DBA. If you issue the command to DOS, " COPY ODE2JOY.DBA TILETUNE.DMZ ", you'll create a file TILE15 will use to play "Ode to Joy" following the arpeggio. Pressing any key during the music will cause it to stop playing at the end of the current measure; or just let it play through to the end (16 bars) and it will stop by itself. If you're of a musical bent and would like to tinker with this part of TILE15, you can. ODE2JOY.DBA is TYPEable in DOS and readable with any text editor. Just study the file and take note of its structure, being careful not to alter the structure or to add anything extra to it -- this would cause TILE15 to get upset. You can, however, alter the specific items appearing in parentheses within the file, and thereby change the notes that will be played. The 'notes()' predicate has this structure: notes([ integer, integer, integer, integer, ... , integer]) that is: notes([ beats, pitch, beats, pitch, ... , pitch ]) Note that in Turbo Prolog, a list must be enclosed in square brackets, and its members must be separated by commas. Note that such a list can be of virtually any useful length; the example shows lists with 12 notes in each list, but this was chosen for its convenience and readability. TILE15 simply reads from left to right, from top to bottom, through all the 'notes()' records it finds, and quits when there are no more records. The 'factor()' predicate holds an integer value; each 'beat' value from the 'notes()' records is multiplied by the number inside 'factor()' before being passed to the computer for playing. So, a 'beat' of 1 and a factor of 10 will cause the playing of a note for 1x10=10 ticks of the computer's clock. This means you can experiment with different tempos for the same tune by altering the value in 'factor()'. (Be aware that a very low number here may result in no sound at all--depends on how your computer works.) The 'octave()' predicate holds a multiplier that is applied to the 'pitch' values in a formula involving several elements. You may raise or lower the play octave by altering the value in the 'octave()' predicate. To sum up: SILENCE: choose 'Set the Sounds' at the Menu, and set a value of zero there; rename or delete TILETUNE.DMZ. TWO NOTES: choose 'Set the Sounds' at the Menu, and set a value of more than zero but less than 5; rename or delete TILETUNE.DMZ. ARPEGGIO: choose 'Set the Sounds' at the Menu, and set a value of 5 or more; rename or delete TILETUNE.DMZ. MUSIC: set whatever you like under 'Set the Sounds', and make sure TILETUNE.DMZ is present in the same directory as TILE15. NEW MUSIC: experiment with altering the contents of a COPY OF the music file or with writing your own from scratch; copy or rename your experimental file to TILETUNE.DMZ, and TILE15 will try to play it for you AFTER you solve the puzzle. COLORS: colors are selectable for most visual parts of TILE15. Choose 'Color Setup' at the menu, and follow the instructions, using the cursor keys to move around the Color Palette and pressing the Enter or Return key to make your selection.