************ Disk Mechanic Version 1.13 ************************

A>Debug TRQ5.BAS
-a 858
858 NOP
859 NOP
85A NOP
<CR>
-W
-Q

************ Disk Mechanic Version 3.20 ************************

A>Debug TRQ8.BAS
-a 887
887 NOP
888 NOP
889 NOP
<CR>
-W
-Q

That's all you have to do to be able to use Disk Mechanic from your
hard disk.

************ Disk Mechanic Version 5.00 B ***********************

            UNPROTECTION METHOD FOR DISK MECHANIC 5.00 B
                 BY STEALTH PIRATES CORP. 1986

THE - IS THE DEBUG PROMPT, [ΔΩ] IS THE RETURN KEY.
BOOT UP WITH DOS IN DRIVE A.
FIRST MAKE A BACKUP OF DISK MECHANIC USING DISKCOPY.
PUT DEBUG IN DRIVE B, AND BACKUP IN DRIVE A.

A>B:DEBUG TRQ8.BAS
-A 6B4
????:06B4 MOV AH,04
????:06B6 STC
????:06B7 NOP
????:06B8 [ΔΩ]
-W
-Q

              DISK MECHANIC IS NOW TOTALLY UNPROTECTED AND
                MAY BE COPIED COPY COMMAND OR DISKCOPY.

************ Disk Mechanic Version 5.01 ***********************

How to unprotect DIAGRAM MASTER, version 5.01:

First, MAKE A COPY of the original DIAGRAM MASTER diskette. NEVER tamper with
your original disk!

Using the COPY, RENAME DM.EXE to DM.XEX

DEBUG DM.XEX

At locations 4332, 4392, and 43B7 is the code which checks drive A for the
presence of the signature sector. This code typically looks like:

    MOV AL,01
    MOV AH,04
    INT 13

We will patch the program so that it thinks all is well and doesn't bother to
check the floppy:

-u 4320
xxxx:4320 16            PUSH    SS
xxxx:4321 2A00          SUB     AL,[BX+SI]
xxxx:4323 B600          MOV     DH,00
xxxx:4325 B500          MOV     CH,00
xxxx:4327 B101          MOV     CL,01
xxxx:4329 B001          MOV     AL,01
xxxx:432B B404          MOV     AH,04
xxxx:432D 06            PUSH    ES
xxxx:432E 33DB          XOR     BX,BX
xxxx:4330 8EC3          MOV     ES,BX
xxxx:4332 CD13          INT     13          <---here's one!
xxxx:4334 07            POP     ES
xxxx:4335 7338          JNB     436F
xxxx:4337 80FC06        CMP     AH,06
xxxx:433A 74E3          JZ      431F
xxxx:433C 80FC80        CMP     AH,80
xxxx:433F 7405          JZ      4346

-u 4380
xxxx:4380 2A00          SUB     AL,[BX+SI]
xxxx:4382 8A362900      MOV     DH,[0029]
xxxx:4386 8A2E2800      MOV     CH,[0028]
xxxx:438A 8A0E2400      MOV     CL,[0024]
xxxx:438E B001          MOV     AL,01
xxxx:4390 B404          MOV     AH,04
xxxx:4392 CD13          INT     13          <---here's one!
xxxx:4394 59            POP     CX
xxxx:4395 7308          JNB     439F
xxxx:4397 E2E4          LOOP    437D
xxxx:4399 59            POP     CX
xxxx:439A A33A00        MOV     [003A],AX
xxxx:439D EB2E          JMP     43CD
xxxx:439F B90200        MOV     CX,0002

-u 43b3
xxxx:43B3 B001          MOV     AL,01
xxxx:43B5 B404          MOV     AH,04
xxxx:43B7 CD13          INT     13          <---here's one!
xxxx:43B9 59            POP     CX
xxxx:43BA 80FC04        CMP     AH,04
xxxx:43BD 740B          JZ      43CA
xxxx:43BF E2E1          LOOP    43A2
xxxx:43C1 59            POP     CX
xxxx:43C2 C7063A00FFFF  MOV     WORD PTR [003A],FFFF
xxxx:43C8 EB03          JMP     43CD
xxxx:43CA 59            POP     CX
xxxx:43CB E2AC          LOOP    4379
xxxx:43CD C3            RET
xxxx:43CE 55            PUSH    BP
xxxx:43CF 8BEC          MOV     BP,SP
xxxx:43D1 1E            PUSH    DS
xxxx:43D2 B8E703        MOV     AX,03E7

So here goes:

-a 4332
xxxx:4332 NOP           ;get rid of disk interrupt
xxxx:4333 NOP
xxxx:4334 <cr>          ;to break out of assembly

-a 4335                 ;to "fix" the jump instruction
xxxx:4335 JMP 436F
xxxx:4337 <cr>          ;break out

-a 4392
xxxx:4392 NOP           ;get rid of disk interrupt
xxxx:4393 NOP
xxxx:4394 <cr>          ;break out

-a 4395
xxxx:4395 JMP 439F      ;fix the jump
xxxx:4397 <cr>          ;break out

-a 43B7
xxxx:43B7 NOP           ;get rid of disk interrupt
xxxx:43B8 NOP
xxxx:43B9 <cr>          ;break out

-a 43BD
xxxx:43BD JMP 43CA      ;fix last jump
xxxx:43BF <cr>          ;break out
-w                      ;write it back out
Writing 61C7 bytes
-q                      ;end debug session

RENAME DM.XEX DM.EXE    ;restore the name

Diagram Master, version 5.01, is now unprotected. Have fun!

LET THERE BE SOFTWARE!
