
; Storm C Compiler
; Work2:Mesa3/Mesa-3.0/src/depth.c
	mc68030
	mc68881
	XREF	_gl_error
	XREF	_gl_problem
	XREF	_q_memset
	XREF	_q_memcpy
	XREF	_malloc
	XREF	_free
	XREF	_CC

	SECTION "_gl_ClearDepth:0",CODE


;void gl_ClearDepth( GLcontext* ctx, GLclampd depth )
	XDEF	_gl_ClearDepth
_gl_ClearDepth
	move.l	4(a7),a0
	fmove.d	$8(a7),fp0
L266
;   if (INSIDE_BEGIN_END(ctx)) 
	move.l	a0,a1
	add.l	#$E968,a1
	move.l	(a1),d0
	cmp.l	#$1A00,d0
	beq.b	L268
L267
;      gl_error( ctx, GL_INVALID_OPERATION, "glClearDepth" );
	move.l	#L265,-(a7)
	pea	$502.w
	move.l	a0,-(a7)
	jsr	_gl_error
	add.w	#$C,a7
	rts
L268
;   ctx->Depth.Clear = (GLfloat) CLAMP( depth, 0.0, 1.0 );
	fcmp.d	#$.00000000.00000000,fp0
	fboge.b	L270
L269
	fmove.d	#$.00000000.00000000,fp0
	bra.b	L274
L270
	fcmp.d	#$.3FF00000.00000000,fp0
	fbole.b	L274
L271
	fmove.d	#$.3FF00000.00000000,fp0
L272
L273
L274
	fmove.s	fp0,$22A0(a0)
	rts

L265
	dc.b	'glClearDepth',0

	SECTION "_gl_DepthFunc:0",CODE

	rts

;void gl_DepthFunc( GLcontext* ctx, GLenum func )
	XDEF	_gl_DepthFunc
_gl_DepthFunc
	move.l	$8(a7),d0
	move.l	4(a7),a0
L277
;   if (INSIDE_BEGIN_END(ctx)) 
	move.l	a0,a1
	add.l	#$E968,a1
	move.l	(a1),d1
	cmp.l	#$1A00,d1
	beq.b	L279
L278
;      gl_error( ctx, GL_INVALID_OPERATION, "glDepthFunc" );
	move.l	#L275,-(a7)
	pea	$502.w
	move.l	a0,-(a7)
	jsr	_gl_error
	add.w	#$C,a7
	rts
L279
;   switch (func)
	move.l	d0,d1
	sub.l	#$200,d1
	cmp.l	#7,d1
	bhi.b	L281
	move.l	L283(pc,d1.l*4),a1
	jmp	(a1)
L283
	dc.l	L280
	dc.l	L280
	dc.l	L280
	dc.l	L280
	dc.l	L280
	dc.l	L280
	dc.l	L280
	dc.l	L280
;      
L280
;         ctx->Depth.Func = func;
	move.l	d0,$229C(a0)
;         ctx->NewState |= NEW_RASTER_OPS;
	move.l	a0,a1
	add.l	#$E960,a1
	move.l	(a1),d0
	or.l	#2,d0
	add.l	#$E960,a0
	move.l	d0,(a0)
;         
	bra.b	L282
L281
;         gl_error( ctx, GL_INVALID_ENUM, "glDepth.Func" );
	move.l	#L276,-(a7)
	pea	$500.w
	move.l	a0,-(a7)
	jsr	_gl_error
	add.w	#$C,a7
L282
	rts

L276
	dc.b	'glDepth.Func',0
L275
	dc.b	'glDepthFunc',0

	SECTION "_gl_DepthMask:0",CODE


;void gl_DepthMask( GLcontext* ctx, GLboolean flag )
	XDEF	_gl_DepthMask
_gl_DepthMask
	move.b	$8(a7),d1
	move.l	4(a7),a0
L285
;   if (INSIDE_BEGIN_END(ctx)) 
	move.l	a0,a1
	add.l	#$E968,a1
	move.l	(a1),d0
	cmp.l	#$1A00,d0
	beq.b	L287
L286
;      gl_error( ctx, GL_INVALID_OPERATION, "glDepthMask" );
	move.l	#L284,-(a7)
	pea	$502.w
	move.l	a0,-(a7)
	jsr	_gl_error
	add.w	#$C,a7
	rts
L287
;   ctx->Depth.Mask = flag;
	move.b	d1,$22A5(a0)
;   ctx->NewState |= NEW_RASTER_OPS;
	move.l	a0,a1
	add.l	#$E960,a1
	move.l	(a1),d0
	or.l	#2,d0
	add.l	#$E960,a0
	move.l	d0,(a0)
	rts

L284
	dc.b	'glDepthMask',0

	SECTION "_gl_depth_test_span_generic:0",CODE


;GLuint gl_depth_test_span_generic( GLcontext* ctx,
	XDEF	_gl_depth_test_span_generic
_gl_depth_test_span_generic
L407	EQU	-$10
	link	a5,#L407
	movem.l	d2-d4/a2-a4,-(a7)
	movem.l	$C(a5),d1-d3/a2
	move.l	$8(a5),a4
L289
;   GLdepth *zptr = Z_ADDRESS( ctx, x, y );
	move.l	a4,a1
	move.l	$8FC(a1),a0
	move.l	$C(a0),a1
	move.l	a4,a3
	move.l	$8FC(a3),a0
	move.l	4(a0),d0
	muls.l	d3,d0
	lea	0(a1,d0.l*2),a0
	lea	0(a0,d2.l*2),a1
;   GLubyte *m = mask;
	move.l	$1C(a5),a0
;   GLuint passed = 0;
	moveq	#0,d2
;   switch (ctx->Depth.Func)
	move.l	#$229C,d0
	add.l	a4,d0
	move.l	d0,a3
	move.l	(a3),d0
	sub.l	#$200,d0
	cmp.l	#7,d0
	bhi	L405
	move.l	L408(pc,d0.l*4),a3
	jmp	(a3)
L408
	dc.l	L401
	dc.l	L290
	dc.l	L375
	dc.l	L307
	dc.l	L341
	dc.l	L358
	dc.l	L324
	dc.l	L392
;      
L290
;         if (ctx->Depth.Mask) 
	move.l	#$229C,d0
	add.l	a4,d0
	move.l	d0,a3
	tst.b	$9(a3)
	beq.b	L299
L291
;            for (i=0;
	moveq	#0,d0
	bra.b	L297
L292
;               if (*m) 
	tst.b	(a0)
	beq.b	L296
L293
;                  if (z[i] < *zptr) 
	move.l	d0,d3
	add.l	d3,d3
	add.l	a2,d3
	move.l	d3,a3
	move.w	(a3),d4
	cmp.w	(a1),d4
	bhs.b	L295
L294
;                     *zptr = z[i];
	move.l	d0,d3
	add.l	d3,d3
	add.l	a2,d3
	move.l	d3,a3
	move.w	(a3),(a1)
;                     passed++;
	addq.l	#1,d2
	bra.b	L296
L295
;                     *m = 0;
	clr.b	(a0)
L296
	addq.l	#1,d0
	addq.w	#2,a1
	addq.w	#1,a0
L297
	cmp.l	d1,d0
	blo.b	L292
L298
	bra.b	L306
L299
;            for (i=0;
	moveq	#0,d0
	bra.b	L305
L300
;               if (*m) 
	tst.b	(a0)
	beq.b	L304
L301
;                  if (z[i] < *zptr) 
	move.l	d0,d3
	add.l	d3,d3
	add.l	a2,d3
	move.l	d3,a3
	move.w	(a3),d4
	cmp.w	(a1),d4
	bhs.b	L303
L302
;                     passed++;
	addq.l	#1,d2
	bra.b	L304
L303
;                     *m = 0;
	clr.b	(a0)
L304
	addq.l	#1,d0
	addq.w	#2,a1
	addq.w	#1,a0
L305
	cmp.l	d1,d0
	blo.b	L300
L306
;         
	bra	L406
L307
;         if (ctx->Depth.Mask) 
	move.l	#$229C,d0
	add.l	a4,d0
	move.l	d0,a3
	tst.b	$9(a3)
	beq.b	L316
L308
;            for (i=0;
	moveq	#0,d0
	bra.b	L314
L309
;               if (*m) 
	tst.b	(a0)
	beq.b	L313
L310
;                  if (z[i] <= *zptr) 
	move.l	d0,d3
	add.l	d3,d3
	add.l	a2,d3
	move.l	d3,a3
	move.w	(a3),d4
	cmp.w	(a1),d4
	bhi.b	L312
L311
;                     *zptr = z[i];
	move.l	d0,d3
	add.l	d3,d3
	add.l	a2,d3
	move.l	d3,a3
	move.w	(a3),(a1)
;                     passed++;
	addq.l	#1,d2
	bra.b	L313
L312
;                     *m = 0;
	clr.b	(a0)
L313
	addq.l	#1,d0
	addq.w	#2,a1
	addq.w	#1,a0
L314
	cmp.l	d1,d0
	blo.b	L309
L315
	bra.b	L323
L316
;            for (i=0;
	moveq	#0,d0
	bra.b	L322
L317
;               if (*m) 
	tst.b	(a0)
	beq.b	L321
L318
;                  if (z[i] <= *zptr) 
	move.l	d0,d3
	add.l	d3,d3
	add.l	a2,d3
	move.l	d3,a3
	move.w	(a3),d4
	cmp.w	(a1),d4
	bhi.b	L320
L319
;                     passed++;
	addq.l	#1,d2
	bra.b	L321
L320
;                     *m = 0;
	clr.b	(a0)
L321
	addq.l	#1,d0
	addq.w	#2,a1
	addq.w	#1,a0
L322
	cmp.l	d1,d0
	blo.b	L317
L323
;         
	bra	L406
L324
;         if (ctx->Depth.Mask) 
	move.l	#$229C,d0
	add.l	a4,d0
	move.l	d0,a3
	tst.b	$9(a3)
	beq.b	L333
L325
;            for (i=0;
	moveq	#0,d0
	bra.b	L331
L326
;               if (*m) 
	tst.b	(a0)
	beq.b	L330
L327
;                  if (z[i] >= *zptr) 
	move.l	d0,d3
	add.l	d3,d3
	add.l	a2,d3
	move.l	d3,a3
	move.w	(a3),d4
	cmp.w	(a1),d4
	blo.b	L329
L328
;                     *zptr = z[i];
	move.l	d0,d3
	add.l	d3,d3
	add.l	a2,d3
	move.l	d3,a3
	move.w	(a3),(a1)
;                     passed++;
	addq.l	#1,d2
	bra.b	L330
L329
;                     *m = 0;
	clr.b	(a0)
L330
	addq.l	#1,d0
	addq.w	#2,a1
	addq.w	#1,a0
L331
	cmp.l	d1,d0
	blo.b	L326
L332
	bra.b	L340
L333
;            for (i=0;
	moveq	#0,d0
	bra.b	L339
L334
;               if (*m) 
	tst.b	(a0)
	beq.b	L338
L335
;                  if (z[i] >= *zptr) 
	move.l	d0,d3
	add.l	d3,d3
	add.l	a2,d3
	move.l	d3,a3
	move.w	(a3),d4
	cmp.w	(a1),d4
	blo.b	L337
L336
;                     passed++;
	addq.l	#1,d2
	bra.b	L338
L337
;                     *m = 0;
	clr.b	(a0)
L338
	addq.l	#1,d0
	addq.w	#2,a1
	addq.w	#1,a0
L339
	cmp.l	d1,d0
	blo.b	L334
L340
;         
	bra	L406
L341
;         if (ctx->Depth.Mask) 
	move.l	#$229C,d0
	add.l	a4,d0
	move.l	d0,a3
	tst.b	$9(a3)
	beq.b	L350
L342
;            for (i=0;
	moveq	#0,d0
	bra.b	L348
L343
;               if (*m) 
	tst.b	(a0)
	beq.b	L347
L344
;                  if (z[i] > *zptr) 
	move.l	d0,d3
	add.l	d3,d3
	add.l	a2,d3
	move.l	d3,a3
	move.w	(a3),d4
	cmp.w	(a1),d4
	bls.b	L346
L345
;                     *zptr = z[i];
	move.l	d0,d3
	add.l	d3,d3
	add.l	a2,d3
	move.l	d3,a3
	move.w	(a3),(a1)
;                     passed++;
	addq.l	#1,d2
	bra.b	L347
L346
;                     *m = 0;
	clr.b	(a0)
L347
	addq.l	#1,d0
	addq.w	#2,a1
	addq.w	#1,a0
L348
	cmp.l	d1,d0
	blo.b	L343
L349
	bra.b	L357
L350
;            for (i=0;
	moveq	#0,d0
	bra.b	L356
L351
;               if (*m) 
	tst.b	(a0)
	beq.b	L355
L352
;                  if (z[i] > *zptr) 
	move.l	d0,d3
	add.l	d3,d3
	add.l	a2,d3
	move.l	d3,a3
	move.w	(a3),d4
	cmp.w	(a1),d4
	bls.b	L354
L353
;                     passed++;
	addq.l	#1,d2
	bra.b	L355
L354
;                     *m = 0;
	clr.b	(a0)
L355
	addq.l	#1,d0
	addq.w	#2,a1
	addq.w	#1,a0
L356
	cmp.l	d1,d0
	blo.b	L351
L357
;         
	bra	L406
L358
;         if (ctx->Depth.Mask) 
	move.l	#$229C,d0
	add.l	a4,d0
	move.l	d0,a3
	tst.b	$9(a3)
	beq.b	L367
L359
;            for (i=0;
	moveq	#0,d0
	bra.b	L365
L360
;               if (*m) 
	tst.b	(a0)
	beq.b	L364
L361
;                  if (z[i] != *zptr) 
	move.l	d0,d3
	add.l	d3,d3
	add.l	a2,d3
	move.l	d3,a3
	move.w	(a3),d4
	cmp.w	(a1),d4
	beq.b	L363
L362
;                     *zptr = z[i];
	move.l	d0,d3
	add.l	d3,d3
	add.l	a2,d3
	move.l	d3,a3
	move.w	(a3),(a1)
;                     passed++;
	addq.l	#1,d2
	bra.b	L364
L363
;                     *m = 0;
	clr.b	(a0)
L364
	addq.l	#1,d0
	addq.w	#2,a1
	addq.w	#1,a0
L365
	cmp.l	d1,d0
	blo.b	L360
L366
	bra.b	L374
L367
;            for (i=0;
	moveq	#0,d0
	bra.b	L373
L368
;               if (*m) 
	tst.b	(a0)
	beq.b	L372
L369
;                  if (z[i] != *zptr) 
	move.l	d0,d3
	add.l	d3,d3
	add.l	a2,d3
	move.l	d3,a3
	move.w	(a3),d4
	cmp.w	(a1),d4
	beq.b	L371
L370
;                     passed++;
	addq.l	#1,d2
	bra.b	L372
L371
;                     *m = 0;
	clr.b	(a0)
L372
	addq.l	#1,d0
	addq.w	#2,a1
	addq.w	#1,a0
L373
	cmp.l	d1,d0
	blo.b	L368
L374
;         
	bra	L406
L375
;         if (ctx->Depth.Mask) 
	move.l	#$229C,d0
	add.l	a4,d0
	move.l	d0,a3
	tst.b	$9(a3)
	beq.b	L384
L376
;            for (i=0;
	moveq	#0,d0
	bra.b	L382
L377
;               if (*m) 
	tst.b	(a0)
	beq.b	L381
L378
;                  if (z[i] == *zptr) 
	move.l	d0,d3
	add.l	d3,d3
	add.l	a2,d3
	move.l	d3,a3
	move.w	(a3),d4
	cmp.w	(a1),d4
	bne.b	L380
L379
;                     *zptr = z[i];
	move.l	d0,d3
	add.l	d3,d3
	add.l	a2,d3
	move.l	d3,a3
	move.w	(a3),(a1)
;                     passed++;
	addq.l	#1,d2
	bra.b	L381
L380
;                     *m =0;
	clr.b	(a0)
L381
	addq.l	#1,d0
	addq.w	#2,a1
	addq.w	#1,a0
L382
	cmp.l	d1,d0
	blo.b	L377
L383
	bra.b	L391
L384
;            for (i=0;
	moveq	#0,d0
	bra.b	L390
L385
;               if (*m) 
	tst.b	(a0)
	beq.b	L389
L386
;                  if (z[i] == *zptr) 
	move.l	d0,d3
	add.l	d3,d3
	add.l	a2,d3
	move.l	d3,a3
	move.w	(a3),d4
	cmp.w	(a1),d4
	bne.b	L388
L387
;                     passed++;
	addq.l	#1,d2
	bra.b	L389
L388
;                     *m =0;
	clr.b	(a0)
L389
	addq.l	#1,d0
	addq.w	#2,a1
	addq.w	#1,a0
L390
	cmp.l	d1,d0
	blo.b	L385
L391
;         
	bra.b	L406
L392
;         if (ctx->Depth.Mask) 
	move.l	#$229C,d0
	add.l	a4,d0
	move.l	d0,a3
	tst.b	$9(a3)
	beq.b	L399
L393
;            for (i=0;
	moveq	#0,d0
	bra.b	L397
L394
;               if (*m) 
	tst.b	(a0)
	beq.b	L396
L395
;                  *zptr = z[i];
	move.l	d0,d3
	add.l	d3,d3
	add.l	a2,d3
	move.l	d3,a3
	move.w	(a3),(a1)
;                  passed++;
	addq.l	#1,d2
L396
	addq.l	#1,d0
	addq.w	#2,a1
	addq.w	#1,a0
L397
	cmp.l	d1,d0
	blo.b	L394
L398
	bra.b	L400
L399
;            passed = n;
	move.l	d1,d2
L400
;         
	bra.b	L406
L401
;         for (i=0;
	moveq	#0,d0
	bra.b	L403
L402
;            mask[i] = 0;
	move.l	$1C(a5),a1
	clr.b	0(a1,d0.l)
	addq.l	#1,d0
L403
	cmp.l	d1,d0
	blo.b	L402
L404
;         
	bra.b	L406
L405
;         gl_problem(ctx, "Bad depth func in gl_depth_test_s
	move.l	#L288,-(a7)
	move.l	a4,-(a7)
	jsr	_gl_problem
	addq.w	#$8,a7
L406
	move.l	d2,d0
	movem.l	(a7)+,d2-d4/a2-a4
	unlk	a5
	rts

L288
	dc.b	'Bad depth func in gl_depth_test_span_generic',0

	SECTION "_gl_depth_test_span_less:0",CODE


;GLuint gl_depth_test_span_less( GLcontext* ctx,
	XDEF	_gl_depth_test_span_less
_gl_depth_test_span_less
	movem.l	d2-d4/a2-a4,-(a7)
	movem.l	$24(a7),d1/d2/a2/a4
	move.l	$20(a7),d4
	move.l	$1C(a7),a3
L409
;   GLdepth *zptr = Z_ADDRESS( ctx, x, y );
	move.l	a3,a1
	move.l	$8FC(a1),a0
	move.l	$C(a0),a1
	move.l	$8FC(a3),a0
	move.l	4(a0),d0
	muls.l	d2,d0
	lea	0(a1,d0.l*2),a0
	lea	0(a0,d1.l*2),a0
;   GLuint passed = 0;
	moveq	#0,d0
;   for (i=0;
	moveq	#0,d1
	bra.b	L415
L410
;      if (mask[i]) 
	tst.b	0(a4,d1.l)
	beq.b	L414
L411
;         if (z[i] < zptr[i]) 
	move.w	0(a2,d1.l*2),d3
	cmp.w	0(a0,d1.l*2),d3
	bhs.b	L413
L412
;            zptr[i] = z[i];
	move.w	0(a2,d1.l*2),0(a0,d1.l*2)
;            passed++;
	addq.l	#1,d0
	bra.b	L414
L413
;            mask[i] = 0;
	clr.b	0(a4,d1.l)
L414
	addq.l	#1,d1
L415
	cmp.l	d4,d1
	blo.b	L410
L416
	movem.l	(a7)+,d2-d4/a2-a4
	rts

	SECTION "_gl_depth_test_span_greater:0",CODE


;GLuint gl_depth_test_span_greater( GLcontext* ctx,
	XDEF	_gl_depth_test_span_greater
_gl_depth_test_span_greater
	movem.l	d2-d4/a2-a4,-(a7)
	movem.l	$24(a7),d1/d2/a2/a4
	move.l	$20(a7),d4
	move.l	$1C(a7),a3
L417
;   GLdepth *zptr = Z_ADDRESS( ctx, x, y );
	move.l	a3,a1
	move.l	$8FC(a1),a0
	move.l	$C(a0),a1
	move.l	$8FC(a3),a0
	move.l	4(a0),d0
	muls.l	d2,d0
	lea	0(a1,d0.l*2),a0
	lea	0(a0,d1.l*2),a0
;   GLuint passed = 0;
	moveq	#0,d0
;   for (i=0;
	moveq	#0,d1
	bra.b	L423
L418
;      if (mask[i]) 
	tst.b	0(a4,d1.l)
	beq.b	L422
L419
;         if (z[i] > zptr[i]) 
	move.w	0(a2,d1.l*2),d3
	cmp.w	0(a0,d1.l*2),d3
	bls.b	L421
L420
;            zptr[i] = z[i];
	move.w	0(a2,d1.l*2),0(a0,d1.l*2)
;            passed++;
	addq.l	#1,d0
	bra.b	L422
L421
;            mask[i] = 0;
	clr.b	0(a4,d1.l)
L422
	addq.l	#1,d1
L423
	cmp.l	d4,d1
	blo.b	L418
L424
	movem.l	(a7)+,d2-d4/a2-a4
	rts

	SECTION "_gl_depth_test_pixels_generic:0",CODE


;void gl_depth_test_pixels_generic( GLcontext* ctx,
	XDEF	_gl_depth_test_pixels_generic
_gl_depth_test_pixels_generic
L537	EQU	-$68
	link	a5,#L537
	movem.l	d2/d3/a2-a4,-(a7)
	move.l	$C(a5),d1
	move.l	$8(a5),a1
	move.l	$1C(a5),a2
	move.l	$18(a5),a4
L426
;   switch (ctx->Depth.Func)
	move.l	$229C(a1),d0
	sub.l	#$200,d0
	cmp.l	#7,d0
	bhi	L535
	move.l	L538(pc,d0.l*4),a0
	jmp	(a0)
L538
	dc.l	L531
	dc.l	L427
	dc.l	L507
	dc.l	L443
	dc.l	L475
	dc.l	L491
	dc.l	L459
	dc.l	L523
;      
L427
;         if (ctx->Depth.Mask) 
	tst.b	$22A5(a1)
	beq.b	L436
L428
;            for (i=0;
	moveq	#0,d0
	bra.b	L434
L429
;               if (mask[i]) 
	tst.b	0(a2,d0.l)
	beq.b	L433
L430
;                  zptr = Z_ADDRESS(ctx,x[i],y[i]);
	move.l	$8FC(a1),a0
	move.l	$C(a0),-$68(a5)
	move.l	$8FC(a1),a0
	move.l	4(a0),d2
	move.l	$14(a5),a3
	muls.l	0(a3,d0.l*4),d2
	add.l	d2,d2
	add.l	-$68(a5),d2
	move.l	d2,-$64(a5)
	move.l	$10(a5),a3
	move.l	0(a3,d0.l*4),d2
	move.l	-$64(a5),a3
	lea	0(a3,d2.l*2),a0
;                  if (z[i] < *zptr) 
	move.l	d0,d2
	add.l	d2,d2
	add.l	a4,d2
	move.l	d2,a3
	move.w	(a3),d3
	cmp.w	(a0),d3
	bhs.b	L432
L431
;                     *zptr = z[i];
	move.l	d0,d2
	add.l	d2,d2
	add.l	a4,d2
	move.l	d2,a3
	move.w	(a3),(a0)
	bra.b	L433
L432
;                     mask[i] = 0;
	clr.b	0(a2,d0.l)
L433
	addq.l	#1,d0
L434
	cmp.l	d1,d0
	blo.b	L429
L435
	bra.b	L442
L436
;            for (i=0;
	moveq	#0,d0
	bra.b	L441
L437
;               if (mask[i]) 
	tst.b	0(a2,d0.l)
	beq.b	L440
L438
;                  zptr = Z_ADDRESS(ctx,x[i],y[i]);
	move.l	$8FC(a1),a0
	move.l	$C(a0),-$60(a5)
	move.l	$8FC(a1),a0
	move.l	4(a0),d2
	move.l	$14(a5),a3
	muls.l	0(a3,d0.l*4),d2
	add.l	d2,d2
	add.l	-$60(a5),d2
	move.l	d2,-$5C(a5)
	move.l	$10(a5),a3
	move.l	0(a3,d0.l*4),d2
	move.l	-$5C(a5),a3
	lea	0(a3,d2.l*2),a0
;                  if (z[i] < *zptr) 
	move.l	d0,d2
	add.l	d2,d2
	add.l	a4,d2
	move.l	d2,a3
	move.w	(a3),d3
	cmp.w	(a0),d3
	blo.b	L440
L439
;                     mask[i] = 0;
	clr.b	0(a2,d0.l)
L440
	addq.l	#1,d0
L441
	cmp.l	d1,d0
	blo.b	L437
L442
;         
	bra	L536
L443
;         if (ctx->Depth.Mask) 
	tst.b	$22A5(a1)
	beq.b	L452
L444
;            for (i=0;
	moveq	#0,d0
	bra.b	L450
L445
;               if (mask[i]) 
	tst.b	0(a2,d0.l)
	beq.b	L449
L446
;                  zptr = Z_ADDRESS(ctx,x[i],y[i]);
	move.l	$8FC(a1),a0
	move.l	$C(a0),-$58(a5)
	move.l	$8FC(a1),a0
	move.l	4(a0),d2
	move.l	$14(a5),a3
	muls.l	0(a3,d0.l*4),d2
	add.l	d2,d2
	add.l	-$58(a5),d2
	move.l	d2,-$54(a5)
	move.l	$10(a5),a3
	move.l	0(a3,d0.l*4),d2
	move.l	-$54(a5),a3
	lea	0(a3,d2.l*2),a0
;                  if (z[i] <= *zptr) 
	move.l	d0,d2
	add.l	d2,d2
	add.l	a4,d2
	move.l	d2,a3
	move.w	(a3),d3
	cmp.w	(a0),d3
	bhi.b	L448
L447
;                     *zptr = z[i];
	move.l	d0,d2
	add.l	d2,d2
	add.l	a4,d2
	move.l	d2,a3
	move.w	(a3),(a0)
	bra.b	L449
L448
;                     mask[i] = 0;
	clr.b	0(a2,d0.l)
L449
	addq.l	#1,d0
L450
	cmp.l	d1,d0
	blo.b	L445
L451
	bra.b	L458
L452
;            for (i=0;
	moveq	#0,d0
	bra.b	L457
L453
;               if (mask[i]) 
	tst.b	0(a2,d0.l)
	beq.b	L456
L454
;                  zptr = Z_ADDRESS(ctx,x[i],y[i]);
	move.l	$8FC(a1),a0
	move.l	$C(a0),-$50(a5)
	move.l	$8FC(a1),a0
	move.l	4(a0),d2
	move.l	$14(a5),a3
	muls.l	0(a3,d0.l*4),d2
	add.l	d2,d2
	add.l	-$50(a5),d2
	move.l	d2,-$4C(a5)
	move.l	$10(a5),a3
	move.l	0(a3,d0.l*4),d2
	move.l	-$4C(a5),a3
	lea	0(a3,d2.l*2),a0
;                  if (z[i] <= *zptr) 
	move.l	d0,d2
	add.l	d2,d2
	add.l	a4,d2
	move.l	d2,a3
	move.w	(a3),d3
	cmp.w	(a0),d3
	bls.b	L456
L455
;                     mask[i] = 0;
	clr.b	0(a2,d0.l)
L456
	addq.l	#1,d0
L457
	cmp.l	d1,d0
	blo.b	L453
L458
;         
	bra	L536
L459
;         if (ctx->Depth.Mask) 
	tst.b	$22A5(a1)
	beq.b	L468
L460
;            for (i=0;
	moveq	#0,d0
	bra.b	L466
L461
;               if (mask[i]) 
	tst.b	0(a2,d0.l)
	beq.b	L465
L462
;                  zptr = Z_ADDRESS(ctx,x[i],y[i]);
	move.l	$8FC(a1),a0
	move.l	$C(a0),-$48(a5)
	move.l	$8FC(a1),a0
	move.l	4(a0),d2
	move.l	$14(a5),a3
	muls.l	0(a3,d0.l*4),d2
	add.l	d2,d2
	add.l	-$48(a5),d2
	move.l	d2,-$44(a5)
	move.l	$10(a5),a3
	move.l	0(a3,d0.l*4),d2
	move.l	-$44(a5),a3
	lea	0(a3,d2.l*2),a0
;                  if (z[i] >= *zptr) 
	move.l	d0,d2
	add.l	d2,d2
	add.l	a4,d2
	move.l	d2,a3
	move.w	(a3),d3
	cmp.w	(a0),d3
	blo.b	L464
L463
;                     *zptr = z[i];
	move.l	d0,d2
	add.l	d2,d2
	add.l	a4,d2
	move.l	d2,a3
	move.w	(a3),(a0)
	bra.b	L465
L464
;                     mask[i] = 0;
	clr.b	0(a2,d0.l)
L465
	addq.l	#1,d0
L466
	cmp.l	d1,d0
	blo.b	L461
L467
	bra.b	L474
L468
;            for (i=0;
	moveq	#0,d0
	bra.b	L473
L469
;               if (mask[i]) 
	tst.b	0(a2,d0.l)
	beq.b	L472
L470
;                  zptr = Z_ADDRESS(ctx,x[i],y[i]);
	move.l	$8FC(a1),a0
	move.l	$C(a0),-$40(a5)
	move.l	$8FC(a1),a0
	move.l	4(a0),d2
	move.l	$14(a5),a3
	muls.l	0(a3,d0.l*4),d2
	add.l	d2,d2
	add.l	-$40(a5),d2
	move.l	d2,-$3C(a5)
	move.l	$10(a5),a3
	move.l	0(a3,d0.l*4),d2
	move.l	-$3C(a5),a3
	lea	0(a3,d2.l*2),a0
;                  if (z[i] >= *zptr) 
	move.l	d0,d2
	add.l	d2,d2
	add.l	a4,d2
	move.l	d2,a3
	move.w	(a3),d3
	cmp.w	(a0),d3
	bhs.b	L472
L471
;                     mask[i] = 0;
	clr.b	0(a2,d0.l)
L472
	addq.l	#1,d0
L473
	cmp.l	d1,d0
	blo.b	L469
L474
;         
	bra	L536
L475
;         if (ctx->Depth.Mask) 
	tst.b	$22A5(a1)
	beq.b	L484
L476
;            for (i=0;
	moveq	#0,d0
	bra.b	L482
L477
;               if (mask[i]) 
	tst.b	0(a2,d0.l)
	beq.b	L481
L478
;                  zptr = Z_ADDRESS(ctx,x[i],y[i]);
	move.l	$8FC(a1),a0
	move.l	$C(a0),-$38(a5)
	move.l	$8FC(a1),a0
	move.l	4(a0),d2
	move.l	$14(a5),a3
	muls.l	0(a3,d0.l*4),d2
	add.l	d2,d2
	add.l	-$38(a5),d2
	move.l	d2,-$34(a5)
	move.l	$10(a5),a3
	move.l	0(a3,d0.l*4),d2
	move.l	-$34(a5),a3
	lea	0(a3,d2.l*2),a0
;                  if (z[i] > *zptr) 
	move.l	d0,d2
	add.l	d2,d2
	add.l	a4,d2
	move.l	d2,a3
	move.w	(a3),d3
	cmp.w	(a0),d3
	bls.b	L480
L479
;                     *zptr = z[i];
	move.l	d0,d2
	add.l	d2,d2
	add.l	a4,d2
	move.l	d2,a3
	move.w	(a3),(a0)
	bra.b	L481
L480
;                     mask[i] = 0;
	clr.b	0(a2,d0.l)
L481
	addq.l	#1,d0
L482
	cmp.l	d1,d0
	blo.b	L477
L483
	bra.b	L490
L484
;            for (i=0;
	moveq	#0,d0
	bra.b	L489
L485
;               if (mask[i]) 
	tst.b	0(a2,d0.l)
	beq.b	L488
L486
;                  zptr = Z_ADDRESS(ctx,x[i],y[i]);
	move.l	$8FC(a1),a0
	move.l	$C(a0),-$30(a5)
	move.l	$8FC(a1),a0
	move.l	4(a0),d2
	move.l	$14(a5),a3
	muls.l	0(a3,d0.l*4),d2
	add.l	d2,d2
	add.l	-$30(a5),d2
	move.l	d2,-$2C(a5)
	move.l	$10(a5),a3
	move.l	0(a3,d0.l*4),d2
	move.l	-$2C(a5),a3
	lea	0(a3,d2.l*2),a0
;                  if (z[i] > *zptr) 
	move.l	d0,d2
	add.l	d2,d2
	add.l	a4,d2
	move.l	d2,a3
	move.w	(a3),d3
	cmp.w	(a0),d3
	bhi.b	L488
L487
;                     mask[i] = 0;
	clr.b	0(a2,d0.l)
L488
	addq.l	#1,d0
L489
	cmp.l	d1,d0
	blo.b	L485
L490
;         
	bra	L536
L491
;         if (ctx->Depth.Mask) 
	tst.b	$22A5(a1)
	beq	L500
L492
;            for (i=0;
	moveq	#0,d0
	bra.b	L498
L493
;               if (mask[i]) 
	tst.b	0(a2,d0.l)
	beq.b	L497
L494
;                  zptr = Z_ADDRESS(ctx,x[i],y[i]);
	move.l	$8FC(a1),a0
	move.l	$C(a0),-$28(a5)
	move.l	$8FC(a1),a0
	move.l	4(a0),d2
	move.l	$14(a5),a3
	muls.l	0(a3,d0.l*4),d2
	add.l	d2,d2
	add.l	-$28(a5),d2
	move.l	d2,-$24(a5)
	move.l	$10(a5),a3
	move.l	0(a3,d0.l*4),d2
	move.l	-$24(a5),a3
	lea	0(a3,d2.l*2),a0
;                  if (z[i] != *zptr) 
	move.l	d0,d2
	add.l	d2,d2
	add.l	a4,d2
	move.l	d2,a3
	move.w	(a3),d3
	cmp.w	(a0),d3
	beq.b	L496
L495
;                     *zptr = z[i];
	move.l	d0,d2
	add.l	d2,d2
	add.l	a4,d2
	move.l	d2,a3
	move.w	(a3),(a0)
	bra.b	L497
L496
;                     mask[i] = 0;
	clr.b	0(a2,d0.l)
L497
	addq.l	#1,d0
L498
	cmp.l	d1,d0
	blo.b	L493
L499
	bra.b	L506
L500
;            for (i=0;
	moveq	#0,d0
	bra.b	L505
L501
;               if (mask[i]) 
	tst.b	0(a2,d0.l)
	beq.b	L504
L502
;                  zptr = Z_ADDRESS(ctx,x[i],y[i]);
	move.l	$8FC(a1),a0
	move.l	$C(a0),-$20(a5)
	move.l	$8FC(a1),a0
	move.l	4(a0),d2
	move.l	$14(a5),a3
	muls.l	0(a3,d0.l*4),d2
	add.l	d2,d2
	add.l	-$20(a5),d2
	move.l	d2,-$1C(a5)
	move.l	$10(a5),a3
	move.l	0(a3,d0.l*4),d2
	move.l	-$1C(a5),a3
	lea	0(a3,d2.l*2),a0
;                  if (z[i] != *zptr) 
	move.l	d0,d2
	add.l	d2,d2
	add.l	a4,d2
	move.l	d2,a3
	move.w	(a3),d3
	cmp.w	(a0),d3
	bne.b	L504
L503
;                     mask[i] = 0;
	clr.b	0(a2,d0.l)
L504
	addq.l	#1,d0
L505
	cmp.l	d1,d0
	blo.b	L501
L506
;         
	bra	L536
L507
;         if (ctx->Depth.Mask) 
	tst.b	$22A5(a1)
	beq	L516
L508
;            for (i=0;
	moveq	#0,d0
	bra	L514
L509
;               if (mask[i]) 
	tst.b	0(a2,d0.l)
	beq.b	L513
L510
;                  zptr = Z_ADDRESS(ctx,x[i],y[i]);
	move.l	$8FC(a1),a0
	move.l	$C(a0),-$18(a5)
	move.l	$8FC(a1),a0
	move.l	4(a0),d2
	move.l	$14(a5),a3
	muls.l	0(a3,d0.l*4),d2
	add.l	d2,d2
	add.l	-$18(a5),d2
	move.l	d2,-$14(a5)
	move.l	$10(a5),a3
	move.l	0(a3,d0.l*4),d2
	move.l	-$14(a5),a3
	lea	0(a3,d2.l*2),a0
;                  if (z[i] == *zptr) 
	move.l	d0,d2
	add.l	d2,d2
	add.l	a4,d2
	move.l	d2,a3
	move.w	(a3),d3
	cmp.w	(a0),d3
	bne.b	L512
L511
;                     *zptr = z[i];
	move.l	d0,d2
	add.l	d2,d2
	add.l	a4,d2
	move.l	d2,a3
	move.w	(a3),(a0)
	bra.b	L513
L512
;                     mask[i] = 0;
	clr.b	0(a2,d0.l)
L513
	addq.l	#1,d0
L514
	cmp.l	d1,d0
	blo.b	L509
L515
	bra	L522
L516
;            for (i=0;
	moveq	#0,d0
	bra.b	L521
L517
;               if (mask[i]) 
	tst.b	0(a2,d0.l)
	beq.b	L520
L518
;                  zptr = Z_ADDRESS(ctx,x[i],y[i]);
	move.l	$8FC(a1),a0
	move.l	$C(a0),-$10(a5)
	move.l	$8FC(a1),a0
	move.l	4(a0),d2
	move.l	$14(a5),a3
	muls.l	0(a3,d0.l*4),d2
	add.l	d2,d2
	add.l	-$10(a5),d2
	move.l	d2,-$C(a5)
	move.l	$10(a5),a3
	move.l	0(a3,d0.l*4),d2
	move.l	-$C(a5),a3
	lea	0(a3,d2.l*2),a0
;                  if (z[i] == *zptr) 
	move.l	d0,d2
	add.l	d2,d2
	add.l	a4,d2
	move.l	d2,a3
	move.w	(a3),d3
	cmp.w	(a0),d3
	beq.b	L520
L519
;                     mask[i] = 0;
	clr.b	0(a2,d0.l)
L520
	addq.l	#1,d0
L521
	cmp.l	d1,d0
	blo.b	L517
L522
;         
	bra	L536
L523
;         if (ctx->Depth.Mask) 
	tst.b	$22A5(a1)
	beq	L530
L524
;            for (i=0;
	moveq	#0,d0
	bra.b	L528
L525
;               if (mask[i]) 
	tst.b	0(a2,d0.l)
	beq.b	L527
L526
;                  zptr = Z_ADDRESS(ctx,x[i],y[i]);
	move.l	$8FC(a1),a0
	move.l	$C(a0),-$8(a5)
	move.l	$8FC(a1),a0
	move.l	4(a0),d2
	move.l	$14(a5),a3
	muls.l	0(a3,d0.l*4),d2
	add.l	d2,d2
	add.l	-$8(a5),d2
	move.l	d2,-4(a5)
	move.l	$10(a5),a3
	move.l	0(a3,d0.l*4),d2
	move.l	-4(a5),a3
	lea	0(a3,d2.l*2),a0
;                  *zptr = z[i];
	move.l	d0,d2
	add.l	d2,d2
	add.l	a4,d2
	move.l	d2,a3
	move.w	(a3),(a0)
L527
	addq.l	#1,d0
L528
	cmp.l	d1,d0
	blo.b	L525
L529
L530
;         
	bra.b	L536
L531
;         for (i=0;
	moveq	#0,d0
	bra.b	L533
L532
;            mask[i] = 0;
	clr.b	0(a2,d0.l)
	addq.l	#1,d0
L533
	cmp.l	d1,d0
	blo.b	L532
L534
;         
	bra.b	L536
L535
;         gl_problem(ctx, "Bad depth func in gl_depth_test_p
	move.l	#L425,-(a7)
	move.l	a1,-(a7)
	jsr	_gl_problem
	addq.w	#$8,a7
L536
	movem.l	(a7)+,d2/d3/a2-a4
	unlk	a5
	rts

L425
	dc.b	'Bad depth func in gl_depth_test_pixels_generic',0

	SECTION "_gl_depth_test_pixels_less:0",CODE


;void gl_depth_test_pixels_less( GLcontext* ctx,
	XDEF	_gl_depth_test_pixels_less
_gl_depth_test_pixels_less
L547	EQU	-$8
	link	a5,#L547
	movem.l	d2/d3/a2-a4,-(a7)
	move.l	$C(a5),d3
	move.l	$18(a5),a2
	move.l	$8(a5),a4
L539
;   for (i=0;
	moveq	#0,d0
	bra.b	L545
L540
;      if (mask[i]) 
	move.l	$1C(a5),a1
	tst.b	0(a1,d0.l)
	beq.b	L544
L541
;         zptr = Z_ADDRESS(ctx,x[i],y[i]);
	move.l	a4,a1
	move.l	$8FC(a1),a0
	move.l	$C(a0),a1
	move.l	a4,a3
	move.l	$8FC(a3),a0
	move.l	4(a0),d1
	move.l	$14(a5),a3
	muls.l	0(a3,d0.l*4),d1
	lea	0(a1,d1.l*2),a1
	move.l	$10(a5),a3
	move.l	0(a3,d0.l*4),d1
	lea	0(a1,d1.l*2),a0
;         if (z[i] < *zptr) 
	move.w	0(a2,d0.l*2),d2
	cmp.w	(a0),d2
	bhs.b	L543
L542
;            *zptr = z[i];
	move.w	0(a2,d0.l*2),(a0)
	bra.b	L544
L543
;            mask[i] = 0;
	move.l	$1C(a5),a1
	clr.b	0(a1,d0.l)
L544
	addq.l	#1,d0
L545
	cmp.l	d3,d0
	blo.b	L540
L546
	movem.l	(a7)+,d2/d3/a2-a4
	unlk	a5
	rts

	SECTION "_gl_depth_test_pixels_greater:0",CODE


;void gl_depth_test_pixels_greater( GLcontext* ctx,
	XDEF	_gl_depth_test_pixels_greater
_gl_depth_test_pixels_greater
L556	EQU	-$8
	link	a5,#L556
	movem.l	d2/d3/a2-a4,-(a7)
	move.l	$C(a5),d3
	move.l	$18(a5),a2
	move.l	$8(a5),a4
L548
;   for (i=0;
	moveq	#0,d0
	bra.b	L554
L549
;      if (mask[i]) 
	move.l	$1C(a5),a1
	tst.b	0(a1,d0.l)
	beq.b	L553
L550
;         zptr = Z_ADDRESS(ctx,x[i],y[i]);
	move.l	a4,a1
	move.l	$8FC(a1),a0
	move.l	$C(a0),a1
	move.l	a4,a3
	move.l	$8FC(a3),a0
	move.l	4(a0),d1
	move.l	$14(a5),a3
	muls.l	0(a3,d0.l*4),d1
	lea	0(a1,d1.l*2),a1
	move.l	$10(a5),a3
	move.l	0(a3,d0.l*4),d1
	lea	0(a1,d1.l*2),a0
;         if (z[i] > *zptr) 
	move.w	0(a2,d0.l*2),d2
	cmp.w	(a0),d2
	bls.b	L552
L551
;            *zptr = z[i];
	move.w	0(a2,d0.l*2),(a0)
	bra.b	L553
L552
;            mask[i] = 0;
	move.l	$1C(a5),a1
	clr.b	0(a1,d0.l)
L553
	addq.l	#1,d0
L554
	cmp.l	d3,d0
	blo.b	L549
L555
	movem.l	(a7)+,d2/d3/a2-a4
	unlk	a5
	rts

	SECTION "_gl_read_depth_span_float:0",CODE


;void gl_read_depth_span_float( GLcontext* ctx,
	XDEF	_gl_read_depth_span_float
_gl_read_depth_span_float
	movem.l	d2/d3/a2,-(a7)
	fmovem.x fp2,-(a7)
	movem.l	$20(a7),d1-d3/a1
	move.l	$1C(a7),a0
L557
;   scale = 1.0F / DEPTH_SCALE;
	fmove.s	#$.37800080,fp1
;   if (ctx->Buffer->Depth) 
	move.l	$8FC(a0),a2
	tst.l	$C(a2)
	beq.b	L562
L558
;      zptr = Z_ADDRESS( ctx, x, y );
	move.l	$8FC(a0),a2
	move.l	$8FC(a0),a0
	move.l	4(a0),d0
	muls.l	d3,d0
	move.l	$C(a2),a2
	lea	0(a2,d0.l*2),a0
	lea	0(a0,d2.l*2),a2
;      for (i=0;
	moveq	#0,d0
	bra.b	L560
L559
;         depth[i] = (GLfloat) zptr[i] * scale;
	moveq	#0,d2
	move.w	0(a2,d0.l*2),d2
	fmove.l	d2,fp0
	fmul.x	fp1,fp0
	fmove.s	fp0,0(a1,d0.l*4)
	addq.l	#1,d0
L560
	cmp.l	d1,d0
	blo.b	L559
L561
	bra.b	L565
L562
;      for (i=0;
	moveq	#0,d0
	bra.b	L564
L563
;         depth[i] = 0.0F;
	clr.l	0(a1,d0.l*4)
	addq.l	#1,d0
L564
	cmp.l	d1,d0
	blo.b	L563
L565
	fmovem.x (a7)+,fp2
	movem.l	(a7)+,d2/d3/a2
	rts

	SECTION "_gl_read_depth_span_int:0",CODE


;void gl_read_depth_span_int( GLcontext* ctx,
	XDEF	_gl_read_depth_span_int
_gl_read_depth_span_int
	movem.l	d2/d3/a2,-(a7)
	movem.l	$14(a7),d1-d3/a1
	move.l	$10(a7),a0
L566
;   if (ctx->Buffer->Depth) 
	move.l	$8FC(a0),a2
	tst.l	$C(a2)
	beq.b	L568
L567
;      GLdepth *zptr = Z_ADDRESS( ctx, x, y );
	move.l	$8FC(a0),a2
	move.l	$8FC(a0),a0
	move.l	4(a0),d0
	muls.l	d3,d0
	move.l	$C(a2),a2
	lea	0(a2,d0.l*2),a0
;      MEMCPY( depth, 
	moveq	#1,d0
	asl.l	d0,d1
	move.l	d1,-(a7)
	pea	0(a0,d2.l*2)
	move.l	a1,-(a7)
	jsr	_q_memcpy
	add.w	#$C,a7
	bra.b	L571
L568
;      for (i=0;
	moveq	#0,d0
	bra.b	L570
L569
;         depth[i] = 0;
	clr.w	0(a1,d0.l*2)
	addq.l	#1,d0
L570
	cmp.l	d1,d0
	blo.b	L569
L571
	movem.l	(a7)+,d2/d3/a2
	rts

	SECTION "_gl_alloc_depth_buffer:0",CODE


;void gl_alloc_depth_buffer( GLcontext* ctx )
	XDEF	_gl_alloc_depth_buffer
_gl_alloc_depth_buffer
	move.l	a2,-(a7)
	move.l	$8(a7),a2
L573
;   if (ctx->Buffer->Depth) 
	move.l	$8FC(a2),a0
	tst.l	$C(a0)
	beq.b	L575
L574
;      free(ctx->Buffer->Depth);
	move.l	$8FC(a2),a0
	move.l	$C(a0),-(a7)
	jsr	_free
	addq.w	#4,a7
;      ctx->Buffer->Depth = NULL;
	move.l	$8FC(a2),a0
	clr.l	$C(a0)
L575
;   ctx->Buffer->Depth = (GLdepth *) malloc( ctx->Buffer->Width
	move.l	$8FC(a2),a0
	move.l	4(a0),d0
	move.l	$8FC(a2),a0
	muls.l	$8(a0),d0
	moveq	#1,d1
	asl.l	d1,d0
	move.l	d0,-(a7)
	jsr	_malloc
	addq.w	#4,a7
	move.l	$8FC(a2),a0
	move.l	d0,$C(a0)
;   if (!ctx->Buffer->Depth) 
	move.l	$8FC(a2),a0
	tst.l	$C(a0)
	bne.b	L577
L576
;      ctx->Depth.Test = GL_FALSE;
	clr.b	$22A4(a2)
;      gl_error( ctx, GL_OUT_OF_MEMORY, "Couldn't allocate dept
	move.l	#L572,-(a7)
	pea	$505.w
	move.l	a2,-(a7)
	jsr	_gl_error
	add.w	#$C,a7
L577
	move.l	(a7)+,a2
	rts

L572
	dc.b	'Couldn't allocate depth buffer',0

	SECTION "_gl_clear_depth_buffer:0",CODE


;void gl_clear_depth_buffer( GLcontext* ctx )
	XDEF	_gl_clear_depth_buffer
_gl_clear_depth_buffer
	movem.l	d2/d3/a2,-(a7)
	move.l	$10(a7),a1
L578
;   GLdepth clear_value = (GLdepth) (ctx->Depth.Clear * DEPTH_SCAL
	fmove.s	$22A0(a1),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d0
;   if (ctx->Visual->DepthBits==0 || !ctx->Buffer->Depth || !ctx->
	move.l	$8F8(a1),a0
	tst.l	$1C(a0)
	beq.b	L581
L579
	move.l	$8FC(a1),a0
	tst.l	$C(a0)
	beq.b	L581
L580
	tst.b	$22A5(a1)
	bne.b	L582
L581
	movem.l	(a7)+,d2/d3/a2
	rts
L582
;   if (ctx->Scissor.Enabled) 
	move.l	a1,a0
	add.l	#$DE92,a0
	tst.b	(a0)
	beq.b	L589
L583
;      for (y=ctx->Buffer->Ymin;
	move.l	$8FC(a1),a0
	move.l	$2C(a0),d2
	bra.b	L587
L584
;         GLdepth *d = Z_ADDRESS( ctx, ctx->Buffer->Xmin, y )
	move.l	$8FC(a1),a0
	move.l	$C(a0),a2
	move.l	$8FC(a1),a0
	move.l	4(a0),d1
	muls.l	d2,d1
	lea	0(a2,d1.l*2),a2
	move.l	$8FC(a1),a0
	move.l	$24(a0),d1
	lea	0(a2,d1.l*2),a0
;         GLint n = ctx->Buffer->Xmax - ctx->Buffer->Xmin + 
	move.l	$8FC(a1),a2
	move.l	$28(a2),d1
	move.l	$8FC(a1),a2
	sub.l	$24(a2),d1
	addq.l	#1,d1
;         
L585
;            *d++ = clear_value;
	move.w	d0,(a0)+
;            n--;
	subq.l	#1,d1
	tst.l	d1
	bne.b	L585
L586
	addq.l	#1,d2
L587
	move.l	$8FC(a1),a0
	cmp.l	$30(a0),d2
	ble.b	L584
L588
	bra	L597
L589
;      if (sizeof(GLdepth)==2 && (clear_value&0xff)==(clear_val
	moveq	#0,d2
	move.w	d0,d2
	and.l	#$FF,d2
	moveq	#0,d1
	move.w	d0,d1
	moveq	#$8,d3
	asr.l	d3,d1
	cmp.l	d1,d2
	bne.b	L591
L590
;           2*ctx-
	move.l	$8FC(a1),a0
	move.l	4(a0),d1
	moveq	#1,d2
	asl.l	d2,d1
	move.l	$8FC(a1),a0
	muls.l	$8(a0),d1
	move.l	d1,-(a7)
	and.l	#$FFFF,d0
	and.l	#$FF,d0
	move.l	d0,-(a7)
	move.l	$8FC(a1),a0
	move.l	$C(a0),-(a7)
	jsr	_q_memset
	add.w	#$C,a7
	bra	L597
L591
;         GLdepth *d = ctx->Buffer->Depth;
	move.l	$8FC(a1),a0
	move.l	$C(a0),a0
;         GLint n = ctx->Buffer->Width * ctx->Buffer->Height;
	move.l	$8FC(a1),a2
	move.l	$8FC(a1),a1
	move.l	4(a2),d1
	muls.l	$8(a1),d1
;         while (n>=16) 
	bra.b	L593
L592
;            d[0] = clear_value;
	move.w	d0,(a0)
;    d[1] = clear_value;
	move.w	d0,2(a0)
;            d[2] = clear_value;
	move.w	d0,4(a0)
;    d[3] = clear_value;
	move.w	d0,6(a0)
;            d[4] = clear_value;
	move.w	d0,$8(a0)
;    d[5] = clear_value;
	move.w	d0,$A(a0)
;            d[6] = clear_value;
	move.w	d0,$C(a0)
;    d[7] = clear_value;
	move.w	d0,$E(a0)
;            d[8] = clear_value;
	move.w	d0,$10(a0)
;    d[9] = clear_value;
	move.w	d0,$12(a0)
;            d[10] = clear_value;
	move.w	d0,$14(a0)
;   d[11] = clear_value;
	move.w	d0,$16(a0)
;            d[12] = clear_value;
	move.w	d0,$18(a0)
;   d[13] = clear_value;
	move.w	d0,$1A(a0)
;            d[14] = clear_value;
	move.w	d0,$1C(a0)
;   d[15] = clear_value;
	move.w	d0,$1E(a0)
;            d += 16;
	add.w	#$20,a0
;            n -= 16;
	sub.l	#$10,d1
L593
	cmp.l	#$10,d1
	bge.b	L592
L594
;         while (n>0) 
	bra.b	L596
L595
;            *d++ = clear_value;
	move.w	d0,(a0)+
;            n--;
	subq.l	#1,d1
L596
	cmp.l	#0,d1
	bgt.b	L595
L597
	movem.l	(a7)+,d2/d3/a2
	rts

	END
