*********

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 <RETURN>

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 <RETURN>

(!!!  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 <SPACE>.  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 <RETURN>. 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 <RETURN>

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 <RETURN>

q <RETURN>

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 <RETURN> 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:

<RETURN>       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.

*********
