
; Storm C Compiler
; Work2:Mesa3/Mesa-3.0/src/feedback.c
	mc68030
	mc68881
	XREF	_gl_error
	XREF	_std__in
	XREF	_std__out
	XREF	_std__err
	XREF	_CC

	SECTION "_gl_FeedbackBuffer:0",CODE


;void
	XDEF	_gl_FeedbackBuffer
_gl_FeedbackBuffer
	movem.l	d2/d3/a2/a3,-(a7)
	movem.l	$1C(a7),d0/a3
	move.l	$18(a7),d2
	move.l	$14(a7),a2
L84
;   if (ctx->RenderMode==GL_FEEDBACK || INSIDE_BEGIN_END(ctx)) 
	move.l	a2,a0
	add.l	#$E964,a0
	move.l	(a0),d1
	cmp.l	#$1C01,d1
	beq.b	L86
L85
	move.l	a2,a0
	add.l	#$E968,a0
	move.l	(a0),d1
	cmp.l	#$1A00,d1
	beq.b	L87
L86
;      gl_error( ctx, GL_INVALID_OPERATION, "glFeedbackBuffer" )
	move.l	#L81,-(a7)
	pea	$502.w
	move.l	a2,-(a7)
	jsr	_gl_error
	add.w	#$C,a7
	movem.l	(a7)+,d2/d3/a2/a3
	rts
L87
;   if (size<0) 
	tst.l	d2
	bpl.b	L89
L88
;      gl_error( ctx, GL_INVALID_VALUE, "glFeedbackBuffer(size<
	move.l	#L82,-(a7)
	pea	$501.w
	move.l	a2,-(a7)
	jsr	_gl_error
	add.w	#$C,a7
	movem.l	(a7)+,d2/d3/a2/a3
	rts
L89
;   if (!buffer) 
	cmp.w	#0,a3
	bne.b	L91
L90
;      gl_error( ctx, GL_INVALID_VALUE, "glFeedbackBuffer(buffe
	move.l	#L83,-(a7)
	pea	$501.w
	move.l	a2,-(a7)
	jsr	_gl_error
	add.w	#$C,a7
;      ctx->Feedback.BufferSize = 0;
	move.l	a2,a0
	add.l	#$E834,a0
	clr.l	(a0)
	movem.l	(a7)+,d2/d3/a2/a3
	rts
L91
;   switch (type)
	move.l	d0,d1
	cmp.l	#$602,d1
	beq.b	L94
	bgt.b	L108
	cmp.l	#$600,d1
	beq.b	L92
	cmp.l	#$601,d1
	beq.b	L93
	bra	L106
L108
	cmp.l	#$603,d1
	beq.b	L98
	cmp.l	#$604,d1
	beq	L102
	bra	L106
;      
L92
;	 ctx->Feedback.Mask = 0;
	move.l	a2,a0
	add.l	#$E82C,a0
	clr.l	(a0)
;	 ctx->Feedback.Type = type;
	move.l	a2,a0
	add.l	#$E828,a0
	move.l	d0,(a0)
;	 
	bra	L107
L93
;	 ctx->Feedback.Mask = FB_3D;
	move.l	a2,a0
	add.l	#$E82C,a0
	move.l	#1,(a0)
;	 ctx->Feedback.Type = type;
	move.l	a2,a0
	add.l	#$E828,a0
	move.l	d0,(a0)
;	 
	bra	L107
L94
;	 ctx->Feedback.Mask = FB_3D
	move.l	$8F8(a2),a0
	tst.b	(a0)
	beq.b	L96
L95
	moveq	#$8,d1
	bra.b	L97
L96
	moveq	#4,d1
L97
	or.l	#1,d1
	move.l	a2,a0
	add.l	#$E82C,a0
	move.l	d1,(a0)
;	 ctx->Feedback.Type = type;
	move.l	a2,a0
	add.l	#$E828,a0
	move.l	d0,(a0)
;	 
	bra	L107
L98
;   ctx->Select.HitMinZ = 1.0;
	move.l	$8F8(a2),a0
	tst.b	(a0)
	beq.b	L100
L99
	moveq	#$8,d1
	bra.b	L101
L100
	moveq	#4,d1
L101
	or.l	#1,d1
	or.l	#$10,d1
	move.l	a2,a0
	add.l	#$E82C,a0
	move.l	d1,(a0)
;	 ctx->Feedback.Type = type;
	move.l	a2,a0
	add.l	#$E828,a0
	move.l	d0,(a0)
;	 
	bra.b	L107
L102
;	 ctx->Feedback.Mask = FB_3D | FB_4D
	move.l	$8F8(a2),a0
	tst.b	(a0)
	beq.b	L104
L103
	moveq	#$8,d1
	bra.b	L105
L104
	moveq	#4,d1
L105
	or.l	#3,d1
	or.l	#$10,d1
	move.l	a2,a0
	add.l	#$E82C,a0
	move.l	d1,(a0)
;	 ctx->Feedback.Type = type;
	move.l	a2,a0
	add.l	#$E828,a0
	move.l	d0,(a0)
;	 
	bra.b	L107
L106
;	 ctx->Feedback.Mask = 0;
	move.l	a2,a0
	add.l	#$E82C,a0
	clr.l	(a0)
;	 gl_error( ctx, GL_INVALID_ENUM, "glFeedbackBuffer" );
	move.l	#L81,-(a7)
	pea	$500.w
	move.l	a2,-(a7)
	jsr	_gl_error
	add.w	#$C,a7
L107
;   ctx->Feedback.BufferSize = size;
	move.l	a2,a0
	add.l	#$E834,a0
	move.l	d2,(a0)
;   ctx->Feedback.Buffer = buffer;
	move.l	a2,a1
	add.l	#$E830,a1
	move.l	a3,(a1)
;   ctx->Feedback.Count = 0;
	move.l	a2,a0
	add.l	#$E838,a0
	clr.l	(a0)
	movem.l	(a7)+,d2/d3/a2/a3
	rts

L81
	dc.b	'glFeedbackBuffer',0
L83
	dc.b	'glFeedbackBuffer(buffer==NULL)',0
L82
	dc.b	'glFeedbackBuffer(size<0)',0

	SECTION "_gl_PassThrough:0",CODE

	rts

;void gl_PassThrough( GLcontext *ctx, GLfloat token )
	XDEF	_gl_PassThrough
_gl_PassThrough
	move.l	a2,-(a7)
	move.l	$8(a7),a0
	fmove.s	$C(a7),fp0
L110
;   if (INSIDE_BEGIN_END(ctx)) 
	move.l	a0,a1
	add.l	#$E968,a1
	move.l	(a1),d0
	cmp.l	#$1A00,d0
	beq.b	L112
L111
;      gl_error( ctx, GL_INVALID_OPERATION, "glPassThrough" );
	move.l	#L109,-(a7)
	pea	$502.w
	move.l	a0,-(a7)
	jsr	_gl_error
	add.w	#$C,a7
	move.l	(a7)+,a2
	rts
L112
;   if (ctx->RenderMode==GL_FEEDBACK) 
	move.l	a0,a1
	add.l	#$E964,a1
	move.l	(a1),d0
	cmp.l	#$1C01,d0
	bne	L118
L113
;OKEN( ctx, (GLflo
	move.l	a0,a1
	add.l	#$E828,a1
	move.l	$10(a1),d1
	move.l	a0,a1
	add.l	#$E828,a1
	cmp.l	$C(a1),d1
	bhs.b	L115
L114
;OKEN( ctx, (GLflo
	move.l	a0,a1
	add.l	#$E828,a1
	move.l	$8(a1),a2
	move.l	a0,a1
	add.l	#$E828,a1
	move.l	$10(a1),d0
	move.l	#$44E00000,0(a2,d0.l*4)
L115
;OKEN( ctx, (GLflo
	move.l	a0,a1
	add.l	#$E838,a1
	move.l	(a1),d0
	addq.l	#1,d0
	move.l	a0,a1
	add.l	#$E838,a1
	move.l	d0,(a1)
;      FEEDBACK_TOKEN( ctx, token )
	move.l	a0,a1
	add.l	#$E828,a1
	move.l	$10(a1),d1
	move.l	a0,a1
	add.l	#$E828,a1
	cmp.l	$C(a1),d1
	bhs.b	L117
L116
;      FEEDBACK_TOKEN( ctx, token )
	move.l	a0,a1
	add.l	#$E828,a1
	move.l	$8(a1),a2
	move.l	a0,a1
	add.l	#$E828,a1
	move.l	$10(a1),d0
	fmove.s	fp0,0(a2,d0.l*4)
L117
;      FEEDBACK_TOKEN( ctx, token )
	move.l	a0,a1
	add.l	#$E838,a1
	move.l	(a1),d0
	addq.l	#1,d0
	add.l	#$E838,a0
	move.l	d0,(a0)
L118
	move.l	(a7)+,a2
	rts

L109
	dc.b	'glPassThrough',0

	SECTION "_gl_feedback_vertex:0",CODE


;void gl_feedback_vertex( GLcontext *ctx,
	XDEF	_gl_feedback_vertex
_gl_feedback_vertex
	movem.l	d2/a2-a4,-(a7)
	fmovem.x fp2/fp3/fp4,-(a7)
	move.l	$38(a7),a0
	move.l	$54(a7),a1
	move.l	$4C(a7),a2
	fmove.s	$50(a7),fp0
	fmove.s	$48(a7),fp1
	fmove.s	$44(a7),fp2
	fmove.s	$40(a7),fp3
	fmove.s	$3C(a7),fp4
L119
;   FEEDBACK_TOKEN( ctx, x )
	move.l	#$E828,d0
	add.l	a0,d0
	move.l	d0,a3
	move.l	$10(a3),d1
	move.l	#$E828,d0
	add.l	a0,d0
	move.l	d0,a3
	cmp.l	$C(a3),d1
	bhs.b	L121
L120
;   FEEDBACK_TOKEN( ctx, x )
	move.l	#$E828,d0
	add.l	a0,d0
	move.l	d0,a3
	move.l	$8(a3),a4
	move.l	#$E828,d0
	add.l	a0,d0
	move.l	d0,a3
	move.l	$10(a3),d0
	asl.l	#2,d0
	add.l	a4,d0
	move.l	d0,a3
	fmove.s	fp4,(a3)
L121
;   FEEDBACK_TOKEN( ctx, x )
	move.l	a0,a3
	add.l	#$E838,a3
	move.l	(a3),d0
	addq.l	#1,d0
	move.l	a0,a3
	add.l	#$E838,a3
	move.l	d0,(a3)
;   FEEDBACK_TOKEN( ctx, y )
	move.l	#$E828,d0
	add.l	a0,d0
	move.l	d0,a3
	move.l	$10(a3),d1
	move.l	#$E828,d0
	add.l	a0,d0
	move.l	d0,a3
	cmp.l	$C(a3),d1
	bhs.b	L123
L122
;   FEEDBACK_TOKEN( ctx, y )
	move.l	#$E828,d0
	add.l	a0,d0
	move.l	d0,a3
	move.l	$8(a3),a4
	move.l	#$E828,d0
	add.l	a0,d0
	move.l	d0,a3
	move.l	$10(a3),d0
	asl.l	#2,d0
	add.l	a4,d0
	move.l	d0,a3
	fmove.s	fp3,(a3)
L123
;   FEEDBACK_TOKEN( ctx, y )
	move.l	a0,a3
	add.l	#$E838,a3
	move.l	(a3),d0
	addq.l	#1,d0
	move.l	a0,a3
	add.l	#$E838,a3
	move.l	d0,(a3)
;   if (ctx->Feedback.Mask & FB_3D) 
	move.l	#$E828,d0
	add.l	a0,d0
	move.l	d0,a3
	move.l	4(a3),d0
	and.l	#1,d0
	beq.b	L127
L124
;      FEEDBACK_TOKEN( ctx, z )
	move.l	#$E828,d0
	add.l	a0,d0
	move.l	d0,a3
	move.l	$10(a3),d1
	move.l	#$E828,d0
	add.l	a0,d0
	move.l	d0,a3
	cmp.l	$C(a3),d1
	bhs.b	L126
L125
;      FEEDBACK_TOKEN( ctx, z )
	move.l	#$E828,d0
	add.l	a0,d0
	move.l	d0,a3
	move.l	$8(a3),a4
	move.l	#$E828,d0
	add.l	a0,d0
	move.l	d0,a3
	move.l	$10(a3),d0
	asl.l	#2,d0
	add.l	a4,d0
	move.l	d0,a3
	fmove.s	fp2,(a3)
L126
;      FEEDBACK_TOKEN( ctx, z )
	move.l	a0,a3
	add.l	#$E838,a3
	move.l	(a3),d0
	addq.l	#1,d0
	move.l	a0,a3
	add.l	#$E838,a3
	move.l	d0,(a3)
L127
;   if (ctx->Feedback.Mask & FB_4D) 
	move.l	#$E828,d0
	add.l	a0,d0
	move.l	d0,a3
	move.l	4(a3),d0
	and.l	#2,d0
	beq.b	L131
L128
;      FEEDBACK_TOKEN( ctx, w )
	move.l	#$E828,d0
	add.l	a0,d0
	move.l	d0,a3
	move.l	$10(a3),d1
	move.l	#$E828,d0
	add.l	a0,d0
	move.l	d0,a3
	cmp.l	$C(a3),d1
	bhs.b	L130
L129
;      FEEDBACK_TOKEN( ctx, w )
	move.l	#$E828,d0
	add.l	a0,d0
	move.l	d0,a3
	move.l	$8(a3),a4
	move.l	#$E828,d0
	add.l	a0,d0
	move.l	d0,a3
	move.l	$10(a3),d0
	asl.l	#2,d0
	add.l	a4,d0
	move.l	d0,a3
	fmove.s	fp1,(a3)
L130
;      FEEDBACK_TOKEN( ctx, w )
	move.l	a0,a3
	add.l	#$E838,a3
	move.l	(a3),d0
	addq.l	#1,d0
	move.l	a0,a3
	add.l	#$E838,a3
	move.l	d0,(a3)
L131
;   if (ctx->Feedback.Mask & FB_INDEX) 
	move.l	#$E828,d0
	add.l	a0,d0
	move.l	d0,a3
	move.l	4(a3),d0
	and.l	#4,d0
	beq.b	L135
L132
;      FEEDBACK_TOKEN( ctx, index )
	move.l	#$E828,d0
	add.l	a0,d0
	move.l	d0,a3
	move.l	$10(a3),d1
	move.l	#$E828,d0
	add.l	a0,d0
	move.l	d0,a3
	cmp.l	$C(a3),d1
	bhs.b	L134
L133
;      FEEDBACK_TOKEN( ctx, index )
	move.l	#$E828,d0
	add.l	a0,d0
	move.l	d0,a3
	move.l	$8(a3),a4
	move.l	#$E828,d0
	add.l	a0,d0
	move.l	d0,a3
	move.l	$10(a3),d0
	asl.l	#2,d0
	add.l	a4,d0
	move.l	d0,a3
	fmove.s	fp0,(a3)
L134
;      FEEDBACK_TOKEN( ctx, index )
	move.l	a0,a3
	add.l	#$E838,a3
	move.l	(a3),d0
	addq.l	#1,d0
	move.l	a0,a3
	add.l	#$E838,a3
	move.l	d0,(a3)
L135
;   if (ctx->Feedback.Mask & FB_COLOR) 
	move.l	#$E828,d0
	add.l	a0,d0
	move.l	d0,a3
	move.l	4(a3),d0
	and.l	#$8,d0
	beq	L145
L136
;      FEEDBACK_TOKEN( ctx, color
	move.l	#$E828,d0
	add.l	a0,d0
	move.l	d0,a3
	move.l	$10(a3),d1
	move.l	#$E828,d0
	add.l	a0,d0
	move.l	d0,a3
	cmp.l	$C(a3),d1
	bhs.b	L138
L137
;      FEEDBACK_TOKEN( ctx, color
	move.l	#$E828,d0
	add.l	a0,d0
	move.l	d0,a3
	move.l	$8(a3),a4
	move.l	#$E828,d0
	add.l	a0,d0
	move.l	d0,a3
	move.l	$10(a3),d0
	asl.l	#2,d0
	add.l	a4,d0
	move.l	d0,a3
	move.l	(a2),(a3)
L138
;      FEEDBACK_TOKEN( ctx, color
	move.l	a0,a3
	add.l	#$E838,a3
	move.l	(a3),d0
	addq.l	#1,d0
	move.l	a0,a3
	add.l	#$E838,a3
	move.l	d0,(a3)
;      FEEDBACK_TOKEN( ctx, color
	move.l	#$E828,d0
	add.l	a0,d0
	move.l	d0,a3
	move.l	$10(a3),d1
	move.l	#$E828,d0
	add.l	a0,d0
	move.l	d0,a3
	cmp.l	$C(a3),d1
	bhs.b	L140
L139
;      FEEDBACK_TOKEN( ctx, color
	moveq	#4,d0
	add.l	a2,d0
	move.l	d0,a3
	fmove.s	(a3),fp0
	move.l	#$E828,d0
	add.l	a0,d0
	move.l	d0,a3
	move.l	$8(a3),a4
	move.l	#$E828,d0
	add.l	a0,d0
	move.l	d0,a3
	move.l	$10(a3),d0
	asl.l	#2,d0
	add.l	a4,d0
	move.l	d0,a3
	fmove.s	fp0,(a3)
L140
;      FEEDBACK_TOKEN( ctx, color
	move.l	a0,a3
	add.l	#$E838,a3
	move.l	(a3),d0
	addq.l	#1,d0
	move.l	a0,a3
	add.l	#$E838,a3
	move.l	d0,(a3)
;      FEEDBACK_TOKEN( ctx, color
	move.l	#$E828,d0
	add.l	a0,d0
	move.l	d0,a3
	move.l	$10(a3),d1
	move.l	#$E828,d0
	add.l	a0,d0
	move.l	d0,a3
	cmp.l	$C(a3),d1
	bhs.b	L142
L141
;      FEEDBACK_TOKEN( ctx, color
	moveq	#$8,d0
	add.l	a2,d0
	move.l	d0,a3
	fmove.s	(a3),fp0
	move.l	#$E828,d0
	add.l	a0,d0
	move.l	d0,a3
	move.l	$8(a3),a4
	move.l	#$E828,d0
	add.l	a0,d0
	move.l	d0,a3
	move.l	$10(a3),d0
	asl.l	#2,d0
	add.l	a4,d0
	move.l	d0,a3
	fmove.s	fp0,(a3)
L142
;      FEEDBACK_TOKEN( ctx, color
	move.l	a0,a3
	add.l	#$E838,a3
	move.l	(a3),d0
	addq.l	#1,d0
	move.l	a0,a3
	add.l	#$E838,a3
	move.l	d0,(a3)
;      FEEDBACK_TOKEN( ctx, color
	move.l	#$E828,d0
	add.l	a0,d0
	move.l	d0,a3
	move.l	$10(a3),d1
	move.l	#$E828,d0
	add.l	a0,d0
	move.l	d0,a3
	cmp.l	$C(a3),d1
	bhs.b	L144
L143
;      FEEDBACK_TOKEN( ctx, color
	fmove.s	$C(a2),fp0
	move.l	a0,a2
	add.l	#$E828,a2
	move.l	$8(a2),a3
	move.l	a0,a2
	add.l	#$E828,a2
	move.l	$10(a2),d0
	fmove.s	fp0,0(a3,d0.l*4)
L144
;      FEEDBACK_TOKEN( ctx, color
	move.l	a0,a2
	add.l	#$E838,a2
	move.l	(a2),d0
	addq.l	#1,d0
	move.l	a0,a2
	add.l	#$E838,a2
	move.l	d0,(a2)
L145
;   if (ctx->Feedback.Mask & FB_TEXTURE) 
	move.l	a0,a2
	add.l	#$E828,a2
	move.l	4(a2),d0
	and.l	#$10,d0
	beq	L155
L146
;      FEEDBACK_TOKEN( ctx, te
	move.l	a0,a2
	add.l	#$E828,a2
	move.l	$10(a2),d1
	move.l	a0,a2
	add.l	#$E828,a2
	cmp.l	$C(a2),d1
	bhs.b	L148
L147
;      FEEDBACK_TOKEN( ctx, te
	move.l	a0,a2
	add.l	#$E828,a2
	move.l	$8(a2),a3
	move.l	a0,a2
	add.l	#$E828,a2
	move.l	$10(a2),d0
	move.l	(a1),0(a3,d0.l*4)
L148
;      FEEDBACK_TOKEN( ctx, te
	move.l	a0,a2
	add.l	#$E838,a2
	move.l	(a2),d0
	addq.l	#1,d0
	move.l	a0,a2
	add.l	#$E838,a2
	move.l	d0,(a2)
;      FEEDBACK_TOKEN( ctx, te
	move.l	a0,a2
	add.l	#$E828,a2
	move.l	$10(a2),d1
	move.l	a0,a2
	add.l	#$E828,a2
	cmp.l	$C(a2),d1
	bhs.b	L150
L149
;      FEEDBACK_TOKEN( ctx, te
	move.l	a0,a2
	add.l	#$E828,a2
	move.l	$8(a2),a3
	move.l	a0,a2
	add.l	#$E828,a2
	move.l	$10(a2),d0
	move.l	4(a1),0(a3,d0.l*4)
L150
;      FEEDBACK_TOKEN( ctx, te
	move.l	a0,a2
	add.l	#$E838,a2
	move.l	(a2),d0
	addq.l	#1,d0
	move.l	a0,a2
	add.l	#$E838,a2
	move.l	d0,(a2)
;      FEEDBACK_TOKEN( ctx, te
	move.l	a0,a2
	add.l	#$E828,a2
	move.l	$10(a2),d1
	move.l	a0,a2
	add.l	#$E828,a2
	cmp.l	$C(a2),d1
	bhs.b	L152
L151
;      FEEDBACK_TOKEN( ctx, te
	move.l	a0,a2
	add.l	#$E828,a2
	move.l	$8(a2),a3
	move.l	a0,a2
	add.l	#$E828,a2
	move.l	$10(a2),d0
	move.l	$8(a1),0(a3,d0.l*4)
L152
;      FEEDBACK_TOKEN( ctx, te
	move.l	a0,a2
	add.l	#$E838,a2
	move.l	(a2),d0
	addq.l	#1,d0
	move.l	a0,a2
	add.l	#$E838,a2
	move.l	d0,(a2)
;      FEEDBACK_TOKEN( ctx, te
	move.l	a0,a2
	add.l	#$E828,a2
	move.l	$10(a2),d1
	move.l	a0,a2
	add.l	#$E828,a2
	cmp.l	$C(a2),d1
	bhs.b	L154
L153
;      FEEDBACK_TOKEN( ctx, te
	fmove.s	$C(a1),fp0
	move.l	a0,a1
	add.l	#$E828,a1
	move.l	$8(a1),a2
	move.l	a0,a1
	add.l	#$E828,a1
	move.l	$10(a1),d0
	fmove.s	fp0,0(a2,d0.l*4)
L154
;      FEEDBACK_TOKEN( ctx, te
	move.l	a0,a1
	add.l	#$E838,a1
	move.l	(a1),d0
	addq.l	#1,d0
	add.l	#$E838,a0
	move.l	d0,(a0)
L155
	fmovem.x (a7)+,fp2/fp3/fp4
	movem.l	(a7)+,d2/a2-a4
	rts

	SECTION "_gl_SelectBuffer:0",CODE


;void gl_SelectBuffer( GLcontext *ctx, GLsizei size, GLuint *buffer )
	XDEF	_gl_SelectBuffer
_gl_SelectBuffer
	movem.l	d2/a2/a3,-(a7)
	movem.l	$14(a7),d2/a3
	move.l	$10(a7),a2
L157
;   if (INSIDE_BEGIN_END(ctx)) 
	move.l	a2,a0
	add.l	#$E968,a0
	move.l	(a0),d0
	cmp.l	#$1A00,d0
	beq.b	L159
L158
;      gl_error( ctx, GL_INVALID_OPERATION, "glSelectBuffer" );
	move.l	#L156,-(a7)
	pea	$502.w
	move.l	a2,-(a7)
	jsr	_gl_error
	add.w	#$C,a7
L159
;   if (ctx->RenderMode==GL_SELECT) 
	move.l	a2,a0
	add.l	#$E964,a0
	move.l	(a0),d0
	cmp.l	#$1C02,d0
	bne.b	L161
L160
;      gl_error( ctx, GL_INVALID_OPERATION, "glSelectBuffer" );
	move.l	#L156,-(a7)
	pea	$502.w
	move.l	a2,-(a7)
	jsr	_gl_error
	add.w	#$C,a7
L161
;   ctx->Select.Buffer = buffer;
	move.l	a2,a1
	add.l	#$E83C,a1
	move.l	a3,(a1)
;   ctx->Select.BufferSize = size;
	move.l	a2,a0
	add.l	#$E840,a0
	move.l	d2,(a0)
;   ctx->Select.BufferCount = 0;
	move.l	a2,a0
	add.l	#$E844,a0
	clr.l	(a0)
;   ctx->Select.HitFlag = GL_FALSE;
	move.l	a2,a0
	add.l	#$E950,a0
	clr.b	(a0)
;   ctx->Select.HitMinZ = 1.0;
	move.l	a2,a0
	add.l	#$E952,a0
	move.l	#$3F800000,(a0)
;   ctx->Select.HitMaxZ = 0.0;
	move.l	a2,a0
	add.l	#$E956,a0
	clr.l	(a0)
	movem.l	(a7)+,d2/a2/a3
	rts

L156
	dc.b	'glSelectBuffer',0

	SECTION "_gl_update_hitflag:0",CODE


;void gl_update_hitflag( GLcontext *ctx, GLfloat z )
	XDEF	_gl_update_hitflag
_gl_update_hitflag
	move.l	4(a7),a0
	fmove.s	$8(a7),fp0
L162
;   ctx->Select.HitFlag = GL_TRUE;
	move.l	a0,a1
	add.l	#$E950,a1
	move.b	#1,(a1)
;   if (z < ctx->Select.HitMinZ) 
	move.l	a0,a1
	add.l	#$E83C,a1
	fcmp.s	$116(a1),fp0
	fboge.b	L164
L163
;      ctx->Select.HitMinZ = z;
	move.l	a0,a1
	add.l	#$E952,a1
	fmove.s	fp0,(a1)
L164
;   if (z > ctx->Select.HitMaxZ) 
	move.l	a0,a1
	add.l	#$E83C,a1
	fcmp.s	$11A(a1),fp0
	fbole.b	L166
L165
;      ctx->Select.HitMaxZ = z;
	add.l	#$E956,a0
	fmove.s	fp0,(a0)
L166
	rts

	SECTION "_write_hit_record:0",CODE


;static void write_hit_record( GLcontext *ctx )
_write_hit_record
	movem.l	d2/d3/a2,-(a7)
	move.l	$10(a7),a0
L167
;   GLuint zmin, zmax, zscale = 0x7fffffff;
	move.l	#$7FFFFFFF,d0
;   zmin = 2* (GLuint) ((GLfloat) zscale * ctx->Select.HitMinZ);
	fmove.l	d0,fp0
	move.l	a0,a1
	add.l	#$E83C,a1
	fmul.s	$116(a1),fp0
	fmove.l	fp0,d1
	move.l	d1,d3
	moveq	#1,d1
	asl.l	d1,d3
;   zmax = 2* (GLuint) ((GLfloat) zscale * ctx->Select.HitMaxZ);
	fmove.l	d0,fp0
	move.l	a0,a1
	add.l	#$E83C,a1
	fmul.s	$11A(a1),fp0
	fmove.l	fp0,d0
	move.l	d0,d2
	moveq	#1,d0
	asl.l	d0,d2
;   WRITE_RECORD( ct
	move.l	a0,a1
	add.l	#$E83C,a1
	move.l	$8(a1),d1
	move.l	a0,a1
	add.l	#$E83C,a1
	cmp.l	4(a1),d1
	bhs.b	L169
L168
;   WRITE_RECORD( ct
	move.l	a0,a1
	add.l	#$E83C,a1
	move.l	$10(a1),d1
	move.l	a0,a1
	add.l	#$E83C,a1
	move.l	(a1),a2
	move.l	a0,a1
	add.l	#$E83C,a1
	move.l	$8(a1),d0
	move.l	d1,0(a2,d0.l*4)
L169
;   WRITE_RECORD( ct
	move.l	a0,a1
	add.l	#$E844,a1
	move.l	(a1),d0
	addq.l	#1,d0
	move.l	a0,a1
	add.l	#$E844,a1
	move.l	d0,(a1)
;   WRITE_RECORD( ctx, zmin )
	move.l	a0,a1
	add.l	#$E83C,a1
	move.l	$8(a1),d1
	move.l	a0,a1
	add.l	#$E83C,a1
	cmp.l	4(a1),d1
	bhs.b	L171
L170
;   WRITE_RECORD( ctx, zmin )
	move.l	a0,a1
	add.l	#$E83C,a1
	move.l	(a1),a2
	move.l	a0,a1
	add.l	#$E83C,a1
	move.l	$8(a1),d0
	move.l	d3,0(a2,d0.l*4)
L171
;   WRITE_RECORD( ctx, zmin )
	move.l	a0,a1
	add.l	#$E844,a1
	move.l	(a1),d0
	addq.l	#1,d0
	move.l	a0,a1
	add.l	#$E844,a1
	move.l	d0,(a1)
;   WRITE_RECORD( ctx, zmax )
	move.l	a0,a1
	add.l	#$E83C,a1
	move.l	$8(a1),d1
	move.l	a0,a1
	add.l	#$E83C,a1
	cmp.l	4(a1),d1
	bhs.b	L173
L172
;   WRITE_RECORD( ctx, zmax )
	move.l	a0,a1
	add.l	#$E83C,a1
	move.l	(a1),a2
	move.l	a0,a1
	add.l	#$E83C,a1
	move.l	$8(a1),d0
	move.l	d2,0(a2,d0.l*4)
L173
;   WRITE_RECORD( ctx, zmax )
	move.l	a0,a1
	add.l	#$E844,a1
	move.l	(a1),d0
	addq.l	#1,d0
	move.l	a0,a1
	add.l	#$E844,a1
	move.l	d0,(a1)
;   for (i=0;
	moveq	#0,d0
	bra.b	L177
L174
;      WRITE_RECORD
	move.l	a0,a1
	add.l	#$E83C,a1
	move.l	$8(a1),d2
	move.l	a0,a1
	add.l	#$E83C,a1
	cmp.l	4(a1),d2
	bhs.b	L176
L175
;      WRITE_RECORD
	move.l	a0,a1
	add.l	#$E850,a1
	move.l	0(a1,d0.l*4),d2
	move.l	a0,a1
	add.l	#$E83C,a1
	move.l	(a1),a2
	move.l	a0,a1
	add.l	#$E83C,a1
	move.l	$8(a1),d1
	move.l	d2,0(a2,d1.l*4)
L176
;      WRITE_RECORD
	move.l	a0,a1
	add.l	#$E844,a1
	move.l	(a1),d1
	addq.l	#1,d1
	move.l	a0,a1
	add.l	#$E844,a1
	move.l	d1,(a1)
	addq.l	#1,d0
L177
	move.l	a0,a1
	add.l	#$E83C,a1
	cmp.l	$10(a1),d0
	blo.b	L174
L178
;   ctx->Select.Hits++;
	move.l	a0,a1
	add.l	#$E848,a1
	move.l	(a1),d0
	addq.l	#1,d0
	move.l	a0,a1
	add.l	#$E848,a1
	move.l	d0,(a1)
;   ctx->Select.HitFlag = GL_FALSE;
	move.l	a0,a1
	add.l	#$E950,a1
	clr.b	(a1)
;   ctx->Select.HitMinZ = 1.0;
	move.l	a0,a1
	add.l	#$E952,a1
	move.l	#$3F800000,(a1)
;   ctx->Select.HitMaxZ = -1.0;
	add.l	#$E956,a0
	move.l	#$BF800000,(a0)
	movem.l	(a7)+,d2/d3/a2
	rts

	SECTION "_gl_InitNames:0",CODE


;void gl_InitNames( GLcontext *ctx )
	XDEF	_gl_InitNames
_gl_InitNames
	move.l	a2,-(a7)
	move.l	$8(a7),a2
L180
;   if (INSIDE_BEGIN_END(ctx)) 
	move.l	a2,a0
	add.l	#$E968,a0
	move.l	(a0),d0
	cmp.l	#$1A00,d0
	beq.b	L182
L181
;      gl_error( ctx, GL_INVALID_OPERATION, "glInitNames" );
	move.l	#L179,-(a7)
	pea	$502.w
	move.l	a2,-(a7)
	jsr	_gl_error
	add.w	#$C,a7
L182
;   if (ctx->RenderMode==GL_SELECT) 
	move.l	a2,a0
	add.l	#$E964,a0
	move.l	(a0),d0
	cmp.l	#$1C02,d0
	bne.b	L185
L183
;      if (ctx->Select.HitFlag) 
	move.l	a2,a0
	add.l	#$E83C,a0
	tst.b	$114(a0)
	beq.b	L185
L184
;	 write_hit_record( ctx );
	move.l	a2,-(a7)
	jsr	_write_hit_record
	addq.w	#4,a7
L185
;   ctx->Select.NameStackDepth = 0;
	move.l	a2,a0
	add.l	#$E84C,a0
	clr.l	(a0)
;   ctx->Select.HitFlag = GL_FALSE;
	move.l	a2,a0
	add.l	#$E950,a0
	clr.b	(a0)
;   ctx->Select.HitMinZ = 1.0;
	move.l	a2,a0
	add.l	#$E952,a0
	move.l	#$3F800000,(a0)
;   ctx->Select.HitMaxZ = 0.0;
	move.l	a2,a0
	add.l	#$E956,a0
	clr.l	(a0)
	move.l	(a7)+,a2
	rts

L179
	dc.b	'glInitNames',0

	SECTION "_gl_LoadName:0",CODE


;void gl_LoadName( GLcontext *ctx, GLuint name )
	XDEF	_gl_LoadName
_gl_LoadName
	movem.l	d2/a2,-(a7)
	move.l	$10(a7),d2
	move.l	$C(a7),a2
L187
;   if (INSIDE_BEGIN_END(ctx)) 
	move.l	a2,a0
	add.l	#$E968,a0
	move.l	(a0),d0
	cmp.l	#$1A00,d0
	beq.b	L189
L188
;      gl_error( ctx, GL_INVALID_OPERATION, "glLoadName" );
	move.l	#L186,-(a7)
	pea	$502.w
	move.l	a2,-(a7)
	jsr	_gl_error
	add.w	#$C,a7
	movem.l	(a7)+,d2/a2
	rts
L189
;   if (ctx->RenderMode!=GL_SELECT) 
	move.l	a2,a0
	add.l	#$E964,a0
	move.l	(a0),d0
	cmp.l	#$1C02,d0
	beq.b	L191
L190
	movem.l	(a7)+,d2/a2
	rts
L191
;   if (ctx->Select.NameStackDepth==0) 
	move.l	a2,a0
	add.l	#$E83C,a0
	tst.l	$10(a0)
	bne.b	L193
L192
;      gl_error( ctx, GL_INVALID_OPERATION, "glLoadName" );
	move.l	#L186,-(a7)
	pea	$502.w
	move.l	a2,-(a7)
	jsr	_gl_error
	add.w	#$C,a7
	movem.l	(a7)+,d2/a2
	rts
L193
;   if (ctx->Select.HitFlag) 
	move.l	a2,a0
	add.l	#$E83C,a0
	tst.b	$114(a0)
	beq.b	L195
L194
;      write_hit_record( ctx );
	move.l	a2,-(a7)
	jsr	_write_hit_record
	addq.w	#4,a7
L195
;   if (ctx->Select.NameStackDepth<MAX_NAME_STACK_DEPTH) 
	move.l	a2,a0
	add.l	#$E83C,a0
	move.l	$10(a0),d0
	cmp.l	#$40,d0
	bhs.b	L197
L196
;      ctx->Select.NameStack[ctx->Select.NameStackDepth-1] = na
	move.l	a2,a1
	add.l	#$E850,a1
	move.l	a2,a0
	add.l	#$E83C,a0
	move.l	$10(a0),d0
	subq.l	#1,d0
	move.l	d2,0(a1,d0.l*4)
	bra.b	L198
L197
;      ctx->Select.NameStack[MAX_NAME_STACK_DEPTH-1] = name;
	move.l	a2,a0
	add.l	#$E850,a0
	move.l	d2,$FC(a0)
L198
	movem.l	(a7)+,d2/a2
	rts

L186
	dc.b	'glLoadName',0

	SECTION "_gl_PushName:0",CODE


;void gl_PushName( GLcontext *ctx, GLuint name )
	XDEF	_gl_PushName
_gl_PushName
	movem.l	d2/d3/a2,-(a7)
	move.l	$14(a7),d2
	move.l	$10(a7),a2
L200
;   if (INSIDE_BEGIN_END(ctx)) 
	move.l	a2,a0
	add.l	#$E968,a0
	move.l	(a0),d0
	cmp.l	#$1A00,d0
	beq.b	L202
L201
;      gl_error( ctx, GL_INVALID_OPERATION, "glPushName" );
	move.l	#L199,-(a7)
	pea	$502.w
	move.l	a2,-(a7)
	jsr	_gl_error
	add.w	#$C,a7
	movem.l	(a7)+,d2/d3/a2
	rts
L202
;   if (ctx->RenderMode!=GL_SELECT) 
	move.l	a2,a0
	add.l	#$E964,a0
	move.l	(a0),d0
	cmp.l	#$1C02,d0
	beq.b	L204
L203
	movem.l	(a7)+,d2/d3/a2
	rts
L204
;   if (ctx->Select.HitFlag) 
	move.l	a2,a0
	add.l	#$E83C,a0
	tst.b	$114(a0)
	beq.b	L206
L205
;      write_hit_record( ctx );
	move.l	a2,-(a7)
	jsr	_write_hit_record
	addq.w	#4,a7
L206
;   if (ctx->Select.NameStackDepth<MAX_NAME_STACK_DEPTH) 
	move.l	a2,a0
	add.l	#$E83C,a0
	move.l	$10(a0),d0
	cmp.l	#$40,d0
	bhs.b	L208
L207
;      ctx->Select.NameStack[ctx->Select.NameStackDepth++] = na
	move.l	a2,a0
	add.l	#$E850,a0
	move.l	a2,a1
	add.l	#$E84C,a1
	move.l	(a1),d1
	move.l	d1,d0
	addq.l	#1,d0
	move.l	a2,a1
	add.l	#$E84C,a1
	move.l	d0,(a1)
	move.l	d2,0(a0,d1.l*4)
	bra.b	L209
L208
;      gl_error( ctx, GL_STACK_OVERFLOW, "glPushName" );
	move.l	#L199,-(a7)
	pea	$503.w
	move.l	a2,-(a7)
	jsr	_gl_error
	add.w	#$C,a7
L209
	movem.l	(a7)+,d2/d3/a2
	rts

L199
	dc.b	'glPushName',0

	SECTION "_gl_PopName:0",CODE


;void gl_PopName( GLcontext *ctx )
	XDEF	_gl_PopName
_gl_PopName
	move.l	a2,-(a7)
	move.l	$8(a7),a2
L211
;   if (INSIDE_BEGIN_END(ctx)) 
	move.l	a2,a0
	add.l	#$E968,a0
	move.l	(a0),d0
	cmp.l	#$1A00,d0
	beq.b	L213
L212
;      gl_error( ctx, GL_INVALID_OPERATION, "glPopName" );
	move.l	#L210,-(a7)
	pea	$502.w
	move.l	a2,-(a7)
	jsr	_gl_error
	add.w	#$C,a7
	move.l	(a7)+,a2
	rts
L213
;   if (ctx->RenderMode!=GL_SELECT) 
	move.l	a2,a0
	add.l	#$E964,a0
	move.l	(a0),d0
	cmp.l	#$1C02,d0
	beq.b	L215
L214
	move.l	(a7)+,a2
	rts
L215
;   if (ctx->Select.HitFlag) 
	move.l	a2,a0
	add.l	#$E83C,a0
	tst.b	$114(a0)
	beq.b	L217
L216
;      write_hit_record( ctx );
	move.l	a2,-(a7)
	jsr	_write_hit_record
	addq.w	#4,a7
L217
;   if (ctx->Select.NameStackDepth>0) 
	move.l	a2,a0
	add.l	#$E83C,a0
	tst.l	$10(a0)
	beq.b	L219
L218
;      ctx->Select.NameStackDepth--;
	move.l	a2,a0
	add.l	#$E84C,a0
	move.l	(a0),d0
	subq.l	#1,d0
	move.l	a2,a0
	add.l	#$E84C,a0
	move.l	d0,(a0)
	bra.b	L220
L219
;      gl_error( ctx, GL_STACK_UNDERFLOW, "glPopName" );
	move.l	#L210,-(a7)
	pea	$504.w
	move.l	a2,-(a7)
	jsr	_gl_error
	add.w	#$C,a7
L220
	move.l	(a7)+,a2
	rts

L210
	dc.b	'glPopName',0

	SECTION "_gl_RenderMode:0",CODE


;GLint gl_RenderMode( GLcontext *ctx, GLenum mode )
	XDEF	_gl_RenderMode
_gl_RenderMode
	movem.l	d2/d3/a2,-(a7)
	move.l	$14(a7),d3
	move.l	$10(a7),a2
L222
;   if (INSIDE_BEGIN_END(ctx)) 
	move.l	a2,a0
	add.l	#$E968,a0
	move.l	(a0),d0
	cmp.l	#$1A00,d0
	beq.b	L224
L223
;      gl_error( ctx, GL_INVALID_OPERATION, "glRenderMode" );
	move.l	#L221,-(a7)
	pea	$502.w
	move.l	a2,-(a7)
	jsr	_gl_error
	add.w	#$C,a7
L224
;   switch (ctx->RenderMode)
	move.l	a2,a0
	add.l	#$E964,a0
	move.l	(a0),d0
	cmp.l	#$1C01,d0
	beq	L232
	bgt.b	L247
	cmp.l	#$1C00,d0
	beq.b	L225
	bra	L236
L247
	cmp.l	#$1C02,d0
	beq.b	L226
	bra	L236
;      
L225
;	 result = 0;
	moveq	#0,d2
;	 
	bra	L237
L226
;	 if (ctx->Select.HitFlag) 
	move.l	a2,a0
	add.l	#$E83C,a0
	tst.b	$114(a0)
	beq.b	L228
L227
;	    write_hit_record( ctx );
	move.l	a2,-(a7)
	jsr	_write_hit_record
	addq.w	#4,a7
L228
;	 if (ctx->Select.BufferCount > ctx->Select.BufferSize) 
	move.l	a2,a0
	add.l	#$E83C,a0
	move.l	$8(a0),d1
	move.l	a2,a0
	add.l	#$E83C,a0
	cmp.l	4(a0),d1
	bls.b	L230
L229
;	    result = -1;
	moveq	#-1,d2
	bra.b	L231
L230
;	    result = ctx->Select.Hits;
	move.l	a2,a0
	add.l	#$E83C,a0
	move.l	$C(a0),d2
L231
;	 ctx->Select.BufferCount = 0;
	move.l	a2,a0
	add.l	#$E844,a0
	clr.l	(a0)
;	 ctx->Select.Hits = 0;
	move.l	a2,a0
	add.l	#$E848,a0
	clr.l	(a0)
;	 ctx->Select.NameStackDepth = 0;
	move.l	a2,a0
	add.l	#$E84C,a0
	clr.l	(a0)
;	 
	bra.b	L237
L232
;	 if (ctx->Feedback.Count > ctx->Feedback.BufferSize) 
	move.l	a2,a0
	add.l	#$E828,a0
	move.l	$10(a0),d1
	move.l	a2,a0
	add.l	#$E828,a0
	cmp.l	$C(a0),d1
	bls.b	L234
L233
;	    result = -1;
	moveq	#-1,d2
	bra.b	L235
L234
;	    result = ctx->Feedback.Count;
	move.l	a2,a0
	add.l	#$E828,a0
	move.l	$10(a0),d2
L235
;	 ctx->Feedback.Count = 0;
	move.l	a2,a0
	add.l	#$E838,a0
	clr.l	(a0)
;	 
	bra.b	L237
L236
;	 gl_error( ctx, GL_INVALID_ENUM, "glRenderMode" );
	move.l	#L221,-(a7)
	pea	$500.w
	move.l	a2,-(a7)
	jsr	_gl_error
	add.w	#$C,a7
	moveq	#0,d0
	movem.l	(a7)+,d2/d3/a2
	rts
L237
;	 return 
;   switch (mode)
	move.l	d3,d0
	cmp.l	#$1C01,d0
	beq.b	L242
	bgt.b	L248
	cmp.l	#$1C00,d0
	beq.b	L238
	bra.b	L245
L248
	cmp.l	#$1C02,d0
	beq.b	L239
	bra.b	L245
;      
L238
;	 
	bra.b	L246
L239
;	 if (ctx->Select.BufferSize==0) 
	move.l	a2,a0
	add.l	#$E83C,a0
	tst.l	4(a0)
	bne.b	L241
L240
;	    gl_error( ctx, GL_INVALID_OPERATION, "glRenderMode" );
	move.l	#L221,-(a7)
	pea	$502.w
	move.l	a2,-(a7)
	jsr	_gl_error
	add.w	#$C,a7
L241
;	 
	bra.b	L246
L242
;	 if (ctx->Feedback.BufferSize==0) 
	move.l	a2,a0
	add.l	#$E828,a0
	tst.l	$C(a0)
	bne.b	L244
L243
;	    gl_error( ctx, GL_INVALID_OPERATION, "glRenderMode" );
	move.l	#L221,-(a7)
	pea	$502.w
	move.l	a2,-(a7)
	jsr	_gl_error
	add.w	#$C,a7
L244
;	 
	bra.b	L246
L245
;	 gl_error( ctx, GL_INVALID_ENUM, "glRenderMode" );
	move.l	#L221,-(a7)
	pea	$500.w
	move.l	a2,-(a7)
	jsr	_gl_error
	add.w	#$C,a7
	moveq	#0,d0
	movem.l	(a7)+,d2/d3/a2
	rts
L246
;	 return 
;   ctx->RenderMode = mode;
	move.l	a2,a0
	add.l	#$E964,a0
	move.l	d3,(a0)
;   ctx->NewState |= NEW_ALL;
	move.l	a2,a0
	add.l	#$E960,a0
	move.l	(a0),d0
	or.l	#$FF,d0
	move.l	a2,a0
	add.l	#$E960,a0
	move.l	d0,(a0)
	move.l	d2,d0
	movem.l	(a7)+,d2/d3/a2
	rts

L221
	dc.b	'glRenderMode',0

	END
