LOCKSMITH VERSION 4.1 - COMPLETEDOCUMENTATION THIS DOCUMENT DESCRIBES ALL USER-CHANGEABLE LOCKSMITH PARAMETERS IN DEPTH. A PARTIAL LIST OF THESE PARAMETERS WAS PREVIOUSLY DISTRIBUTED TO ALL VERSION 4.0/4.1 OWNERS. ALSO PROVIDED HERE IS DETAILED LOCKSMITH PROGRAM LOGIC INFORMATION. NOTE---THIS DOCUMENT IS OF A HIGHLY TECHNICAL NATURE, AND IS INTENDED PRIMARILY FOR THE ADVANCED USER OF LOCKSMITH. BACKGROUND ---------- WHEN LOCKSMITH WAS FIRST INTRODUCED IN JANUARY 1981, IT WOULD COPY ALMOST ALL DISKS WITH NO SPECIAL INSTRUCTIONS FROM THE USER. ONLY A FEW DISKS REQUIRED PARAMETER CHANGES. ALAS, THOSE GOOD OLD DAYS ARE GONE FOREVER. INSTEAD OF PROVIDING THE USER WITH BETTER BACKUP POLICY, SOFTWARE VENDORS DECIDED TO ESCALATE THE BATTLE BY DEVELOPING MORE COMPLICATED (AND IN SOME CASES, BIZARRE) PROTECTION TECHNIQUES. BECAUSE OF THE MANY DIFFERENT TECHNIQUES NOW IN USE, IT IS LIKELY THAT MANY DISKS WILL REQUIRE SOME INPUT FROM THE USER IN THE FORM OF PARAMETER CHANGES. OMEGA MICROWARE CURRENTLY MAINTAINS AN EXTENSIVE LIST OF SOFTWARE, ALONG WITH THE LOCKSMITH PARAMETERS USED TO COPY EACH. SOME OF THE ENTRIES ON THIS LIST ARE USER-SUPPLIED, AND OMEGA MICROWARE WELCOMES INFORMATION FROM USERS REGARDING HOW TO BACK-UP SOFTWARE NOT ALREADY ON THIS LIST. OVERVIEW -------- LOCKSMITH COPIES DISKS BY READING A TRACK, PERFORMING ANALYSIS ON THE DATA, AND WRITING THE TRACK BACK TO THE COPY DISK. READING AND WRITING ARE FAIRLY STRAIGHTFORWARD FUNCTIONS. THE ANALYSIS OF THE TRACK DATA IS BY FAR THE MOST DIFFICULT TASK, AND MUST PROVIDE FOR FLEXIBILITY. MANY ANALYSIS ROUTINES (ALGORITHMS) ARE PROVIDED WITHIN LOCKSMITH. EACH ALGORITHM PERFORMS A SPECIFIC FUNCTION RELATING TO THE ANALYSIS OF TRACK DATA. BY CHANGING PARAMETERS, THE USER MAY SELECT, DISABLE, OR CHANGE THE EXECUTION ORDER OF ALGORITHMS. PARAMETERS MAY ALSO BE USED TO DEFINE VALUES TO BE USED BY INDIVIDUAL ALGORITHMS. ALGORITHMS ---------- THE ALGORITHMS ARE NUMBERED FROM 0 TO $23 (ALL VALUES ARE IN HEX), ALTHOUGH MORE ALGORITHMS MAY BE ADDED IN FUTURE VERSIONS OF LOCKSMITH. DURING TRACK ANALYSIS, ALGORITHMS ARE SELECTED SEQUENTIALLY FROM A TABLE OF ALGORITHM NUMBERS, LOCATED FROM PARM 4C-80. AS ALGORITHMS ARE SELECTED FROM THIS TABLE DURING ANALYSIS, THEY ARE DISPLAYED ON THE SCREEN AS 2-DIGIT HEX NUMBERS IN INVERSE VIDEO. ALGORITHM 00 IN DICATES A NULL ALGORITHM, WHICH CAN BE USED TO REPLACE ALGORITHM NUMBERS IN THE TABLE WHICH THE USER WANTS TO DISABLE. AN FF ENTRY IN THIS TABLE INDICATES THE END OF THE ALGORITHMS TO PERFORM. CURRENTLY, THE ALGORITHM TABLE CONTAINS FOUR SEPARATE ALGORITHM SEQUENCES, EACH ONE TERMINATED BY AN FF ENTRY. THE STARTING POINT OF THE ALGORITHM SEQUENCE TO BE USED IS DEFINED BY PARM 25. THIS PARAMETER CONTAINS THE INDEX INTO THE ALGORITHM TABLE TO BE USED AS THE FIRST ALGORITHM OF A SEQUENCE. FOR EXAMPLE, IF PARM25=00, THE ALGORITHM SEQUENCE WOULD START AT PARM4C. IF PARM25=10, THE ALGORITHM SEQUENCE WOULD START AT PARM5C. THE SECTION OF ALGORITHM TABLE STARTING AT PARM71 IS SELECTED AS AN ALGORITHM SEQUENCE START (INSTEAD OF PARM4C) WHEN SYNCHRONIZED TRACKS ARE CHOSEN. ALGORITHMS, IN ADDITION TO PERFORMING THEIR SPECIALIZED FUNCTION, CAN RETURN A FLAG TO INDICATE SUCCESS OR FAILURE. IT IS POSSIBLE TO INDICATE THAT AN ALGORITHM IS TO BE PERFORMED ONLY IF THE PREVIOUS ALGORITHM FAILED. THIS MAY BE DONE BY SETTING THE HIGH-ORDER BIT OF THE ALGORITHM NUMBER WITHIN THE ALGORITHM TABLE. FOR EXAMPLE, AN ENTRY OF A1 INDICATES THAT ALGORITHM 21 IS TO BE PERFORMED ONLY IF THE PREVIOUS ALGORITHM FAILED. DESCRIPTION OF ALGORITHMS ------------------------- THE FOLLOWING IS A LIST OF ALGORITHM NUMBERS AND THE PARAMETERS WHICH AFFECT THEM. ALG 00 (THIS ALGORITHM DOESN'T DO MUCH OF ANYTHING) ALG 01 (CONSECUTIVE NIBBLES TO SELF-SYNC) CHANGES NORMAL NIBBLES TO SELF-SYNC NIBBLES BASED ON: FINDING (PARM10) CONSECUTIVE NIBBLES IN THE RANGE (PARM34) TO (PARM35), INCLUSIVE. FOR EXAMPLE, IF PARM10=0C, PARM34=FE, AND PARM35=FF, THEN ALGORITHM 01 WOULD SEARCH FOR SEQUENCES OF LENGTH 0C NIBBLES WITH VALUES FE THROUGH FF, AND SET THEM TO SELF-SYNC. ALG 02 (INVALIDS TO SELF-SYNC) SETS INVALID NIBBLES (THOSE WITH 3 OR MORE CONSECUTIVE ZERO BITS) TO SELF-SYNC. ALG 03 (STANDARDIZE SELF-SYNC) SETS ALL SELF-SYNC TO (PARM33), WHICH MUST HAVE HIGH-ORDER BIT CLEAR. ALG 04 (LONER SELF-SYNC TO NORMAL) SETS CONSECUTIVE SELF-SYNC STRINGS OF LESS THAN OR EQUAL TO (PARM3C) TO NORMAL. ALG 05 (GLITCH REMOVER) SETS CONSECUTIVE NORMAL NIBBLES OF LENGTH LESS THAN OR EQUAL TO (PARM12) TO SELF-SYNC. -------------------------------------------------------------------------------- THAT'S ALL FOLKS...