
;*---------------------------------------------------------------------
;* $VER: example_abort2.a 1.0 (23.7.98)
;*
;* RETURN_SERIAL example (ser#gen)
;*---------------------------------------------------------------------

		INCLUDE	"misc/spirit.i"

KEY_LENGTH	EQU	512

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

		KEYHEAD	KeyModTags

		dc.b	"$VER: ExampleAbort2_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
		dc.l	SPT_NameLen,20
		dc.l	SPT_SpiritVer,SPIRITVERSION
		dc.l	TAG_DONE

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

MakeKey		bra.s	Main

Name		dc.b	"!ExampleAbort2",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	"we_gen_a_ser ;-)",0
KeyPath		dc.b	"never_needed_dir",0
		cnop	0,2

Main		move.l	kb_Name(a5),a0
		move.l	kb_KeyBuffer(a5),a1		;we just use the
Loop		move.b	(a0)+,d0			;keybuffer for the
		beq.s	Done				;serial#
		addq.b	#1,d0
		move.b	d0,(a1)+
		bra.s	Loop

Done		move.l	kb_KeyBuffer(a5),d1
		moveq	#RETURN_SERIAL,d0
		rts
		END