*
*
*
	bra	INIT
	dc.b	128
TOKENS:
	dc.b	"prnter",128
	dc.b	"range",129
	dc.b	"sprpal",130
	dc.b	0
	even
JUMP:	dc.w	3
	dc.l	PRNTER
	dc.l	RANGE
	dc.l	GSPRPAL
MESSAGE:	
	dc.b	"Usefull Extension Installed",0
	dc.b	"Extension Usefull",0
	dc.b	0
	even
SYSTEM	dc.l	0
RETURN	dc.l	0
SAVER	dc.l	0
T1	dc.l	0
T2	dc.l	0

INIT:	lea	EXIT,a0
	lea	COLDST,a1
	rts
COLDST:	move.l	a0,SYSTEM
	lea	MESSAGE,a0
	lea	WARM,a1
	lea	TOKENS,a2
	lea	JUMP,a3
WARM	rts
PRNTER:	move.l	(a7)+,RETURN
	cmpi.w	#1,d0
	bne	SYNTAX
	jsr	GETINT
	movem.l	a0-a6,-(a7)
	move.w	d3,-(a7)
	move.w	#33,-(a7)
	trap	#14
	addq.l	#4,a7
	movem.l	(a7)+,a0-a6
	move.l	RETURN,a0
	jmp	(a0)
RANGE:	move.l	(a7)+,RETURN
	cmpi.w	#3,d0
	bne 	SYNTAX
	jsr	GETINT
	move.l	d3,d0
	jsr	GETINT
	move.l	d3,d1
	jsr	GETINT
	move.l	d3,d2
	cmp.l	d1,d2
	blt	TOOLOW
TLBK	cmp.l	d2,d0
	blt	TOOHIGH
THBK	move.l	d2,d3
	move.l	#0,d2
	move.l	d2,d4
	move.l	RETURN,a0
	jmp	(a0)
TOOLOW	move.w	d1,d2
	bra	TLBK
TOOHIGH	move.w	d0,d2
	bra	THBK
GSPRPAL:
	move.l	(a7)+,RETURN
	cmpi.w	#1,d0
	bne	SYNTAX
	bsr	GETINT
	move.l	d3,a0
	clr.l	d0
GSPL:	cmp.l	#"PALT",0(a0,d0.l)
	beq	GOTTIT
	addq.l	#2,d0
	bra	GSPL
GOTTIT:
*	clr.l	-(sp)
*	move.w	#32,-(sp)
*	trap	#1
*	addq	#6,sp
*	move.l	d0,SAVER

	move.l	#$FF8240,a1
	clr.l	d1
GSPL2:	move.w	4(a0,d0.l),(a1)
	addq.l	#2,d0
	addq.l	#2,a1
	cmp.l	#$FF8260,a1
	bne	GSPL2

*	move.l	SAVER,-(sp)
*	move.w	#32,-(sp)
*	trap	#1
*	addq	#6,sp

	move.l	RETURN,a0
	jmp	(a0)

GETINT:	move.l	(a7)+,a0
	movem.l	(a7)+,d2-d4
	tst.b	d2
	bne	MISMATCH
	jmp	(a0)
SYNTAX:	move.w	#12,d0
	bra	ERROR
MISMATCH: move.w	#19,d0
ERROR:	move.l	SYSTEM,a0
	move.l	$14(a0),a0
	jmp	(a0)
	dc.l	0
EXIT	equ	*
