Scaler::init:
		lap	param[$0]
		bnt	code_0054
		lap	param[$1]
		aTop	client
		lap	param[$2]
		aTop	frontSize
		lap	param[$3]
		aTop	backSize
		lap	param[$4]
		aTop	frontY
		lap	param[$5]
		aTop	backY
code_0054:	pTos	frontSize
		pToa	backSize
		sub
		aTop	slopeNum
		pTos	frontY
		pToa	backY
		sub
		aTop	slopeDen
		not
		bnt	code_0074
		push1
		lofsa	string_0030	; "<Scaler> frontY cannot be equal to backY"
		push
		calle	export60029_0, $2
		bnot
		ldi	$0
		ret

code_0074:	pTos	backSize
		pTos	slopeNum
		pToa	backY
		mul
		push
		pToa	slopeDen
		div
		sub
		aTop	const
		pushi	$45		; 69, 'E', doit
		push0
		self	$4
		bnot
		ret

Scaler::doit:
		link	$5
		push2
		push0
		pToa	client
		send	$4
		bnot
		sat	temp[$0]
		lap	param[$0]
		bnt	code_009a
		lap	param[$1]
code_009a:	bt	code_00a1
		lst	temp[$0]
		pToa	yLast
		ne?
code_00a1:	bnt	code_012f
		lst	temp[$0]
		pToa	backY
		lt?
		bnt	code_00b1
		pToa	backSize
		sat	temp[$1]
		jmp	code_00cd

code_00b1:	lst	temp[$0]
		pToa	frontY
		gt?
		bnt	code_00be
		pToa	frontSize
		sat	temp[$1]
		jmp	code_00cd

code_00be:	pTos	slopeNum
		lat	temp[$0]
		mul
		push
		pToa	slopeDen
		div
		push
		pToa	const
		add
		sat	temp[$1]
code_00cd:	lat	temp[$0]
		aTop	yLast
		lst	temp[$1]
		pushi	$152		; 338, xScaleAdj
		push0
		pToa	client
		send	$4
		bnot
		mul
		push
		ldi	$64		; 100, 'd', moveDone
		div
		sat	temp[$2]
		lst	temp[$1]
		pushi	$153		; 339, yScaleAdj
		push0
		pToa	client
		send	$4
		bnot
		mul
		push
		ldi	$64		; 100, 'd', moveDone
		div
		sat	temp[$3]
		pushi	$4		; scaleX
		push1
		push2
		push1
		lst	temp[$2]
		calle	export60025_3, $4
		bnot
		push
		pushi	$5		; scaleY
		push1
		push2
		push1
		lst	temp[$3]
		calle	export60025_3, $4
		bnot
		push
		pToa	client
		send	$c
		bnot
		pushi	$1007		; 4103, -info-
		push1
		pushi	$1007		; 4103, -info-
		push0
		pToa	client
		send	$4
		bnot
		push
		ldi	$8		; fixPriority
		or
		push
		pToa	client
		send	$6
		bnot
code_012f:	ret

