home *** CD-ROM | disk | FTP | other *** search
/ Various Unprotection Examples / unprotect.zip / unprotect / COPYPROT / PRODWN.TXT < prev    next >
Text File  |  1985-03-20  |  8KB  |  180 lines

  1. The following is from a file found on COMPUSERVE. Tried the portion using
  2.  DEBUG and could not get profix.com to read my prokey files (ex. ws.pro)
  3.  Maybe some one who understand the top part of this message can fill me
  4.  in.  Thanks    John Roswick, Bismarck.
  5.  
  6.  
  7. PRODWN         17-July 1984         
  8.  
  9.     Keywords: SIDEKICK PROKEY PATCH FIX BUGS COMPATIBILITY BORLAND
  10.     
  11.      Attention Sidekick/Prokey users !  We at Borland were having
  12. trouble getting Sidekick to be compatible with Rosesoft's Prokey and
  13. as many of you Prokey users out there know everything locked up when the
  14. two got together.  The reason Prokey does not work is because it trashes
  15. some of the registers when running and confuses Sidekick as to make your
  16. terminal go down.  Enclosed is the portion of Prokey which does this.
  17.  
  18. 0730  2EF606D402FF              TEST    CS:BYTE PTR [02D4H],OFFH
  19. 0736  7409                      JE      0741H
  20. 0738  2EFF2EC602                JMP     CS:DWORD PTR [02C6H]
  21. 073D  5B                        POP     BX
  22. 073E  1F                        POP     DS
  23. 073F  EBF7                      JMP     SHORT 0738H
  24. 0741  1E                        PUSH    DS
  25. 0742  53                        PUSH    BX
  26. 0743  8CCB                      MOV     BX,CS
  27. 0745  8EDB                      MOV     DS,BX
  28. 0747  FB                        STI
  29. 0748  C5053D0100                MOV     BYTE PTR [013DH],00H
  30. 074D  803E660400                CMP     BYTE PTR [0466H],00H
  31. 0752  7420                      JE      0774H
  32. 0754  833E670400                CMP     WORD PTR [0469H],00H
  33. 0759  7507                      JNE     0762H
  34. 075B  833E670400                CMP     WORD PTR [0467H],00H
  35. 0760  740D                      JE      076FH
  36. 0762  832E670401                SUB     WORD PTR [0467H],01H
  37. 0767  831E690400                SBB     WORD PTR [0469H],00H
  38. 076C  EB06                      JMP     SHORT 0774H
  39. 076E  90                        NOP
  40. 076F  C606660400                MOV     BYTE PTR [0466H],00H
  41. 0774  803E530400                CMP     BYTE PTR [0466H],00H
  42. 0779  74C2                      JE      037DH
  43. 077B  833E662400                CMP     WORD PTR [2466H],00H
  44. 0780  7507                      JNE     0789H
  45. 0782  833E682400                CMP     WORD PTR [2468H],00H
  46. 0787  740C                      JE      0795H
  47. 0789  832E682401                SUB     WORD PTR [2468H],01H
  48. 078E  831E662400                SBB     WORD PTR [2466H],00H
  49. 0793  EBA8                      JMP     SHORT 073DH
  50. 0795  E8841D                    CALL    251CH                    ;HMMM !
  51. 0798  EBA3                      JMP     SHORT 073DH
  52.  
  53. THE SAGA CONTINUES ...
  54.  
  55. 251C  50                        PUSH    AX
  56. 251D  1E                        PUSH    DS
  57. 251E  A05304                    MOV     AL,[0453H]
  58. 2521  3C01                      CMP     AL,01H
  59. 2523  7407                      JE      252CH
  60. 2525  3C02                      CMP     AL,02H
  61. 2527  743F                      JE      2568H
  62. 2529  1F                        POP     DS
  63. 252A  58                        POP     AX
  64. 252B  C3                        RET     ?NEAR
  65. 252C  BD9D2D                    MOV     BP,2D9DH       BP DESTROYED
  66. 252F  E8480E                    CALL    337AH
  67. 2532  A16C24                    MOV     AX,[246CH]
  68. 2535  A39D2D                    MOV     [2D9DH],AX
  69. 2538  BD9D2D                    MOV     BP,2D9DH
  70. 253B  E8E30D                    CALL    3321H
  71. 253E  BD9D2D                    MOV     BP,2D9DH
  72. 2541  BEE023                    MOV     SI,23E0H       SI DESTROYED
  73. 2544  B601                      MOV     DH,01H         DX DESTROYED
  74. 2546  B201                      MOV     DL,01H         (BUT WILL BE RESTORED
  75. 2548  E8230C                    CALL    317FH          BY THE BIOS)
  76. 254B  E88407                    CALL    2CD2H
  77. 254E  8B366024                  MOV     SI,[2460H]
  78. 2552  387D07                    CALL    2CD2H
  79. 2555  A16224                    MOV     AX,[2462H]
  80. 2558  A36824                    MOV     [2468H],AX
  81. 255B  C70666240000              MOV     WORD PTR [2466H],000H
  82. 2561  C606530402                MOV     BYTE PTR [0453H],02H
  83. 2566  EBC1                      JMP     SHORT 2529H
  84. 2568  BD9D2D                    MOV     BP,2D9DH
  85. 256B  E80C0E                    CALL    337AH
  86. 256E  C606530400                MOV     BYTE PTR [0453H],00H
  87. 2573  EBB4                      JMP     SHORT 2529H
  88.  .
  89.  .
  90.  .
  91.  
  92. Prokey does not save and restore all registers when trapping interrupt
  93. 1C.  The reason why this error occurs at a higher frequency when using
  94. Sidekick is beyond this discussion. However, to verify the error try the
  95. following:
  96.  
  97. 1. Start Prokey
  98. 2. Define a key recursively
  99. 3. Notice prokey now issues an error message
  100. 4. terminate definition (fast...)
  101. 5. press return 100 times
  102. 6. if prokey did not crash repeat step 2-6
  103.  
  104. Register destroying occurs when Prokey is flashing error message.  You must
  105. terminate and press return as fast as possible, and be logged on a floppy
  106. drive (important: let your prompt show the active directory in order to let
  107. dos read on the disk).
  108.  
  109. The following program establishes a trap at interrupt 8 (to make sure Prokey
  110. or others does not overwrite it, bios int 8 then activates 1C).
  111.  
  112. CODE                          SEGMENT
  113.                               ASSUME     CS:CODE
  114.                               ORG        100H
  115. START                         PROC
  116.                               JMP        SHORT SETUP
  117. START                         ENDP
  118. INT08SAVE                     DD
  119. INT08TRAP                     PROC       FAR
  120.                               PUSH       AX
  121.                               PUSH       BX
  122.                               PUSH       CX
  123.                               PUSH       DX
  124.                               PUSH       SI
  125.                               PUSH       DI
  126.                               PUSH       BP
  127.                               PUSH       DS
  128.                               PUSH       ES
  129.                               PUSHF
  130.                               CALL       INT08SAVE
  131.                               POP        ES
  132.                               POP        DS
  133.                               POP        BP
  134.                               POP        DI
  135.                               POP        SI
  136.                               POP        DX
  137.                               POP        CX
  138.                               POP        BX
  139.                               POP        AX
  140.                               IRET
  141. INT08TRAP                     ENDP
  142. EOTRAP:
  143. SETUP                         PROC
  144.  
  145.                               MOV        DS,AX
  146.                               MOV        SI,20H
  147.                               CLI
  148.                               LES        AX,DWORD PTR[SI]
  149.                               MOV        WORD PTR INT08SAVE,AX
  150.                               MOV        WORD PT
  151.                               MOV        WORD PTR [SI],OFFSET INT08TRAP
  152.                               MOV        [SI+2],CS
  153.                               STI
  154.                               MOV        DX,OFFSET EOTRAP+1
  155.                         
  156. SETUP                         ENDP
  157. CODE                          ENDS
  158.                               END        START
  159.  
  160. It may be faster to enter the following bytes using debug and writing them
  161. to the file profix.com, thus saving your original prokey file:
  162.  
  163.  
  164. e100
  165. 0100:  EB 1D 00 00 00 00 50 53 51 52 56 57 55 1E 06 9C
  166. 0110:  2E FF 1E 02 01 07 1F 5D 5F 5E 5A 59 5B 58 CF 33
  167. 0120:  C0 8E D8 BE 20 00 FA C4 04 2E A3 02 01 2E 8C 06
  168. 0130:  04 01 C7 04 06 01 8C 4C 02 FB BA 20 01 CD 27
  169. RCX
  170. 3F
  171. NPROFIX.COM
  172. W
  173.  
  174.  
  175. NOW USE PROFIX INSTEAD OF PROKEY
  176.  
  177. NOTE:  THIS MAY NOT BE THE COMPLETE SOLUTION AS THE WORD STILL DOES NOT
  178. WORK WITH PROKEY.  FURTHERMORE THIS HAS ONLY BEEN TESTED USING PROKEY
  179. VERSION 3.0 - OLDER VERSIONS MAY HAVE OTHER BUGS!
  180.