/* CVW (CLI VIRUS VARNER) V2.0ß */ MODULE 'exec/execbase' DEF base:PTR TO execbase,x:PTR TO LONG, aa,ab,ac,ad,ae,af, warning[200]:STRING,reqresp PROC main() VOID '$VER:CVW_V2.0ß_©_1994_Procyon_Software' base:=execbase aa:=check1() ab:=check2() ac:=check3() ad:=check4() ae:=check5() af:=check6() StrCopy(warning,'This vector(s) are altered\n-\n',STRLEN) IF aa=TRUE THEN StrAdd(warning,'ColdCapture\n',ALL) IF ab=TRUE THEN StrAdd(warning,'CoolCapture\n',ALL) IF ac=TRUE THEN StrAdd(warning,'WarmCapture\n',ALL) IF ad=TRUE THEN StrAdd(warning,'KickMemPtr\n',ALL) IF ae=TRUE THEN StrAdd(warning,'KickTagPtr\n',ALL) IF af=TRUE THEN StrAdd(warning,'KickCheckSum\n',ALL) IF aa=TRUE OR ab=TRUE OR ac=TRUE OR ad=TRUE OR ae=TRUE OR af=TRUE reqresp:=EasyRequestArgs(0,[20,10,'Warning',warning,'Ok|Hard-Reset'],0,0) IF reqresp=1 CleanUp(0) ELSEIF reqresp=0 /* Asm code for hard-resetting the computer */ MOVE.L 4,A6 JSR -$0096(A6) CLR.L 4 LEA 2,A0 RESET JMP (A0) /* end of code... If code should fail.. wait one sec */ Delay(50) ELSE EasyRequestArgs(0,[20,10,'CVW Warning procedure','CVW failed...\nplease report','OK'],0,0) ENDIF CleanUp(0) ENDIF WriteF('Vector check done...\n') CleanUp(0) ENDPROC /* ColdCaptureCheck */ PROC check1() Exists({x},[[base.coldcapture,'ColdCapture']],`x) IF x[0] RETURN TRUE ELSE RETURN FALSE ENDIF ENDPROC /* CoolCapture check */ PROC check2() Exists({x},[[base.coolcapture,'CoolCapture']],`x) IF x[0] RETURN TRUE ELSE RETURN FALSE ENDIF ENDPROC /* WarmCapture */ PROC check3() Exists({x},[[base.warmcapture,'WarmCapture']],`x) IF x[0] RETURN TRUE ELSE RETURN FALSE ENDIF ENDPROC /* KickMemPtr */ PROC check4() Exists({x},[[base.kickmemptr,'KickMemPtr']],`x) IF x[0] RETURN TRUE ELSE RETURN FALSE ENDIF ENDPROC /* KickTagPtr */ PROC check5() Exists({x},[[base.kicktagptr,'KickTagPtr']],`x) IF x[0] RETURN TRUE ELSE RETURN FALSE ENDIF ENDPROC /* Kickcheksum */ PROC check6() Exists({x},[[base.kickchecksum,'KickCheckSum']],`x) IF x[0] RETURN TRUE ELSE RETURN FALSE ENDIF ENDPROC