********* Welcome to Project 64! The goal of Project 64 is to preserve Commodore 64 related documents in electronic text format that might otherwise cease to exist with the rapid advancement of computer technology and declining interest in 8- bit computers on the part of the general population. Extensive efforts were made to preserve the contents of the original document. However, certain portions, such as diagrams, program listings, and indexes may have been either altered or sacrificed due to the limitations of plain vanilla text. Diagrams may have been eliminated where ASCII-art was not feasible. Program listings may be missing display codes where substitutions were not possible. Tables of contents and indexes may have been changed from page number references to section number references. Please accept our apologies for these limitations, alterations, and possible omissions. The author(s) of the original document and members of Project 64 make no representations about the accuracy or suitability of this material for any purpose. This etext is provided "as-is". Please refer to the warantee of the original document, if any, that may included in this etext. No other warantees, express or implied, are made to you as to the etext or any medium it may be on. Neither the author(s) nor the members of Project 64 will assume liability for damages either from the direct or indirect use of this etext or from the distribution of or modification to this etext. ********* The Project 64 etext of the ISEPIC user's manual. Converted by the Basic Bombardier. Please see "Section VII: Legal Notices" near the end of this document for copyright and acknowledgment info. ISEPIC10.TXT, June 1995, etext #1 ********* ##### ########### ########### ##### # # # # # # # # # ##### ### ##### # # # # # # # # # ########### ####### ########### []+[]+[]+[]+[]+[]+[]=[] Designed by CHIP GRACEY Innovative Software Engineering Copyright (c) 1985 ISE Presented by STARTPOINT SOFTWARE 122 So. Broadway Yreka, California 96097 916-842-6183 ISEPIC Documentation Table of Contents Section I Introduction to ISEPIC Section II Using ISEPIC Section III General Tips on ISEPIC Use Section IV What ISEPIC Will/Will Not Do Section V DOS Wedge Section VI Advanced Features Section VII Legal Notices [Appendix A File Copier Commands] Section I: Introduction to ISEPIC ISEPIC (SAY "ice-pick") is an extraordinary hardware and software combination that is capable of copying virtually all memory-resident software regardless of the original protection scheme or storage medium. Rather than duplicating disks or cassette tapes, ISEPIC copies the program to disk as it runs in the Commodore's memory, thus creating a "snapshot" image of the entire RAM, I/O, and CPU status. This snapshot is completely unprotected and subject to modification by the user. From this image, ISEPIC can create a compact, auto-booting file which will often load ten times faster and eliminate many of the problems created by various protection schemes, Because of this unprotected format, it is possible to store many programs on a single disk as well as transfer them to a hard drive or a device other than a 1541. The task of "breaking" a program is accomplished in several steps. First, ISEPIC is inserted and the ISEPIC software is loaded. Housekeeping operations are performed and the RAM is cleared to a special pattern which can later be recognized as "free memory". The computer is then reset to BASIC. At this point, the program to be ISEPICed may be loaded in the normal fashion. After the software is completely loaded and running in the computer, the ISEPIC hardware may be activated and the entire system will be "frozen" and preserved on disk in a snapshot form. Finally, the snapshot is closely examined by the ISEPIC software for free memory. If enough is found, the snapshot will be compacted and saved with a fast-booter that will activate itself when loaded on a 1541. In the unlikely event that an insufficient amount of free memory is found, you will be required to create some by editing the snapshot. Section II: Using ISEPIC 1. Installation Make sure the computer is turned OFF. Insert the ISEPIC cartridge into the cartridge expansion slot so that the small toggle switch extends to the right and the label faces up. Flip the ISEPIC switch towards the computer. Now turn the computer and disk drive ON. 2. Loading the ISEPIC Software Insert the ISEPIC disk into the disk drive and type the following: LOAD ":*",8,1 In a few moments the ISEPIC menu should appear on the screen. 3. Creating a Storage Disk In order to copy a program using ISEPIC, a formatted disk containing the ISEPIC software will be required. To create a formatted disk, insert a disk that is blank or contains unwanted data into the disk drive and select option "D" (DOS command) from the ISEPIC menu. Type the following: new0:0,id (!!! WARNING -- ALL DATA ON THIS DISK WILL BE ERASED !!!) This formatting process takes approximately 1.5 minutes on a standard 1541 drive. A storage disk need only be formatted once. To add the ISEPIC software to a formatted disk, select option "P" (prepare disk) from the ISEPIC menu. You will be prompted to insert a formatted disk into the disk drive and press . After doing so, any existing files will be erased and the ISEPIC software will be stored on the disk. 4. Copying a Program To make an ISEPIC snapshot copy of a program, select option "C" (copy program) from the ISEPIC menu. You will then be prompted to flip the ISEPIC switch away from the computer. This causes the ISEPIC cartridge to "hide". The computer will reset and the BASIC power-up screen will appear. The program that you wish to ISEPIC may now be loaded in the normal manner. As soon as the software that you are ISEPICing has completely loaded and begun to run, flip the ISEPIC switch towards the computer. The screen will clear and you will be prompted to turn the disk drive OFF and then ON. If you are using a SX-64, press the small drive- reset button in the right-hand control compartment. You should now insert the previously prepared storage disk and flip the ISEPIC switch away from and then towards the computer. This will activate the snapshot-saving process. The saving process will take about 3.5 minutes after which the ISEPIC menu will be displayed. 5. Running a Program This option may be used to activate an unbroken ISEPICed program or to ensure that a good snapshot copy has been made, Select option "R" (run program) from the ISEPIC menu. The copied program will begin to load, Loading time will vary depending on the type of disk drive in use. When prompted, flip the ISEPIC switch away from, towards, and then away from the computer. The program will resume execution at the precise point in which it was ISEPICed. Congratulations! You now have a working copy of your software; if you wish you may procede to the optional breaking step. 6. Breaking a Program Breaking a program is the process of analyzing the snapshot image, compressing it into the smallest possible format, and saving it back to the disk. Broken programs run independently of the ISEPIC cartridge. If necessary, repeat step 2 (Loading the ISEPIC Software), Select option "B" (break program) from the ISEPIC menu. Breaking time will vary depending on how much the snapshot can be compressed and the type of drive in use. If the break is successful, you will be prompted to enter the broken program's name followed by . After doing so, you may load your newly-broken program by selecting option "Q" (quit) from the ISEPIC menu. Once the computer has reset to the BASIC power-up screen, type the following: LOAD "(broken program name)",8,1 In some rare instances, the break might be aborted and one of the following error messages will be displayed: "INSUFFICIENT FREE MEMORY" -- The ISEPIC software could not locate more than $278 bytes of free memory in five chunks, one of which is $58 bytes long and must be in the range of $100-$9FFF or $C000-$CFFF, and the others of which are $88 bytes long and must be in the range of $100-$FEFF. "INSUFFICIENT COMPRESSION" -- The ISEPIC software could not compress the 64K snapshot into less than 61.5K. Free memory and repeating bytes can be compressed up to 98%. In both cases, it will be necessary for you to edit the snapshot. Select option "E" (edit program) from the ISEPIC menu. After a few moments of disk operation, you will see a flashing cursor at the top of the screen. Type the following: 400,700 q You have just filled a small range of memory with the free memory pattern. This repair is very general and may not always work. Once you are returned to the ISEPIC menu, try breaking the program again. NOTE: The ISEPIC cartridge is only needed for options "C" (copy program) and "R" (run program) from the ISEPIC menu. Section III: General Tips on ISEPIC Use After a program has been broken, it is usually a good idea to copy it onto another disk using the file-copy program on the ISEPIC disk or another file-copier such as the one in the Di-Sector system. Copying the broken program files onto a disk containing other broken programs conserves space and allows convenient access to a large amount of software simultaneously. After copying the broken program onto another disk, the ISEPIC storage disk may be reused by selecting option "P" (prepare disk) from the ISEPIC menu. Some programs occasionally access the disk drive during operation. However, as a general rule, they check the disk protection scheme only during the initial load. Therefore, ISEPIC may be used to break the program without difficulty and the rest of the data on the protected disk can be dealt with in either of two ways. First, the program may be simply loading files off of the unprotected portion of the disk. These files can be copied onto the disk containing the broken program. Second, the program may be reading unprotected blocks, rather than files, on the disk, If so, the disk may be duplicated, neglecting errors, onto the back side of the disk which contains the broken program. To run this type of program, load the broken image from the front side of the disk, then flip it over once the program has resumed execution. Other uses of ISEPIC include the creation of auto-booting, fast- loading versions of your own creations. In addition, it is possible to use large-capacity disk drives such as the SFD-1001 or any of the various hard disk drives now being introduced, In fact, it is conceivable to store every piece of software that you own on a single large-capacity disk using ISEPIC. Serially interfaced disk drives other than a 1541 or an Enhancer 2000 will function at normal speed. 1541 and Enhancer 2000 drives will work at high speed. If you're using an IEEE drive, you have a choice of three interfaces: One by Progressive Peripherals (slow), Buscard II by Batteries Included (faster) or Quicksilver by Skyles Electric Works (fastest). Section IV: What ISEPIC Will/Will Not Do ISEPIC will copy any software that loads completely into the RAM of the C64, Programs that refer back to disk or tape after loading may be copied by ISEPIC if they do not re-check the protection scheme and you duplicate, if necessary, important files and data on the original medium. Programs that have hardware components such as dongles, keys, or cartridges, can be copied by ISEPIC, however, unless you install the hardware components, you will need to edit the snapshot and remove all hardware component checks. Section V: DOS Wedge Selecting option "D" (DOS command) from the ISEPIC menu presents you with the ">" prompt, Simply pressing will cause the error channel to be displayed. If you type a command, for example "i" (the 'initialize drive' command), it will be sent. Typing "$" (optionally followed by a pattern-matching command) will display the disk directory. The current device number can be changed by typing "#" proceeded by a single digit. Section VI: Advanced Features This section of the manual is intended for machine-language programmers who are interested in making changes to the unbroken snapshot image. However, experimenting with the program editor can prove to be a worthwhile educational experience. After a snapshot of a program has been made, it can be edited in hexadecimal and machine language. Selecting option "E" (edit program) from the ISEPIC menu will place you in the editor. Once inside, you have access to the entire 64K snapshot as well as the I/O memory and CPU status, The following commands are valid: Display $B8 bytes and ASCII xxxx Display $B8 bytes starting at xxxx l Disassemble $17 lines and display ASCII xxxxl Disassemble $17 lines starting at xxxx xxxx:aa bb cc Fill memory at xxxx with aa, bb, cc, etc, xxxx,yyyy:aa Fill range from xxxx to yyyy with aa xxxx,yyyy Fill range from xxxx to yyyy with free memory * Display I/O memory (VIC, CIA1 + timers, CIA2 + timers) and CPU status (A, X, Y, S, P, J) q Save current changes to snapshot and return to menu NOTE: All bytes that match the free memory pattern are displayed inversely. Section VII: Legal Notices Copyright Notice ISEPIC hardware and software copyright (c) 1985 by Innovative Software Engineering Manual copyright (c) 1985 Starpoint Software Limited Warranty Neither the author nor the distributors of this product shall be liable for any damages which may be caused by errors or omissions in this product. Should the product be defective, the distributor will replace it upon return of the defective product within 90 days of the date of delivery. There are no other warranties, expressed or implied, including the warranties of merchantability or fitness for a particular purpose. Disclaimer ISEPIC has the potential to unprotect a major percentage of the programs on the market today, however, ISEPIC should not be used to assist software piracy. Neither the author nor the distributor condone its misuse in any form. Software piracy hurts the software industry and may be in violation of United States copyright laws. Acknowledgements ISEPIC concept, hardware, and software designed and implemented by Chip Gracey. 1541 fast-loaders modified from a design by Bruce Hammond. DOS wedge by Bryce Nesbitt. Manual written by (in alphabetical order) Scott Blum, Chip Gracey, Bruce Hammond, Scott Maxwell, and Bryce Nesbitt. [Appendix A] ISEPIC File Copier Commands: [R] Read Directory of disk [Cursor keys] Move red "X" cursor around [Space Bar] Reverse/indicate rile to be copied [A] Reverse/indicate all riles to be copied [c] Begin copy process (must answer "Y" to the "ARE YOU SURE?" prompt) [Q] Quit- Return to ISEPIC main menu (must insert ISEPIC disk) Misc. Notes- * When preparing an ISEPIC storage disk (the "P" function on ISEPIC main menu) the ISEPIC file copier will not be copied at this time. In order to copy the file copier you can copy it with the file copier itself or simply type LOAD "FILE COPIER",8 [RETURN] then insert the destination disk, and type SAVE "FILE COPIER",8 [RETURN] * This file copier works with 1 or 2 disk drives. For 2 drive operation, the source drive must be DEVICE 8, and the destination must be DEVICE 9. When these rules are followed, it is easy to copy from a 1541 disk drive to in SFD 1000 disk drive, hard disk or whatever. * This file copier will copy a file of any file length, even files that are longer than 64k long. It will not copy RELative files, and rebuild the side-sectors properly. Any questions, or Comments on the ISEPIC file copier, please write or call: Scott M. Blum Starpoint Software 122 South Broadway Yreka, CA 96097 (916) 842-6183 ********* End of the Project 64 etext of the ISEPIC user's manual. *********