| 
                        ;Protoscan II Protection
 
 LOOP      BSR.S      PROT
 TST.B      D0            ;Original
 BNE.S      LOOP            ;No try again
 CLR.W      -(SP)            ;Function warmstart
 TRAP      #1            ;and return to desktop
 
 
 PROT      LEA      $63000,A0      ;Buffer
 MOVE.L      A0,$7079E
 MOVEQ      #1,D3
 L7054C      MOVE.L      D3,$707A2
 BSR      L70776
 BSR.S      L70582
 BSR.S      L705B8
 BSR.S      L705CE
 BSR      L7060E
 BSR      L7060E
 BSR.S      L705B8
 BSR      L706CA
 BSR      L7073A
 MOVE.B      $707A6,D0
 TST.B      D0
 BEQ.S      L70580
 MOVE.L      $707A2,D3
 DBF      D3,L7054C
 L7057E      BRA.S      L7057E
 L70580      RTS
 L70582      MOVE.W      #0,D0
 ADDQ.B      #1,D0
 LSL.B      #1,D0
 ORI.W      #0,D0
 EORI.B      #7,D0
 ANDI.B      #7,D0
 L70596      MOVE.B      #7,$FFFF8800.W
 MOVE.B      #$FF,$FFFF8802.W
 MOVE.B      #$E,$FFFF8800.W
 MOVE.B      $FFFF8800.W,D1
 ANDI.B      #$F8,D1
 OR.B      D0,D1
 MOVE.B      D1,$FFFF8802.W
 RTS
 L705B8      MOVE.W      #$80,$FFFF8606.W
 MOVE.W      #$D0,D6
 BSR      L706E0
 MOVEQ      #$28,D7
 BSR      L706DA
 RTS
 L705CE      BSR      L706FE
 MOVE.W      #$86,$FFFF8606.W
 MOVE.W      #$4F,D6
 BSR      L706E0
 MOVE.W      #$80,$FFFF8606.W
 MOVE.W      #$1B,D6
 BSR      L706E0
 MOVE.L      #$60000,D7
 L705F4      SUBQ.L      #1,D7
 BEQ.S      L70602
 BTST      #5,$FFFFFA01.W
 BNE.S      L705F4
 RTS
 L70602      BRA.S      L705CE
 MOVE.W      #$FFF9,$707A6
 RTS
 L7060E      CLR.L      $70796
 MOVE      SR,L7078C
 MOVE.W      #$90,$FFFF8606.W
 MOVE.W      #$190,$FFFF8606.W
 MOVE.W      #$90,$FFFF8606.W
 MOVEQ      #$16,D6
 MOVE.W      #$200,D2
 MULU      D6,D2
 MOVE.W      D2,L7078E
 MOVE.L      $7079E,D3
 ADD.L      D3,D2
 MOVE.L      D2,L70792
 BSR      L706E0
 MOVE.L      $7079E,D0
 MOVE.B      D0,$FFFF860D.W
 LSR.L      #8,D0
 MOVE.B      D0,$FFFF860B.W
 LSR.L      #8,D0
 MOVE.B      D0,$FFFF8609.W
 MOVE.W      #$80,$FFFF8606.W
 MOVE.W      #$E8,D6
 BSR.S      L706E0
 MOVE.L      #$50000,D7
 MOVEA.L      L70792(PC),A5
 MOVE.W      #$200,D0
 L70678      DBF      D0,L70678
 L7067C      BTST      #5,$FFFFFA01.W
 BEQ.S      L706A6
 SUBQ.L      #1,D7
 BEQ.S      L706C4
 MOVE.B      $FFFF8609.W,L70797
 MOVE.B      $FFFF860B.W,L70798
 MOVE.B      $FFFF860D.W,L70799
 CMPA.L      L70796,A5
 BGT.S      L7067C
 L706A6      MOVE.W      #$90,$FFFF8606.W
 MOVE.W      $FFFF8606.W,D5
 MOVE.W      D5,L70790
 BTST      #0,D5
 BEQ.S      L706C4
 MOVE.W      #$80,$FFFF8606.W
 BSR.S      L7072C
 L706C4      MOVE.W      L7078C(PC),SR
 RTS
 L706CA      MOVE.W      #$80,$FFFF8606.W
 MOVE.B      #7,D0
 BSR      L70596
 RTS
 L706DA      DBF      D7,L706DA
 RTS
 L706E0      BSR.S      L706EE
 MOVE.W      D6,$FFFF8604.W
 BSR.S      L706EE
 RTS
 MOVE.W      $FFFF8604.W,D3
 L706EE      MOVE      SR,-(A7)
 MOVE.W      D7,-(A7)
 MOVEQ      #$28,D7
 L706F4      DBF      D7,L706F4
 MOVE.W      (A7)+,D7
 MOVE.W      (A7)+,SR
 RTS
 L706FE      MOVE.W      L7079A,D6
 ANDI.W      #3,D6
 MOVE.L      #$50000,D7
 MOVE.W      #$80,$FFFF8606.W
 BSR.S      L706E0
 L70714      SUBQ.L      #1,D7
 BEQ.S      L70722
 BTST      #5,$FFFFFA01.W
 BNE.S      L70714
 RTS
 L70722      MOVE.B      #$F9,$707A6
 RTS
 L7072C      BSR.S      L706EE
 MOVE.W      $FFFF8604.W,$7079C
 BSR.S      L706EE
 RTS
 L7073A      MOVE.L      $7079E,D1
 ADDI.L      #$2EE0,D1
 MOVEA.L      D1,A0
 MOVE.L      #$DAC,D3
 MOVEQ      #0,D2
 MOVE.W      -(A0),D5
 L70750      MOVE.W      -(A0),D0
 CMP.W      D0,D5
 BNE.S      L7075E
 ADDQ.L      #2,D2
 DBF      D3,L70750
 BRA.S      L7076E
 L7075E      SUBI.L      #$170C,D2
 BMI.S      L7076E
 CLR.B      $707A6
 RTS
 L7076E      ST      $707A6
 RTS
 L70776      MOVE.L      #$176F,D2
 MOVEA.L      $7079E,A0
 MOVE.L      $4BA.W,D3
 L70784      MOVE.W      D3,(A0)+
 DBF      D2,L70784
 RTS
 L7078C      DC.L      0
 L7078E      DC.L      0
 L70790      DC.L      0
 L70792      DC.L      0
 L70796      DC.L      0
 L70797      DC.L      0
 L70798      ORI.B      #3,D0
 L70799      DC.L      0
 L7079A      DC.L      0
 
 
 
 ;To remove a Protoscan protection all you have to do is type MOVEQ #0,D0
 ;RTS ($70004E75) you need the moveq so that D0 is equil (0) when it returns
 ;from the protection as most of them do a TST.B D0 see above example.
 
 
 ;Here is a brief list of games you will find this protection in:
 
 ;The Untouchables
 ;Postman Pat
 ;Ninja Warriors
 ;Continental Curcus
 ;Where Time Stood Still
 
 |