
; Storm C Compiler
; Work2:Mesa3/Mesa-3.0/src/rastpos.c
	mc68030
	mc68881
	XREF	_gl_shade_ci
	XREF	_gl_shade_rgba
	XREF	_gl_analyze_texture_matrix
	XREF	_gl_analyze_projection_matrix
	XREF	_gl_analyze_modelview_matrix
	XREF	_gl_update_hitflag
	XREF	_gl_userclip_point
	XREF	_gl_viewclip_point
	XREF	_sqrt__r

	SECTION "_gl_RasterPos4f:0",CODE


;void gl_RasterPos4f( GLcontext *ctx,
	XDEF	_gl_RasterPos4f
_gl_RasterPos4f
L51	EQU	-$54
	link	a5,#L51
	move.l	a2,-(a7)
	fmovem.x fp2/fp3,-(a7)
	move.l	$8(a5),a2
	fmove.s	$18(a5),fp0
	fmove.s	$14(a5),fp1
	fmove.s	$10(a5),fp2
	fmove.s	$C(a5),fp3
L27
;   ASSIGN_4V( v, x, y, z, w )
	fmove.s	fp3,-$10(a5)
;   ASSIGN_4V( v, x, y, z, w )
	lea	-$10(a5),a0
	fmove.s	fp2,4(a0)
;   ASSIGN_4V( v, x, y, z, w )
	lea	-$10(a5),a0
	fmove.s	fp1,$8(a0)
;   ASSIGN_4V( v, x, y, z, w )
	lea	-$10(a5),a0
	fmove.s	fp0,$C(a0)
;   if (ctx->NewModelViewMatrix) 
	tst.b	$9F4(a2)
	beq.b	L29
L28
;      gl_analyze_modelview_matrix(ctx);
	move.l	a2,-(a7)
	jsr	_gl_analyze_modelview_matrix
	addq.w	#4,a7
L29
;   if (ctx->NewProjectionMatrix) 
	tst.b	$127E(a2)
	beq.b	L31
L30
;      gl_analyze_projection_matrix(ctx);
	move.l	a2,-(a7)
	jsr	_gl_analyze_projection_matrix
	addq.w	#4,a7
L31
;   if (ctx->NewTextureMatrix) 
	tst.b	$1BC8(a2)
	beq.b	L33
L32
;      gl_analyze_texture_matrix(ctx);
	move.l	a2,-(a7)
	jsr	_gl_analyze_texture_matrix
	addq.w	#4,a7
L33
;   TRANSFORM_POINT(
	fmove.s	$9FA(a2),fp0
	fmul.s	-$10(a5),fp0
	lea	$9FA(a2),a0
	fmove.s	$10(a0),fp1
	lea	-$10(a5),a0
	fmul.s	4(a0),fp1
	fadd.x	fp1,fp0
	lea	$9FA(a2),a0
	fmove.s	$20(a0),fp1
	lea	-$10(a5),a0
	fmul.s	$8(a0),fp1
	fadd.x	fp1,fp0
	lea	$9FA(a2),a0
	fmove.s	$30(a0),fp1
	lea	-$10(a5),a0
	fmul.s	$C(a0),fp1
	fadd.x	fp1,fp0
	fmove.s	fp0,-$20(a5)
;   TRANSFORM_POINT(
	lea	$9FA(a2),a0
	fmove.s	4(a0),fp0
	fmul.s	-$10(a5),fp0
	lea	$9FA(a2),a0
	fmove.s	$14(a0),fp1
	lea	-$10(a5),a0
	fmul.s	4(a0),fp1
	fadd.x	fp1,fp0
	lea	$9FA(a2),a0
	fmove.s	$24(a0),fp1
	lea	-$10(a5),a0
	fmul.s	$8(a0),fp1
	fadd.x	fp1,fp0
	lea	$9FA(a2),a0
	fmove.s	$34(a0),fp1
	lea	-$10(a5),a0
	fmul.s	$C(a0),fp1
	fadd.x	fp1,fp0
	lea	-$20(a5),a0
	fmove.s	fp0,4(a0)
;   TRANSFORM_POINT(
	lea	$9FA(a2),a0
	fmove.s	$8(a0),fp0
	fmul.s	-$10(a5),fp0
	lea	$9FA(a2),a0
	fmove.s	$18(a0),fp1
	lea	-$10(a5),a0
	fmul.s	4(a0),fp1
	fadd.x	fp1,fp0
	lea	$9FA(a2),a0
	fmove.s	$28(a0),fp1
	lea	-$10(a5),a0
	fmul.s	$8(a0),fp1
	fadd.x	fp1,fp0
	lea	$9FA(a2),a0
	fmove.s	$38(a0),fp1
	lea	-$10(a5),a0
	fmul.s	$C(a0),fp1
	fadd.x	fp1,fp0
	lea	-$20(a5),a0
	fmove.s	fp0,$8(a0)
;   TRANSFORM_POINT(
	lea	$9FA(a2),a0
	fmove.s	$C(a0),fp0
	fmul.s	-$10(a5),fp0
	lea	$9FA(a2),a0
	fmove.s	$1C(a0),fp1
	lea	-$10(a5),a0
	fmul.s	4(a0),fp1
	fadd.x	fp1,fp0
	lea	$9FA(a2),a0
	fmove.s	$2C(a0),fp1
	lea	-$10(a5),a0
	fmul.s	$8(a0),fp1
	fadd.x	fp1,fp0
	lea	$9FA(a2),a0
	fmove.s	$3C(a0),fp1
	lea	-$10(a5),a0
	fmul.s	$C(a0),fp1
	fadd.x	fp1,fp0
	lea	-$20(a5),a0
	fmove.s	fp0,$C(a0)
;   if (ctx->Light.Enabled) 
	lea	$2318(a2),a0
	add.l	#$8E06,a0
	tst.b	(a0)
	beq	L38
L34
;                        ct
	fmove.s	$221E(a2),fp0
	fmul.s	$A3A(a2),fp0
	lea	$221E(a2),a0
	fmove.s	4(a0),fp1
	lea	$A3A(a2),a0
	fmul.s	4(a0),fp1
	fadd.x	fp1,fp0
	lea	$221E(a2),a0
	fmove.s	$8(a0),fp1
	lea	$A3A(a2),a0
	fmul.s	$8(a0),fp1
	fadd.x	fp1,fp0
	fmove.s	fp0,-$4C(a5)
;                        ct
	lea	$A3A(a2),a0
	fmove.s	$221E(a2),fp0
	fmul.s	$10(a0),fp0
	lea	$221E(a2),a0
	fmove.s	4(a0),fp1
	lea	$A3A(a2),a0
	fmul.s	$14(a0),fp1
	fadd.x	fp1,fp0
	lea	$221E(a2),a0
	fmove.s	$8(a0),fp1
	lea	$A3A(a2),a0
	fmul.s	$18(a0),fp1
	fadd.x	fp1,fp0
	lea	-$4C(a5),a0
	fmove.s	fp0,4(a0)
;                        ct
	lea	$A3A(a2),a0
	fmove.s	$221E(a2),fp0
	fmul.s	$20(a0),fp0
	lea	$221E(a2),a0
	fmove.s	4(a0),fp1
	lea	$A3A(a2),a0
	fmul.s	$24(a0),fp1
	fadd.x	fp1,fp0
	lea	$221E(a2),a0
	fmove.s	$8(a0),fp1
	lea	$A3A(a2),a0
	fmul.s	$28(a0),fp1
	fadd.x	fp1,fp0
	lea	-$4C(a5),a0
	fmove.s	fp0,$8(a0)
;      if (ctx->Visual->RGBAflag) 
	move.l	$8F8(a2),a0
	tst.b	(a0)
	beq	L36
L35
;         gl_shade_rgba( ctx, 0, 1, &eye, &eyenorm, &color );
	pea	-$50(a5)
	pea	-$4C(a5)
	pea	-$20(a5)
	pea	1.w
	clr.l	-(a7)
	move.l	a2,-(a7)
	jsr	_gl_shade_rgba
	add.w	#$18,a7
;         ctx->Current.RasterColor[0] = color[0] * (1.0F / 2
	moveq	#0,d0
	move.b	-$50(a5),d0
	fmove.l	d0,fp0
	fmul.s	#$.3B808080,fp0
	fmove.s	fp0,$2262(a2)
;         ctx->Current.RasterColor[1] = color[1] * (1.0F / 2
	lea	-$50(a5),a0
	moveq	#0,d0
	move.b	1(a0),d0
	fmove.l	d0,fp0
	fmul.s	#$.3B808080,fp0
	lea	$2262(a2),a0
	fmove.s	fp0,4(a0)
;         ctx->Current.RasterColor[2] = color[2] * (1.0F / 2
	lea	-$50(a5),a0
	moveq	#0,d0
	move.b	2(a0),d0
	fmove.l	d0,fp0
	fmul.s	#$.3B808080,fp0
	lea	$2262(a2),a0
	fmove.s	fp0,$8(a0)
;         ctx->Current.RasterColor[3] = color[3] * (1.0F / 2
	lea	-$50(a5),a0
	moveq	#0,d0
	move.b	3(a0),d0
	fmove.l	d0,fp0
	fmul.s	#$.3B808080,fp0
	lea	$2262(a2),a0
	fmove.s	fp0,$C(a0)
	bra	L41
L36
;	 gl_shade_ci( ctx, 0, 1, &eye, &eyenorm, &ctx->Current.RasterInde
	pea	$2272(a2)
	pea	-$4C(a5)
	pea	-$20(a5)
	pea	1.w
	clr.l	-(a7)
	move.l	a2,-(a7)
	jsr	_gl_shade_ci
	add.w	#$18,a7
L37
	bra	L41
L38
;      if (ctx->Visual->RGBAflag) 
	move.l	$8F8(a2),a0
	tst.b	(a0)
	beq.b	L40
L39
;         GLfloat *rc = ctx->Current.RasterColor;
	lea	$2262(a2),a0
;         rc[0] = ctx->Current.ByteColor[0] * (1.0F / 255.0F)
	moveq	#0,d0
	move.b	$2216(a2),d0
	fmove.l	d0,fp0
	fmul.s	#$.3B808080,fp0
	fmove.s	fp0,(a0)
;         rc[1] = ctx->Current.ByteColor[1] * (1.0F / 255.0F)
	lea	$2216(a2),a1
	moveq	#0,d0
	move.b	1(a1),d0
	fmove.l	d0,fp0
	fmul.s	#$.3B808080,fp0
	fmove.s	fp0,4(a0)
;         rc[2] = ctx->Current.ByteColor[2] * (1.0F / 255.0F)
	lea	$2216(a2),a1
	moveq	#0,d0
	move.b	2(a1),d0
	fmove.l	d0,fp0
	fmul.s	#$.3B808080,fp0
	fmove.s	fp0,$8(a0)
;         rc[3] = ctx->Current.ByteColor[3] * (1.0F / 255.0F)
	lea	$2216(a2),a1
	moveq	#0,d0
	move.b	3(a1),d0
	fmove.l	d0,fp0
	fmul.s	#$.3B808080,fp0
	fmove.s	fp0,$C(a0)
	bra.b	L41
L40
;	 ctx->Current.RasterIndex = ctx->Current.Index;
	move.l	$221A(a2),d0
	move.l	d0,$2272(a2)
L41
;   if (gl_userclip_point(ctx, eye)==0) 
	pea	-$20(a5)
	move.l	a2,-(a7)
	jsr	_gl_userclip_point
	addq.w	#$8,a7
	tst.l	d0
	bne.b	L43
L42
;      ctx->Current.RasterPosValid = GL_FALSE;
	clr.b	$229A(a2)
	fmovem.x (a7)+,fp2/fp3
	move.l	(a7)+,a2
	unlk	a5
	rts
L43
;   ctx->Current.RasterDistance =
	fmove.s	-$20(a5),fp0
	fmul.s	-$20(a5),fp0
	lea	-$20(a5),a0
	fmove.s	4(a0),fp1
	lea	-$20(a5),a0
	fmul.s	4(a0),fp1
	fadd.x	fp1,fp0
	lea	-$20(a5),a0
	fmove.s	$8(a0),fp1
	lea	-$20(a5),a0
	fmul.s	$8(a0),fp1
	fadd.x	fp1,fp0
	fmove.d	fp0,-(a7)
	jsr	_sqrt__r
	addq.w	#$8,a7
	fmove.s	fp0,$225E(a2)
; TRANSFORM_POINT(
	fmove.s	$1284(a2),fp0
	fmul.s	-$20(a5),fp0
	lea	$1284(a2),a0
	fmove.s	$10(a0),fp1
	lea	-$20(a5),a0
	fmul.s	4(a0),fp1
	fadd.x	fp1,fp0
	lea	$1284(a2),a0
	fmove.s	$20(a0),fp1
	lea	-$20(a5),a0
	fmul.s	$8(a0),fp1
	fadd.x	fp1,fp0
	lea	$1284(a2),a0
	fmove.s	$30(a0),fp1
	lea	-$20(a5),a0
	fmul.s	$C(a0),fp1
	fadd.x	fp1,fp0
	fmove.s	fp0,-$30(a5)
; TRANSFORM_POINT(
	lea	$1284(a2),a0
	fmove.s	4(a0),fp0
	fmul.s	-$20(a5),fp0
	lea	$1284(a2),a0
	fmove.s	$14(a0),fp1
	lea	-$20(a5),a0
	fmul.s	4(a0),fp1
	fadd.x	fp1,fp0
	lea	$1284(a2),a0
	fmove.s	$24(a0),fp1
	lea	-$20(a5),a0
	fmul.s	$8(a0),fp1
	fadd.x	fp1,fp0
	lea	$1284(a2),a0
	fmove.s	$34(a0),fp1
	lea	-$20(a5),a0
	fmul.s	$C(a0),fp1
	fadd.x	fp1,fp0
	lea	-$30(a5),a0
	fmove.s	fp0,4(a0)
; TRANSFORM_POINT(
	lea	$1284(a2),a0
	fmove.s	$8(a0),fp0
	fmul.s	-$20(a5),fp0
	lea	$1284(a2),a0
	fmove.s	$18(a0),fp1
	lea	-$20(a5),a0
	fmul.s	4(a0),fp1
	fadd.x	fp1,fp0
	lea	$1284(a2),a0
	fmove.s	$28(a0),fp1
	lea	-$20(a5),a0
	fmul.s	$8(a0),fp1
	fadd.x	fp1,fp0
	lea	$1284(a2),a0
	fmove.s	$38(a0),fp1
	lea	-$20(a5),a0
	fmul.s	$C(a0),fp1
	fadd.x	fp1,fp0
	lea	-$30(a5),a0
	fmove.s	fp0,$8(a0)
; TRANSFORM_POINT(
	lea	$1284(a2),a0
	fmove.s	$C(a0),fp0
	fmul.s	-$20(a5),fp0
	lea	$1284(a2),a0
	fmove.s	$1C(a0),fp1
	lea	-$20(a5),a0
	fmul.s	4(a0),fp1
	fadd.x	fp1,fp0
	lea	$1284(a2),a0
	fmove.s	$2C(a0),fp1
	lea	-$20(a5),a0
	fmul.s	$8(a0),fp1
	fadd.x	fp1,fp0
	lea	$1284(a2),a0
	fmove.s	$3C(a0),fp1
	lea	-$20(a5),a0
	fmul.s	$C(a0),fp1
	fadd.x	fp1,fp0
	lea	-$30(a5),a0
	fmove.s	fp0,$C(a0)
;   if (gl_viewclip_point( clip )==0) 
	pea	-$30(a5)
	jsr	_gl_viewclip_point
	addq.w	#4,a7
	tst.l	d0
	bne.b	L45
L44
;      ctx->Current.RasterPosValid = GL_FALSE;
	clr.b	$229A(a2)
	fmovem.x (a7)+,fp2/fp3
	move.l	(a7)+,a2
	unlk	a5
	rts
L45
;   d = 1.0F / clip[3];
	lea	-$30(a5),a0
	fmove.s	#$.3F800000,fp1
	fdiv.s	$C(a0),fp1
;   ndc[0] = clip[0] * d;
	fmove.s	-$30(a5),fp0
	fmul.x	fp1,fp0
	fmove.s	fp0,-$3C(a5)
;   ndc[1] = clip[1] * d;
	lea	-$30(a5),a0
	fmove.s	4(a0),fp0
	fmul.x	fp1,fp0
	lea	-$3C(a5),a0
	fmove.s	fp0,4(a0)
;   ndc[2] = clip[2] * d;
	lea	-$30(a5),a0
	fmove.s	$8(a0),fp0
	fmul.x	fp1,fp0
	lea	-$3C(a5),a0
	fmove.s	fp0,$8(a0)
;   ctx->Current.RasterPos[0] = ndc[0] * ctx->Viewport.Sx + ctx->V
	move.l	a2,a0
	add.l	#$E540,a0
	fmove.s	-$3C(a5),fp0
	fmul.s	$18(a0),fp0
	move.l	a2,a0
	add.l	#$E540,a0
	fadd.s	$24(a0),fp0
	fmove.s	fp0,$224E(a2)
;   ctx->Current.RasterPos[1] = ndc[1] * ctx->Viewport.Sy + ctx->V
	lea	-$3C(a5),a0
	fmove.s	4(a0),fp0
	move.l	a2,a0
	add.l	#$E540,a0
	fmul.s	$1C(a0),fp0
	move.l	a2,a0
	add.l	#$E540,a0
	fadd.s	$28(a0),fp0
	lea	$224E(a2),a0
	fmove.s	fp0,4(a0)
;   ctx->Current.RasterPos[2] = (ndc[2] * ctx->Viewport.Sz + ctx->
	lea	-$3C(a5),a0
	fmove.s	$8(a0),fp0
	move.l	a2,a0
	add.l	#$E540,a0
	fmul.s	$20(a0),fp0
	move.l	a2,a0
	add.l	#$E540,a0
	fadd.s	$2C(a0),fp0
	fdiv.s	#$.477FFF00,fp0
	lea	$224E(a2),a0
	fmove.s	fp0,$8(a0)
;   ctx->Current.RasterPos[3] = clip[3];
	lea	-$30(a5),a0
	fmove.s	$C(a0),fp0
	lea	$224E(a2),a0
	fmove.s	fp0,$C(a0)
;   ctx->Current.RasterPosValid = GL_TRUE;
	move.b	#1,$229A(a2)
;      for (texSet=0;
	moveq	#0,d0
	bra	L47
L46
;                c
	lea	$222E(a2),a0
	move.l	d0,d1
	asl.l	#4,d1
	fmove.s	0(a0,d1.l),fp0
	lea	$227A(a2),a0
	move.l	d0,d1
	asl.l	#4,d1
	fmove.s	fp0,0(a0,d1.l)
;                c
	lea	$222E(a2),a0
	move.l	d0,d1
	asl.l	#4,d1
	lea	0(a0,d1.l),a0
	fmove.s	4(a0),fp0
	lea	$227A(a2),a0
	move.l	d0,d1
	asl.l	#4,d1
	lea	0(a0,d1.l),a0
	fmove.s	fp0,4(a0)
;                c
	lea	$222E(a2),a0
	move.l	d0,d1
	asl.l	#4,d1
	lea	0(a0,d1.l),a0
	fmove.s	$8(a0),fp0
	lea	$227A(a2),a0
	move.l	d0,d1
	asl.l	#4,d1
	lea	0(a0,d1.l),a0
	fmove.s	fp0,$8(a0)
;                c
	lea	$222E(a2),a0
	move.l	d0,d1
	asl.l	#4,d1
	lea	0(a0,d1.l),a0
	fmove.s	$C(a0),fp0
	lea	$227A(a2),a0
	move.l	d0,d1
	asl.l	#4,d1
	lea	0(a0,d1.l),a0
	fmove.s	fp0,$C(a0)
	addq.l	#1,d0
L47
	cmp.l	#2,d0
	blo	L46
L48
;   if (ctx->RenderMode==GL_SELECT) 
	move.l	a2,a0
	add.l	#$E964,a0
	move.l	(a0),d0
	cmp.l	#$1C02,d0
	bne.b	L50
L49
;      gl_update_hitflag( ctx, ctx->Current.RasterPos[2] );
	lea	$224E(a2),a0
	move.l	$8(a0),-(a7)
	move.l	a2,-(a7)
	jsr	_gl_update_hitflag
	addq.w	#$8,a7
L50
	fmovem.x (a7)+,fp2/fp3
	move.l	(a7)+,a2
	unlk	a5
	rts

	SECTION "_gl_windowpos:0",CODE

	rts

;void gl_windowpos( GLcontext *ctx, GLfloat x, GLfloat y, GLfloat z, 
	XDEF	_gl_windowpos
_gl_windowpos
L74	EQU	-$24
	link	a5,#L74
	move.l	a2,-(a7)
	fmovem.x fp2/fp3,-(a7)
	move.l	$8(a5),a2
	fmove.s	$14(a5),fp0
	fmove.s	$18(a5),fp1
	fmove.s	$10(a5),fp2
	fmove.s	$C(a5),fp3
L52
;   ctx->Current.RasterPos[0] = x;
	fmove.s	fp3,$224E(a2)
;   ctx->Current.RasterPos[1] = y;
	lea	$224E(a2),a0
	fmove.s	fp2,4(a0)
;   ctx->Current.RasterPos[2] = CLAMP( z, 0.0F, 1.0F );
	fcmp.s	#$.00000000,fp0
	fboge.b	L54
L53
	fmove.s	#$.00000000,fp0
	bra.b	L58
L54
	fcmp.s	#$.3F800000,fp0
	fbole.b	L56
L55
	fmove.s	#$.3F800000,fp0
L56
L57
L58
	lea	$224E(a2),a0
	fmove.s	fp0,$8(a0)
;   ctx->Current.RasterPos[3] = w;
	lea	$224E(a2),a0
	fmove.s	fp1,$C(a0)
;   ctx->Current.RasterPosValid = GL_TRUE;
	move.b	#1,$229A(a2)
;   if (ctx->Light.Enabled) 
	lea	$2318(a2),a0
	add.l	#$8E06,a0
	tst.b	(a0)
	beq	L65
L59
;      COPY_4V( eye, ctx->
	move.l	$224E(a2),-$10(a5)
;      COPY_4V( eye, ctx->
	lea	$224E(a2),a0
	fmove.s	4(a0),fp0
	lea	-$10(a5),a0
	fmove.s	fp0,4(a0)
;      COPY_4V( eye, ctx->
	lea	$224E(a2),a0
	fmove.s	$8(a0),fp0
	lea	-$10(a5),a0
	fmove.s	fp0,$8(a0)
;      COPY_4V( eye, ctx->
	lea	$224E(a2),a0
	fmove.s	$C(a0),fp0
	lea	-$10(a5),a0
	fmove.s	fp0,$C(a0)
;      if (ctx->NewModelViewMatrix) 
	tst.b	$9F4(a2)
	beq.b	L61
L60
;	 gl_analyze_modelview_matrix(ctx);
	move.l	a2,-(a7)
	jsr	_gl_analyze_modelview_matrix
	addq.w	#4,a7
L61
;                        ct
	fmove.s	$221E(a2),fp0
	fmul.s	$A3A(a2),fp0
	lea	$221E(a2),a0
	fmove.s	4(a0),fp1
	lea	$A3A(a2),a0
	fmul.s	4(a0),fp1
	fadd.x	fp1,fp0
	lea	$221E(a2),a0
	fmove.s	$8(a0),fp1
	lea	$A3A(a2),a0
	fmul.s	$8(a0),fp1
	fadd.x	fp1,fp0
	fmove.s	fp0,-$1C(a5)
;                        ct
	lea	$A3A(a2),a0
	fmove.s	$221E(a2),fp0
	fmul.s	$10(a0),fp0
	lea	$221E(a2),a0
	fmove.s	4(a0),fp1
	lea	$A3A(a2),a0
	fmul.s	$14(a0),fp1
	fadd.x	fp1,fp0
	lea	$221E(a2),a0
	fmove.s	$8(a0),fp1
	lea	$A3A(a2),a0
	fmul.s	$18(a0),fp1
	fadd.x	fp1,fp0
	lea	-$1C(a5),a0
	fmove.s	fp0,4(a0)
;                        ct
	lea	$A3A(a2),a0
	fmove.s	$221E(a2),fp0
	fmul.s	$20(a0),fp0
	lea	$221E(a2),a0
	fmove.s	4(a0),fp1
	lea	$A3A(a2),a0
	fmul.s	$24(a0),fp1
	fadd.x	fp1,fp0
	lea	$221E(a2),a0
	fmove.s	$8(a0),fp1
	lea	$A3A(a2),a0
	fmul.s	$28(a0),fp1
	fadd.x	fp1,fp0
	lea	-$1C(a5),a0
	fmove.s	fp0,$8(a0)
;      if (ctx->Visual->RGBAflag) 
	move.l	$8F8(a2),a0
	tst.b	(a0)
	beq	L63
L62
;         gl_shade_rgba( ctx, 0, 1, &eye, &eyenorm, &color );
	pea	-$20(a5)
	pea	-$1C(a5)
	pea	-$10(a5)
	pea	1.w
	clr.l	-(a7)
	move.l	a2,-(a7)
	jsr	_gl_shade_rgba
	add.w	#$18,a7
;              (GL
	moveq	#0,d0
	move.b	-$20(a5),d0
	fmove.l	d0,fp0
	fmul.s	#$.3B808080,fp0
	fmove.s	fp0,$2262(a2)
;              (GL
	lea	-$20(a5),a0
	moveq	#0,d0
	move.b	1(a0),d0
	fmove.l	d0,fp0
	fmul.s	#$.3B808080,fp0
	lea	$2262(a2),a0
	fmove.s	fp0,4(a0)
;              (GL
	lea	-$20(a5),a0
	moveq	#0,d0
	move.b	2(a0),d0
	fmove.l	d0,fp0
	fmul.s	#$.3B808080,fp0
	lea	$2262(a2),a0
	fmove.s	fp0,$8(a0)
;              (GL
	lea	-$20(a5),a0
	moveq	#0,d0
	move.b	3(a0),d0
	fmove.l	d0,fp0
	fmul.s	#$.3B808080,fp0
	lea	$2262(a2),a0
	fmove.s	fp0,$C(a0)
	bra.b	L64
L63
;	 gl_shade_ci( ctx, 0, 1, &eye, &eyenorm, &ctx->Current.RasterInde
	pea	$2272(a2)
	pea	-$1C(a5)
	pea	-$10(a5)
	pea	1.w
	clr.l	-(a7)
	move.l	a2,-(a7)
	jsr	_gl_shade_ci
	add.w	#$18,a7
L64
	bra	L68
L65
;      if (ctx->Visual->RGBAflag) 
	move.l	$8F8(a2),a0
	tst.b	(a0)
	beq	L67
L66
;       ctx->Curre
	moveq	#0,d0
	move.b	$2216(a2),d0
	fmove.l	d0,fp0
	fmul.s	#$.3B808080,fp0
	fmove.s	fp0,$2262(a2)
;       ctx->Curre
	lea	$2216(a2),a0
	moveq	#0,d0
	move.b	1(a0),d0
	fmove.l	d0,fp0
	fmul.s	#$.3B808080,fp0
	lea	$2262(a2),a0
	fmove.s	fp0,4(a0)
;       ctx->Curre
	lea	$2216(a2),a0
	moveq	#0,d0
	move.b	2(a0),d0
	fmove.l	d0,fp0
	fmul.s	#$.3B808080,fp0
	lea	$2262(a2),a0
	fmove.s	fp0,$8(a0)
;       ctx->Curre
	lea	$2216(a2),a0
	moveq	#0,d0
	move.b	3(a0),d0
	fmove.l	d0,fp0
	fmul.s	#$.3B808080,fp0
	lea	$2262(a2),a0
	fmove.s	fp0,$C(a0)
	bra.b	L68
L67
;	 ctx->Current.RasterIndex = ctx->Current.Index;
	move.l	$221A(a2),d0
	move.l	d0,$2272(a2)
L68
;   ctx->Current.RasterDistance = 0.0;
	clr.l	$225E(a2)
;      for (texSet=0;
	moveq	#0,d0
	bra	L70
L69
;                c
	lea	$222E(a2),a0
	move.l	d0,d1
	asl.l	#4,d1
	fmove.s	0(a0,d1.l),fp0
	lea	$227A(a2),a0
	move.l	d0,d1
	asl.l	#4,d1
	fmove.s	fp0,0(a0,d1.l)
;                c
	lea	$222E(a2),a0
	move.l	d0,d1
	asl.l	#4,d1
	lea	0(a0,d1.l),a0
	fmove.s	4(a0),fp0
	lea	$227A(a2),a0
	move.l	d0,d1
	asl.l	#4,d1
	lea	0(a0,d1.l),a0
	fmove.s	fp0,4(a0)
;                c
	lea	$222E(a2),a0
	move.l	d0,d1
	asl.l	#4,d1
	lea	0(a0,d1.l),a0
	fmove.s	$8(a0),fp0
	lea	$227A(a2),a0
	move.l	d0,d1
	asl.l	#4,d1
	lea	0(a0,d1.l),a0
	fmove.s	fp0,$8(a0)
;                c
	lea	$222E(a2),a0
	move.l	d0,d1
	asl.l	#4,d1
	lea	0(a0,d1.l),a0
	fmove.s	$C(a0),fp0
	lea	$227A(a2),a0
	move.l	d0,d1
	asl.l	#4,d1
	lea	0(a0,d1.l),a0
	fmove.s	fp0,$C(a0)
	addq.l	#1,d0
L70
	cmp.l	#2,d0
	blo	L69
L71
;   if (ctx->RenderMode==GL_SELECT) 
	move.l	a2,a0
	add.l	#$E964,a0
	move.l	(a0),d0
	cmp.l	#$1C02,d0
	bne.b	L73
L72
;      gl_update_hitflag( ctx, ctx->Current.RasterPos[2] );
	lea	$224E(a2),a0
	move.l	$8(a0),-(a7)
	move.l	a2,-(a7)
	jsr	_gl_update_hitflag
	addq.w	#$8,a7
L73
	fmovem.x (a7)+,fp2/fp3
	move.l	(a7)+,a2
	unlk	a5
	rts

	END
