;---------------------------------------------------------------------
;    **   **   **  ***   ***   ****     **    ***  **  ****
;   ****  *** *** ** ** **     ** **   ****  **    ** **  **
;  **  ** ** * ** ** **  ***   *****  **  **  ***  ** **
;  ****** **   ** ** **    **  **  ** ******    ** ** **
;  **  ** **   ** ** ** *  **  **  ** **  ** *  ** ** **  **
;  **  ** **   **  ***   ***   *****  **  **  ***  **  ****
;---------------------------------------------------------------------
; AMOS Requester handler V1.6
; By Franois Lionet
; AMOS - AMOS Pro - AMOS Compiler (c) Europress Software 1990-1992
; To be used with AMOS Pro 1.0 and over
;--------------------------------------------------------------------- 
; This file is public domain
;---------------------------------------------------------------------
; Please refer to the _Music.s file for more informations
;---------------------------------------------------------------------

Version		MACRO
		dc.b	"1.0"
		ENDM



Req_WY		equ	100

T_Tit		equ	0
T_Text		equ	T_Tit+80
T_Gad		equ	T_Text+320
T_Size		equ	T_Gad+128

*
ExtNb		equ	3-1
*
 		Include	"|AMOS_Includes.s"
*
Start		dc.l	C_Tk-C_Off
		dc.l	C_Lib-C_Tk
		dc.l	C_Title-C_Lib
		dc.l	C_End-C_Title
		dc.w	-1	
*
******************************************************************
* 		OFFSETS TO FUNCTIONS
C_Off           dc.w (L1-L0)/2,(L2-L1)/2,(L3-L2)/2,(L4-L3)/2
        	dc.w (L5-L4)/2,(L6-L5)/2,(L7-L6)/2,(L8-L7)/2
        	dc.w (L9-L8)/2,(L10-L9)/2,(L11-L10)/2

******************************************************************
* 	TOKEN TABLE + Addresses
C_Tk		dc.w 	1,0
		dc.b 	$80,-1
		dc.w	L_ReqOn,-1
		dc.b	"request o","n"+$80,"I",-1
		dc.w	L_ReqOf,-1
		dc.b	"request of","f"+$80,"I",-1
		dc.w	L_ReqWb,-1
		dc.b	"request w","b"+$80,"I",-1
		dc.w 	0

******************************************************************
C_Lib
******************************************************************
*		COLD START
L0	movem.l	a3-a6,-(sp)
	lea	ReqData(pc),a4
	move.l	a4,ExtAdr+ExtNb*16(a5)
	lea	Quit(pc),a0
	move.l	a0,ExtAdr+ExtNb*16+8(a5)
* Copy default palette	
	lea	PI_DefEPa+8*2(a5),a0	
	lea	Req_Pal+8*2(pc),a1
	moveq	#24-1,d0
CPal	move.w	(a0)+,(a1)+
	dbra	d0,CPal
* Branch the requester
	move.l	a5,Datas-ReqData(a4)
	lea	AutoReq(pc),a2
	lea	EasyReq(pc),a3
	Rbsr	L_SetJump
	move.l	a2,PrevAuto-ReqData(a4)
	move.l	a3,PrevEasy-ReqData(a4)
	move.w	#-1,ReqFlag-ReqData(a4)	        * Default is AMOS request
* Return to caller
	movem.l	(sp)+,a3-a6
	moveq	#ExtNb,d0			* NO ERRORS
	rts

******* SCREEN RESET
Warm	rts

******* QUIT
Quit	move.l	PrevAuto(pc),a2
	move.l	PrevEasy(pc),a3
	Rbra	L_SetJump

***********************************************************
*	AMOS REQUESTER

AutoReq	movem.l	a0-a6/d0-d7,-(sp)
	bsr	Req_In
	bpl.s	.Skip
	bsr	Req_Auto
	bra	Req_AMOS
.Skip	move.l	PrevAuto-ReqData(a6),ScAdr-ReqData(a6)
	bra.s	Req_WB

EasyReq	movem.l	a0-a6/d0-d7,-(sp)
	bsr	Req_In
	bpl.s	.Skip
	bsr	Req_Easy
	bra.s	Req_AMOS
.Skip	move.l	PrevEasy-ReqData(a6),ScAdr-ReqData(a6)
	bra.s	Req_WB

******* Dispatch requester between AMOS/WB
Req_In	lea	ReqData(pc),a6
	move.l	Datas-ReqData(a6),a5
	tst	ReqFlag-ReqData(a6)
	beq.s	Req_ANo
	bmi.s	.AMOS
* System requester?
	tst.b	WB_Closed(a5)		WB closed!
	bne.s	.AMOS
.WB	moveq	#1,d0
	rts
* AMOS requester
.AMOS	tst.w	T_AMOSHere(a5)		AMOS here?
	beq.s	.WB
	moveq	#-1,d0
	rts

******* Always no!
Req_ANo	addq.l	#4,sp
	movem.l	(sp)+,a0-a6/d0-d7
	moveq	#0,d0
	rts

******* WB requester
Req_WB	move.w	T_AMOSHere(a5),d0	Is AMOS here?
	move.w	d0,ReqOld-ReqData(a6)
	beq.s	.skip1
	EcCalD	AMOS_WB,0		AMOS To BACK
.skip1	movem.l	(sp),a0-a6/d0-d7
	move.l	ScAdr(pc),a5
	jsr	(a5)
	lea	ReqData(pc),a6
	move.l	Datas-ReqData(a6),a5
	move.l	d0,Req_Pos-ReqData(a6)
	move.w	ReqOld-ReqData(a6),d1
	beq.s	.skip2
	EcCalD	AMOS_WB,1		AMOS To FRONT
.skip2	movem.l	(sp)+,a0-a6/d0-d7
	move.l	Req_Pos(pc),d0
	rts

******* AMOS Normal requester
Req_AMOS

	SyCall	AMALFrz
	bsr	UnMix1

	move.w	Req_Sx-ReqData(a6),d2
	lsl.w	#3,d2
	ext.l	d2
	move.w	Req_Sy-ReqData(a6),d3
	lsl.w	#3,d3
	ext.l	d3
	moveq	#3,d4
	move.l	#$8000,d5
	moveq	#8,d6
	moveq	#0,d7
	lea	Req_Pal-ReqData(a6),a1
	EcCalD	Cree,EcReq
	bne	NoReq
	move.l	a0,ScAdr-ReqData(a6)
	WiCalA	Print,Req_Init-ReqData(a6)

* Top
	moveq	#0,d0
	moveq	#0,d1
	moveq	#0,d2
	moveq	#0,d3
	moveq	#4,d4
	moveq	#3*8,d5
	bsr	Copy
	moveq	#4,d0
	moveq	#1,d4
	move.w	Req_Sx-ReqData(a6),d6
.lp1	bsr	Copy
	subq.w	#1,d6
	cmp.w	#9,d6
	bcc.s	.lp1
	moveq	#10,d0
	moveq	#4,d4
	bsr	Copy
* Middle
	moveq	#3*8,d3
	move.w	Req_Sy-ReqData(a6),d7
	sub.w	#6,d7
.lp2	moveq	#0,d0
	moveq	#3*8,d1
	moveq	#0,d2
	moveq	#2,d4
	moveq	#12,d5
	bsr	Copy
	moveq	#6,d0
	moveq	#1,d4
	move.w	Req_Sx-ReqData(a6),d6
.lp3	bsr	Copy
	subq.w	#1,d6
	cmp.w	#5,d6
	bcc.s	.lp3
	moveq	#12,d0
	moveq	#2,d4
	bsr	Copy
	addq.w	#8,d3
	subq.w	#1,d7
	bne.s	.lp2
* Bottom
	moveq	#0,d0
	moveq	#4*8+4,d1
	moveq	#0,d2
	add.w	#4,d3
	moveq	#1,d4
	moveq	#2*8+4,d5
	bsr	Copy
	moveq	#6,d0
	moveq	#1,d4
	move.w	Req_Sx-ReqData(a6),d6
.lp4	bsr	Copy
	subq.w	#1,d6
	cmp.w	#3,d6
	bcc.s	.lp4
	moveq	#13,d0
	moveq	#1,d4
	bsr	Copy
* Bottom Left
	move.l	Req_Pos-ReqData(a6),a0
.lp5	tst.b	(a0)+
	bne.s	.lp5
	sub.l	Req_Pos-ReqData(a6),a0
	move.w	a0,d6
	moveq	#1,d0
	moveq	#4*8+4,d1
	moveq	#1,d2
	moveq	#2,d4
	moveq	#2*8,d5
	bsr	Copy
	moveq	#3,d0
	moveq	#1,d4
	subq.w	#3+1,d6
	bmi.s	.sk2
.lp6	bsr	Copy
	dbra	d6,.lp6
.sk2	moveq	#4,d0
	moveq	#2,d4
	bsr	Copy
* Bottom right
	move.l	Req_Neg-ReqData(a6),d0
	move.l	d0,a0
	beq.s	.sk1
.lp7	tst.b	(a0)+
	bne.s	.lp7
	sub.l	Req_Neg-ReqData(a6),a0
	move.w	a0,d6
	move.w	Req_Sx-ReqData(a6),d0
	sub.w	a0,d0
	add.b	#48-1,d0
	move.b	d0,XTNeg-ReqData(a6)
	moveq	#8,d0
	moveq	#4*8+4,d1
	move.w	Req_Sx-ReqData(a6),d2
	sub.w	d6,d2
	subq.w	#2,d2
	moveq	#2,d4
	moveq	#2*8,d5
	bsr	Copy
	moveq	#10,d0
	moveq	#1,d4
	subq.w	#3+1,d6
	bmi.s	.sk3
.lp8	bsr	Copy
	dbra	d6,.lp8
.sk3	moveq	#11,d0
	moveq	#2,d4
	bsr	Copy
.sk1
* End of init
	SyCalD	ResZone,2
	move.w	Req_Sy-ReqData(a6),d0
	lsl.w	#3,d0
	move.w	d0,Req_Sy-ReqData(a6)

* Initialise background text
	WiCalA	Centre,T_Tit(a4)
* Print main text
	WiCalA	Print,Req_Main(pc)
	lea	T_Text(a4),a1
.lop	move.l	a1,-(sp)
	WiCall	Centre
	move.l	(sp)+,a1
.lop1	tst.b	(a1)+
	bne.s	.lop1
	tst.b	(a1)
	bne.s	.lop
* Positive text (left)
	moveq	#1,d0
	moveq	#"0",d1
	bsr	PrtZone
* Negative text (right)
	move.l	Req_Neg-ReqData(a6),d0
	beq.s	.NoNeg
	move.l	d0,a0
	moveq	#2,d0
	moveq	#"0",d1
	bsr	PrtZone
* Screen appearance
.NoNeg	move.l	ScAdr-ReqData(a6),a2
	move.w	#288,d0
	move.w	Req_Sx-ReqData(a6),d1
	lsl.w	#1,d1
	sub.w	d1,d0
	move.w	d0,EcAWX(a2)
	bset	#1,EcAW(a2)
	moveq	#8,d7
	moveq	#1,d6
	move.w	Req_Sy-ReqData(a6),d5
	lsr.w	#1,d5
	add.w	#Req_Wy,d5
	bsr	AppCentre
* State of disc drive
	SyCall	GetDisc
	move.w	d0,DOld-ReqData(a6)

******* Test loop (fun!)
ReqLoop	
	bsr	UnMix2
	move.l	a6,-(sp)
	move.l	T_GfxBase(a5),a6
	jsr	-270(a6)		WaitTOF
	move.l	(sp)+,a6
	bsr	UnMix1

* Automatic disc change
	move.l	Req_IDCMP-ReqData(a6),d0
	btst	#15,d0
	beq.s	NoAuto
	SyCall	GetDisc
	cmp.w	DOld-ReqData(a6),d0
	beq.s	NoAuto
	move.w	d0,DOld-ReqData(a6)
	bne	ReqYes
* Keyboard
NoAuto	SyCall	Inkey
	cmp.w	#13,d1		* ASCII-> Return 
	beq.s	ReqYes	
	cmp.w	#27,d1		* ASCII-> ESC
	beq.s	ReqNo	
* Don't you think it is better than this wierd Amiga V and B?
* Sometime I ask myself what they were thinking when they chose such
* key combinations!
	swap	d1
	move.w	d1,d0		* Isolate AMIGA keys
	and.w	#%1100000000000000,d0
	beq.s	RqL0
	cmp.b	#$34,d1		* V
	beq.s	ReqYes
	cmp.b	#$35,d1		* B
	beq.s	ReqNo
* Mouse pointer
RqL0	SyCall	GetZone
	cmp.w	#EcReq,d1
	beq.s	RqL1
	moveq	#0,d1
RqL1:	swap 	d1
	cmp.w	d7,d1
	beq.s	RqL2
	move.w	d7,d0
	move.w	d1,d7
	moveq	#"0",d1
	bsr	PrtZone
RqL2:	move.w	d7,d0
	moveq	#"1",d1
	bsr	PrtZone
	tst.w	d7
	beq	ReqLoop
	SyCall	MouseKey
	tst.w	d1
	beq	ReqLoop
	cmp.w	#2,d7
	beq.s	ReqNo
ReqYes	moveq	#-1,d0
	bra.s	ReqGo
ReqNo	moveq	#0,d0

******* End of screen (well done!!!)
ReqGo	move.l	d0,-(sp)
	move.l	ScAdr-ReqData(a6),a2
	moveq	#-8,d7
	move.w	EcTY(a2),d6
	lsr.w	#1,d6
	move.w	Req_Sy-ReqData(a6),d5
	lsr.w	#1,d5
	add.w	#Req_Wy,d5
	bsr	AppCentre
	EcCalD	Del,EcReq

******* Back to system!
ReqX	bsr	UnMix2
	bsr	ClrData
	SyCall	AMALUFrz	
	move.l	(sp)+,Req_Pos-ReqData(a6)	* Returns answer
* Normal exit
ReqXX	movem.l	(sp)+,a0-a6/d0-d7
	move.l	Req_Pos(pc),d0
	rts
******* Can't open screen!!!
NoReq	clr.l	-(sp)
	bra.s	ReqX

******* Print a zone D0-> zone, D1-> inverse or not
PrtZone	subq.w	#1,d0
	bmi.s	PrtX
	bne.s	PrtNeg
* Print pos text
PrtPos	tst.l	Req_Pos-ReqData(a6)
	beq.s	.skip
	lea	TPos1-ReqData(a6),a1
	move.b	d1,8(a1)
	WiCall	Print
	move.l	Req_Pos-ReqData(a6),a1
	WiCall	Print
	WiCalA	Print,TPos2-ReqData(a6)
.skip	bra.s	PrtX
* Print neg text
PrtNeg	tst.l	Req_Neg-ReqData(a6)
	beq.s	.skip
	lea	TNeg1-ReqData(a6),a1
	move.b	d1,8(a1)
	WiCall	Print
	move.l	Req_Neg-ReqData(a6),a1
	WiCall	Print
	WiCalA	Print,TNeg2-ReqData(a6)
.skip
PrtX	rts

******* Screen appearance
AppCentre:
	move.w	d6,d4
	move.w	d6,EcAWTy(a2)
	add.w	d6,EcAWTy(a2)
	bset	#2,EcAWT(a2)
	move.w	EcTy(a2),d0
	lsr.w	#1,d0
	sub.w	d6,d0
	move.w	d0,EcAVY(a2)
	bset	#2,EcAV(a2)
	move.w	d5,EcAWy(a2)
	sub.w	d6,EcAWy(a2)
	bset	#2,EcAW(a2)
	movem.l	a2/d4-d7,-(sp)
	SyCall	WaitVBL
	EcCall	CopForce
	movem.l	(sp)+,a2/d4-d7
	add.w	d7,d6
	bpl.s	FsApp2
	clr.w	d6
FsApp2:	move.w	EcTy(a2),d0
	lsr.w	#1,d0
	cmp.w	d0,d6
	bcs.s	FsApp3
	move.w	d0,d6
FsApp3:	cmp.w	d4,d6
	bne.s	AppCentre
	rts

******* Prevent mixes between AMOS and the requester!
UnMix1	movem.l	d0-d7/a0-a6,-(sp)
	move.l	$4.w,a6
	jsr	Forbid(a6)
	EcCall	Current
	move.w	EcNumber(a0),d1
	lea	ReqOld(pc),a0
	move.w	d1,(a0)
	EcCalD	Active,EcReq
	EcCalD	First,EcReq
	EcCall	CopMake
	SyCall	WaitVBL
	movem.l	(sp)+,d0-d7/a0-a6
	rts
UnMix2	movem.l	d0-d7/a0-a6,-(sp)
	move.w	ReqOld(pc),d1
	EcCall	Active
	move.l	$4.w,a6
	jsr	Permit(a6)
	movem.l	(sp)+,d0-d7/a0-a6
	rts

******* Open TEXT data zone
ResData	move.l	#T_Size,d0
	SyCall	SyFast
	move.l	d0,a4
	rts
******* Clear TEXT data zone
ClrData	move.l	#T_Size,d0
	move.l	a4,a1
	SyCall	SyFree
	rts

******* Entree requester WB1.3
Req_Auto

	bsr	ResData

	move.l	#$00008000,Req_IDCMP-ReqData(a6)

	lsr.w	#3,d2
	addq.w	#3,d2
	and.w	#$FFFC,d2
	move.w	d2,Req_Sx-ReqData(a6)
	lsr.w	#3,d3
	addq.w	#2,d3
	move.w	d3,Req_Sy-ReqData(a6)

	move.l	a1,a0
	lea	T_Text(a4),a1
	moveq	#10,d0
	bsr	IT_Print

	clr.l	Req_Pos-ReqData(a6)
	lea	T_Gad(a4),a1
	move.l	a2,d0
	move.l	d0,a0
	beq.s	.skip1
	move.l	a1,Req_Pos-ReqData(a6)
	moveq	#0,d0
	bsr	IT_Print
.skip1
	clr.l	Req_Neg-ReqData(a6)
	lea	T_Gad+64(a4),a1
	move.l	a3,d0
	move.l	d0,a0
	beq.s	.skip2
	move.l	a1,Req_Neg-ReqData(a6)
	moveq	#0,d0
	bsr	IT_Print
.skip2
	lea	Req_Tit(pc),a0
	lea	T_Tit(a4),a1
.loop	move.b	(a0)+,(a1)+
	bne.s	.loop
	rts	

******* Entree requester WB2.0: fabrique les chaines de caracteres
Req_Easy
	bsr	ResData
	move.l	(a2),Req_IDCMP-ReqData(a6)

	lea	8(a1),a2
	clr.w	TxtMaxCx-ReqData(a6)

	lea	T_Tit(a4),a1
	move.l	(a2)+,d0
	move.l	d0,a0
	bne.s	.nof
	lea	Req_Tit(pc),a0
.nof	bsr	Format

	move.l	(a2)+,a0
	lea	T_Text(a4),a1
	bsr	Format
	move.w	TxtCy-ReqData(a6),Req_Sy-ReqData(a6)

	move.l	(a2)+,a0
	lea	T_Gad(a4),a1
	bsr	Format

	lea	T_Gad(a4),a0
	move.l	a0,Req_Pos-ReqData(a6)
	clr.l	Req_Neg-ReqData(a6)
.loop	move.b	(a0)+,d0
	beq.s	.skp
	cmp.b	#"|",d0
	bne.s	.loop
	clr.b	-1(a0)
	move.l	a0,Req_Neg-ReqData(a6)
.skp
	move.w	TxtMaxCx-ReqData(a6),d0
	cmp.w	#32,d0
	bcc.s	.skp2
	moveq	#32,d0
.skp2	add.w	#9,d0
	and.w	#$FFFC,d0
	move.w	d0,Req_Sx-ReqData(a6)

	add.w	#8,Req_Sy-ReqData(a6)
	rts

** Routine, appel de RawDoFmt
Format	clr.w	TxtCx-ReqData(a6)
	move.w	#1,TxtCy-ReqData(a6)
	movem.l	a2/a3/a6,-(sp)
	exg	a3,a1
	lea	.OutC(pc),a2
	move.l	$4.w,a6
	jsr	-522(a6)
	exg	a3,a1
	movem.l	(sp)+,a2/a3/a6
.XMax	move.w	TxtCx-ReqData(a6),d0
	cmp.w	TxtMaxCx-ReqData(a6),d0
	bls.s	.sk
	move.w	d0,TxtMaxCx-ReqData(a6)
.sk	rts
.OutC	movem.l	a6/d0,-(sp)
	lea	ReqData(pc),a6
	addq.w	#1,TxtCx-ReqData(a6)
	move.b	d0,(a3)+
	cmp.b	#10,d0
	bne.s	.Skip
	clr.b	(a3)+
	addq.w	#1,TxtCy-ReqData(a6)
	bsr.s	.XMax
	clr.w	TxtCx-ReqData(a6)
.Skip	movem.l	(sp)+,a6/d0
	clr.b	(a3)
	rts

******* Routine: copie un intuitext dans le buffer
*	A0-> ITEXT
*	A1-> Buffer
*	D0-> Mettre un 10 a la fin...
IT_Print
	movem.l	a0-a2/d0-d1,-(sp)
.loop	move.l	12(a0),d1
	move.l	d1,a2
	beq.s	.skip
.loop1	move.b	(a2)+,(a1)+
	bne.s	.loop1
	tst.w	d0
	beq.s	.skip
	move.b	d0,-1(a1)
	clr.b	(a1)+
.skip	move.l	16(a0),d1
	move.l	d1,a0
	bne.s	.loop
	movem.l	(sp)+,a0-a2/d0-d1
	rts

******* Routine: copie les donnees binaires
Copy	movem.l	d0-d7/a0-a5,-(sp)
	mulu	#RPic_Sx/8,d1			d1= offset source
	add.l	d1,d0
	lea	RPic-ReqData(a6),a0		a0= adress source
	move.w	Req_Sx-ReqData(a6),d1
	ext.l	d1				d1= size of dest line
	mulu	d1,d3
	add.l	d2,d3				d3= offset dest
	move.l	ScAdr-ReqData(a6),a3		a3= dest screen
	subq.w	#1,d4
	subq.w	#1,d5
	move.w	#RPic_NP-1,d2
.loop1	move.l	(a3)+,a4
	add.l	d3,a4
	move.l	a0,a1
	add.l	d0,a1
	move.w	d5,d7
.loop2	move.w	d4,d6
	move.l	a1,a2
	move.l	a4,a5
.loop3	move.b	(a2)+,(a5)+
	dbra	d6,.loop3
	add.w	#RPic_Sx/8,a1		
	add.l	d1,a4
	dbra	d7,.loop2
	add.w	#(RPic_Sx/8)*RPic_Sy,a0
	dbra	d2,.loop1
	movem.l	(sp)+,d0-d7/a0-a5
	add.w	d4,d2
	rts

;--------------------------------------------------------------------
*		DATA ZONE
ReqData		
*
ScAdr		dc.l 	0
Datas		dc.l 	0
PrevAuto	dc.l	0
PrevEasy	dc.l	0

Req_Sx		dc.w 	0
Req_Sy		dc.w	0
Req_Pos		dc.l	0
Req_Neg		dc.l	0

Req_IDCMP	dc.l	0
ReqFlag		dc.w 	0
ReqOld		dc.w 	0
DOld		dc.w	0
TxtCx		dc.w	0
TxtMaxCx	dc.w	0
TxtCy		dc.w	0

* 		Title
Req_Tit		dc.b "System request",0
Req_Init	dc.b 27,"C0",27,"V0",27,"Y1",27,"B2",27,"P7",0
*		Main text
Req_Main	dc.b 27,"B2",27,"P3",27,"Y4",0
* 		Positive text
TPos1		dc.b 27,"B4",27,"P3",27,"I0",24,30,30,27,"X2",27,"Z0",0
TPos2		dc.b 27,"Z1",0
* 		Negative text
TNeg1		dc.b 27,"B4",27,"P3",27,"I0",24,30,30,27,"X"
XTNeg		dc.b "0",27,"Z0",0
TNeg2		dc.b 27,"Z2",0
		even
RPic_Sx		equ	112
RPic_Sy		equ	56
RPic_Np		equ	3

Req_Pal		Incbin	"ReqPic.Bin"
RPic		equ	Req_Pal+32*2

		even

;--------------------------------------------------------------------

L1
L2
L3

***********************************************************
*		REQUEST WB
L_ReqWb		equ	4
L4	moveq	#1,d0
	Rbra	L_ROnOf
*********************************************************** 
*		REQUEST ON
L_ReqOn		equ	5
L5	moveq	#-1,d0
	Rbra	L_ROnOf
*********************************************************** 
*		REQUEST OFF
L_ReqOf		equ	6
L6	moveq	#0,d0
	Rbra	L_ROnOf
*
L_ROnOf		equ	7
L7	move.l	ExtAdr+ExtNb*16(a5),a0
	move.w	d0,ReqFlag-ReqData(a0)
	rts

********************************************************** 
*	Change the library jumps
*	a2->	AutoRequest entry
*	a3->	EasyRequest entry
L_SetJump	equ	8
L8	movem.l	a0/a1/a6,-(sp)
	move.l	$4.w,a6
* AutoRequest
	move.l	a2,d0
	lea	-$15c,a0
	move.l	T_IntBase(a5),a1
	jsr	SetFunction(a6)
	move.l	d0,a2
* EasyRequest
	tst.w	WB2.0(a5)
	beq.s	.skip
	move.l	a3,d0
	lea	-$1d4-(20*6),a0
	move.l	T_IntBase(a5),a1
	jsr	SetFunction(a6)
	move.l	d0,a3
.skip	movem.l	(sp)+,a0/a1/a6
	rts

**********************************************************
*	Even if you do not have error messages, you MUST
*	leave TWO routines empty at the end...
L9
L10
* Two routines means three borders!
L11

*******************************************************************************

* 		Welcome message
C_Title		dc.b 	"AMOSPro Requester V"
		Version
		dc.b	0,"$VER: "
		Version
		dc.b	0
		Even
*		End of extension
C_End		dc.w	0

	even
