DREAM ZONE PATCHES Putting Dream Zone on your hard disk requires a number of steps. First you must remove the copy protection as follows: On Disk A, the string $22 DB C4 00 appears many times. But there are 4 places where it needs to be changed. The $22 should be changed to $AF in the following 4 locations: Block $1B7, bytes $A9 and $DF; and Block $1BC, bytes $F6 and $12C. Thanks to Richard Kochell for providing the patch, though he apparently mistyped the Block number for the 4th byte (he said Block $12C byte $12C instead of Block $1BC byte $12C). By the way, the patch is to the main program file DREAM.SYS16 on Disk A. Disk B is the one that is actually copy protected, but DREAM.SYS16 will no longer care. That's all you have to do if you don't have a hard disk. You can now make bootable copies of the disks. SERIAL NUMBERS I don't particularly like the fact that both disks contain serial numbers in several places. You can use a block editor like Block.Warden to change the serial numbers as follows: On Disk A, change all occurrences the serial number (like A12345) to A00000. It appears in Blocks $2, $2AD, and $3BB. On Disk B, the serial number should be changed to $B00000 in Blocks $4 and $5EC. These serial number changes are completely optional. They shouldn't affect anything else. WARNING: If you have ever examined the disk(s) with the FINDER program with the write-protect tabs off, you may find the serial numbers are stored elsewhere on the disk in a FINDER.DATA file, since the serial numbers are actually used for the names of subdirectories. I found that the FINDER.DATA file on a copy of Disk A in Block $3BA had my serial number in it, which is NOT there on a mint program disk. HARD DISK USE (Please read this entire procedure before starting). I took a different approach to putting Dream Zone on a hard disk than most discussions I've seen on Compuserve. I didn't want to JUST change the original hard-coded pathnames to a different set of hard-coded pathnames to match my hard disk. I wanted to REMOVE the hard-coding to make it easier to MOVE the program to another hard disk or subdirectory later. All of the pathnames we want to change are on Disk A in the file DREAM.SYS16 in Blocks $281-286. There are probably 80 or 90 pathnames to change. Also the volume names alone of the two disks (/DZ and /ZONE.DATA) are mentioned in 3 places in Block $281. These 3 locations are the ONLY places I was unable to un-hard-code. In other words, you will have to modify these 3 names anytime you want to move the program to a different subdirectory or hard disk. But the 90 (or so) FILEnames will only need to be changed once. OK, first a little explanation of what we're going to do. (If you haven't already, make a working copy of Disk A, which we're are going to heavily modify. Disk B will need NO changes at all!). The program DREAM.SYS16 ALWAYS refers to each file by its complete pathname. For example, it uses /ZONE.DATA/SONG1, where /ZONE.DATA is the name of Disk B and SONG1 is the actual filename. We are going to change the pathname to merely the filename itself, SONG1. Each pathname consists of a length byte followed by the pathname itself. For example, /ZONE.DATA/SONG1 on the disk in hexadecimal is $10 2F 5A 4F 4E 45 2E 44 41 54 41 2F 53 4F 4E 47 31, where the $10 is the length of the filename. Thus the length byte $10 means the filename is 16 characters long in base ten. Notice that /ZONE.DATA/SONG1 is 16 characters (or $10) long. We want to change the pathname to merely SONG1. To do so, must first change the length byte from $10 to $05. We then type the file name SONG1, then type 00's over all the remaining unused characters. So we would change the original string to $05 53 4F 4E 47 31 00 00 00 00 00 00 00 00 00 00 00. If you are using Block Warden to make the changes, the easiest method is to enter Edit mode and move the cursor to the length byte in hex. Replace the $10 by typing 05. NOW, hit the TAB key, and the cursor will jump over to the ASCII text area. You can now simply type SONG1. Next, hit TAB to jump back to hex mode, and keep typing 00 until all of the pathname has been replaced. You must do this for all 90 (or whatever) pathnames on Blocks $281-286. You will NOT change the 3 VOLUME names in Block $281, bytes $82 through $D2, yet. SPECIAL NOTE: For the filenames that are in the subdirectory ART, don't eliminate ART. For example, change /ZONE.DATA/ART/P01 to ART/P01 (in hex, with length bytes, change from $12 2F 5A 4F 4E 45 2E 44 41 54 41 2F 41 52 54 2F 50 30 31, -to- $07 41 52 54 2F 50 30 31). Please continue reading before changing all the pathnames. I'll tell you when to change them. Another problem to be dealt with: In Block $281, you will note that on both Disk A and Disk B, there is a file with the SAME name! How stupid! SONG1 appears on Disk A (hard-coded as /DZ/SONG1) and on disk B (hard-coded as /ZONE.DATA/SONG1). These are two different songs, so we must give them different names. The reason this is necessary, is that we are going to put ALL files in the SAME subdirectory on the hard disk, so all files must have different names. I recommend changing /DZ/SONG1 to /DZ/SONG0 (in Block $281 change byte $D2 from $31 to $30). Do that now. Leave /ZONE.DATA/SONG1 as it is. (Of course, when you start removing the hard-coded pathnames, /DZ/SONG0 will become just SONG0, and /ZONE.DATA/SONG1 will become just SONG1). So far you have only changed the program DREAM.SYS16 to look for the file SONG0. You must now also change the ACTUAL name of the file in the diskette directory. You could use Copy II+ to rename SONG1 to SONG0. Or you could continue using Block.Warden (or another block editor program) to DIRECTLY change the filename in the Disk A Directory in Block $2 from SONG1 to SONG0. (Technically, I suppose you should also change the name to SONG0 in the FINDER.DATA file on Disk A Block $3BA, but that's not very important). Now, go ahead and finish changing all the hard-coded filenames as explained above in Disk A Blocks $281-286. Do NOT yet change the 3 volume names in Block $281, between relative bytes $82 and $D2. (--- an hour or 2 goes by ---). Done? TESTING Now you should verify that everything still works by trying to run the program. First, if you haven't done so yet, make a COPY of the original Disk B (/ZONE.DATA). Since this is a copy protected disk, you'll have to use a copy program like Diversi-Copy, Copy II+, etc., that can ignore Block Errors. Now, boot up the game using your heavily-modified Disk A, and your copy of Disk B. It will run fine from the 3.5" diskettes even without the hard-coded pathnames. If you have only one 3.5 drive, it will still ask you to switch disks at the proper time. You should play the game long enough to be sure the copy-protection patch is working. If you have played until the screen switches to color, or have loaded in a previously saved game (in color), then your patch is working great. If you have problems running the program, you apparently made an error in either your copy-protection patch or your pathname modifying work. HARD DISK INSTALLATION Everything working? OK, on to the final step. The 3 hard-coded volume names mentioned above must be changed to the pathname of the subdirectory where you want to store the program on your hard disk. UNFORTUNATELY, the volume name /ZONE.DATA at Block $281 byte $9C has only one blank space after the name. So your hard disk pathname can be no longer than eleven bytes. On my hard disk, I chose the subdirectory name /A/GAMES/DZ. For those of you with a hard disk named H1, you might use /H1/GAMES/Z or /H1/GAME/DZ, anything to keep the same number of characters. Now, go ahead and change the 3 volume names /ZONE.DATA, /ZONE.DATA, and /DZ in Block $281 between relative bytes $82 and $D2. (I changed all 3 of these to the SAME subdirectory name /A/GAMES/DZ so that I could put all files in the same subdirectory). Be sure to change the length bytes, too, to $B (eleven), or whatever length pathname you use (although please note that the second volume name has no length byte!). Done? OK, now copy files on BOTH diskettes to the SAME subdirectory on your hard disk. From Disk A, you should ONLY copy these files: DREAM.SYS16, TITLE, SONG0, ROCK.SND, ROCK WBNK. From Disk B, copy ALL files. Be careful that the files in the ART subdirectory of Disk B are still in a subdirectory named ART on your hard disk. In my case, it is named /A/GAMES/DZ/ART. NOTE: The subdirectories that are named for the serial numbers of the disks (like A00000 and B00000) don't need to be copied to your hard disk. That's all! To run, boot up your hard disk, and run the file DREAM.SYS16 (double-click on it if using the FINDER). Have fun! Jim Nichol 72747,3016