
TRANSFERHEAD	MACRO
	MOVEQ	#0,D0
	RTS

STARTOFTRANSFER
	ILLEGAL
	DC.L	STARTOFTRANSFER
	DC.L	\2
	DC.L	$80000900
	DC.L	.TRANSNAME
	DC.L	.TRANSVERSION
	DC.L	.TRANSNODELIST
.TRANSNAME
	DC.B	'\3.transfer',0	;TRANSFER name must be the same as
					;saved and in lower case
	DC.B	'$VER: '
.TRANSVERSION
	DC.B	\4,0
	EVEN

.TRANSNODELIST
	DC.L	$2A
	DC.L	.TRANSNODELIST1
	DC.L	0
	DC.L	.0

.0	EXG	D0,A5
	MOVE.L	A6,$22(A5)
	MOVE.L	A0,$26(A5)
	MOVE.W	#$1D,$16(A5)
	EXG	D0,A5
	RTS

.TRANSNODELIST1
	DC.L	.INSTALLTRANSFER	Don't change
	DC.L	.REMOVETRANSFER		Don't change
	DC.L	.EXIT			Don't change
	DC.L	.EXIT			Don't change
	DC.L	INITTRASH		Don't Change
	DC.L	\1
	DC.L	INITTRASH1
	DC.L	.RESERVED
	DC.L	.RESERVED
	DC.L	.RESERVED
	DC.L	.RESERVED
	DC.L	.RESERVED
	DC.L	.RESERVED
	DC.L	.RESERVED
	DC.L	.RESERVED
	DC.L	.RESERVED
	DC.L	.RESERVED
	DC.L	.RESERVED
	DC.L	-1

.RESERVED
	rts

.EXIT	MOVEQ	#0,D0
	RTS

.INSTALLTRANSFER
	ADDQ.W	#1,$20(A6)
	MOVE.L	A6,D0
	;START UP PROCEDURE
	RTS

.REMOVETRANSFER
	SUBQ.W	#1,$20(A6)
	BNE.S	.End
	MOVEM.L	D2/A5/A6,-(SP)
	MOVEA.L	A6,A5
	MOVE.L	$26(A5),D2
	MOVEA.L	A5,A1
	MOVEA.L	(A1)+,A0
	MOVEA.L	(A1),A1
	MOVE.L	A0,(A1)
	MOVE.L	A1,4(A0)
	MOVEA.L	$22(A5),A6
	MOVEA.L	A5,A1
	MOVEQ	#0,D0
	MOVE.W	$10(A5),D0
	SUBA.L	D0,A1
	ADD.W	$12(A5),D0
	JSR	-$D2(A6)
	MOVE.L	D2,D0
	MOVEM.L	(SP)+,D2/A5/A6
.End	RTS

******* LIBRARY HEADER FOR EXTERN TRANSFER *******

INITTRASH	MOVE.L	D0,CODE_START
		MOVE.L	D1,RELO_START
		MOVE.L	D2,RELO_END
		MOVE.L	D3,DATA_MAINSCREENHANDLE
		MOVE.L	D4,DATA_MAINWINDOWHANDLE
		MOVE.W	D5,NUMBER_OF_SECTIONS
		MOVE.L	D6,GETLABEL\.0+2
		MOVE.L	A0,PRINTTEXT\.0+2
		MOVE.L	A1,SECTION_ABS_LOCATION
		MOVE.L	A2,SECTION_ORG_ADDRESS
		MOVE.L	A3,SECTION_TYPE_TABLE
		rts
INITTRASH1	MOVE.L	D0,DOSBASE
		rts

******* CODE FOR EXTERN TRANSFER ******

PRINTTEXT	MOVEM.L	D0-A6,-(SP)
.0		JSR	$00000000.L
		MOVEM.L	(SP)+,D0-A6
		RTS

GETLABEL	MOVEM.L	D0/D4-A6,-(SP)
		MOVE.L	A1,A3
.1		TST.W	(A1)+
		BPL.S	.1
		SUBQ.W	#2,A1
		MOVEQ	#0,D7
.0		JSR	$00000000.L
		MOVEM.L	(SP)+,D0/D4-A6
		RTS

CODE_START	DC.L	0
CODE_END
RELO_START	DC.L	0
RELO_END	DC.L	0	
DATA_MAINSCREENHANDLE
		DC.L	0
DATA_MAINWINDOWHANDLE
		DC.L	0
SECTION_ABS_LOCATION
		DC.L	0
SECTION_ORG_ADDRESS
		DC.L	0
SECTION_TYPE_TABLE
		DC.L	0
NUMBER_OF_SECTIONS
		DC.W	0
DOSBASE		DC.L	0
		ENDM

