
; Storm C Compiler
; Work2:Mesa3/Mesa-3.0/src/readpix.c
	mc68030
	mc68881
	XREF	_gl_read_stencil_span
	XREF	_gl_read_rgba_span
	XREF	_gl_map_stencil
	XREF	_gl_shift_and_offset_stencil
	XREF	_gl_map_ci_to_color
	XREF	_gl_map_ci
	XREF	_gl_shift_and_offset_ci
	XREF	_gl_map_color
	XREF	_gl_scale_and_bias_color
	XREF	_gl_pixel_addr_in_image
	XREF	_gl_components_in_format
	XREF	_gl_sizeof_type
	XREF	_gl_swap4
	XREF	_gl_swap2
	XREF	_gl_error
	XREF	_gl_problem
	XREF	_q_memcpy
	XREF	_CC

	SECTION "_read_index_pixels:0",CODE


;static void read_index_pixels( GLcontext *ctx,
_read_index_pixels
L665	EQU	-$191C
	link	a5,#L665
	movem.l	d2-d7/a2/a3,-(a7)
	movem.l	$14(a5),d2/d5/d7/a3
	move.l	$10(a5),d4
	move.l	$8(a5),a2
L614
;   if (ctx->Visual->RGBAflag) 
	move.l	$8F8(a2),a0
	tst.b	(a0)
	beq.b	L616
L615
;      gl_error( ctx, GL_INVALID_OPERATION, "glReadPixels" );
	move.l	#L612,-(a7)
	pea	$502.w
	move.l	a2,-(a7)
	jsr	_gl_error
	add.w	#$C,a7
	movem.l	(a7)+,d2-d7/a2/a3
	unlk	a5
	rts
L616
;   for (j=0;
	moveq	#0,d3
	bra	L663
L617
;      (*ctx->Driver.ReadCI32Span)( ctx, width, x, y, index );
	pea	-$1908(a5)
	move.l	d4,-(a7)
	move.l	$C(a5),-(a7)
	move.l	d2,-(a7)
	move.l	a2,-(a7)
	move.l	$94C(a2),a0
	jsr	(a0)
	add.w	#$14,a7
;      if (ctx->Pixel.IndexShift!=0 || ctx->Pixel.IndexOffset!=
	move.l	a2,a0
	add.l	#$B168,a0
	tst.l	$2E(a0)
	bne.b	L619
L618
	move.l	a2,a0
	add.l	#$B168,a0
	tst.l	$32(a0)
	beq.b	L620
L619
;         gl_shift_and_offset_ci( ctx, width, index);
	pea	-$1908(a5)
	move.l	d2,-(a7)
	move.l	a2,-(a7)
	jsr	_gl_shift_and_offset_ci
	add.w	#$C,a7
L620
;      if (ctx->Pixel.MapColorFlag) 
	move.l	a2,a0
	add.l	#$B168,a0
	tst.b	$36(a0)
	beq.b	L622
L621
;         gl_map_ci(ctx, width, index);
	pea	-$1908(a5)
	move.l	d2,-(a7)
	move.l	a2,-(a7)
	jsr	_gl_map_ci
	add.w	#$C,a7
L622
;      dest = gl_pixel_addr_in_image(&ctx->Pack, pixels,
	clr.l	-(a7)
	move.l	d3,-(a7)
	clr.l	-(a7)
	move.l	d7,-(a7)
	pea	$1900.w
	move.l	d5,-(a7)
	move.l	d2,-(a7)
	move.l	a3,-(a7)
	move.l	a2,a0
	add.l	#$E644,a0
	pea	(a0)
	jsr	_gl_pixel_addr_in_image
	add.w	#$24,a7
	move.l	d0,a0
;      switch (type)
	move.l	d7,d0
	sub.l	#$1400,d0
	cmp.l	#6,d0
	bhi	L661
	move.l	L666(pc,d0.l*4),a1
	jmp	(a1)
L666
	dc.l	L627
	dc.l	L623
	dc.l	L637
	dc.l	L631
	dc.l	L649
	dc.l	L643
	dc.l	L655
;	 
L623
;               GLubyte *dst = (GLubyte *) dest;
;	       for (i=0;
	moveq	#0,d0
	bra.b	L625
L624
;		  *dst++ = (GLubyte) index[i];
	lea	-$1908(a5),a1
	move.b	3(a1,d0.l*4),d1
	move.b	d1,(a0)+
	addq.l	#1,d0
L625
	cmp.l	d2,d0
	blt.b	L624
L626
;	    
	bra	L662
L627
;               GLbyte *dst = (GLbyte *) dest;
	move.l	a0,a1
;	       for (i=0;
	moveq	#0,d0
	bra.b	L629
L628
;		  dst[i] = (GLbyte) index[i];
	lea	-$1908(a5),a0
	move.b	3(a0,d0.l*4),d1
	move.b	d1,0(a1,d0.l)
	addq.l	#1,d0
L629
	cmp.l	d2,d0
	blt.b	L628
L630
;	    
	bra	L662
L631
;               GLushort *dst = (GLushort *) dest;
	move.l	a0,a1
;	       for (i=0;
	moveq	#0,d0
	bra.b	L633
L632
;		  dst[i] = (GLushort) index[i];
	lea	-$1908(a5),a0
	move.w	2(a0,d0.l*4),d1
	move.w	d1,0(a1,d0.l*2)
	addq.l	#1,d0
L633
	cmp.l	d2,d0
	blt.b	L632
L634
;	       if (ctx->Pack.SwapBytes) 
	move.l	a2,a0
	add.l	#$E644,a0
	tst.b	$18(a0)
	beq	L662
L635
;		  gl_swap2( (GLushort *) dst, width );
	move.l	d2,-(a7)
	move.l	a1,-(a7)
	jsr	_gl_swap2
	addq.w	#$8,a7
L636
;	    
	bra	L662
L637
;               GLshort *dst = (GLshort *) dest;
	move.l	a0,a1
;	       for (i=0;
	moveq	#0,d0
	bra.b	L639
L638
;		  dst[i] = (GLshort) index[i];
	lea	-$1908(a5),a0
	move.w	2(a0,d0.l*4),d1
	move.w	d1,0(a1,d0.l*2)
	addq.l	#1,d0
L639
	cmp.l	d2,d0
	blt.b	L638
L640
;	       if (ctx->Pack.SwapBytes) 
	move.l	a2,a0
	add.l	#$E644,a0
	tst.b	$18(a0)
	beq	L662
L641
;		  gl_swap2( (GLushort *) dst, width );
	move.l	d2,-(a7)
	move.l	a1,-(a7)
	jsr	_gl_swap2
	addq.w	#$8,a7
L642
;	    
	bra	L662
L643
;               GLuint *dst = (GLuint *) dest;
	move.l	a0,a1
;	       for (i=0;
	moveq	#0,d0
	bra.b	L645
L644
;		  dst[i] = (GLuint) index[i];
	lea	-$1908(a5),a0
	move.l	0(a0,d0.l*4),d1
	move.l	d1,0(a1,d0.l*4)
	addq.l	#1,d0
L645
	cmp.l	d2,d0
	blt.b	L644
L646
;	       if (ctx->Pack.SwapBytes) 
	move.l	a2,a0
	add.l	#$E644,a0
	tst.b	$18(a0)
	beq	L662
L647
;		  gl_swap4( (GLuint *) dst, width );
	move.l	d2,-(a7)
	move.l	a1,-(a7)
	jsr	_gl_swap4
	addq.w	#$8,a7
L648
;	    
	bra	L662
L649
;               GLint *dst = (GLint *) dest;
	move.l	a0,a1
;	       for (i=0;
	moveq	#0,d0
	bra.b	L651
L650
;		  dst[i] = (GLint) index[i];
	lea	-$1908(a5),a0
	move.l	0(a0,d0.l*4),d1
	move.l	d1,0(a1,d0.l*4)
	addq.l	#1,d0
L651
	cmp.l	d2,d0
	blt.b	L650
L652
;	       if (ctx->Pack.SwapBytes) 
	move.l	a2,a0
	add.l	#$E644,a0
	tst.b	$18(a0)
	beq.b	L662
L653
;		  gl_swap4( (GLuint *) dst, width );
	move.l	d2,-(a7)
	move.l	a1,-(a7)
	jsr	_gl_swap4
	addq.w	#$8,a7
L654
;	    
	bra.b	L662
L655
;               GLfloat *dst = (GLfloat *) dest;
	move.l	a0,a1
;	       for (i=0;
	moveq	#0,d0
	bra.b	L657
L656
;		  dst[i] = (GLfloat) index[i];
	lea	-$1908(a5),a0
	fmove.l	0(a0,d0.l*4),fp0
	fmove.s	fp0,0(a1,d0.l*4)
	addq.l	#1,d0
L657
	cmp.l	d2,d0
	blt.b	L656
L658
;	       if (ctx->Pack.SwapBytes) 
	move.l	a2,a0
	add.l	#$E644,a0
	tst.b	$18(a0)
	beq.b	L662
L659
;		  gl_swap4( (GLuint *) dst, width );
	move.l	d2,-(a7)
	move.l	a1,-(a7)
	jsr	_gl_swap4
	addq.w	#$8,a7
L660
;	    
	bra.b	L662
L661
;            gl_error( ctx, GL_INVALID_ENUM, "glReadPixel
	move.l	#L613,-(a7)
	pea	$500.w
	move.l	a2,-(a7)
	jsr	_gl_error
	add.w	#$C,a7
L662
	addq.l	#1,d3
	addq.l	#1,d4
L663
	cmp.l	d5,d3
	blt	L617
L664
	movem.l	(a7)+,d2-d7/a2/a3
	unlk	a5
	rts

L612
	dc.b	'glReadPixels',0
L613
	dc.b	'glReadPixels(type)',0

	SECTION "_read_depth_pixels:0",CODE

	rts

;static void read_depth_pixels( GLcontext *ctx,
_read_depth_pixels
L745	EQU	-$1922
	link	a5,#L745
	movem.l	d2-d7/a2-a4,-(a7)
	movem.l	$14(a5),d2/d7
	move.l	$10(a5),d4
	move.l	$8(a5),a2
	move.l	$20(a5),a4
L669
;   if (ctx->Visual->DepthBits <= 0) 
	move.l	$8F8(a2),a0
	move.l	$1C(a0),d0
	cmp.l	#0,d0
	bgt.b	L671
L670
;      gl_error( ctx, GL_INVALID_OPERATION, "glReadPixels" );
	move.l	#L667,-(a7)
	pea	$502.w
	move.l	a2,-(a7)
	jsr	_gl_error
	add.w	#$C,a7
	movem.l	(a7)+,d2-d7/a2-a4
	unlk	a5
	rts
L671
;   bias_or_scale = ctx->Pixel.DepthBias!=0.0 || ctx->Pixel.DepthS
	moveq	#1,d0
	move.l	a2,a0
	add.l	#$B168,a0
	fmove.s	$26(a0),fp0
	ftst.d	fp0
	fbne.b	L674
L672
	move.l	a2,a0
	add.l	#$B168,a0
	fmove.s	$2A(a0),fp0
	fcmp.d	#$.3FF00000.00000000,fp0
	fbne.b	L674
L673
	moveq	#0,d0
L674
	move.b	d0,d5
;   if (type==GL_UNSIGNED_SHORT && sizeof(GLdepth)==sizeof(GLushor
	move.l	$1C(a5),d0
	cmp.l	#$1403,d0
	bne.b	L681
L675
	tst.b	d5
	bne.b	L681
L676
	move.l	a2,a0
	add.l	#$E644,a0
	tst.b	$18(a0)
	bne.b	L681
L677
;      for (j=0;
	moveq	#0,d3
	bra.b	L679
L678
;         GLushort *dst = (GLushort*) gl_pixel_addr_in_image
	clr.l	-(a7)
	move.l	d3,-(a7)
	clr.l	-(a7)
	move.l	$1C(a5),-(a7)
	pea	$1902.w
	move.l	d7,-(a7)
	move.l	d2,-(a7)
	move.l	a4,-(a7)
	move.l	a2,a0
	add.l	#$E644,a0
	pea	(a0)
	jsr	_gl_pixel_addr_in_image
	add.w	#$24,a7
;         (*ctx->Driver.ReadDepthSpanInt)( ctx, width, x, y,
	move.l	d0,-(a7)
	move.l	d4,-(a7)
	move.l	$C(a5),-(a7)
	move.l	d2,-(a7)
	move.l	a2,-(a7)
	move.l	$994(a2),a0
	jsr	(a0)
	add.w	#$14,a7
	addq.l	#1,d3
	addq.l	#1,d4
L679
	cmp.l	d7,d3
	blt.b	L678
L680
	bra	L744
L681
;   else if (type==GL_UNSIGNED_INT && sizeof(GLdepth)==sizeof
	move.l	$1C(a5),d0
	cmp.l	#$1405,d0
	bne.b	L691
L682
	bra.b	L691
L683
;         max = max << 1;
	moveq	#1,d1
	asl.l	d1,d0
;         shift++;
	addq.l	#1,d5
	move.l	d0,d1
	and.l	#$80000000,d1
	beq.b	L683
L684
;      for (j=0;
	moveq	#0,d3
	bra.b	L689
L685
;         GLuint *dst = (GLuint *) gl_pixel_addr_in_image(&c
	clr.l	-(a7)
	move.l	d3,-(a7)
	clr.l	-(a7)
	move.l	$1C(a5),-(a7)
	pea	$1902.w
	move.l	d7,-(a7)
	move.l	d2,-(a7)
	move.l	a4,-(a7)
	move.l	a2,a0
	add.l	#$E644,a0
	pea	(a0)
	jsr	_gl_pixel_addr_in_image
	add.w	#$24,a7
	move.l	d0,a3
;         (*ctx->Driver.ReadDepthSpanInt)( ctx, width, x, y,
	move.l	a3,-(a7)
	move.l	d4,-(a7)
	move.l	$C(a5),-(a7)
	move.l	d2,-(a7)
	move.l	a2,-(a7)
	move.l	$994(a2),a0
	jsr	(a0)
	add.w	#$14,a7
;         for (i=0;
	moveq	#0,d0
	bra.b	L687
L686
;            dst[i] = dst[i] << shift;
	move.l	0(a3,d0.l*4),d1
	asl.l	d5,d1
	move.l	d1,0(a3,d0.l*4)
	addq.l	#1,d0
L687
	cmp.l	d2,d0
	blt.b	L686
L688
	addq.l	#1,d3
	addq.l	#1,d4
L689
	cmp.l	d7,d3
	blt.b	L685
L690
	bra	L744
L691
;      for (j=0;
	moveq	#0,d3
	bra	L743
L692
;         (*ctx->Driver.ReadDepthSpanFloat)( ctx, width, x, 
	pea	-$190E(a5)
	move.l	d4,-(a7)
	move.l	$C(a5),-(a7)
	move.l	d2,-(a7)
	move.l	a2,-(a7)
	move.l	$990(a2),a0
	jsr	(a0)
	add.w	#$14,a7
;         if (bias_or_scale) 
	tst.b	d5
	beq.b	L702
L693
;            for (i=0;
	moveq	#0,d0
	bra.b	L701
L694
;               d = depth[i] * ctx->Pixel.DepthScale +
	lea	-$190E(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	move.l	a2,a0
	add.l	#$B168,a0
	fmul.s	$2A(a0),fp0
	move.l	a2,a0
	add.l	#$B168,a0
	fadd.s	$26(a0),fp0
;               depth[i] = CLAMP( d, 0.0F, 1.0F );
	fcmp.s	#$.00000000,fp0
	fboge.b	L696
L695
	fmove.s	#$.00000000,fp0
	bra.b	L700
L696
	fcmp.s	#$.3F800000,fp0
	fbole.b	L698
L697
	fmove.s	#$.3F800000,fp0
L698
L699
L700
	lea	-$190E(a5),a0
	fmove.s	fp0,0(a0,d0.l*4)
	addq.l	#1,d0
L701
	cmp.l	d2,d0
	blt.b	L694
L702
;         dest = gl_pixel_addr_in_image(&ctx->Pack, pixels,
	clr.l	-(a7)
	move.l	d3,-(a7)
	clr.l	-(a7)
	move.l	$1C(a5),-(a7)
	pea	$1902.w
	move.l	d7,-(a7)
	move.l	d2,-(a7)
	move.l	a4,-(a7)
	move.l	a2,a0
	add.l	#$E644,a0
	pea	(a0)
	jsr	_gl_pixel_addr_in_image
	add.w	#$24,a7
	move.l	d0,a0
;         switch (type)
	move.l	$1C(a5),d0
	sub.l	#$1400,d0
	cmp.l	#6,d0
	bhi	L741
	move.l	L746(pc,d0.l*4),a1
	jmp	(a1)
L746
	dc.l	L707
	dc.l	L703
	dc.l	L717
	dc.l	L711
	dc.l	L729
	dc.l	L723
	dc.l	L735
;            
L703
;                  GLubyte *dst = (GLubyte *) dest;
	move.l	a0,a1
;                  for (i=0;
	moveq	#0,d0
	bra.b	L705
L704
;                     dst[i] = FLOAT_TO_UBYTE( d
	lea	-$190E(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	move.b	d1,0(a1,d0.l)
	addq.l	#1,d0
L705
	cmp.l	d2,d0
	blt.b	L704
L706
;               
	bra	L742
L707
;                  GLbyte *dst = (GLbyte *) dest;
	move.l	a0,a1
;                  for (i=0;
	moveq	#0,d0
	bra.b	L709
L708
;                     dst[i] = FLOAT_TO_BYTE( de
	lea	-$190E(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.b	d1,0(a1,d0.l)
	addq.l	#1,d0
L709
	cmp.l	d2,d0
	blt.b	L708
L710
;               
	bra	L742
L711
;                  GLushort *dst = (GLushort *) des
	move.l	a0,a1
;                  for (i=0;
	moveq	#0,d0
	bra.b	L713
L712
;                     dst[i] = FLOAT_TO_USHORT( 
	lea	-$190E(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	move.w	d1,0(a1,d0.l*2)
	addq.l	#1,d0
L713
	cmp.l	d2,d0
	blt.b	L712
L714
;                  if (ctx->Pack.SwapBytes) 
	move.l	a2,a0
	add.l	#$E644,a0
	tst.b	$18(a0)
	beq.b	L716
L715
;                     gl_swap2( (GLushort *) dst
	move.l	d2,-(a7)
	move.l	a1,-(a7)
	jsr	_gl_swap2
	addq.w	#$8,a7
L716
;               
	bra	L742
L717
;                  GLshort *dst = (GLshort *) dest;
	move.l	a0,a1
;                  for (i=0;
	moveq	#0,d0
	bra.b	L719
L718
;                     dst[i] = FLOAT_TO_SHORT( d
	lea	-$190E(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.w	d1,0(a1,d0.l*2)
	addq.l	#1,d0
L719
	cmp.l	d2,d0
	blt.b	L718
L720
;                  if (ctx->Pack.SwapBytes) 
	move.l	a2,a0
	add.l	#$E644,a0
	tst.b	$18(a0)
	beq.b	L722
L721
;                     gl_swap2( (GLushort *) dst
	move.l	d2,-(a7)
	move.l	a1,-(a7)
	jsr	_gl_swap2
	addq.w	#$8,a7
L722
;               
	bra	L742
L723
;                  GLuint *dst = (GLuint *) dest;
	move.l	a0,a1
;                  for (i=0;
	moveq	#0,d0
	bra.b	L725
L724
;                     dst[i] = FLOAT_TO_UINT( de
	lea	-$190E(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41EFFFFF.FFE00000,fp0
	fmove.l	fp0,d1
	move.l	d1,0(a1,d0.l*4)
	addq.l	#1,d0
L725
	cmp.l	d2,d0
	blt.b	L724
L726
;                  if (ctx->Pack.SwapBytes) 
	move.l	a2,a0
	add.l	#$E644,a0
	tst.b	$18(a0)
	beq.b	L728
L727
;                     gl_swap4( (GLuint *) dst, 
	move.l	d2,-(a7)
	move.l	a1,-(a7)
	jsr	_gl_swap4
	addq.w	#$8,a7
L728
;               
	bra	L742
L729
;                  GLint *dst = (GLint *) dest;
	move.l	a0,a1
;                  for (i=0;
	moveq	#0,d0
	bra.b	L731
L730
;                     dst[i] = FLOAT_TO_INT( dep
	lea	-$190E(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41DFFFFF.FFC00000,fp0
	fmove.l	fp0,d1
	move.l	d1,0(a1,d0.l*4)
	addq.l	#1,d0
L731
	cmp.l	d2,d0
	blt.b	L730
L732
;                  if (ctx->Pack.SwapBytes) 
	move.l	a2,a0
	add.l	#$E644,a0
	tst.b	$18(a0)
	beq.b	L734
L733
;                     gl_swap4( (GLuint *) dst, 
	move.l	d2,-(a7)
	move.l	a1,-(a7)
	jsr	_gl_swap4
	addq.w	#$8,a7
L734
;               
	bra.b	L742
L735
;                  GLfloat *dst = (GLfloat *) dest;
	move.l	a0,a1
;                  for (i=0;
	moveq	#0,d0
	bra.b	L737
L736
;                     dst[i] = depth[i];
	lea	-$190E(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmove.s	fp0,0(a1,d0.l*4)
	addq.l	#1,d0
L737
	cmp.l	d2,d0
	blt.b	L736
L738
;                  if (ctx->Pack.SwapBytes) 
	move.l	a2,a0
	add.l	#$E644,a0
	tst.b	$18(a0)
	beq.b	L740
L739
;                     gl_swap4( (GLuint *) dst, 
	move.l	d2,-(a7)
	move.l	a1,-(a7)
	jsr	_gl_swap4
	addq.w	#$8,a7
L740
;               
	bra.b	L742
L741
;               gl_error( ctx, GL_INVALID_ENUM, "glRea
	move.l	#L668,-(a7)
	pea	$500.w
	move.l	a2,-(a7)
	jsr	_gl_error
	add.w	#$C,a7
L742
	addq.l	#1,d3
	addq.l	#1,d4
L743
	cmp.l	d7,d3
	blt	L692
L744
	movem.l	(a7)+,d2-d7/a2-a4
	unlk	a5
	rts

L667
	dc.b	'glReadPixels',0
L668
	dc.b	'glReadPixels(type)',0

	SECTION "_read_stencil_pixels:0",CODE


;static void read_stencil_pixels( GLcontext *ctx,
_read_stencil_pixels
L796	EQU	-$65C
	link	a5,#L796
	movem.l	d2-d7/a2/a3,-(a7)
	movem.l	$14(a5),d2/d5/d7/a3
	move.l	$10(a5),d4
	move.l	$8(a5),a2
L749
;   if (ctx->Visual->StencilBits<=0) 
	move.l	$8F8(a2),a0
	move.l	$20(a0),d0
	cmp.l	#0,d0
	bgt.b	L751
L750
;      gl_error( ctx, GL_INVALID_OPERATION, "glReadPixels" );
	move.l	#L747,-(a7)
	pea	$502.w
	move.l	a2,-(a7)
	jsr	_gl_error
	add.w	#$C,a7
	movem.l	(a7)+,d2-d7/a2/a3
	unlk	a5
	rts
L751
;   shift_or_offset = ctx->Pixel.IndexShift!=0 || ctx->Pixel.Index
	moveq	#1,d0
	move.l	a2,a0
	add.l	#$B168,a0
	tst.l	$2E(a0)
	bne.b	L754
L752
	move.l	a2,a0
	add.l	#$B168,a0
	tst.l	$32(a0)
	bne.b	L754
L753
	moveq	#0,d0
L754
	move.b	d0,-1(a5)
;   for (j=0;
	moveq	#0,d3
	bra	L794
L755
;      gl_read_stencil_span( ctx, width, x, y, stencil );
	pea	-$64E(a5)
	move.l	d4,-(a7)
	move.l	$C(a5),-(a7)
	move.l	d2,-(a7)
	move.l	a2,-(a7)
	jsr	_gl_read_stencil_span
	add.w	#$14,a7
;      if (shift_or_offset) 
	tst.b	-1(a5)
	beq.b	L757
L756
;         gl_shift_and_offset_stencil( ctx, width, stencil );
	pea	-$64E(a5)
	move.l	d2,-(a7)
	move.l	a2,-(a7)
	jsr	_gl_shift_and_offset_stencil
	add.w	#$C,a7
L757
;      if (ctx->Pixel.MapStencilFlag) 
	move.l	a2,a0
	add.l	#$B168,a0
	tst.b	$37(a0)
	beq.b	L759
L758
;         gl_map_stencil( ctx, width, stencil );
	pea	-$64E(a5)
	move.l	d2,-(a7)
	move.l	a2,-(a7)
	jsr	_gl_map_stencil
	add.w	#$C,a7
L759
;      dest = gl_pixel_addr_in_image(&ctx->Pack, pixels,
	clr.l	-(a7)
	move.l	d3,-(a7)
	clr.l	-(a7)
	move.l	d7,-(a7)
	pea	$1901.w
	move.l	d5,-(a7)
	move.l	d2,-(a7)
	move.l	a3,-(a7)
	move.l	a2,a0
	add.l	#$E644,a0
	pea	(a0)
	jsr	_gl_pixel_addr_in_image
	add.w	#$24,a7
	move.l	d0,a0
;      switch (type)
	move.l	d7,d0
	sub.l	#$1400,d0
	cmp.l	#6,d0
	bhi	L792
	move.l	L797(pc,d0.l*4),a1
	jmp	(a1)
L797
	dc.l	L761
	dc.l	L760
	dc.l	L768
	dc.l	L762
	dc.l	L780
	dc.l	L774
	dc.l	L786
;	 
L760
;            MEMCPY( dest, s
	move.l	d2,-(a7)
	pea	-$64E(a5)
	move.l	a0,-(a7)
	jsr	_q_memcpy
	add.w	#$C,a7
;	    
	bra	L793
L761
;            MEMCPY( dest, s
	move.l	d2,-(a7)
	pea	-$64E(a5)
	move.l	a0,-(a7)
	jsr	_q_memcpy
	add.w	#$C,a7
;	    
	bra	L793
L762
;               GLushort *dst = (GLushort *) dest;
	move.l	a0,a1
;	       for (i=0;
	moveq	#0,d0
	bra.b	L764
L763
;		  dst[i] = (GLushort) stencil[i];
	lea	-$64E(a5),a0
	moveq	#0,d1
	move.b	0(a0,d0.l),d1
	move.w	d1,0(a1,d0.l*2)
	addq.l	#1,d0
L764
	cmp.l	d2,d0
	blt.b	L763
L765
;	       if (ctx->Pack.SwapBytes) 
	move.l	a2,a0
	add.l	#$E644,a0
	tst.b	$18(a0)
	beq.b	L767
L766
;		  gl_swap2( (GLushort *) dst, width );
	move.l	d2,-(a7)
	move.l	a1,-(a7)
	jsr	_gl_swap2
	addq.w	#$8,a7
L767
;	    
	bra	L793
L768
;               GLshort *dst = (GLshort *) dest;
	move.l	a0,a1
;	       for (i=0;
	moveq	#0,d0
	bra.b	L770
L769
;		  dst[i] = (GLshort) stencil[i];
	lea	-$64E(a5),a0
	moveq	#0,d1
	move.b	0(a0,d0.l),d1
	move.w	d1,0(a1,d0.l*2)
	addq.l	#1,d0
L770
	cmp.l	d2,d0
	blt.b	L769
L771
;	       if (ctx->Pack.SwapBytes) 
	move.l	a2,a0
	add.l	#$E644,a0
	tst.b	$18(a0)
	beq.b	L773
L772
;		  gl_swap2( (GLushort *) dst, width );
	move.l	d2,-(a7)
	move.l	a1,-(a7)
	jsr	_gl_swap2
	addq.w	#$8,a7
L773
;	    
	bra	L793
L774
;               GLuint *dst = (GLuint *) dest;
	move.l	a0,a1
;	       for (i=0;
	moveq	#0,d0
	bra.b	L776
L775
;		  dst[i] = (GLuint) stencil[i];
	lea	-$64E(a5),a0
	moveq	#0,d1
	move.b	0(a0,d0.l),d1
	move.l	d1,0(a1,d0.l*4)
	addq.l	#1,d0
L776
	cmp.l	d2,d0
	blt.b	L775
L777
;	       if (ctx->Pack.SwapBytes) 
	move.l	a2,a0
	add.l	#$E644,a0
	tst.b	$18(a0)
	beq.b	L779
L778
;		  gl_swap4( (GLuint *) dst, width );
	move.l	d2,-(a7)
	move.l	a1,-(a7)
	jsr	_gl_swap4
	addq.w	#$8,a7
L779
;	    
	bra	L793
L780
;               GLint *dst = (GLint *) dest;
;	       for (i=0;
	moveq	#0,d0
	bra.b	L782
L781
;		  *dst++ = (GLint) stencil[i];
	lea	-$64E(a5),a1
	moveq	#0,d1
	move.b	0(a1,d0.l),d1
	move.l	d1,(a0)+
	addq.l	#1,d0
L782
	cmp.l	d2,d0
	blt.b	L781
L783
;	       if (ctx->Pack.SwapBytes) 
	move.l	a2,a1
	add.l	#$E644,a1
	tst.b	$18(a1)
	beq.b	L785
L784
;		  gl_swap4( (GLuint *) dst, width );
	move.l	d2,-(a7)
	move.l	a0,-(a7)
	jsr	_gl_swap4
	addq.w	#$8,a7
L785
;	    
	bra.b	L793
L786
;               GLfloat *dst = (GLfloat *) dest;
	move.l	a0,a1
;	       for (i=0;
	moveq	#0,d0
	bra.b	L788
L787
;		  dst[i] = (GLfloat) stencil[i];
	lea	-$64E(a5),a0
	moveq	#0,d1
	move.b	0(a0,d0.l),d1
	fmove.l	d1,fp0
	fmove.s	fp0,0(a1,d0.l*4)
	addq.l	#1,d0
L788
	cmp.l	d2,d0
	blt.b	L787
L789
;	       if (ctx->Pack.SwapBytes) 
	move.l	a2,a0
	add.l	#$E644,a0
	tst.b	$18(a0)
	beq.b	L791
L790
;		  gl_swap4( (GLuint *) dst, width );
	move.l	d2,-(a7)
	move.l	a1,-(a7)
	jsr	_gl_swap4
	addq.w	#$8,a7
L791
;	    
	bra.b	L793
L792
;            gl_error( ctx, GL_INVALID_ENUM, "glReadPixel
	move.l	#L748,-(a7)
	pea	$500.w
	move.l	a2,-(a7)
	jsr	_gl_error
	add.w	#$C,a7
L793
	addq.l	#1,d3
	addq.l	#1,d4
L794
	cmp.l	d5,d3
	blt	L755
L795
	movem.l	(a7)+,d2-d7/a2/a3
	unlk	a5
	rts

L747
	dc.b	'glReadPixels',0
L748
	dc.b	'glReadPixels(type)',0

	SECTION "_read_fast_rgba_pixels:0",CODE


;         }
_read_fast_rgba_pixels
L827	EQU	-$28
	link	a5,#L827
	movem.l	d2-d7/a2/a3,-(a7)
	move.l	$18(a5),d1
	move.l	$10(a5),d2
	move.l	$C(a5),d3
	move.l	$14(a5),d6
	move.l	$24(a5),a1
	move.l	$8(a5),a2
L798
;   if (ctx->Pixel.ScaleOrBiasRGBA || ctx->Pixel.MapColorFlag)
	move.l	a2,a0
	add.l	#$B168,a0
	tst.b	$24(a0)
	bne.b	L800
L799
	move.l	a2,a0
	add.l	#$B168,a0
	tst.b	$36(a0)
	beq.b	L801
L800
	moveq	#0,d0
	movem.l	(a7)+,d2-d7/a2/a3
	unlk	a5
	rts
L801
;   if (ctx->Pack.Alignment != 1 || ctx->Pack.SwapBytes || ctx->Pa
	move.l	a2,a0
	add.l	#$E644,a0
	move.l	(a0),d0
	cmp.l	#1,d0
	bne.b	L804
L802
	move.l	a2,a0
	add.l	#$E644,a0
	tst.b	$18(a0)
	bne.b	L804
L803
	move.l	a2,a0
	add.l	#$E644,a0
	tst.b	$19(a0)
	beq.b	L805
L804
	moveq	#0,d0
	movem.l	(a7)+,d2-d7/a2/a3
	unlk	a5
	rts
L805
;      GLint srcX = x;
	move.l	d3,d7
;      GLint srcY = y;
;      GLint readWidth = width;
	move.l	d6,d5
;      GLint readHeight = height;
	move.l	d1,d4
;      GLint skipPixels = ctx->Pack.SkipPixels;
	move.l	a2,a0
	add.l	#$E644,a0
	move.l	$8(a0),d3
;      GLint skipRows = ctx->Pack.SkipRows;
	move.l	a2,a0
	add.l	#$E644,a0
	move.l	$C(a0),d0
;      if (ctx->Pack.RowLength > 0)
	move.l	a2,a0
	add.l	#$E644,a0
	move.l	4(a0),d1
	cmp.l	#0,d1
	ble.b	L807
L806
;         rowLength = ctx->Pack.RowLength;
	move.l	a2,a0
	add.l	#$E644,a0
	move.l	4(a0),-$1C(a5)
	bra.b	L808
L807
;         rowLength = width;
	move.l	d6,-$1C(a5)
L808
;      if (srcX < ctx->Buffer->Xmin) 
	move.l	$8FC(a2),a0
	move.l	d7,d6
	cmp.l	$24(a0),d6
	bge.b	L810
L809
;         skipPixels += (ctx->Buffer->Xmin - srcX);
	move.l	$8FC(a2),a0
	move.l	$24(a0),d1
	sub.l	d7,d1
	add.l	d1,d3
;         readWidth  -= (ctx->Buffer->Xmin - srcX);
	move.l	$8FC(a2),a0
	move.l	$24(a0),d1
	sub.l	d7,d1
	sub.l	d1,d5
;         srcX = ctx->Buffer->Xmin;
	move.l	$8FC(a2),a0
	move.l	$24(a0),d7
L810
;      if (srcX + readWidth > ctx->Buffer->Xmax)
	move.l	d7,d1
	add.l	d5,d1
	move.l	d1,d6
	move.l	$8FC(a2),a0
	cmp.l	$28(a0),d6
	ble.b	L812
L811
;         readWidth -= (srcX + readWidth - ctx->Buffer->Xmax
	move.l	d7,d1
	add.l	d5,d1
	move.l	$8FC(a2),a0
	sub.l	$28(a0),d1
	subq.l	#1,d1
	sub.l	d1,d5
L812
;      if (readWidth <= 0)
	cmp.l	#0,d5
	bgt.b	L814
L813
	moveq	#1,d0
	movem.l	(a7)+,d2-d7/a2/a3
	unlk	a5
	rts
L814
;      if (srcY < ctx->Buffer->Ymin) 
	move.l	$8FC(a2),a0
	cmp.l	$2C(a0),d2
	bge.b	L816
L815
;         skipRows   += (ctx->Buffer->Ymin - srcY);
	move.l	$8FC(a2),a0
	move.l	$2C(a0),d1
	sub.l	d2,d1
	add.l	d1,d0
;         readHeight -= (ctx->Buffer->Ymin - srcY);
	move.l	$8FC(a2),a0
	move.l	$2C(a0),d1
	sub.l	d2,d1
	sub.l	d1,d4
;         srcY = ctx->Buffer->Ymin;
	move.l	$8FC(a2),a0
	move.l	$2C(a0),d2
L816
;      if (srcY + readHeight > ctx->Buffer->Ymax)
	move.l	d2,d1
	add.l	d4,d1
	move.l	d1,d6
	move.l	$8FC(a2),a0
	cmp.l	$30(a0),d6
	ble.b	L818
L817
;         readHeight -= (srcY + readHeight - ctx->Buffer->Ym
	move.l	d2,d1
	add.l	d4,d1
	move.l	$8FC(a2),a0
	sub.l	$30(a0),d1
	subq.l	#1,d1
	sub.l	d1,d4
L818
;      if (readHeight <= 0)
	cmp.l	#0,d4
	bgt.b	L820
L819
	moveq	#1,d0
	movem.l	(a7)+,d2-d7/a2/a3
	unlk	a5
	rts
L820
;      if (format==GL_RGBA && type==GL_UNSIGNED_BYTE) 
	move.l	$1C(a5),d1
	cmp.l	#$1908,d1
	bne.b	L826
L821
	move.l	$20(a5),d1
	cmp.l	#$1401,d1
	bne.b	L826
L822
;         GLubyte *dest = (GLubyte *) pixels
	muls.l	-$1C(a5),d0
	add.l	d3,d0
	moveq	#2,d1
	asl.l	d1,d0
	add.l	a1,d0
	move.l	d0,a3
;         for (row=0;
	moveq	#0,d3
	bra.b	L824
L823
;            (*ctx->Driver.ReadRGBASpan)(ctx, readWidth, 
	move.l	a3,-(a7)
	move.l	d2,-(a7)
	move.l	d7,-(a7)
	move.l	d5,-(a7)
	move.l	a2,-(a7)
	move.l	$950(a2),a0
	jsr	(a0)
	add.w	#$14,a7
;            dest += rowLength * 4;
	move.l	-$1C(a5),d0
	moveq	#2,d1
	asl.l	d1,d0
	add.l	a3,d0
	move.l	d0,a3
;            srcY++;
	addq.l	#1,d2
	addq.l	#1,d3
L824
	cmp.l	d4,d3
	blt.b	L823
L825
	moveq	#1,d0
	movem.l	(a7)+,d2-d7/a2/a3
	unlk	a5
	rts
L826
	moveq	#0,d0
	movem.l	(a7)+,d2-d7/a2/a3
	unlk	a5
	rts

	SECTION "_read_rgba_pixels:0",CODE


;       * Pack/transfer/store the pixe
_read_rgba_pixels
L1302	EQU	-$AF10
	link	a5,#L1302
	movem.l	d2-d7/a2-a4,-(a7)
	fmovem.x fp2/fp3/fp4/fp5,-(a7)
	move.l	$14(a5),d2
	move.l	$1C(a5),d3
	move.l	$20(a5),d5
	move.l	$8(a5),a3
	move.l	$24(a5),a4
L831
;   n = gl_components_in_format(format);
	move.l	d3,-(a7)
	jsr	_gl_components_in_format
	addq.w	#4,a7
	move.l	d0,-$10(a5)
;   if (n <= 0) 
	move.l	-$10(a5),d0
	cmp.l	#0,d0
	bgt.b	L833
L832
;      gl_error(ctx, GL_INVALID_ENUM, "glReadPixels(format)");
	move.l	#L828,-(a7)
	pea	$500.w
	move.l	a3,-(a7)
	jsr	_gl_error
	add.w	#$C,a7
	fmovem.x (a7)+,fp2/fp3/fp4/fp5
	movem.l	(a7)+,d2-d7/a2-a4
	unlk	a5
	rts
L833
;   s = gl_sizeof_type( type );
	move.l	d5,-(a7)
	jsr	_gl_sizeof_type
	addq.w	#4,a7
;   if (s <= 0) 
	cmp.l	#0,d0
	bgt.b	L835
L834
;      gl_error( ctx, GL_INVALID_ENUM, "glReadPixels(type)" );
	move.l	#L829,-(a7)
	pea	$500.w
	move.l	a3,-(a7)
	jsr	_gl_error
	add.w	#$C,a7
	fmovem.x (a7)+,fp2/fp3/fp4/fp5
	movem.l	(a7)+,d2-d7/a2-a4
	unlk	a5
	rts
L835
;   for (j=0;
	moveq	#0,d4
	bra	L1300
L836
;      if (ctx->Visual->RGBAflag) 
	move.l	a3,a1
	move.l	$8F8(a1),a0
	tst.b	(a0)
	beq	L845
L837
;	 GLfloat rscale = (1.0F / 255.0F);
	fmove.s	#$.3B808080,fp5
;	 GLfloat gscale = (1.0F / 255.0F);
	fmove.s	#$.3B808080,fp4
;	 GLfloat bscale = (1.0F / 255.0F);
	fmove.s	#$.3B808080,fp3
;	 GLfloat ascale = (1.0F / 255.0F);
	fmove.s	#$.3B808080,fp2
;         gl_read_rgba_span(ctx, width, x, y, rgba );
	move.l	a5,a0
	sub.l	#$9610,a0
	pea	(a0)
	move.l	$10(a5),-(a7)
	move.l	$C(a5),-(a7)
	move.l	d2,-(a7)
	move.l	a3,-(a7)
	jsr	_gl_read_rgba_span
	add.w	#$14,a7
;	 for (i=0;
	moveq	#0,d0
	bra	L839
L838
;	    red[i]   = rgba[i][RCOMP] * rscale;
	move.l	a5,a0
	sub.l	#$9610,a0
	moveq	#0,d1
	move.b	0(a0,d0.l*4),d1
	fmove.l	d1,fp0
	fmul.x	fp5,fp0
	lea	-$1910(a5),a0
	fmove.s	fp0,0(a0,d0.l*4)
;	    green[i] = rgba[i][GCOMP] * gscale;
	move.l	a5,a0
	sub.l	#$9610,a0
	lea	0(a0,d0.l*4),a0
	moveq	#0,d1
	move.b	1(a0),d1
	fmove.l	d1,fp0
	fmul.x	fp4,fp0
	lea	-$3210(a5),a0
	fmove.s	fp0,0(a0,d0.l*4)
;	    blue[i]  = rgba[i][BCOMP] * bscale;
	move.l	a5,a0
	sub.l	#$9610,a0
	lea	0(a0,d0.l*4),a0
	moveq	#0,d1
	move.b	2(a0),d1
	fmove.l	d1,fp0
	fmul.x	fp3,fp0
	lea	-$4B10(a5),a0
	fmove.s	fp0,0(a0,d0.l*4)
;	    alpha[i] = rgba[i][ACOMP] * ascale;
	move.l	a5,a0
	sub.l	#$9610,a0
	lea	0(a0,d0.l*4),a0
	moveq	#0,d1
	move.b	3(a0),d1
	fmove.l	d1,fp0
	fmul.x	fp2,fp0
	lea	-$6410(a5),a0
	fmove.s	fp0,0(a0,d0.l*4)
	addq.l	#1,d0
L839
	cmp.l	d2,d0
	blt	L838
L840
;	 if (ctx->Pixel.ScaleOrBiasRGBA) 
	move.l	a3,a0
	add.l	#$B168,a0
	tst.b	$24(a0)
	beq.b	L842
L841
;	    gl_scale_and_bias_color( ctx, width, red, green, blue, alp
	pea	-$6410(a5)
	pea	-$4B10(a5)
	pea	-$3210(a5)
	pea	-$1910(a5)
	move.l	d2,-(a7)
	move.l	a3,-(a7)
	jsr	_gl_scale_and_bias_color
	add.w	#$18,a7
L842
;	 if (ctx->Pixel.MapColorFlag) 
	move.l	a3,a0
	add.l	#$B168,a0
	tst.b	$36(a0)
	beq.b	L844
L843
;	    gl_map_color( ctx, width, red, green, blue, alpha );
	pea	-$6410(a5)
	pea	-$4B10(a5)
	pea	-$3210(a5)
	pea	-$1910(a5)
	move.l	d2,-(a7)
	move.l	a3,-(a7)
	jsr	_gl_map_color
	add.w	#$18,a7
L844
	bra	L849
L845
;	 (*ctx->Driver.ReadCI32Span)( ctx, width, x, y, index );
	move.l	a5,a0
	sub.l	#$AF10,a0
	pea	(a0)
	move.l	$10(a5),-(a7)
	move.l	$C(a5),-(a7)
	move.l	d2,-(a7)
	move.l	a3,-(a7)
	move.l	$94C(a3),a0
	jsr	(a0)
	add.w	#$14,a7
;	 if (ctx->Pixel.IndexShift!=0 || ctx->Pixel.IndexOffset!=0) 
	move.l	a3,a0
	add.l	#$B168,a0
	tst.l	$2E(a0)
	bne.b	L847
L846
	move.l	a3,a0
	add.l	#$B168,a0
	tst.l	$32(a0)
	beq.b	L848
L847
;            gl_map_ci( ctx, width, index );
	move.l	a5,a0
	sub.l	#$AF10,a0
	pea	(a0)
	move.l	d2,-(a7)
	move.l	a3,-(a7)
	jsr	_gl_map_ci
	add.w	#$C,a7
L848
;         gl_map_ci_to_color(ctx, width, index, red, green, 
	pea	-$6410(a5)
	pea	-$4B10(a5)
	pea	-$3210(a5)
	pea	-$1910(a5)
	move.l	a5,a0
	sub.l	#$AF10,a0
	pea	(a0)
	move.l	d2,-(a7)
	move.l	a3,-(a7)
	jsr	_gl_map_ci_to_color
	add.w	#$1C,a7
L849
;      if (format==GL_LUMINANCE || format==GL_LUMINANCE_ALPHA) 
	cmp.l	#$1909,d3
	beq.b	L851
L850
	cmp.l	#$190A,d3
	bne.b	L860
L851
;         for (i=0;
	moveq	#0,d0
	bra.b	L859
L852
;            GLfloat sum = red[i] + green[i] + blue[i];
	lea	-$1910(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	lea	-$3210(a5),a0
	fadd.s	0(a0,d0.l*4),fp0
	lea	-$4B10(a5),a0
	fadd.s	0(a0,d0.l*4),fp0
;            luminance[i] = CLAMP( sum, 0.0F, 1.0F );
	fcmp.s	#$.00000000,fp0
	fboge.b	L854
L853
	fmove.s	#$.00000000,fp0
	bra.b	L858
L854
	fcmp.s	#$.3F800000,fp0
	fbole.b	L856
L855
	fmove.s	#$.3F800000,fp0
L856
L857
L858
	lea	-$7D10(a5),a0
	fmove.s	fp0,0(a0,d0.l*4)
	addq.l	#1,d0
L859
	cmp.l	d2,d0
	blt.b	L852
L860
;      switch (type)
	move.l	d5,d0
	cmp.l	#$8034,d0
	beq	L1228
	bgt.b	L1303
	cmp.l	#$1404,d0
	beq	L1100
	bgt.b	L1304
	cmp.l	#$1402,d0
	beq	L1003
	bgt.b	L1305
	cmp.l	#$1400,d0
	beq	L908
	cmp.l	#$1401,d0
	beq	L861
	bra	L1298
L1305
	bgt	L954
L1304
	cmp.l	#$8032,d0
	beq	L1198
	bgt.b	L1306
	cmp.l	#$1405,d0
	beq	L1051
	cmp.l	#$1406,d0
	beq	L1149
	bra	L1298
L1306
	bgt	L1218
L1303
	cmp.l	#$8364,d0
	beq	L1213
	bgt.b	L1307
	cmp.l	#$8362,d0
	beq	L1203
	bgt.b	L1308
	cmp.l	#$8035,d0
	beq	L1238
	cmp.l	#$8036,d0
	beq	L1268
	bra	L1298
L1308
	bgt	L1208
L1307
	cmp.l	#$8367,d0
	beq	L1253
	bgt.b	L1309
	cmp.l	#$8365,d0
	beq	L1223
	cmp.l	#$8366,d0
	beq	L1233
	bra	L1298
L1309
	cmp.l	#$8368,d0
	beq	L1283
	bra	L1298
;         
L861
;               GLubyte *dst = (GLubyte *) gl_pixel_ad
	clr.l	-(a7)
	move.l	d4,-(a7)
	clr.l	-(a7)
	move.l	d5,-(a7)
	move.l	d3,-(a7)
	move.l	$18(a5),-(a7)
	move.l	d2,-(a7)
	move.l	a4,-(a7)
	move.l	a3,a0
	add.l	#$E644,a0
	pea	(a0)
	jsr	_gl_pixel_addr_in_image
	add.w	#$24,a7
	move.l	d0,a0
;               switch (format)
	move.l	d3,d0
	cmp.l	#$1908,d0
	beq	L890
	bgt.b	L1310
	cmp.l	#$1905,d0
	beq	L870
	bgt.b	L1311
	cmp.l	#$1903,d0
	beq.b	L862
	cmp.l	#$1904,d0
	beq	L866
	bra	L906
L1311
	cmp.l	#$1906,d0
	beq	L874
	cmp.l	#$1907,d0
	beq	L886
	bra	L906
L1310
	cmp.l	#$8000,d0
	beq	L902
	bgt.b	L1312
	cmp.l	#$1909,d0
	beq	L878
	cmp.l	#$190A,d0
	beq	L882
	bra	L906
L1312
	cmp.l	#$80E0,d0
	beq	L894
	cmp.l	#$80E1,d0
	beq	L898
	bra	L906
;                  
L862
;                     for (i=0;
	moveq	#0,d0
	bra.b	L864
L863
;                        dst[i] = FLOAT_TO_UB
	lea	-$1910(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	move.b	d1,0(a0,d0.l)
	addq.l	#1,d0
L864
	cmp.l	d2,d0
	blt.b	L863
L865
;                     
	bra	L907
L866
;                     for (i=0;
	moveq	#0,d0
	bra.b	L868
L867
;                        dst[i] = FLOAT_TO_UB
	lea	-$3210(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	move.b	d1,0(a0,d0.l)
	addq.l	#1,d0
L868
	cmp.l	d2,d0
	blt.b	L867
L869
;                     
	bra	L907
L870
;                     for (i=0;
	moveq	#0,d0
	bra.b	L872
L871
;                        dst[i] = FLOAT_TO_UB
	lea	-$4B10(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	move.b	d1,0(a0,d0.l)
	addq.l	#1,d0
L872
	cmp.l	d2,d0
	blt.b	L871
L873
;                     
	bra	L907
L874
;                     for (i=0;
	moveq	#0,d0
	bra.b	L876
L875
;                        dst[i] = FLOAT_TO_UB
	lea	-$6410(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	move.b	d1,0(a0,d0.l)
	addq.l	#1,d0
L876
	cmp.l	d2,d0
	blt.b	L875
L877
;                     
	bra	L907
L878
;                     for (i=0;
	moveq	#0,d0
	bra.b	L880
L879
;                        dst[i] = FLOAT_TO_UB
	lea	-$7D10(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	move.b	d1,0(a0,d0.l)
	addq.l	#1,d0
L880
	cmp.l	d2,d0
	blt.b	L879
L881
;                     
	bra	L907
L882
;                     for (i=0;
	moveq	#0,d0
	bra.b	L884
L883
;                        dst[i*2+0] = FLOAT_T
	lea	-$7D10(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	move.b	d1,d7
	move.l	d0,d1
	moveq	#1,d6
	asl.l	d6,d1
	move.b	d7,0(a0,d1.l)
;                        dst[i*2+1] = FLOAT_T
	lea	-$6410(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	move.b	d1,d7
	move.l	d0,d1
	moveq	#1,d6
	asl.l	d6,d1
	lea	1(a0),a1
	move.b	d7,0(a1,d1.l)
	addq.l	#1,d0
L884
	cmp.l	d2,d0
	blt.b	L883
L885
;                     
	bra	L907
L886
;                     for (i=0;
	moveq	#0,d0
	bra	L888
L887
;                        dst[i*3+0] = FLOAT_T
	lea	-$1910(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	move.b	d1,d7
	move.l	d0,d1
	muls.l	#3,d1
	move.b	d7,0(a0,d1.l)
;                        dst[i*3+1] = FLOAT_T
	lea	-$3210(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	move.b	d1,d7
	move.l	d0,d1
	muls.l	#3,d1
	lea	1(a0),a1
	move.b	d7,0(a1,d1.l)
;                        dst[i*3+2] = FLOAT_T
	lea	-$4B10(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	move.b	d1,d7
	move.l	d0,d1
	muls.l	#3,d1
	lea	2(a0),a1
	move.b	d7,0(a1,d1.l)
	addq.l	#1,d0
L888
	cmp.l	d2,d0
	blt	L887
L889
;                     
	bra	L907
L890
;                     for (i=0;
	moveq	#0,d0
	bra	L892
L891
;                        dst[i*4+0] = FLOAT_T
	lea	-$1910(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	move.b	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	move.b	d7,0(a0,d1.l)
;                        dst[i*4+1] = FLOAT_T
	lea	-$3210(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	move.b	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	1(a0),a1
	move.b	d7,0(a1,d1.l)
;                        dst[i*4+2] = FLOAT_T
	lea	-$4B10(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	move.b	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	2(a0),a1
	move.b	d7,0(a1,d1.l)
;                        dst[i*4+3] = FLOAT_T
	lea	-$6410(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	move.b	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	3(a0),a1
	move.b	d7,0(a1,d1.l)
	addq.l	#1,d0
L892
	cmp.l	d2,d0
	blt	L891
L893
;                     
	bra	L907
L894
;                     for (i=0;
	moveq	#0,d0
	bra	L896
L895
;                        dst[i*3+0] = FLOAT_T
	lea	-$4B10(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	move.b	d1,d7
	move.l	d0,d1
	muls.l	#3,d1
	move.b	d7,0(a0,d1.l)
;                        dst[i*3+1] = FLOAT_T
	lea	-$3210(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	move.b	d1,d7
	move.l	d0,d1
	muls.l	#3,d1
	lea	1(a0),a1
	move.b	d7,0(a1,d1.l)
;                        dst[i*3+2] = FLOAT_T
	lea	-$1910(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	move.b	d1,d7
	move.l	d0,d1
	muls.l	#3,d1
	lea	2(a0),a1
	move.b	d7,0(a1,d1.l)
	addq.l	#1,d0
L896
	cmp.l	d2,d0
	blt	L895
L897
;                     
	bra	L907
L898
;                     for (i=0;
	moveq	#0,d0
	bra	L900
L899
;                        dst[i*4+0] = FLOAT_T
	lea	-$4B10(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	move.b	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	move.b	d7,0(a0,d1.l)
;                        dst[i*4+1] = FLOAT_T
	lea	-$3210(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	move.b	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	1(a0),a1
	move.b	d7,0(a1,d1.l)
;                        dst[i*4+2] = FLOAT_T
	lea	-$1910(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	move.b	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	2(a0),a1
	move.b	d7,0(a1,d1.l)
;                        dst[i*4+3] = FLOAT_T
	lea	-$6410(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	move.b	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	3(a0),a1
	move.b	d7,0(a1,d1.l)
	addq.l	#1,d0
L900
	cmp.l	d2,d0
	blt	L899
L901
;                     
	bra	L907
L902
;                     for (i=0;
	moveq	#0,d0
	bra	L904
L903
;                        dst[i*4+0] = FLOAT_T
	lea	-$6410(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	move.b	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	move.b	d7,0(a0,d1.l)
;                        dst[i*4+1] = FLOAT_T
	lea	-$4B10(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	move.b	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	1(a0),a1
	move.b	d7,0(a1,d1.l)
;                        dst[i*4+2] = FLOAT_T
	lea	-$3210(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	move.b	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	2(a0),a1
	move.b	d7,0(a1,d1.l)
;                        dst[i*4+3] = FLOAT_T
	lea	-$1910(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	move.b	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	3(a0),a1
	move.b	d7,0(a1,d1.l)
	addq.l	#1,d0
L904
	cmp.l	d2,d0
	blt	L903
L905
;                     
	bra.b	L907
L906
;                     gl_problem(ctx, "bad forma
	move.l	#L830,-(a7)
	move.l	a3,-(a7)
	jsr	_gl_problem
	addq.w	#$8,a7
L907
;	    
	bra	L1299
L908
;               GLbyte *dst = (GLbyte *) gl_pixel_addr
	clr.l	-(a7)
	move.l	d4,-(a7)
	clr.l	-(a7)
	move.l	d5,-(a7)
	move.l	d3,-(a7)
	move.l	$18(a5),-(a7)
	move.l	d2,-(a7)
	move.l	a4,-(a7)
	move.l	a3,a0
	add.l	#$E644,a0
	pea	(a0)
	jsr	_gl_pixel_addr_in_image
	add.w	#$24,a7
	move.l	d0,a0
;               switch (format)
	move.l	d3,d0
	cmp.l	#$1908,d0
	beq	L937
	bgt.b	L1313
	cmp.l	#$1905,d0
	beq	L917
	bgt.b	L1314
	cmp.l	#$1903,d0
	beq.b	L909
	cmp.l	#$1904,d0
	beq	L913
	bra	L952
L1314
	cmp.l	#$1906,d0
	beq	L921
	cmp.l	#$1907,d0
	beq	L933
	bra	L952
L1313
	cmp.l	#$8000,d0
	beq	L948
	bgt.b	L1315
	cmp.l	#$1909,d0
	beq	L925
	cmp.l	#$190A,d0
	beq	L929
	bra	L952
L1315
	cmp.l	#$80E0,d0
	beq	L941
	cmp.l	#$80E1,d0
	beq	L945
	bra	L952
;                  
L909
;                     for (i=0;
	moveq	#0,d0
	bra.b	L911
L910
;                        dst[i] = FLOAT_TO_BY
	lea	-$1910(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.b	d1,0(a0,d0.l)
	addq.l	#1,d0
L911
	cmp.l	d2,d0
	blt.b	L910
L912
;                     
	bra	L953
L913
;                     for (i=0;
	moveq	#0,d0
	bra.b	L915
L914
;                        dst[i] = FLOAT_TO_BY
	lea	-$3210(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.b	d1,0(a0,d0.l)
	addq.l	#1,d0
L915
	cmp.l	d2,d0
	blt.b	L914
L916
;                     
	bra	L953
L917
;                     for (i=0;
	moveq	#0,d0
	bra.b	L919
L918
;                        dst[i] = FLOAT_TO_BY
	lea	-$4B10(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.b	d1,0(a0,d0.l)
	addq.l	#1,d0
L919
	cmp.l	d2,d0
	blt.b	L918
L920
;                     
	bra	L953
L921
;                     for (i=0;
	moveq	#0,d0
	bra.b	L923
L922
;                        dst[i] = FLOAT_TO_BY
	lea	-$6410(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.b	d1,0(a0,d0.l)
	addq.l	#1,d0
L923
	cmp.l	d2,d0
	blt.b	L922
L924
;                     
	bra	L953
L925
;                     for (i=0;
	moveq	#0,d0
	bra.b	L927
L926
;                        dst[i] = FLOAT_TO_BY
	lea	-$7D10(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.b	d1,0(a0,d0.l)
	addq.l	#1,d0
L927
	cmp.l	d2,d0
	blt.b	L926
L928
;                     
	bra	L953
L929
;                     for (i=0;
	moveq	#0,d0
	bra.b	L931
L930
;                        dst[i*2+0] = FLOAT_T
	lea	-$7D10(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.b	d1,d7
	move.l	d0,d1
	moveq	#1,d6
	asl.l	d6,d1
	move.b	d7,0(a0,d1.l)
;                        dst[i*2+1] = FLOAT_T
	lea	-$6410(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.b	d1,d7
	move.l	d0,d1
	moveq	#1,d6
	asl.l	d6,d1
	lea	1(a0),a1
	move.b	d7,0(a1,d1.l)
	addq.l	#1,d0
L931
	cmp.l	d2,d0
	blt.b	L930
L932
;                     
	bra	L953
L933
;                     for (i=0;
	moveq	#0,d0
	bra	L935
L934
;                        dst[i*3+0] = FLOAT_T
	lea	-$1910(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.b	d1,d7
	move.l	d0,d1
	muls.l	#3,d1
	move.b	d7,0(a0,d1.l)
;                        dst[i*3+1] = FLOAT_T
	lea	-$3210(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.b	d1,d7
	move.l	d0,d1
	muls.l	#3,d1
	lea	1(a0),a1
	move.b	d7,0(a1,d1.l)
;                        dst[i*3+2] = FLOAT_T
	lea	-$4B10(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.b	d1,d7
	move.l	d0,d1
	muls.l	#3,d1
	lea	2(a0),a1
	move.b	d7,0(a1,d1.l)
	addq.l	#1,d0
L935
	cmp.l	d2,d0
	blt	L934
L936
;                     
	bra	L953
L937
;                     for (i=0;
	moveq	#0,d0
	bra	L939
L938
;                        dst[i*4+0] = FLOAT_T
	lea	-$1910(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.b	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	move.b	d7,0(a0,d1.l)
;                        dst[i*4+1] = FLOAT_T
	lea	-$3210(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.b	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	1(a0),a1
	move.b	d7,0(a1,d1.l)
;                        dst[i*4+2] = FLOAT_T
	lea	-$4B10(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.b	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	2(a0),a1
	move.b	d7,0(a1,d1.l)
;                        dst[i*4+3] = FLOAT_T
	lea	-$6410(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.b	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	3(a0),a1
	move.b	d7,0(a1,d1.l)
	addq.l	#1,d0
L939
	cmp.l	d2,d0
	blt	L938
L940
;                     
	bra	L953
L941
;                     for (i=0;
	moveq	#0,d0
	bra	L943
L942
;                        dst[i*3+0] = FLOAT_T
	lea	-$4B10(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.b	d1,d7
	move.l	d0,d1
	muls.l	#3,d1
	move.b	d7,0(a0,d1.l)
;                        dst[i*3+1] = FLOAT_T
	lea	-$3210(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.b	d1,d7
	move.l	d0,d1
	muls.l	#3,d1
	lea	1(a0),a1
	move.b	d7,0(a1,d1.l)
;                        dst[i*3+2] = FLOAT_T
	lea	-$1910(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.b	d1,d7
	move.l	d0,d1
	muls.l	#3,d1
	lea	2(a0),a1
	move.b	d7,0(a1,d1.l)
	addq.l	#1,d0
L943
	cmp.l	d2,d0
	blt	L942
L944
;                     
	bra	L953
L945
;                     for (i=0;
	moveq	#0,d0
	bra	L947
L946
;                        dst[i*4+0] = FLOAT_T
	lea	-$4B10(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.b	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	move.b	d7,0(a0,d1.l)
;                        dst[i*4+1] = FLOAT_T
	lea	-$3210(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.b	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	1(a0),a1
	move.b	d7,0(a1,d1.l)
;                        dst[i*4+2] = FLOAT_T
	lea	-$1910(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.b	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	2(a0),a1
	move.b	d7,0(a1,d1.l)
;                        dst[i*4+3] = FLOAT_T
	lea	-$6410(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.b	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	3(a0),a1
	move.b	d7,0(a1,d1.l)
	addq.l	#1,d0
L947
	cmp.l	d2,d0
	blt	L946
L948
;                     for (i=0;
	moveq	#0,d0
	bra	L950
L949
;                        dst[i*4+0] = FLOAT_T
	lea	-$6410(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.b	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	move.b	d7,0(a0,d1.l)
;                        dst[i*4+1] = FLOAT_T
	lea	-$4B10(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.b	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	1(a0),a1
	move.b	d7,0(a1,d1.l)
;                        dst[i*4+2] = FLOAT_T
	lea	-$3210(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.b	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	2(a0),a1
	move.b	d7,0(a1,d1.l)
;                        dst[i*4+3] = FLOAT_T
	lea	-$1910(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.b	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	3(a0),a1
	move.b	d7,0(a1,d1.l)
	addq.l	#1,d0
L950
	cmp.l	d2,d0
	blt	L949
L951
;                     
	bra.b	L953
L952
;                     gl_problem(ctx, "bad forma
	move.l	#L830,-(a7)
	move.l	a3,-(a7)
	jsr	_gl_problem
	addq.w	#$8,a7
L953
;	    
	bra	L1299
L954
;               GLushort *dst = (GLushort *) gl_pixel_
	clr.l	-(a7)
	move.l	d4,-(a7)
	clr.l	-(a7)
	move.l	d5,-(a7)
	move.l	d3,-(a7)
	move.l	$18(a5),-(a7)
	move.l	d2,-(a7)
	move.l	a4,-(a7)
	move.l	a3,a0
	add.l	#$E644,a0
	pea	(a0)
	jsr	_gl_pixel_addr_in_image
	add.w	#$24,a7
	move.l	d0,a2
;               switch (format)
	move.l	d3,d0
	cmp.l	#$1908,d0
	beq	L983
	bgt.b	L1316
	cmp.l	#$1905,d0
	beq	L963
	bgt.b	L1317
	cmp.l	#$1903,d0
	beq.b	L955
	cmp.l	#$1904,d0
	beq	L959
	bra	L999
L1317
	cmp.l	#$1906,d0
	beq	L967
	cmp.l	#$1907,d0
	beq	L979
	bra	L999
L1316
	cmp.l	#$8000,d0
	beq	L995
	bgt.b	L1318
	cmp.l	#$1909,d0
	beq	L971
	cmp.l	#$190A,d0
	beq	L975
	bra	L999
L1318
	cmp.l	#$80E0,d0
	beq	L987
	cmp.l	#$80E1,d0
	beq	L991
	bra	L999
;                  
L955
;                     for (i=0;
	moveq	#0,d0
	bra.b	L957
L956
;                        dst[i] = FLOAT_TO_US
	lea	-$1910(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	move.w	d1,0(a2,d0.l*2)
	addq.l	#1,d0
L957
	cmp.l	d2,d0
	blt.b	L956
L958
;                     
	bra	L1000
L959
;                     for (i=0;
	moveq	#0,d0
	bra.b	L961
L960
;                        dst[i] = FLOAT_TO_US
	lea	-$3210(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	move.w	d1,0(a2,d0.l*2)
	addq.l	#1,d0
L961
	cmp.l	d2,d0
	blt.b	L960
L962
;                     
	bra	L1000
L963
;                     for (i=0;
	moveq	#0,d0
	bra.b	L965
L964
;                        dst[i] = FLOAT_TO_US
	lea	-$4B10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	move.w	d1,0(a2,d0.l*2)
	addq.l	#1,d0
L965
	cmp.l	d2,d0
	blt.b	L964
L966
;                     
	bra	L1000
L967
;                     for (i=0;
	moveq	#0,d0
	bra.b	L969
L968
;                        dst[i] = FLOAT_TO_US
	lea	-$6410(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	move.w	d1,0(a2,d0.l*2)
	addq.l	#1,d0
L969
	cmp.l	d2,d0
	blt.b	L968
L970
;                     
	bra	L1000
L971
;                     for (i=0;
	moveq	#0,d0
	bra.b	L973
L972
;                        dst[i] = FLOAT_TO_US
	lea	-$7D10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	move.w	d1,0(a2,d0.l*2)
	addq.l	#1,d0
L973
	cmp.l	d2,d0
	blt.b	L972
L974
;                     
	bra	L1000
L975
;                     for (i=0;
	moveq	#0,d0
	bra.b	L977
L976
;                        dst[i*2+0] = FLOAT_T
	lea	-$7D10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	move.w	d1,d7
	move.l	d0,d1
	moveq	#1,d6
	asl.l	d6,d1
	move.w	d7,0(a2,d1.l*2)
;                        dst[i*2+1] = FLOAT_T
	lea	-$6410(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	move.w	d1,d7
	move.l	d0,d1
	moveq	#1,d6
	asl.l	d6,d1
	lea	2(a2),a0
	move.w	d7,0(a0,d1.l*2)
	addq.l	#1,d0
L977
	cmp.l	d2,d0
	blt.b	L976
L978
;                     
	bra	L1000
L979
;                     for (i=0;
	moveq	#0,d0
	bra	L981
L980
;                        dst[i*3+0] = FLOAT_T
	lea	-$1910(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	move.w	d1,d7
	move.l	d0,d1
	muls.l	#3,d1
	move.w	d7,0(a2,d1.l*2)
;                        dst[i*3+1] = FLOAT_T
	lea	-$3210(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	move.w	d1,d7
	move.l	d0,d1
	muls.l	#3,d1
	lea	2(a2),a0
	move.w	d7,0(a0,d1.l*2)
;                        dst[i*3+2] = FLOAT_T
	lea	-$4B10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	move.w	d1,d7
	move.l	d0,d1
	muls.l	#3,d1
	lea	4(a2),a0
	move.w	d7,0(a0,d1.l*2)
	addq.l	#1,d0
L981
	cmp.l	d2,d0
	blt	L980
L982
;                     
	bra	L1000
L983
;                     for (i=0;
	moveq	#0,d0
	bra	L985
L984
;                        dst[i*4+0] = FLOAT_T
	lea	-$1910(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	move.w	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	move.w	d7,0(a2,d1.l*2)
;                        dst[i*4+1] = FLOAT_T
	lea	-$3210(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	move.w	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	2(a2),a0
	move.w	d7,0(a0,d1.l*2)
;                        dst[i*4+2] = FLOAT_T
	lea	-$4B10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	move.w	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	4(a2),a0
	move.w	d7,0(a0,d1.l*2)
;                        dst[i*4+3] = FLOAT_T
	lea	-$6410(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	move.w	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	6(a2),a0
	move.w	d7,0(a0,d1.l*2)
	addq.l	#1,d0
L985
	cmp.l	d2,d0
	blt	L984
L986
;                     
	bra	L1000
L987
;                     for (i=0;
	moveq	#0,d0
	bra	L989
L988
;                        dst[i*3+0] = FLOAT_T
	lea	-$4B10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	move.w	d1,d7
	move.l	d0,d1
	muls.l	#3,d1
	move.w	d7,0(a2,d1.l*2)
;                        dst[i*3+1] = FLOAT_T
	lea	-$3210(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	move.w	d1,d7
	move.l	d0,d1
	muls.l	#3,d1
	lea	2(a2),a0
	move.w	d7,0(a0,d1.l*2)
;                        dst[i*3+2] = FLOAT_T
	lea	-$1910(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	move.w	d1,d7
	move.l	d0,d1
	muls.l	#3,d1
	lea	4(a2),a0
	move.w	d7,0(a0,d1.l*2)
	addq.l	#1,d0
L989
	cmp.l	d2,d0
	blt	L988
L990
;                     
	bra	L1000
L991
;                     for (i=0;
	moveq	#0,d0
	bra	L993
L992
;                        dst[i*4+0] = FLOAT_T
	lea	-$4B10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	move.w	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	move.w	d7,0(a2,d1.l*2)
;                        dst[i*4+1] = FLOAT_T
	lea	-$3210(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	move.w	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	2(a2),a0
	move.w	d7,0(a0,d1.l*2)
;                        dst[i*4+2] = FLOAT_T
	lea	-$1910(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	move.w	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	4(a2),a0
	move.w	d7,0(a0,d1.l*2)
;                        dst[i*4+3] = FLOAT_T
	lea	-$6410(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	move.w	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	6(a2),a0
	move.w	d7,0(a0,d1.l*2)
	addq.l	#1,d0
L993
	cmp.l	d2,d0
	blt	L992
L994
;                     
	bra	L1000
L995
;                     for (i=0;
	moveq	#0,d0
	bra	L997
L996
;                        dst[i*4+0] = FLOAT_T
	lea	-$6410(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	move.w	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	move.w	d7,0(a2,d1.l*2)
;                        dst[i*4+1] = FLOAT_T
	lea	-$4B10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	move.w	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	2(a2),a0
	move.w	d7,0(a0,d1.l*2)
;                        dst[i*4+2] = FLOAT_T
	lea	-$3210(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	move.w	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	4(a2),a0
	move.w	d7,0(a0,d1.l*2)
;                        dst[i*4+3] = FLOAT_T
	lea	-$1910(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	move.w	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	6(a2),a0
	move.w	d7,0(a0,d1.l*2)
	addq.l	#1,d0
L997
	cmp.l	d2,d0
	blt	L996
L998
;                     
	bra.b	L1000
L999
;                     gl_problem(ctx, "bad forma
	move.l	#L830,-(a7)
	move.l	a3,-(a7)
	jsr	_gl_problem
	addq.w	#$8,a7
L1000
;               if (ctx->Pack.SwapBytes) 
	move.l	a3,a0
	add.l	#$E644,a0
	tst.b	$18(a0)
	beq.b	L1002
L1001
;                  gl_swap2( (GLushort *) dst, widt
	move.l	d2,d0
	muls.l	-$10(a5),d0
	move.l	d0,-(a7)
	move.l	a2,-(a7)
	jsr	_gl_swap2
	addq.w	#$8,a7
L1002
;	    
	bra	L1299
L1003
;               GLshort *dst = (GLshort *) gl_pixel_ad
	clr.l	-(a7)
	move.l	d4,-(a7)
	clr.l	-(a7)
	move.l	d5,-(a7)
	move.l	d3,-(a7)
	move.l	$18(a5),-(a7)
	move.l	d2,-(a7)
	move.l	a4,-(a7)
	move.l	a3,a0
	add.l	#$E644,a0
	pea	(a0)
	jsr	_gl_pixel_addr_in_image
	add.w	#$24,a7
	move.l	d0,a2
;               switch (format)
	move.l	d3,d0
	cmp.l	#$1908,d0
	beq	L1032
	bgt.b	L1319
	cmp.l	#$1905,d0
	beq	L1012
	bgt.b	L1320
	cmp.l	#$1903,d0
	beq.b	L1004
	cmp.l	#$1904,d0
	beq	L1008
	bra	L1047
L1320
	cmp.l	#$1906,d0
	beq	L1016
	cmp.l	#$1907,d0
	beq	L1028
	bra	L1047
L1319
	cmp.l	#$8000,d0
	beq	L1043
	bgt.b	L1321
	cmp.l	#$1909,d0
	beq	L1020
	cmp.l	#$190A,d0
	beq	L1024
	bra	L1047
L1321
	cmp.l	#$80E0,d0
	beq	L1036
	cmp.l	#$80E1,d0
	beq	L1040
	bra	L1047
;                  
L1004
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1006
L1005
;                        dst[i] = FLOAT_TO_SH
	lea	-$1910(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.w	d1,0(a2,d0.l*2)
	addq.l	#1,d0
L1006
	cmp.l	d2,d0
	blt.b	L1005
L1007
;                     
	bra	L1048
L1008
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1010
L1009
;                        dst[i] = FLOAT_TO_SH
	lea	-$3210(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.w	d1,0(a2,d0.l*2)
	addq.l	#1,d0
L1010
	cmp.l	d2,d0
	blt.b	L1009
L1011
;                     
	bra	L1048
L1012
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1014
L1013
;                        dst[i] = FLOAT_TO_SH
	lea	-$4B10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.w	d1,0(a2,d0.l*2)
	addq.l	#1,d0
L1014
	cmp.l	d2,d0
	blt.b	L1013
L1015
;                     
	bra	L1048
L1016
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1018
L1017
;                        dst[i] = FLOAT_TO_SH
	lea	-$6410(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.w	d1,0(a2,d0.l*2)
	addq.l	#1,d0
L1018
	cmp.l	d2,d0
	blt.b	L1017
L1019
;                     
	bra	L1048
L1020
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1022
L1021
;                        dst[i] = FLOAT_TO_SH
	lea	-$7D10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.w	d1,0(a2,d0.l*2)
	addq.l	#1,d0
L1022
	cmp.l	d2,d0
	blt.b	L1021
L1023
;                     
	bra	L1048
L1024
;                     for (i=0;
	moveq	#0,d0
	bra	L1026
L1025
;                        dst[i*2+0] = FLOAT_T
	lea	-$7D10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.w	d1,d7
	move.l	d0,d1
	moveq	#1,d6
	asl.l	d6,d1
	move.w	d7,0(a2,d1.l*2)
;                        dst[i*2+1] = FLOAT_T
	lea	-$6410(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.w	d1,d7
	move.l	d0,d1
	moveq	#1,d6
	asl.l	d6,d1
	lea	2(a2),a0
	move.w	d7,0(a0,d1.l*2)
	addq.l	#1,d0
L1026
	cmp.l	d2,d0
	blt.b	L1025
L1027
;                     
	bra	L1048
L1028
;                     for (i=0;
	moveq	#0,d0
	bra	L1030
L1029
;                        dst[i*3+0] = FLOAT_T
	lea	-$1910(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.w	d1,d7
	move.l	d0,d1
	muls.l	#3,d1
	move.w	d7,0(a2,d1.l*2)
;                        dst[i*3+1] = FLOAT_T
	lea	-$3210(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.w	d1,d7
	move.l	d0,d1
	muls.l	#3,d1
	lea	2(a2),a0
	move.w	d7,0(a0,d1.l*2)
;                        dst[i*3+2] = FLOAT_T
	lea	-$4B10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.w	d1,d7
	move.l	d0,d1
	muls.l	#3,d1
	lea	4(a2),a0
	move.w	d7,0(a0,d1.l*2)
	addq.l	#1,d0
L1030
	cmp.l	d2,d0
	blt	L1029
L1031
;                     
	bra	L1048
L1032
;                     for (i=0;
	moveq	#0,d0
	bra	L1034
L1033
;                        dst[i*4+0] = FLOAT_T
	lea	-$1910(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.w	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	move.w	d7,0(a2,d1.l*2)
;                        dst[i*4+1] = FLOAT_T
	lea	-$3210(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.w	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	2(a2),a0
	move.w	d7,0(a0,d1.l*2)
;                        dst[i*4+2] = FLOAT_T
	lea	-$4B10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.w	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	4(a2),a0
	move.w	d7,0(a0,d1.l*2)
;                        dst[i*4+3] = FLOAT_T
	lea	-$6410(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.w	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	6(a2),a0
	move.w	d7,0(a0,d1.l*2)
	addq.l	#1,d0
L1034
	cmp.l	d2,d0
	blt	L1033
L1035
;                     
	bra	L1048
L1036
;                     for (i=0;
	moveq	#0,d0
	bra	L1038
L1037
;                        dst[i*3+0] = FLOAT_T
	lea	-$4B10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.w	d1,d7
	move.l	d0,d1
	muls.l	#3,d1
	move.w	d7,0(a2,d1.l*2)
;                        dst[i*3+1] = FLOAT_T
	lea	-$3210(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.w	d1,d7
	move.l	d0,d1
	muls.l	#3,d1
	lea	2(a2),a0
	move.w	d7,0(a0,d1.l*2)
;                        dst[i*3+2] = FLOAT_T
	lea	-$1910(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.w	d1,d7
	move.l	d0,d1
	muls.l	#3,d1
	lea	4(a2),a0
	move.w	d7,0(a0,d1.l*2)
	addq.l	#1,d0
L1038
	cmp.l	d2,d0
	blt	L1037
L1039
;                     
	bra	L1048
L1040
;                     for (i=0;
	moveq	#0,d0
	bra	L1042
L1041
;                        dst[i*4+0] = FLOAT_T
	lea	-$4B10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.w	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	move.w	d7,0(a2,d1.l*2)
;                        dst[i*4+1] = FLOAT_T
	lea	-$3210(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.w	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	2(a2),a0
	move.w	d7,0(a0,d1.l*2)
;                        dst[i*4+2] = FLOAT_T
	lea	-$1910(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.w	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	4(a2),a0
	move.w	d7,0(a0,d1.l*2)
;                        dst[i*4+3] = FLOAT_T
	lea	-$6410(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.w	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	6(a2),a0
	move.w	d7,0(a0,d1.l*2)
	addq.l	#1,d0
L1042
	cmp.l	d2,d0
	blt	L1041
L1043
;                     for (i=0;
	moveq	#0,d0
	bra	L1045
L1044
;                        dst[i*4+0] = FLOAT_T
	lea	-$6410(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.w	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	move.w	d7,0(a2,d1.l*2)
;                        dst[i*4+1] = FLOAT_T
	lea	-$4B10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.w	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	2(a2),a0
	move.w	d7,0(a0,d1.l*2)
;                        dst[i*4+2] = FLOAT_T
	lea	-$3210(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.w	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	4(a2),a0
	move.w	d7,0(a0,d1.l*2)
;                        dst[i*4+3] = FLOAT_T
	lea	-$1910(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	subq.l	#1,d1
	divsl.l	#2,d1
	move.w	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	6(a2),a0
	move.w	d7,0(a0,d1.l*2)
	addq.l	#1,d0
L1045
	cmp.l	d2,d0
	blt	L1044
L1046
;                     
	bra.b	L1048
L1047
;                     gl_problem(ctx, "bad forma
	move.l	#L830,-(a7)
	move.l	a3,-(a7)
	jsr	_gl_problem
	addq.w	#$8,a7
L1048
;               if (ctx->Pack.SwapBytes) 
	move.l	a3,a0
	add.l	#$E644,a0
	tst.b	$18(a0)
	beq.b	L1050
L1049
;                  gl_swap2( (GLushort *) dst, widt
	move.l	d2,d0
	muls.l	-$10(a5),d0
	move.l	d0,-(a7)
	move.l	a2,-(a7)
	jsr	_gl_swap2
	addq.w	#$8,a7
L1050
;	    
	bra	L1299
L1051
;               GLuint *dst = (GLuint *) gl_pixel_addr
	clr.l	-(a7)
	move.l	d4,-(a7)
	clr.l	-(a7)
	move.l	d5,-(a7)
	move.l	d3,-(a7)
	move.l	$18(a5),-(a7)
	move.l	d2,-(a7)
	move.l	a4,-(a7)
	move.l	a3,a0
	add.l	#$E644,a0
	pea	(a0)
	jsr	_gl_pixel_addr_in_image
	add.w	#$24,a7
	move.l	d0,a2
;               switch (format)
	move.l	d3,d0
	cmp.l	#$1908,d0
	beq	L1080
	bgt.b	L1322
	cmp.l	#$1905,d0
	beq	L1060
	bgt.b	L1323
	cmp.l	#$1903,d0
	beq	L1052
	cmp.l	#$1904,d0
	beq	L1056
	bra	L1096
L1323
	cmp.l	#$1906,d0
	beq	L1064
	cmp.l	#$1907,d0
	beq	L1076
	bra	L1096
L1322
	cmp.l	#$8000,d0
	beq	L1092
	bgt.b	L1324
	cmp.l	#$1909,d0
	beq	L1068
	cmp.l	#$190A,d0
	beq	L1072
	bra	L1096
L1324
	cmp.l	#$80E0,d0
	beq	L1084
	cmp.l	#$80E1,d0
	beq	L1088
	bra	L1096
;                  
L1052
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1054
L1053
;                        dst[i] = FLOAT_TO_UI
	lea	-$1910(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41EFFFFF.FFE00000,fp0
	fmove.l	fp0,d1
	move.l	d1,0(a2,d0.l*4)
	addq.l	#1,d0
L1054
	cmp.l	d2,d0
	blt.b	L1053
L1055
;                     
	bra	L1097
L1056
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1058
L1057
;                        dst[i] = FLOAT_TO_UI
	lea	-$3210(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41EFFFFF.FFE00000,fp0
	fmove.l	fp0,d1
	move.l	d1,0(a2,d0.l*4)
	addq.l	#1,d0
L1058
	cmp.l	d2,d0
	blt.b	L1057
L1059
;                     
	bra	L1097
L1060
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1062
L1061
;                        dst[i] = FLOAT_TO_UI
	lea	-$4B10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41EFFFFF.FFE00000,fp0
	fmove.l	fp0,d1
	move.l	d1,0(a2,d0.l*4)
	addq.l	#1,d0
L1062
	cmp.l	d2,d0
	blt.b	L1061
L1063
;                     
	bra	L1097
L1064
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1066
L1065
;                        dst[i] = FLOAT_TO_UI
	lea	-$6410(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41EFFFFF.FFE00000,fp0
	fmove.l	fp0,d1
	move.l	d1,0(a2,d0.l*4)
	addq.l	#1,d0
L1066
	cmp.l	d2,d0
	blt.b	L1065
L1067
;                     
	bra	L1097
L1068
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1070
L1069
;                        dst[i] = FLOAT_TO_UI
	lea	-$7D10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41EFFFFF.FFE00000,fp0
	fmove.l	fp0,d1
	move.l	d1,0(a2,d0.l*4)
	addq.l	#1,d0
L1070
	cmp.l	d2,d0
	blt.b	L1069
L1071
;                     
	bra	L1097
L1072
;                     for (i=0;
	moveq	#0,d0
	bra	L1074
L1073
;                        dst[i*2+0] = FLOAT_T
	lea	-$7D10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41EFFFFF.FFE00000,fp0
	fmove.l	fp0,d1
	move.l	d1,d7
	move.l	d0,d1
	moveq	#1,d6
	asl.l	d6,d1
	move.l	d7,0(a2,d1.l*4)
;                        dst[i*2+1] = FLOAT_T
	lea	-$6410(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41EFFFFF.FFE00000,fp0
	fmove.l	fp0,d1
	move.l	d1,d7
	move.l	d0,d1
	moveq	#1,d6
	asl.l	d6,d1
	lea	4(a2),a0
	move.l	d7,0(a0,d1.l*4)
	addq.l	#1,d0
L1074
	cmp.l	d2,d0
	blt.b	L1073
L1075
;                     
	bra	L1097
L1076
;                     for (i=0;
	moveq	#0,d0
	bra	L1078
L1077
;                        dst[i*3+0] = FLOAT_T
	lea	-$1910(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41EFFFFF.FFE00000,fp0
	fmove.l	fp0,d1
	move.l	d1,d7
	move.l	d0,d1
	muls.l	#3,d1
	move.l	d7,0(a2,d1.l*4)
;                        dst[i*3+1] = FLOAT_T
	lea	-$3210(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41EFFFFF.FFE00000,fp0
	fmove.l	fp0,d1
	move.l	d1,d7
	move.l	d0,d1
	muls.l	#3,d1
	lea	4(a2),a0
	move.l	d7,0(a0,d1.l*4)
;                        dst[i*3+2] = FLOAT_T
	lea	-$4B10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41EFFFFF.FFE00000,fp0
	fmove.l	fp0,d1
	move.l	d1,d7
	move.l	d0,d1
	muls.l	#3,d1
	lea	$8(a2),a0
	move.l	d7,0(a0,d1.l*4)
	addq.l	#1,d0
L1078
	cmp.l	d2,d0
	blt	L1077
L1079
;                     
	bra	L1097
L1080
;                     for (i=0;
	moveq	#0,d0
	bra	L1082
L1081
;                        dst[i*4+0] = FLOAT_T
	lea	-$1910(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41EFFFFF.FFE00000,fp0
	fmove.l	fp0,d1
	move.l	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	move.l	d7,0(a2,d1.l*4)
;                        dst[i*4+1] = FLOAT_T
	lea	-$3210(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41EFFFFF.FFE00000,fp0
	fmove.l	fp0,d1
	move.l	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	4(a2),a0
	move.l	d7,0(a0,d1.l*4)
;                        dst[i*4+2] = FLOAT_T
	lea	-$4B10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41EFFFFF.FFE00000,fp0
	fmove.l	fp0,d1
	move.l	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	$8(a2),a0
	move.l	d7,0(a0,d1.l*4)
;                        dst[i*4+3] = FLOAT_T
	lea	-$6410(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41EFFFFF.FFE00000,fp0
	fmove.l	fp0,d1
	move.l	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	$C(a2),a0
	move.l	d7,0(a0,d1.l*4)
	addq.l	#1,d0
L1082
	cmp.l	d2,d0
	blt	L1081
L1083
;                     
	bra	L1097
L1084
;                     for (i=0;
	moveq	#0,d0
	bra	L1086
L1085
;                        dst[i*3+0] = FLOAT_T
	lea	-$4B10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41EFFFFF.FFE00000,fp0
	fmove.l	fp0,d1
	move.l	d1,d7
	move.l	d0,d1
	muls.l	#3,d1
	move.l	d7,0(a2,d1.l*4)
;                        dst[i*3+1] = FLOAT_T
	lea	-$3210(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41EFFFFF.FFE00000,fp0
	fmove.l	fp0,d1
	move.l	d1,d7
	move.l	d0,d1
	muls.l	#3,d1
	lea	4(a2),a0
	move.l	d7,0(a0,d1.l*4)
;                        dst[i*3+2] = FLOAT_T
	lea	-$1910(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41EFFFFF.FFE00000,fp0
	fmove.l	fp0,d1
	move.l	d1,d7
	move.l	d0,d1
	muls.l	#3,d1
	lea	$8(a2),a0
	move.l	d7,0(a0,d1.l*4)
	addq.l	#1,d0
L1086
	cmp.l	d2,d0
	blt	L1085
L1087
;                     
	bra	L1097
L1088
;                     for (i=0;
	moveq	#0,d0
	bra	L1090
L1089
;                        dst[i*4+0] = FLOAT_T
	lea	-$4B10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41EFFFFF.FFE00000,fp0
	fmove.l	fp0,d1
	move.l	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	move.l	d7,0(a2,d1.l*4)
;                        dst[i*4+1] = FLOAT_T
	lea	-$3210(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41EFFFFF.FFE00000,fp0
	fmove.l	fp0,d1
	move.l	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	4(a2),a0
	move.l	d7,0(a0,d1.l*4)
;                        dst[i*4+2] = FLOAT_T
	lea	-$1910(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41EFFFFF.FFE00000,fp0
	fmove.l	fp0,d1
	move.l	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	$8(a2),a0
	move.l	d7,0(a0,d1.l*4)
;                        dst[i*4+3] = FLOAT_T
	lea	-$6410(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41EFFFFF.FFE00000,fp0
	fmove.l	fp0,d1
	move.l	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	$C(a2),a0
	move.l	d7,0(a0,d1.l*4)
	addq.l	#1,d0
L1090
	cmp.l	d2,d0
	blt	L1089
L1091
;                     
	bra	L1097
L1092
;                     for (i=0;
	moveq	#0,d0
	bra	L1094
L1093
;                        dst[i*4+0] = FLOAT_T
	lea	-$6410(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41EFFFFF.FFE00000,fp0
	fmove.l	fp0,d1
	move.l	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	move.l	d7,0(a2,d1.l*4)
;                        dst[i*4+1] = FLOAT_T
	lea	-$4B10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41EFFFFF.FFE00000,fp0
	fmove.l	fp0,d1
	move.l	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	4(a2),a0
	move.l	d7,0(a0,d1.l*4)
;                        dst[i*4+2] = FLOAT_T
	lea	-$3210(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41EFFFFF.FFE00000,fp0
	fmove.l	fp0,d1
	move.l	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	$8(a2),a0
	move.l	d7,0(a0,d1.l*4)
;                        dst[i*4+3] = FLOAT_T
	lea	-$1910(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41EFFFFF.FFE00000,fp0
	fmove.l	fp0,d1
	move.l	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	$C(a2),a0
	move.l	d7,0(a0,d1.l*4)
	addq.l	#1,d0
L1094
	cmp.l	d2,d0
	blt	L1093
L1095
;                     
	bra.b	L1097
L1096
;                     gl_problem(ctx, "bad forma
	move.l	#L830,-(a7)
	move.l	a3,-(a7)
	jsr	_gl_problem
	addq.w	#$8,a7
L1097
;               if (ctx->Pack.SwapBytes) 
	move.l	a3,a0
	add.l	#$E644,a0
	tst.b	$18(a0)
	beq.b	L1099
L1098
;                  gl_swap4( (GLuint *) dst, width*
	move.l	d2,d0
	muls.l	-$10(a5),d0
	move.l	d0,-(a7)
	move.l	a2,-(a7)
	jsr	_gl_swap4
	addq.w	#$8,a7
L1099
;	    
	bra	L1299
L1100
;               GLint *dst = (GLint *) gl_pixel_addr_i
	clr.l	-(a7)
	move.l	d4,-(a7)
	clr.l	-(a7)
	move.l	d5,-(a7)
	move.l	d3,-(a7)
	move.l	$18(a5),-(a7)
	move.l	d2,-(a7)
	move.l	a4,-(a7)
	move.l	a3,a0
	add.l	#$E644,a0
	pea	(a0)
	jsr	_gl_pixel_addr_in_image
	add.w	#$24,a7
	move.l	d0,a2
;               switch (format)
	move.l	d3,d0
	cmp.l	#$1908,d0
	beq	L1129
	bgt.b	L1325
	cmp.l	#$1905,d0
	beq	L1109
	bgt.b	L1326
	cmp.l	#$1903,d0
	beq	L1101
	cmp.l	#$1904,d0
	beq	L1105
	bra	L1145
L1326
	cmp.l	#$1906,d0
	beq	L1113
	cmp.l	#$1907,d0
	beq	L1125
	bra	L1145
L1325
	cmp.l	#$8000,d0
	beq	L1141
	bgt.b	L1327
	cmp.l	#$1909,d0
	beq	L1117
	cmp.l	#$190A,d0
	beq	L1121
	bra	L1145
L1327
	cmp.l	#$80E0,d0
	beq	L1133
	cmp.l	#$80E1,d0
	beq	L1137
	bra	L1145
;                  
L1101
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1103
L1102
;                        dst[i] = FLOAT_TO_IN
	lea	-$1910(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41DFFFFF.FFC00000,fp0
	fmove.l	fp0,d1
	move.l	d1,0(a2,d0.l*4)
	addq.l	#1,d0
L1103
	cmp.l	d2,d0
	blt.b	L1102
L1104
;                     
	bra	L1146
L1105
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1107
L1106
;                        dst[i] = FLOAT_TO_IN
	lea	-$3210(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41DFFFFF.FFC00000,fp0
	fmove.l	fp0,d1
	move.l	d1,0(a2,d0.l*4)
	addq.l	#1,d0
L1107
	cmp.l	d2,d0
	blt.b	L1106
L1108
;                     
	bra	L1146
L1109
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1111
L1110
;                        dst[i] = FLOAT_TO_IN
	lea	-$4B10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41DFFFFF.FFC00000,fp0
	fmove.l	fp0,d1
	move.l	d1,0(a2,d0.l*4)
	addq.l	#1,d0
L1111
	cmp.l	d2,d0
	blt.b	L1110
L1112
;                     
	bra	L1146
L1113
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1115
L1114
;                        dst[i] = FLOAT_TO_IN
	lea	-$6410(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41DFFFFF.FFC00000,fp0
	fmove.l	fp0,d1
	move.l	d1,0(a2,d0.l*4)
	addq.l	#1,d0
L1115
	cmp.l	d2,d0
	blt.b	L1114
L1116
;                     
	bra	L1146
L1117
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1119
L1118
;                        dst[i] = FLOAT_TO_IN
	lea	-$7D10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41DFFFFF.FFC00000,fp0
	fmove.l	fp0,d1
	move.l	d1,0(a2,d0.l*4)
	addq.l	#1,d0
L1119
	cmp.l	d2,d0
	blt.b	L1118
L1120
;                     
	bra	L1146
L1121
;                     for (i=0;
	moveq	#0,d0
	bra	L1123
L1122
;                        dst[i*2+0] = FLOAT_T
	lea	-$7D10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41DFFFFF.FFC00000,fp0
	fmove.l	fp0,d1
	move.l	d1,d7
	move.l	d0,d1
	moveq	#1,d6
	asl.l	d6,d1
	move.l	d7,0(a2,d1.l*4)
;                        dst[i*2+1] = FLOAT_T
	lea	-$6410(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41DFFFFF.FFC00000,fp0
	fmove.l	fp0,d1
	move.l	d1,d7
	move.l	d0,d1
	moveq	#1,d6
	asl.l	d6,d1
	lea	4(a2),a0
	move.l	d7,0(a0,d1.l*4)
	addq.l	#1,d0
L1123
	cmp.l	d2,d0
	blt.b	L1122
L1124
;                     
	bra	L1146
L1125
;                     for (i=0;
	moveq	#0,d0
	bra	L1127
L1126
;                        dst[i*3+0] = FLOAT_T
	lea	-$1910(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41DFFFFF.FFC00000,fp0
	fmove.l	fp0,d1
	move.l	d1,d7
	move.l	d0,d1
	muls.l	#3,d1
	move.l	d7,0(a2,d1.l*4)
;                        dst[i*3+1] = FLOAT_T
	lea	-$3210(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41DFFFFF.FFC00000,fp0
	fmove.l	fp0,d1
	move.l	d1,d7
	move.l	d0,d1
	muls.l	#3,d1
	lea	4(a2),a0
	move.l	d7,0(a0,d1.l*4)
;                        dst[i*3+2] = FLOAT_T
	lea	-$4B10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41DFFFFF.FFC00000,fp0
	fmove.l	fp0,d1
	move.l	d1,d7
	move.l	d0,d1
	muls.l	#3,d1
	lea	$8(a2),a0
	move.l	d7,0(a0,d1.l*4)
	addq.l	#1,d0
L1127
	cmp.l	d2,d0
	blt	L1126
L1128
;                     
	bra	L1146
L1129
;                     for (i=0;
	moveq	#0,d0
	bra	L1131
L1130
;                        dst[i*4+0] = FLOAT_T
	lea	-$1910(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41DFFFFF.FFC00000,fp0
	fmove.l	fp0,d1
	move.l	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	move.l	d7,0(a2,d1.l*4)
;                        dst[i*4+1] = FLOAT_T
	lea	-$3210(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41DFFFFF.FFC00000,fp0
	fmove.l	fp0,d1
	move.l	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	4(a2),a0
	move.l	d7,0(a0,d1.l*4)
;                        dst[i*4+2] = FLOAT_T
	lea	-$4B10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41DFFFFF.FFC00000,fp0
	fmove.l	fp0,d1
	move.l	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	$8(a2),a0
	move.l	d7,0(a0,d1.l*4)
;                        dst[i*4+3] = FLOAT_T
	lea	-$6410(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41DFFFFF.FFC00000,fp0
	fmove.l	fp0,d1
	move.l	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	$C(a2),a0
	move.l	d7,0(a0,d1.l*4)
	addq.l	#1,d0
L1131
	cmp.l	d2,d0
	blt	L1130
L1132
;                     
	bra	L1146
L1133
;                     for (i=0;
	moveq	#0,d0
	bra	L1135
L1134
;                        dst[i*3+0] = FLOAT_T
	lea	-$4B10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41DFFFFF.FFC00000,fp0
	fmove.l	fp0,d1
	move.l	d1,d7
	move.l	d0,d1
	muls.l	#3,d1
	move.l	d7,0(a2,d1.l*4)
;                        dst[i*3+1] = FLOAT_T
	lea	-$3210(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41DFFFFF.FFC00000,fp0
	fmove.l	fp0,d1
	move.l	d1,d7
	move.l	d0,d1
	muls.l	#3,d1
	lea	4(a2),a0
	move.l	d7,0(a0,d1.l*4)
;                        dst[i*3+2] = FLOAT_T
	lea	-$1910(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41DFFFFF.FFC00000,fp0
	fmove.l	fp0,d1
	move.l	d1,d7
	move.l	d0,d1
	muls.l	#3,d1
	lea	$8(a2),a0
	move.l	d7,0(a0,d1.l*4)
	addq.l	#1,d0
L1135
	cmp.l	d2,d0
	blt	L1134
L1136
;                     
	bra	L1146
L1137
;                     for (i=0;
	moveq	#0,d0
	bra	L1139
L1138
;                        dst[i*4+0] = FLOAT_T
	lea	-$4B10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41DFFFFF.FFC00000,fp0
	fmove.l	fp0,d1
	move.l	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	move.l	d7,0(a2,d1.l*4)
;                        dst[i*4+1] = FLOAT_T
	lea	-$3210(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41DFFFFF.FFC00000,fp0
	fmove.l	fp0,d1
	move.l	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	4(a2),a0
	move.l	d7,0(a0,d1.l*4)
;                        dst[i*4+2] = FLOAT_T
	lea	-$1910(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41DFFFFF.FFC00000,fp0
	fmove.l	fp0,d1
	move.l	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	$8(a2),a0
	move.l	d7,0(a0,d1.l*4)
;                        dst[i*4+3] = FLOAT_T
	lea	-$6410(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41DFFFFF.FFC00000,fp0
	fmove.l	fp0,d1
	move.l	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	$C(a2),a0
	move.l	d7,0(a0,d1.l*4)
	addq.l	#1,d0
L1139
	cmp.l	d2,d0
	blt	L1138
L1140
;                     
	bra	L1146
L1141
;                     for (i=0;
	moveq	#0,d0
	bra	L1143
L1142
;                        dst[i*4+0] = FLOAT_T
	lea	-$6410(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41DFFFFF.FFC00000,fp0
	fmove.l	fp0,d1
	move.l	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	move.l	d7,0(a2,d1.l*4)
;                        dst[i*4+1] = FLOAT_T
	lea	-$4B10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41DFFFFF.FFC00000,fp0
	fmove.l	fp0,d1
	move.l	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	4(a2),a0
	move.l	d7,0(a0,d1.l*4)
;                        dst[i*4+2] = FLOAT_T
	lea	-$3210(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41DFFFFF.FFC00000,fp0
	fmove.l	fp0,d1
	move.l	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	$8(a2),a0
	move.l	d7,0(a0,d1.l*4)
;                        dst[i*4+3] = FLOAT_T
	lea	-$1910(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41DFFFFF.FFC00000,fp0
	fmove.l	fp0,d1
	move.l	d1,d7
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	$C(a2),a0
	move.l	d7,0(a0,d1.l*4)
	addq.l	#1,d0
L1143
	cmp.l	d2,d0
	blt	L1142
L1144
;                     
	bra.b	L1146
L1145
;                     gl_problem(ctx, "bad forma
	move.l	#L830,-(a7)
	move.l	a3,-(a7)
	jsr	_gl_problem
	addq.w	#$8,a7
L1146
;	       if (ctx->Pack.SwapBytes) 
	move.l	a3,a0
	add.l	#$E644,a0
	tst.b	$18(a0)
	beq.b	L1148
L1147
;		  gl_swap4( (GLuint *) dst, width*n );
	move.l	d2,d0
	muls.l	-$10(a5),d0
	move.l	d0,-(a7)
	move.l	a2,-(a7)
	jsr	_gl_swap4
	addq.w	#$8,a7
L1148
;	    
	bra	L1299
L1149
;                        dst[i*4+1] = blue[i];
	clr.l	-(a7)
	move.l	d4,-(a7)
	clr.l	-(a7)
	move.l	d5,-(a7)
	move.l	d3,-(a7)
	move.l	$18(a5),-(a7)
	move.l	d2,-(a7)
	move.l	a4,-(a7)
	move.l	a3,a0
	add.l	#$E644,a0
	pea	(a0)
	jsr	_gl_pixel_addr_in_image
	add.w	#$24,a7
	move.l	d0,a2
;               switch (format)
	move.l	d3,d0
	cmp.l	#$1908,d0
	beq	L1178
	bgt.b	L1328
	cmp.l	#$1905,d0
	beq	L1158
	bgt.b	L1329
	cmp.l	#$1903,d0
	beq	L1150
	cmp.l	#$1904,d0
	beq	L1154
	bra	L1194
L1329
	cmp.l	#$1906,d0
	beq	L1162
	cmp.l	#$1907,d0
	beq	L1174
	bra	L1194
L1328
	cmp.l	#$8000,d0
	beq	L1190
	bgt.b	L1330
	cmp.l	#$1909,d0
	beq	L1166
	cmp.l	#$190A,d0
	beq	L1170
	bra	L1194
L1330
	cmp.l	#$80E0,d0
	beq	L1182
	cmp.l	#$80E1,d0
	beq	L1186
	bra	L1194
;                  
L1150
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1152
L1151
;                        dst[i] = red[i];
	lea	-$1910(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmove.s	fp0,0(a2,d0.l*4)
	addq.l	#1,d0
L1152
	cmp.l	d2,d0
	blt.b	L1151
L1153
;                     
	bra	L1195
L1154
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1156
L1155
;                        dst[i] = green[i];
	lea	-$3210(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmove.s	fp0,0(a2,d0.l*4)
	addq.l	#1,d0
L1156
	cmp.l	d2,d0
	blt.b	L1155
L1157
;                     
	bra	L1195
L1158
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1160
L1159
;                        dst[i] = blue[i];
	lea	-$4B10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmove.s	fp0,0(a2,d0.l*4)
	addq.l	#1,d0
L1160
	cmp.l	d2,d0
	blt.b	L1159
L1161
;                     
	bra	L1195
L1162
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1164
L1163
;                        dst[i] = alpha[i];
	lea	-$6410(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmove.s	fp0,0(a2,d0.l*4)
	addq.l	#1,d0
L1164
	cmp.l	d2,d0
	blt.b	L1163
L1165
;                     
	bra	L1195
L1166
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1168
L1167
;                        dst[i] = luminance[i
	lea	-$7D10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmove.s	fp0,0(a2,d0.l*4)
	addq.l	#1,d0
L1168
	cmp.l	d2,d0
	blt.b	L1167
L1169
;                     
	bra	L1195
L1170
;                     for (i=0;
	moveq	#0,d0
	bra	L1172
L1171
;                        dst[i*2+0] = luminan
	lea	-$7D10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	move.l	d0,d1
	moveq	#1,d6
	asl.l	d6,d1
	fmove.s	fp0,0(a2,d1.l*4)
;                        dst[i*2+1] = alpha[i
	lea	-$6410(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	move.l	d0,d1
	moveq	#1,d6
	asl.l	d6,d1
	lea	4(a2),a0
	fmove.s	fp0,0(a0,d1.l*4)
	addq.l	#1,d0
L1172
	cmp.l	d2,d0
	blt.b	L1171
L1173
;                     
	bra	L1195
L1174
;                     for (i=0;
	moveq	#0,d0
	bra	L1176
L1175
;                        dst[i*3+0] = red[i];
	lea	-$1910(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	move.l	d0,d1
	muls.l	#3,d1
	fmove.s	fp0,0(a2,d1.l*4)
;                        dst[i*3+1] = green[i
	lea	-$3210(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	move.l	d0,d1
	muls.l	#3,d1
	lea	4(a2),a0
	fmove.s	fp0,0(a0,d1.l*4)
;                        dst[i*3+2] = blue[i];
	lea	-$4B10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	move.l	d0,d1
	muls.l	#3,d1
	lea	$8(a2),a0
	fmove.s	fp0,0(a0,d1.l*4)
	addq.l	#1,d0
L1176
	cmp.l	d2,d0
	blt.b	L1175
L1177
;                     
	bra	L1195
L1178
;                     for (i=0;
	moveq	#0,d0
	bra	L1180
L1179
;                        dst[i*4+0] = red[i];
	lea	-$1910(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	fmove.s	fp0,0(a2,d1.l*4)
;                        dst[i*4+1] = green[i
	lea	-$3210(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	4(a2),a0
	fmove.s	fp0,0(a0,d1.l*4)
;                        dst[i*4+2] = blue[i];
	lea	-$4B10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	$8(a2),a0
	fmove.s	fp0,0(a0,d1.l*4)
;                        dst[i*4+3] = alpha[i
	lea	-$6410(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	$C(a2),a0
	fmove.s	fp0,0(a0,d1.l*4)
	addq.l	#1,d0
L1180
	cmp.l	d2,d0
	blt.b	L1179
L1181
;                     
	bra	L1195
L1182
;                     for (i=0;
	moveq	#0,d0
	bra	L1184
L1183
;                        dst[i*3+0] = blue[i];
	lea	-$4B10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	move.l	d0,d1
	muls.l	#3,d1
	fmove.s	fp0,0(a2,d1.l*4)
;                        dst[i*3+1] = green[i
	lea	-$3210(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	move.l	d0,d1
	muls.l	#3,d1
	lea	4(a2),a0
	fmove.s	fp0,0(a0,d1.l*4)
;                        dst[i*3+2] = red[i];
	lea	-$1910(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	move.l	d0,d1
	muls.l	#3,d1
	lea	$8(a2),a0
	fmove.s	fp0,0(a0,d1.l*4)
	addq.l	#1,d0
L1184
	cmp.l	d2,d0
	blt.b	L1183
L1185
;                     
	bra	L1195
L1186
;                     for (i=0;
	moveq	#0,d0
	bra	L1188
L1187
;                        dst[i*4+0] = blue[i];
	lea	-$4B10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	fmove.s	fp0,0(a2,d1.l*4)
;                        dst[i*4+1] = green[i
	lea	-$3210(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	4(a2),a0
	fmove.s	fp0,0(a0,d1.l*4)
;                        dst[i*4+2] = red[i];
	lea	-$1910(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	$8(a2),a0
	fmove.s	fp0,0(a0,d1.l*4)
;                        dst[i*4+3] = alpha[i
	lea	-$6410(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	$C(a2),a0
	fmove.s	fp0,0(a0,d1.l*4)
	addq.l	#1,d0
L1188
	cmp.l	d2,d0
	blt.b	L1187
L1189
;                     
	bra	L1195
L1190
;                     for (i=0;
	moveq	#0,d0
	bra	L1192
L1191
;                        dst[i*4+0] = alpha[i
	lea	-$6410(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	fmove.s	fp0,0(a2,d1.l*4)
;                        dst[i*4+1] = blue[i];
	lea	-$4B10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	4(a2),a0
	fmove.s	fp0,0(a0,d1.l*4)
;                        dst[i*4+2] = green[i
	lea	-$3210(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	$8(a2),a0
	fmove.s	fp0,0(a0,d1.l*4)
;                        dst[i*4+3] = red[i];
	lea	-$1910(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	move.l	d0,d1
	moveq	#2,d6
	asl.l	d6,d1
	lea	$C(a2),a0
	fmove.s	fp0,0(a0,d1.l*4)
	addq.l	#1,d0
L1192
	cmp.l	d2,d0
	blt.b	L1191
L1193
;                     
	bra.b	L1195
L1194
;                     gl_problem(ctx, "bad forma
	move.l	#L830,-(a7)
	move.l	a3,-(a7)
	jsr	_gl_problem
	addq.w	#$8,a7
L1195
;	       if (ctx->Pack.SwapBytes) 
	move.l	a3,a0
	add.l	#$E644,a0
	tst.b	$18(a0)
	beq.b	L1197
L1196
;		  gl_swap4( (GLuint *) dst, width*n );
	move.l	d2,d0
	muls.l	-$10(a5),d0
	move.l	d0,-(a7)
	move.l	a2,-(a7)
	jsr	_gl_swap4
	addq.w	#$8,a7
L1197
;	    
	bra	L1299
L1198
;            if (format == GL_RGB) 
	cmp.l	#$1907,d3
	bne	L1202
L1199
;               GLubyte *dst = (GLubyte *) gl_pixel_ad
	clr.l	-(a7)
	move.l	d4,-(a7)
	clr.l	-(a7)
	move.l	d5,-(a7)
	move.l	d3,-(a7)
	move.l	$18(a5),-(a7)
	move.l	d2,-(a7)
	move.l	a4,-(a7)
	move.l	a3,a0
	add.l	#$E644,a0
	pea	(a0)
	jsr	_gl_pixel_addr_in_image
	add.w	#$24,a7
	move.l	d0,a1
;               for (i=0;
	moveq	#0,d0
	bra	L1201
L1200
;                  dst[i] = (((GLint) (red[i]   * 7
	lea	-$1910(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.40E00000,fp0
	fmove.l	fp0,d1
	moveq	#5,d6
	asl.l	d6,d1
	lea	-$3210(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.40E00000,fp0
	fmove.l	fp0,d6
	moveq	#2,d7
	asl.l	d7,d6
	or.l	d6,d1
	lea	-$4B10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.40400000,fp0
	fmove.l	fp0,d6
	or.l	d6,d1
	move.b	d1,0(a1,d0.l)
	addq.l	#1,d0
L1201
	cmp.l	d2,d0
	blt.b	L1200
L1202
;            
	bra	L1299
L1203
;            if (format == GL_RGB) 
	cmp.l	#$1907,d3
	bne	L1207
L1204
;               GLubyte *dst = (GLubyte *) gl_pixel_ad
	clr.l	-(a7)
	move.l	d4,-(a7)
	clr.l	-(a7)
	move.l	d5,-(a7)
	move.l	d3,-(a7)
	move.l	$18(a5),-(a7)
	move.l	d2,-(a7)
	move.l	a4,-(a7)
	move.l	a3,a0
	add.l	#$E644,a0
	pea	(a0)
	jsr	_gl_pixel_addr_in_image
	add.w	#$24,a7
	move.l	d0,a1
;               for (i=0;
	moveq	#0,d0
	bra	L1206
L1205
;                  dst[i] = (((GLint) (red[i]   * 7
	lea	-$1910(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.40E00000,fp0
	fmove.l	fp0,d1
	lea	-$3210(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.40E00000,fp0
	fmove.l	fp0,d6
	moveq	#3,d7
	asl.l	d7,d6
	or.l	d6,d1
	lea	-$4B10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.40400000,fp0
	fmove.l	fp0,d6
	moveq	#5,d7
	asl.l	d7,d6
	or.l	d6,d1
	move.b	d1,0(a1,d0.l)
	addq.l	#1,d0
L1206
	cmp.l	d2,d0
	blt.b	L1205
L1207
;            
	bra	L1299
L1208
;            if (format == GL_RGB) 
	cmp.l	#$1907,d3
	bne	L1212
L1209
;               GLushort *dst = (GLushort *) gl_pixel_
	clr.l	-(a7)
	move.l	d4,-(a7)
	clr.l	-(a7)
	move.l	d5,-(a7)
	move.l	d3,-(a7)
	move.l	$18(a5),-(a7)
	move.l	d2,-(a7)
	move.l	a4,-(a7)
	move.l	a3,a0
	add.l	#$E644,a0
	pea	(a0)
	jsr	_gl_pixel_addr_in_image
	add.w	#$24,a7
	move.l	d0,a1
;               for (i=0;
	moveq	#0,d0
	bra	L1211
L1210
;                  dst[i] = (((GLint) (red[i]   * 3
	lea	-$1910(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.41F80000,fp0
	fmove.l	fp0,d1
	moveq	#$B,d6
	asl.l	d6,d1
	lea	-$3210(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.427C0000,fp0
	fmove.l	fp0,d6
	moveq	#5,d7
	asl.l	d7,d6
	or.l	d6,d1
	lea	-$4B10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.41F80000,fp0
	fmove.l	fp0,d6
	or.l	d6,d1
	move.w	d1,0(a1,d0.l*2)
	addq.l	#1,d0
L1211
	cmp.l	d2,d0
	blt.b	L1210
L1212
;            
	bra	L1299
L1213
;            if (format == GL_RGB) 
	cmp.l	#$1907,d3
	bne	L1217
L1214
;               GLushort *dst = (GLushort *) gl_pixel_
	clr.l	-(a7)
	move.l	d4,-(a7)
	clr.l	-(a7)
	move.l	d5,-(a7)
	move.l	d3,-(a7)
	move.l	$18(a5),-(a7)
	move.l	d2,-(a7)
	move.l	a4,-(a7)
	move.l	a3,a0
	add.l	#$E644,a0
	pea	(a0)
	jsr	_gl_pixel_addr_in_image
	add.w	#$24,a7
	move.l	d0,a1
;               for (i=0;
	moveq	#0,d0
	bra	L1216
L1215
;                  dst[i] = (((GLint) (red[i]   * 3
	lea	-$1910(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.41F80000,fp0
	fmove.l	fp0,d1
	lea	-$3210(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.427C0000,fp0
	fmove.l	fp0,d6
	moveq	#5,d7
	asl.l	d7,d6
	or.l	d6,d1
	lea	-$4B10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.41F80000,fp0
	fmove.l	fp0,d6
	moveq	#$B,d7
	asl.l	d7,d6
	or.l	d6,d1
	move.w	d1,0(a1,d0.l*2)
	addq.l	#1,d0
L1216
	cmp.l	d2,d0
	blt.b	L1215
L1217
;            
	bra	L1299
L1218
;            if (format == GL_RGB) 
	cmp.l	#$1907,d3
	bne	L1222
L1219
;               GLushort *dst = (GLushort *) gl_pixel_
	clr.l	-(a7)
	move.l	d4,-(a7)
	clr.l	-(a7)
	move.l	d5,-(a7)
	move.l	d3,-(a7)
	move.l	$18(a5),-(a7)
	move.l	d2,-(a7)
	move.l	a4,-(a7)
	move.l	a3,a0
	add.l	#$E644,a0
	pea	(a0)
	jsr	_gl_pixel_addr_in_image
	add.w	#$24,a7
	move.l	d0,a1
;               for (i=0;
	moveq	#0,d0
	bra	L1221
L1220
;                  dst[i] = (((GLint) (red[i]   * 1
	lea	-$1910(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.41700000,fp0
	fmove.l	fp0,d1
	moveq	#$C,d6
	asl.l	d6,d1
	lea	-$3210(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.41700000,fp0
	fmove.l	fp0,d6
	moveq	#$8,d7
	asl.l	d7,d6
	or.l	d6,d1
	lea	-$4B10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.41700000,fp0
	fmove.l	fp0,d6
	moveq	#4,d7
	asl.l	d7,d6
	or.l	d6,d1
	lea	-$6410(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.41700000,fp0
	fmove.l	fp0,d6
	or.l	d6,d1
	move.w	d1,0(a1,d0.l*2)
	addq.l	#1,d0
L1221
	cmp.l	d2,d0
	blt.b	L1220
L1222
;            
	bra	L1299
L1223
;            if (format == GL_RGB) 
	cmp.l	#$1907,d3
	bne	L1227
L1224
;               GLushort *dst = (GLushort *) gl_pixel_
	clr.l	-(a7)
	move.l	d4,-(a7)
	clr.l	-(a7)
	move.l	d5,-(a7)
	move.l	d3,-(a7)
	move.l	$18(a5),-(a7)
	move.l	d2,-(a7)
	move.l	a4,-(a7)
	move.l	a3,a0
	add.l	#$E644,a0
	pea	(a0)
	jsr	_gl_pixel_addr_in_image
	add.w	#$24,a7
	move.l	d0,a1
;               for (i=0;
	moveq	#0,d0
	bra	L1226
L1225
;                  dst[i] = (((GLint) (red[i]   * 1
	lea	-$1910(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.41700000,fp0
	fmove.l	fp0,d1
	lea	-$3210(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.41700000,fp0
	fmove.l	fp0,d6
	moveq	#4,d7
	asl.l	d7,d6
	or.l	d6,d1
	lea	-$4B10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.41700000,fp0
	fmove.l	fp0,d6
	moveq	#$8,d7
	asl.l	d7,d6
	or.l	d6,d1
	lea	-$6410(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.41700000,fp0
	fmove.l	fp0,d6
	moveq	#$C,d7
	asl.l	d7,d6
	or.l	d6,d1
	move.w	d1,0(a1,d0.l*2)
	addq.l	#1,d0
L1226
	cmp.l	d2,d0
	blt.b	L1225
L1227
;            
	bra	L1299
L1228
;            if (format == GL_RGB) 
	cmp.l	#$1907,d3
	bne	L1232
L1229
;               GLushort *dst = (GLushort *) gl_pixel_
	clr.l	-(a7)
	move.l	d4,-(a7)
	clr.l	-(a7)
	move.l	d5,-(a7)
	move.l	d3,-(a7)
	move.l	$18(a5),-(a7)
	move.l	d2,-(a7)
	move.l	a4,-(a7)
	move.l	a3,a0
	add.l	#$E644,a0
	pea	(a0)
	jsr	_gl_pixel_addr_in_image
	add.w	#$24,a7
	move.l	d0,a1
;               for (i=0;
	moveq	#0,d0
	bra	L1231
L1230
;                  dst[i] = (((GLint) (red[i]   * 3
	lea	-$1910(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.41F80000,fp0
	fmove.l	fp0,d1
	moveq	#$B,d6
	asl.l	d6,d1
	lea	-$3210(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.41F80000,fp0
	fmove.l	fp0,d6
	moveq	#6,d7
	asl.l	d7,d6
	or.l	d6,d1
	lea	-$4B10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.41F80000,fp0
	fmove.l	fp0,d6
	moveq	#1,d7
	asl.l	d7,d6
	or.l	d6,d1
	lea	-$6410(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.3F800000,fp0
	fmove.l	fp0,d6
	or.l	d6,d1
	move.w	d1,0(a1,d0.l*2)
	addq.l	#1,d0
L1231
	cmp.l	d2,d0
	blt.b	L1230
L1232
;            
	bra	L1299
L1233
;            if (format == GL_RGB) 
	cmp.l	#$1907,d3
	bne	L1237
L1234
;               GLushort *dst = (GLushort *) gl_pixel_
	clr.l	-(a7)
	move.l	d4,-(a7)
	clr.l	-(a7)
	move.l	d5,-(a7)
	move.l	d3,-(a7)
	move.l	$18(a5),-(a7)
	move.l	d2,-(a7)
	move.l	a4,-(a7)
	move.l	a3,a0
	add.l	#$E644,a0
	pea	(a0)
	jsr	_gl_pixel_addr_in_image
	add.w	#$24,a7
	move.l	d0,a1
;               for (i=0;
	moveq	#0,d0
	bra	L1236
L1235
;                  dst[i] = (((GLint) (red[i]   * 3
	lea	-$1910(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.41F80000,fp0
	fmove.l	fp0,d1
	lea	-$3210(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.41F80000,fp0
	fmove.l	fp0,d6
	moveq	#5,d7
	asl.l	d7,d6
	or.l	d6,d1
	lea	-$4B10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.41F80000,fp0
	fmove.l	fp0,d6
	moveq	#$A,d7
	asl.l	d7,d6
	or.l	d6,d1
	lea	-$6410(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.3F800000,fp0
	fmove.l	fp0,d6
	moveq	#$F,d7
	asl.l	d7,d6
	or.l	d6,d1
	move.w	d1,0(a1,d0.l*2)
	addq.l	#1,d0
L1236
	cmp.l	d2,d0
	blt.b	L1235
L1237
;            
	bra	L1299
L1238
;            if (format == GL_RGBA) 
	cmp.l	#$1908,d3
	bne	L1243
L1239
;               GLuint *dst = (GLuint *) gl_pixel_addr
	clr.l	-(a7)
	move.l	d4,-(a7)
	clr.l	-(a7)
	move.l	d5,-(a7)
	move.l	d3,-(a7)
	move.l	$18(a5),-(a7)
	move.l	d2,-(a7)
	move.l	a4,-(a7)
	move.l	a3,a0
	add.l	#$E644,a0
	pea	(a0)
	jsr	_gl_pixel_addr_in_image
	add.w	#$24,a7
	move.l	d0,a1
;               for (i=0;
	moveq	#0,d0
	bra	L1241
L1240
;                  dst[i] = (((GLint) (red[i]   * 2
	lea	-$1910(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	moveq	#$18,d6
	asl.l	d6,d1
	lea	-$3210(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d6
	moveq	#$10,d7
	asl.l	d7,d6
	or.l	d6,d1
	lea	-$4B10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d6
	moveq	#$8,d7
	asl.l	d7,d6
	or.l	d6,d1
	lea	-$6410(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d6
	or.l	d6,d1
	move.l	d1,0(a1,d0.l*4)
	addq.l	#1,d0
L1241
	cmp.l	d2,d0
	blt.b	L1240
L1242
	bra	L1252
L1243
;            else if (format == GL_BGRA) 
	cmp.l	#$80E1,d3
	bne	L1248
L1244
;               GLushort *dst = (GLushort *) gl_pixel_
	clr.l	-(a7)
	move.l	d4,-(a7)
	clr.l	-(a7)
	move.l	d5,-(a7)
	move.l	d3,-(a7)
	move.l	$18(a5),-(a7)
	move.l	d2,-(a7)
	move.l	a4,-(a7)
	move.l	a3,a0
	add.l	#$E644,a0
	pea	(a0)
	jsr	_gl_pixel_addr_in_image
	add.w	#$24,a7
	move.l	d0,a1
;               for (i=0;
	moveq	#0,d0
	bra	L1246
L1245
;                  dst[i] = (((GLint) (blue[i]  * 2
	lea	-$4B10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	moveq	#$18,d6
	asl.l	d6,d1
	lea	-$3210(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d6
	moveq	#$10,d7
	asl.l	d7,d6
	or.l	d6,d1
	lea	-$1910(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d6
	moveq	#$8,d7
	asl.l	d7,d6
	or.l	d6,d1
	lea	-$6410(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d6
	or.l	d6,d1
	move.w	d1,0(a1,d0.l*2)
	addq.l	#1,d0
L1246
	cmp.l	d2,d0
	blt.b	L1245
L1247
	bra	L1252
L1248
;            else if (format == GL_ABGR_EXT) 
	cmp.l	#$8000,d3
	bne	L1252
L1249
;               GLushort *dst = (GLushort *) gl_pixel_
	clr.l	-(a7)
	move.l	d4,-(a7)
	clr.l	-(a7)
	move.l	d5,-(a7)
	move.l	d3,-(a7)
	move.l	$18(a5),-(a7)
	move.l	d2,-(a7)
	move.l	a4,-(a7)
	move.l	a3,a0
	add.l	#$E644,a0
	pea	(a0)
	jsr	_gl_pixel_addr_in_image
	add.w	#$24,a7
	move.l	d0,a1
;               for (i=0;
	moveq	#0,d0
	bra	L1251
L1250
;                  dst[i] = (((GLint) (alpha[i] * 2
	lea	-$6410(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	moveq	#$18,d6
	asl.l	d6,d1
	lea	-$4B10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d6
	moveq	#$10,d7
	asl.l	d7,d6
	or.l	d6,d1
	lea	-$3210(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d6
	moveq	#$8,d7
	asl.l	d7,d6
	or.l	d6,d1
	lea	-$1910(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d6
	or.l	d6,d1
	move.w	d1,0(a1,d0.l*2)
	addq.l	#1,d0
L1251
	cmp.l	d2,d0
	blt.b	L1250
L1252
;            
	bra	L1299
L1253
;            if (format == GL_RGBA) 
	cmp.l	#$1908,d3
	bne	L1258
L1254
;               GLuint *dst = (GLuint *) gl_pixel_addr
	clr.l	-(a7)
	move.l	d4,-(a7)
	clr.l	-(a7)
	move.l	d5,-(a7)
	move.l	d3,-(a7)
	move.l	$18(a5),-(a7)
	move.l	d2,-(a7)
	move.l	a4,-(a7)
	move.l	a3,a0
	add.l	#$E644,a0
	pea	(a0)
	jsr	_gl_pixel_addr_in_image
	add.w	#$24,a7
	move.l	d0,a1
;               for (i=0;
	moveq	#0,d0
	bra	L1256
L1255
;                  dst[i] = (((GLint) (red[i]   * 2
	lea	-$1910(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	lea	-$3210(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d6
	moveq	#$8,d7
	asl.l	d7,d6
	or.l	d6,d1
	lea	-$4B10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d6
	moveq	#$10,d7
	asl.l	d7,d6
	or.l	d6,d1
	lea	-$6410(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d6
	moveq	#$18,d7
	asl.l	d7,d6
	or.l	d6,d1
	move.l	d1,0(a1,d0.l*4)
	addq.l	#1,d0
L1256
	cmp.l	d2,d0
	blt.b	L1255
L1257
	bra	L1267
L1258
;            else if (format == GL_BGRA) 
	cmp.l	#$80E1,d3
	bne	L1263
L1259
;               GLushort *dst = (GLushort *) gl_pixel_
	clr.l	-(a7)
	move.l	d4,-(a7)
	clr.l	-(a7)
	move.l	d5,-(a7)
	move.l	d3,-(a7)
	move.l	$18(a5),-(a7)
	move.l	d2,-(a7)
	move.l	a4,-(a7)
	move.l	a3,a0
	add.l	#$E644,a0
	pea	(a0)
	jsr	_gl_pixel_addr_in_image
	add.w	#$24,a7
	move.l	d0,a1
;               for (i=0;
	moveq	#0,d0
	bra	L1261
L1260
;                  dst[i] = (((GLint) (blue[i]  * 2
	lea	-$4B10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	lea	-$3210(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d6
	moveq	#$8,d7
	asl.l	d7,d6
	or.l	d6,d1
	lea	-$1910(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d6
	moveq	#$10,d7
	asl.l	d7,d6
	or.l	d6,d1
	lea	-$6410(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d6
	moveq	#$18,d7
	asl.l	d7,d6
	or.l	d6,d1
	move.w	d1,0(a1,d0.l*2)
	addq.l	#1,d0
L1261
	cmp.l	d2,d0
	blt.b	L1260
L1262
	bra	L1267
L1263
;            else if (format == GL_ABGR_EXT) 
	cmp.l	#$8000,d3
	bne	L1267
L1264
;               GLushort *dst = (GLushort *) gl_pixel_
	clr.l	-(a7)
	move.l	d4,-(a7)
	clr.l	-(a7)
	move.l	d5,-(a7)
	move.l	d3,-(a7)
	move.l	$18(a5),-(a7)
	move.l	d2,-(a7)
	move.l	a4,-(a7)
	move.l	a3,a0
	add.l	#$E644,a0
	pea	(a0)
	jsr	_gl_pixel_addr_in_image
	add.w	#$24,a7
	move.l	d0,a1
;               for (i=0;
	moveq	#0,d0
	bra	L1266
L1265
;                  dst[i] = (((GLint) (alpha[i] * 2
	lea	-$6410(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	lea	-$4B10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d6
	moveq	#$8,d7
	asl.l	d7,d6
	or.l	d6,d1
	lea	-$3210(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d6
	moveq	#$10,d7
	asl.l	d7,d6
	or.l	d6,d1
	lea	-$1910(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d6
	moveq	#$18,d7
	asl.l	d7,d6
	or.l	d6,d1
	move.w	d1,0(a1,d0.l*2)
	addq.l	#1,d0
L1266
	cmp.l	d2,d0
	blt.b	L1265
L1267
;            
	bra	L1299
L1268
;            if (format == GL_RGBA) 
	cmp.l	#$1908,d3
	bne	L1273
L1269
;               GLuint *dst = (GLuint *) gl_pixel_addr
	clr.l	-(a7)
	move.l	d4,-(a7)
	clr.l	-(a7)
	move.l	d5,-(a7)
	move.l	d3,-(a7)
	move.l	$18(a5),-(a7)
	move.l	d2,-(a7)
	move.l	a4,-(a7)
	move.l	a3,a0
	add.l	#$E644,a0
	pea	(a0)
	jsr	_gl_pixel_addr_in_image
	add.w	#$24,a7
	move.l	d0,a1
;               for (i=0;
	moveq	#0,d0
	bra	L1271
L1270
;                  dst[i] = (((GLint) (red[i]   * 1
	lea	-$1910(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.447FC000,fp0
	fmove.l	fp0,d1
	moveq	#$16,d6
	asl.l	d6,d1
	lea	-$3210(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.447FC000,fp0
	fmove.l	fp0,d6
	moveq	#$C,d7
	asl.l	d7,d6
	or.l	d6,d1
	lea	-$4B10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.447FC000,fp0
	fmove.l	fp0,d6
	moveq	#2,d7
	asl.l	d7,d6
	or.l	d6,d1
	lea	-$6410(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.40400000,fp0
	fmove.l	fp0,d6
	or.l	d6,d1
	move.l	d1,0(a1,d0.l*4)
	addq.l	#1,d0
L1271
	cmp.l	d2,d0
	blt.b	L1270
L1272
	bra	L1282
L1273
;            else if (format == GL_BGRA) 
	cmp.l	#$80E1,d3
	bne	L1278
L1274
;               GLushort *dst = (GLushort *) gl_pixel_
	clr.l	-(a7)
	move.l	d4,-(a7)
	clr.l	-(a7)
	move.l	d5,-(a7)
	move.l	d3,-(a7)
	move.l	$18(a5),-(a7)
	move.l	d2,-(a7)
	move.l	a4,-(a7)
	move.l	a3,a0
	add.l	#$E644,a0
	pea	(a0)
	jsr	_gl_pixel_addr_in_image
	add.w	#$24,a7
	move.l	d0,a1
;               for (i=0;
	moveq	#0,d0
	bra	L1276
L1275
;                  dst[i] = (((GLint) (blue[i]  * 1
	lea	-$4B10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.447FC000,fp0
	fmove.l	fp0,d1
	moveq	#$16,d6
	asl.l	d6,d1
	lea	-$3210(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.447FC000,fp0
	fmove.l	fp0,d6
	moveq	#$C,d7
	asl.l	d7,d6
	or.l	d6,d1
	lea	-$1910(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.447FC000,fp0
	fmove.l	fp0,d6
	moveq	#2,d7
	asl.l	d7,d6
	or.l	d6,d1
	lea	-$6410(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.40400000,fp0
	fmove.l	fp0,d6
	or.l	d6,d1
	move.w	d1,0(a1,d0.l*2)
	addq.l	#1,d0
L1276
	cmp.l	d2,d0
	blt.b	L1275
L1277
	bra	L1282
L1278
;            else if (format == GL_ABGR_EXT) 
	cmp.l	#$8000,d3
	bne	L1282
L1279
;               GLushort *dst = (GLushort *) gl_pixel_
	clr.l	-(a7)
	move.l	d4,-(a7)
	clr.l	-(a7)
	move.l	d5,-(a7)
	move.l	d3,-(a7)
	move.l	$18(a5),-(a7)
	move.l	d2,-(a7)
	move.l	a4,-(a7)
	move.l	a3,a0
	add.l	#$E644,a0
	pea	(a0)
	jsr	_gl_pixel_addr_in_image
	add.w	#$24,a7
	move.l	d0,a1
;               for (i=0;
	moveq	#0,d0
	bra	L1281
L1280
;                  dst[i] = (((GLint) (alpha[i] * 1
	lea	-$6410(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.447FC000,fp0
	fmove.l	fp0,d1
	moveq	#$16,d6
	asl.l	d6,d1
	lea	-$4B10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.447FC000,fp0
	fmove.l	fp0,d6
	moveq	#$C,d7
	asl.l	d7,d6
	or.l	d6,d1
	lea	-$3210(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.447FC000,fp0
	fmove.l	fp0,d6
	moveq	#2,d7
	asl.l	d7,d6
	or.l	d6,d1
	lea	-$1910(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.40400000,fp0
	fmove.l	fp0,d6
	or.l	d6,d1
	move.w	d1,0(a1,d0.l*2)
	addq.l	#1,d0
L1281
	cmp.l	d2,d0
	blt.b	L1280
L1282
;            
	bra	L1299
L1283
;            if (format == GL_RGBA) 
	cmp.l	#$1908,d3
	bne	L1288
L1284
;               GLuint *dst = (GLuint *) gl_pixel_addr
	clr.l	-(a7)
	move.l	d4,-(a7)
	clr.l	-(a7)
	move.l	d5,-(a7)
	move.l	d3,-(a7)
	move.l	$18(a5),-(a7)
	move.l	d2,-(a7)
	move.l	a4,-(a7)
	move.l	a3,a0
	add.l	#$E644,a0
	pea	(a0)
	jsr	_gl_pixel_addr_in_image
	add.w	#$24,a7
	move.l	d0,a1
;               for (i=0;
	moveq	#0,d0
	bra	L1286
L1285
;                  dst[i] = (((GLint) (red[i]   * 1
	lea	-$1910(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.447FC000,fp0
	fmove.l	fp0,d1
	lea	-$3210(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.447FC000,fp0
	fmove.l	fp0,d6
	moveq	#$A,d7
	asl.l	d7,d6
	or.l	d6,d1
	lea	-$4B10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.447FC000,fp0
	fmove.l	fp0,d6
	moveq	#$14,d7
	asl.l	d7,d6
	or.l	d6,d1
	lea	-$6410(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.40400000,fp0
	fmove.l	fp0,d6
	moveq	#$1E,d7
	asl.l	d7,d6
	or.l	d6,d1
	move.l	d1,0(a1,d0.l*4)
	addq.l	#1,d0
L1286
	cmp.l	d2,d0
	blt.b	L1285
L1287
	bra	L1297
L1288
;            else if (format == GL_BGRA) 
	cmp.l	#$80E1,d3
	bne	L1293
L1289
;               GLushort *dst = (GLushort *) gl_pixel_
	clr.l	-(a7)
	move.l	d4,-(a7)
	clr.l	-(a7)
	move.l	d5,-(a7)
	move.l	d3,-(a7)
	move.l	$18(a5),-(a7)
	move.l	d2,-(a7)
	move.l	a4,-(a7)
	move.l	a3,a0
	add.l	#$E644,a0
	pea	(a0)
	jsr	_gl_pixel_addr_in_image
	add.w	#$24,a7
	move.l	d0,a1
;               for (i=0;
	moveq	#0,d0
	bra	L1291
L1290
;                  dst[i] = (((GLint) (blue[i]  * 1
	lea	-$4B10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.447FC000,fp0
	fmove.l	fp0,d1
	lea	-$3210(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.447FC000,fp0
	fmove.l	fp0,d6
	moveq	#$A,d7
	asl.l	d7,d6
	or.l	d6,d1
	lea	-$1910(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.447FC000,fp0
	fmove.l	fp0,d6
	moveq	#$14,d7
	asl.l	d7,d6
	or.l	d6,d1
	lea	-$6410(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.40400000,fp0
	fmove.l	fp0,d6
	moveq	#$1E,d7
	asl.l	d7,d6
	or.l	d6,d1
	move.w	d1,0(a1,d0.l*2)
	addq.l	#1,d0
L1291
	cmp.l	d2,d0
	blt.b	L1290
L1292
	bra	L1297
L1293
;            else if (format == GL_ABGR_EXT) 
	cmp.l	#$8000,d3
	bne	L1297
L1294
;               GLushort *dst = (GLushort *) gl_pixel_
	clr.l	-(a7)
	move.l	d4,-(a7)
	clr.l	-(a7)
	move.l	d5,-(a7)
	move.l	d3,-(a7)
	move.l	$18(a5),-(a7)
	move.l	d2,-(a7)
	move.l	a4,-(a7)
	move.l	a3,a0
	add.l	#$E644,a0
	pea	(a0)
	jsr	_gl_pixel_addr_in_image
	add.w	#$24,a7
	move.l	d0,a1
;               for (i=0;
	moveq	#0,d0
	bra	L1296
L1295
;                  dst[i] = (((GLint) (alpha[i] * 1
	lea	-$6410(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.447FC000,fp0
	fmove.l	fp0,d1
	lea	-$4B10(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.447FC000,fp0
	fmove.l	fp0,d6
	moveq	#$A,d7
	asl.l	d7,d6
	or.l	d6,d1
	lea	-$3210(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.447FC000,fp0
	fmove.l	fp0,d6
	moveq	#$14,d7
	asl.l	d7,d6
	or.l	d6,d1
	lea	-$1910(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.40400000,fp0
	fmove.l	fp0,d6
	moveq	#$1E,d7
	asl.l	d7,d6
	or.l	d6,d1
	move.w	d1,0(a1,d0.l*2)
	addq.l	#1,d0
L1296
	cmp.l	d2,d0
	blt.b	L1295
L1297
;            
	bra.b	L1299
L1298
;            gl_error( ctx, GL_INVALID_ENUM, "glReadPixel
	move.l	#L829,-(a7)
	pea	$500.w
	move.l	a3,-(a7)
	jsr	_gl_error
	add.w	#$C,a7
L1299
	addq.l	#1,d4
	addq.l	#1,$10(a5)
L1300
	cmp.l	$18(a5),d4
	blt	L836
L1301
	fmovem.x (a7)+,fp2/fp3/fp4/fp5
	movem.l	(a7)+,d2-d7/a2-a4
	unlk	a5
	rts

L830
	dc.b	'bad format in glReadPixels',$A,0
L828
	dc.b	'glReadPixels(format)',0
L829
	dc.b	'glReadPixels(type)',0

	SECTION "_gl_ReadPixels:0",CODE


;void gl_ReadPixels( GLcontext *ctx,
	XDEF	_gl_ReadPixels
_gl_ReadPixels
	movem.l	d2-d7/a2/a3,-(a7)
	movem.l	$28(a7),d2-d5/d7
	movem.l	$3C(a7),d6/a3
	move.l	$24(a7),a2
L1334
;   if (INSIDE_BEGIN_END(ctx)) 
	move.l	a2,a0
	add.l	#$E968,a0
	move.l	(a0),d0
	cmp.l	#$1A00,d0
	beq.b	L1336
L1335
;      gl_error( ctx, GL_INVALID_OPERATION, "glReadPixels" );
	move.l	#L1331,-(a7)
	pea	$502.w
	move.l	a2,-(a7)
	jsr	_gl_error
	add.w	#$C,a7
	movem.l	(a7)+,d2-d7/a2/a3
	rts
L1336
;   if (!pixels) 
	cmp.w	#0,a3
	bne.b	L1338
L1337
;      gl_error( ctx, GL_INVALID_VALUE, "glReadPixels(pixels)" )
	move.l	#L1332,-(a7)
	pea	$501.w
	move.l	a2,-(a7)
	jsr	_gl_error
	add.w	#$C,a7
	movem.l	(a7)+,d2-d7/a2/a3
	rts
L1338
;   (void) (*ctx->Driver.SetBuffer)( ctx, ctx->Pixel.ReadBuffer );
	move.l	a2,a0
	add.l	#$B168,a0
	move.l	(a0),-(a7)
	move.l	a2,-(a7)
	move.l	$91C(a2),a0
	jsr	(a0)
	addq.w	#$8,a7
;   switch (format)
	move.l	d7,d0
	cmp.l	#$1907,d0
	beq	L1342
	bgt.b	L1347
	sub.l	#$1900,d0
	cmp.l	#6,d0
	bhi	L1345
	move.l	L1348(pc,d0.l*4),a0
	jmp	(a0)
L1348
	dc.l	L1339
	dc.l	L1340
	dc.l	L1341
	dc.l	L1342
	dc.l	L1342
	dc.l	L1342
	dc.l	L1342
L1347
	cmp.l	#$8000,d0
	beq	L1342
	bgt.b	L1349
	cmp.l	#$1909,d0
	beq	L1342
	bgt.b	L1350
	blt.b	L1342
L1350
	cmp.l	#$190A,d0
	beq.b	L1342
	bra	L1345
L1349
	cmp.l	#$80E0,d0
	beq.b	L1342
	cmp.l	#$80E1,d0
	beq.b	L1342
	bra	L1345
;      
L1339
;         read_index_pixels( ctx, x, y, width, height, type,
	move.l	a3,-(a7)
	move.l	d6,-(a7)
	move.l	d5,-(a7)
	move.l	d4,-(a7)
	move.l	d3,-(a7)
	move.l	d2,-(a7)
	move.l	a2,-(a7)
	jsr	_read_index_pixels
	add.w	#$1C,a7
;	 
	bra	L1346
L1340
;	 read_stencil_pixels( ctx, x, y, width, height, type, pixels );
	move.l	a3,-(a7)
	move.l	d6,-(a7)
	move.l	d5,-(a7)
	move.l	d4,-(a7)
	move.l	d3,-(a7)
	move.l	d2,-(a7)
	move.l	a2,-(a7)
	jsr	_read_stencil_pixels
	add.w	#$1C,a7
;         
	bra.b	L1346
L1341
;	 read_depth_pixels( ctx, x, y, width, height, type, pixels );
	move.l	a3,-(a7)
	move.l	d6,-(a7)
	move.l	d5,-(a7)
	move.l	d4,-(a7)
	move.l	d3,-(a7)
	move.l	d2,-(a7)
	move.l	a2,-(a7)
	jsr	_read_depth_pixels
	add.w	#$1C,a7
;	 
	bra.b	L1346
L1342
;         if (!read_fast_rgba_pixels( ctx, x, y, width, heig
	move.l	a3,-(a7)
	move.l	d6,-(a7)
	move.l	d7,-(a7)
	move.l	d5,-(a7)
	move.l	d4,-(a7)
	move.l	d3,-(a7)
	move.l	d2,-(a7)
	move.l	a2,-(a7)
	jsr	_read_fast_rgba_pixels
	add.w	#$20,a7
	tst.b	d0
	bne.b	L1344
L1343
;            read_rgba_pixels( ctx, x, y, width, height, 
	move.l	a3,-(a7)
	move.l	d6,-(a7)
	move.l	d7,-(a7)
	move.l	d5,-(a7)
	move.l	d4,-(a7)
	move.l	d3,-(a7)
	move.l	d2,-(a7)
	move.l	a2,-(a7)
	jsr	_read_rgba_pixels
	add.w	#$20,a7
L1344
;	 
	bra.b	L1346
L1345
;	 gl_error( ctx, GL_INVALID_ENUM, "glReadPixels(format)" );
	move.l	#L1333,-(a7)
	pea	$500.w
	move.l	a2,-(a7)
	jsr	_gl_error
	add.w	#$C,a7
L1346
;   (void) (*ctx->Driver.SetBuffer)( ctx, ctx->Color.DrawBuffer );
	move.l	$21E2(a2),-(a7)
	move.l	a2,-(a7)
	move.l	$91C(a2),a0
	jsr	(a0)
	addq.w	#$8,a7
	movem.l	(a7)+,d2-d7/a2/a3
	rts

L1331
	dc.b	'glReadPixels',0
L1333
	dc.b	'glReadPixels(format)',0
L1332
	dc.b	'glReadPixels(pixels)',0

	END
