
;*---------------------------------------------------------------------
;* $VER: example_abort.a 1.0 (16.6.98)
;*
;* RETURN_ABORT example
;*---------------------------------------------------------------------

		INCLUDE	"misc/spirit.i"

KEY_LENGTH	EQU	512

;*---------------------------------------------------------------------
;* KeyModule Tags
;*---------------------------------------------------------------------

		KEYHEAD	KeyModTags

		dc.b	"$VER: ExampleAbort_keymodule 1.0 (16.6.98)",13,10,0
		cnop	0,2

KeyModTags	dc.l	SPT_Name,Name
		dc.l	SPT_Version,Version
		dc.l	SPT_Cracker,Cracker
		dc.l	SPT_Group,Group
		dc.l	SPT_Date,Date
		dc.l	SPT_KeyLength,KEY_LENGTH
		dc.l	SPT_KeyName,KeyName
		dc.l	SPT_KeyPath,KeyPath
		dc.l	SPT_Encrypt,MakeKey
KeyAnno		dc.l	SPT_Anno,0			;yep ZERO!
		dc.l	SPT_NameLen,20
		dc.l	SPT_SpiritVer,SPIRITVERSION
		dc.l	TAG_DONE

;*---------------------------------------------------------------------
;* Encrypt Routine
;*---------------------------------------------------------------------

TOSVER		EQU	1998				;the lib ver

MakeKey		bra	Main

Name		dc.b	"!ExampleAbort",0
Version		dc.b	"1.0",0
Cracker		dc.b	"Sunbeam",0
Group		dc.b	"DC",0
Date		dc.b	"16.6.98",0
KeyName		dc.b	"never_used.key",0
KeyPath		dc.b	"never_needed_dir",0
MSTosName	dc.b	"ms-tos.library",0
NoLibStr	dc.b	"Sorry but you need '%s' V%ld or higher to use this keymodule!",0
LibStr		dc.b	"Do you really have the %s %ld? WOW :-)",0
		cnop	0,2

Main		move.l	4.w,a6
		move.l	#TOSVER,d0
		lea	NoLibStr(pc),a4
		lea	MSTosName(pc),a1
		jsr	-552(a6)			;OpenLibrary()
		tst.l	d0
		beq.s	NoLib
		lea	LibStr(pc),a4
		move.l	d0,a1
		jsr	-$19E(a6)			;CloseLibrary()
NoLib		move.l	a4,KeyAnno+4			;now i set SPT_KeyAnno!
		lea	ArgArray(pc),a0
		move.l	a0,d1
		moveq	#RETURN_ABORT,d0
		rts

ArgArray	dc.l	MSTosName
		dc.l	TOSVER
		END