
; Storm C Compiler
; Work2:Mesa3/Mesa-3.0/src/image.c
	mc68030
	mc68881
	XREF	_gl_map_color
	XREF	_gl_scale_and_bias_color
	XREF	_gl_error
	XREF	_gl_problem
	XREF	_q_memcpy
	XREF	_malloc
	XREF	_free
	XREF	_calloc
	XREF	_CC

	SECTION "_gl_flip_bytes:0",CODE


;void gl_flip_bytes( GLubyte *p, GLuint n )
	XDEF	_gl_flip_bytes
_gl_flip_bytes
	movem.l	d2-d5,-(a7)
	move.l	$18(a7),d4
	move.l	$14(a7),a1
L818
;   for (i=0;
	moveq	#0,d2
	bra.b	L820
L819
;      b = (GLuint) p[i];
	moveq	#0,d1
	move.b	0(a1,d2.l),d1
;      a = ((b & 0x01) << 7) |
	move.l	d1,d0
	and.l	#1,d0
	moveq	#7,d3
	asl.l	d3,d0
	move.l	d1,d3
	and.l	#2,d3
	moveq	#5,d5
	asl.l	d5,d3
	or.l	d3,d0
	move.l	d1,d3
	and.l	#4,d3
	moveq	#3,d5
	asl.l	d5,d3
	or.l	d3,d0
	move.l	d1,d3
	and.l	#$8,d3
	moveq	#1,d5
	asl.l	d5,d3
	or.l	d3,d0
	move.l	d1,d3
	and.l	#$10,d3
	moveq	#1,d5
	lsr.l	d5,d3
	or.l	d3,d0
	move.l	d1,d3
	and.l	#$20,d3
	moveq	#3,d5
	lsr.l	d5,d3
	or.l	d3,d0
	move.l	d1,d3
	and.l	#$40,d3
	moveq	#5,d5
	lsr.l	d5,d3
	or.l	d3,d0
	and.l	#$80,d1
	moveq	#7,d3
	lsr.l	d3,d1
	or.l	d1,d0
;      p[i] = (GLubyte) a;
	move.b	d0,0(a1,d2.l)
	addq.l	#1,d2
L820
	cmp.l	d4,d2
	blo.b	L819
L821
	movem.l	(a7)+,d2-d5
	rts

	SECTION "_gl_swap2:0",CODE

	rts

;void gl_swap2( GLushort *p, GLuint n )
	XDEF	_gl_swap2
_gl_swap2
	movem.l	d2-d4,-(a7)
	move.l	$14(a7),d3
	move.l	$10(a7),a0
L822
;   for (i=0;
	moveq	#0,d0
	bra.b	L824
L823
;      p[i] = (p[i] >> 8) | ((p[i] << 8) & 0xff00);
	moveq	#0,d1
	move.w	0(a0,d0.l*2),d1
	moveq	#$8,d2
	asr.l	d2,d1
	moveq	#0,d2
	move.w	0(a0,d0.l*2),d2
	moveq	#$8,d4
	asl.l	d4,d2
	and.l	#$FF00,d2
	or.l	d2,d1
	move.w	d1,0(a0,d0.l*2)
	addq.l	#1,d0
L824
	cmp.l	d3,d0
	blo.b	L823
L825
	movem.l	(a7)+,d2-d4
	rts

	SECTION "_gl_swap4:0",CODE


;void gl_swap4( GLuint *p, GLuint n )
	XDEF	_gl_swap4
_gl_swap4
	movem.l	d2-d5,-(a7)
	move.l	$18(a7),d4
	move.l	$14(a7),a1
L826
;   for (i=0;
	moveq	#0,d2
	bra.b	L828
L827
;      b = p[i];
	move.l	0(a1,d2.l*4),d0
;      a =  (b >> 24)
	move.l	d0,d1
	moveq	#$18,d3
	lsr.l	d3,d1
	move.l	d0,d3
	moveq	#$8,d5
	lsr.l	d5,d3
	and.l	#$FF00,d3
	or.l	d3,d1
	move.l	d0,d3
	moveq	#$8,d5
	asl.l	d5,d3
	and.l	#$FF0000,d3
	or.l	d3,d1
	moveq	#$18,d3
	asl.l	d3,d0
	and.l	#-$1000000,d0
	or.l	d0,d1
;      p[i] = a;
	move.l	d1,0(a1,d2.l*4)
	addq.l	#1,d2
L828
	cmp.l	d4,d2
	blo.b	L827
L829
	movem.l	(a7)+,d2-d5
	rts

	SECTION "_gl_sizeof_type:0",CODE


;GLint gl_sizeof_type( GLenum type )
	XDEF	_gl_sizeof_type
_gl_sizeof_type
	move.l	4(a7),d0
L830
;   switch (type)
	cmp.l	#$1404,d0
	beq.b	L837
	bgt.b	L840
	cmp.l	#$1402,d0
	beq.b	L835
	bgt.b	L841
	cmp.l	#$1400,d0
	beq.b	L833
	cmp.l	#$1401,d0
	beq.b	L832
	bra.b	L839
L841
	bgt.b	L834
L840
	cmp.l	#$1406,d0
	beq.b	L838
	bgt.b	L842
	blt.b	L836
L842
	cmp.l	#$1A00,d0
	beq.b	L831
	bra.b	L839
;      
L831
	moveq	#0,d0
	rts
L832
	moveq	#1,d0
	rts
L833
	moveq	#1,d0
	rts
L834
	moveq	#2,d0
	rts
L835
	moveq	#2,d0
	rts
L836
	moveq	#4,d0
	rts
L837
	moveq	#4,d0
	rts
L838
	moveq	#4,d0
	rts
L839
	moveq	#-1,d0
	rts

	SECTION "_gl_sizeof_packed_type:0",CODE


;GLint gl_sizeof_packed_type( GLenum type )
	XDEF	_gl_sizeof_packed_type
_gl_sizeof_packed_type
	move.l	4(a7),d0
L843
;   switch (type)
	cmp.l	#$8034,d0
	beq	L858
	bgt.b	L865
	cmp.l	#$1405,d0
	beq	L849
	bgt.b	L866
	cmp.l	#$1402,d0
	beq	L848
	bgt.b	L867
	cmp.l	#$1400,d0
	beq	L846
	cmp.l	#$1401,d0
	beq	L845
	bra	L864
L867
	cmp.l	#$1403,d0
	beq	L847
	cmp.l	#$1404,d0
	beq	L850
	bra	L864
L866
	cmp.l	#$8032,d0
	beq	L852
	bgt.b	L868
	cmp.l	#$1406,d0
	beq	L851
	cmp.l	#$1A00,d0
	beq.b	L844
	bra	L864
L868
	bgt	L856
L865
	cmp.l	#$8364,d0
	beq	L855
	bgt.b	L869
	cmp.l	#$8362,d0
	beq.b	L853
	bgt.b	L870
	cmp.l	#$8035,d0
	beq	L860
	cmp.l	#$8036,d0
	beq	L862
	bra	L864
L870
	bgt.b	L854
L869
	cmp.l	#$8367,d0
	beq.b	L861
	bgt.b	L871
	cmp.l	#$8365,d0
	beq.b	L857
	cmp.l	#$8366,d0
	beq.b	L859
	bra.b	L864
L871
	cmp.l	#$8368,d0
	beq.b	L863
	bra.b	L864
;      
L844
	moveq	#0,d0
	rts
L845
	moveq	#1,d0
	rts
L846
	moveq	#1,d0
	rts
L847
	moveq	#2,d0
	rts
L848
	moveq	#2,d0
	rts
L849
	moveq	#4,d0
	rts
L850
	moveq	#4,d0
	rts
L851
	moveq	#4,d0
	rts
L852
	moveq	#1,d0
	rts
L853
	moveq	#1,d0
	rts
L854
	moveq	#2,d0
	rts
L855
	moveq	#2,d0
	rts
L856
	moveq	#2,d0
	rts
L857
	moveq	#2,d0
	rts
L858
	moveq	#2,d0
	rts
L859
	moveq	#2,d0
	rts
L860
	moveq	#4,d0
	rts
L861
	moveq	#4,d0
	rts
L862
	moveq	#4,d0
	rts
L863
	moveq	#4,d0
	rts
L864
	moveq	#-1,d0
	rts

	SECTION "_gl_components_in_format:0",CODE


;GLint gl_components_in_format( GLenum format )
	XDEF	_gl_components_in_format
_gl_components_in_format
	move.l	4(a7),d0
L872
;   switch (format)
	cmp.l	#$8036,d0
	beq	L880
	bgt	L882
	cmp.l	#$1908,d0
	beq	L876
	bgt.b	L883
	sub.l	#$1900,d0
	cmp.l	#7,d0
	bhi	L881
	move.l	L884(pc,d0.l*4),a0
	jmp	(a0)
L884
	dc.l	L873
	dc.l	L873
	dc.l	L873
	dc.l	L873
	dc.l	L873
	dc.l	L873
	dc.l	L873
	dc.l	L875
L883
	cmp.l	#$8032,d0
	beq	L880
	bgt.b	L885
	cmp.l	#$190A,d0
	beq	L874
	bgt.b	L886
	blt	L873
L886
	cmp.l	#$8000,d0
	beq	L879
	bra	L881
L885
	cmp.l	#$8034,d0
	beq	L880
	bgt.b	L887
	blt	L880
L887
	bgt	L880
L882
	cmp.l	#$80E7,d0
	beq.b	L873
	bgt.b	L888
	sub.l	#$80E0,d0
	cmp.l	#6,d0
	bhi.b	L881
	move.l	L889(pc,d0.l*4),a0
	jmp	(a0)
L889
	dc.l	L877
	dc.l	L878
	dc.l	L873
	dc.l	L873
	dc.l	L873
	dc.l	L873
	dc.l	L873
L888
	sub.l	#$8362,d0
	cmp.l	#6,d0
	bhi.b	L881
	move.l	L890(pc,d0.l*4),a0
	jmp	(a0)
L890
	dc.l	L880
	dc.l	L880
	dc.l	L880
	dc.l	L880
	dc.l	L880
	dc.l	L880
	dc.l	L880
;      
L873
	moveq	#1,d0
	rts
L874
	moveq	#2,d0
	rts
L875
	moveq	#3,d0
	rts
L876
	moveq	#4,d0
	rts
L877
	moveq	#3,d0
	rts
L878
	moveq	#4,d0
	rts
L879
	moveq	#4,d0
	rts
L880
	moveq	#1,d0
	rts
L881
	moveq	#-1,d0
	rts

	SECTION "_gl_pixel_addr_in_image:0",CODE


;GLvoid *gl_pixel_addr_in_image( const struct gl_pixelstore_attrib *p
	XDEF	_gl_pixel_addr_in_image
_gl_pixel_addr_in_image
L915	EQU	-$48
	link	a5,#L915
	movem.l	d2-d7/a2/a3,-(a7)
	movem.l	$14(a5),d2/d5
	move.l	$1C(a5),d3
	move.l	$10(a5),d4
	move.l	$8(a5),a2
	move.l	$C(a5),a3
L891
;   bytes_per_comp = gl_sizeof_packed_type( type );
	move.l	d3,-(a7)
	jsr	_gl_sizeof_packed_type
	addq.w	#4,a7
	move.l	d0,-4(a5)
;   if (bytes_per_comp<0) 
	tst.l	-4(a5)
	bpl.b	L893
L892
	moveq	#0,d0
	movem.l	(a7)+,d2-d7/a2/a3
	unlk	a5
	rts
L893
;   comp_per_pixel = gl_components_in_format( format );
	move.l	d5,-(a7)
	jsr	_gl_components_in_format
	addq.w	#4,a7
;   if (comp_per_pixel<0 && type != GL_BITMAP) 
	tst.l	d0
	bpl.b	L896
L894
	cmp.l	#$1A00,d3
	beq.b	L896
L895
	moveq	#0,d0
	movem.l	(a7)+,d2-d7/a2/a3
	unlk	a5
	rts
L896
;   alignment = packing->Alignment;
	move.l	(a2),d5
;   if (packing->RowLength > 0) 
	move.l	4(a2),d1
	cmp.l	#0,d1
	ble.b	L898
L897
;      pixels_per_row = packing->RowLength;
	move.l	4(a2),-$10(a5)
	bra.b	L899
L898
;      pixels_per_row = width;
	move.l	d4,-$10(a5)
L899
;   if (packing->ImageHeight>0) 
	move.l	$10(a2),d1
	cmp.l	#0,d1
	ble.b	L901
L900
;      rows_per_image = packing->ImageHeight;
	move.l	$10(a2),-$18(a5)
	bra.b	L902
L901
;      rows_per_image = height;
	move.l	d2,-$18(a5)
L902
;   skiprows = packing->SkipRows;
	move.l	$C(a2),d2
;   skippixels = packing->SkipPixels;
	move.l	$8(a2),d1
;   skipimages = packing->SkipImages;
	move.l	$14(a2),d4
;   if (type==GL_BITMAP) 
	cmp.l	#$1A00,d3
	bne.b	L907
L903
;      bytes_per_row = alignment
	move.l	d0,d3
	muls.l	-$10(a5),d3
	move.l	d5,d6
	moveq	#3,d7
	asl.l	d7,d6
	divsl.l	d6,d6:d3
	tst.l	d6
	bne.b	L905
L904
	muls.l	-$10(a5),d0
	move.l	d5,d3
	moveq	#3,d6
	asl.l	d6,d3
	divsl.l	d3,d0
	bra.b	L906
L905
	muls.l	-$10(a5),d0
	move.l	d5,d3
	moveq	#3,d6
	asl.l	d6,d3
	divsl.l	d3,d0
	addq.l	#1,d0
L906
	muls.l	d5,d0
;      bytes_per_image = bytes_per_row * rows_per_image;
	move.l	d0,d3
	muls.l	-$18(a5),d3
;      pixel_addr = (GLubyte *) image
	add.l	$20(a5),d4
	muls.l	d3,d4
	add.l	$24(a5),d2
	muls.l	d0,d2
	lea	0(a3,d4.l),a0
	add.l	$28(a5),d1
	divsl.l	#$8,d1
	lea	0(a0,d2.l),a0
	add.l	d1,a0
	bra	L914
L907
;      if (bytes_per_comp>=alignment) 
	move.l	-4(a5),d3
	cmp.l	d5,d3
	blt.b	L909
L908
;	 comps_per_row = comp_per_pixel * pixels_per_row;
	move.l	d0,d3
	muls.l	-$10(a5),d3
	move.l	d3,-$C(a5)
	bra.b	L913
L909
;         GLint bytes_per_row = bytes_per_comp * comp_per_pi
	move.l	-4(a5),d3
	muls.l	d0,d3
	muls.l	-$10(a5),d3
;	 comps_per_row = alignment / bytes_per_comp
	move.l	d5,d6
	divsl.l	-4(a5),d6
	move.l	d6,-$C(a5)
	move.l	d3,d6
	divsl.l	d5,d7:d6
	tst.l	d7
	bne.b	L911
L910
	divsl.l	d5,d3
	bra.b	L912
L911
	divsl.l	d5,d3
	addq.l	#1,d3
L912
	move.l	-$C(a5),d5
	muls.l	d3,d5
	move.l	d5,-$C(a5)
L913
;      bytes_per_image = bytes_per_comp * comps_per_row * rows_
	move.l	-4(a5),d3
	muls.l	-$C(a5),d3
	muls.l	-$18(a5),d3
;      image->Height = height;
	add.l	$20(a5),d4
	muls.l	d3,d4
	add.l	$24(a5),d2
	muls.l	-4(a5),d2
	muls.l	-$C(a5),d2
	lea	0(a3,d4.l),a0
	add.l	d2,a0
	add.l	$28(a5),d1
	muls.l	-4(a5),d1
	muls.l	d0,d1
	add.l	d1,a0
L914
	move.l	a0,d0
	movem.l	(a7)+,d2-d7/a2/a3
	unlk	a5
	rts

	SECTION "_alloc_image:0",CODE


;static struct gl_image *alloc_image( void )
_alloc_image
L916
	pea	1.w
	pea	$22.w
	jsr	_calloc
	addq.w	#$8,a7
	rts

	SECTION "_alloc_error_image:0",CODE


;static struct gl_image *alloc_error_image( GLint width, GLint height
_alloc_error_image
	movem.l	d2-d6,-(a7)
	move.l	$28(a7),d2
	move.l	$24(a7),d3
	move.l	$20(a7),d4
	move.l	$1C(a7),d5
	move.l	$18(a7),d6
L917
;   struct gl_image *image = alloc_image();
	jsr	_alloc_image
	move.l	d0,a0
;   if (image) 
	cmp.w	#0,a0
	beq.b	L919
L918
;      image->Width = width;
	move.l	d6,(a0)
;      image->Height = height;
	move.l	d5,4(a0)
;      image->Depth = depth;
	move.l	d4,$8(a0)
;      image->Format = format;
	move.l	d3,$10(a0)
;      image->Type = type;
	move.l	d2,$14(a0)
;      image->ErrorFlag = GL_TRUE;
	move.b	#1,$1C(a0)
L919
	move.l	a0,d0
	movem.l	(a7)+,d2-d6
	rts

	SECTION "_gl_free_image:0",CODE


;void gl_free_image( struct gl_image *image )
	XDEF	_gl_free_image
_gl_free_image
	move.l	a2,-(a7)
	move.l	$8(a7),a2
L920
;   if (image->Data) 
	tst.l	$18(a2)
	beq.b	L922
L921
;      free(image->Data);
	move.l	$18(a2),-(a7)
	jsr	_free
	addq.w	#4,a7
L922
;   free(image);
	move.l	a2,-(a7)
	jsr	_free
	addq.w	#4,a7
	move.l	(a7)+,a2
	rts

	SECTION "_gl_image_error_test:0",CODE


;GLboolean gl_image_error_test( GLcontext *ctx, const struct gl_image
	XDEF	_gl_image_error_test
_gl_image_error_test
	move.l	a2,-(a7)
	movem.l	$C(a7),a0/a2
	move.l	$8(a7),a1
L923
;   if (image->Width <= 0 || image->Height <= 0 || image->Depth <=
	move.l	(a0),d0
	cmp.l	#0,d0
	ble.b	L926
L924
	move.l	4(a0),d0
	cmp.l	#0,d0
	ble.b	L926
L925
	move.l	$8(a0),d0
	cmp.l	#0,d0
	bgt.b	L927
L926
;      gl_error( ctx, GL_INVALID_VALUE, msg );
	move.l	a2,-(a7)
	pea	$501.w
	move.l	a1,-(a7)
	jsr	_gl_error
	add.w	#$C,a7
	moveq	#1,d0
	move.l	(a7)+,a2
	rts
L927
	moveq	#0,d0
	move.l	(a7)+,a2
	rts

	SECTION "_unpack_depth_image:0",CODE


;static struct gl_image *unpack_depth_image( GLcontext *ctx, GLenum t
_unpack_depth_image
L982	EQU	-$3C
	link	a5,#L982
	movem.l	d2-d7/a2-a4,-(a7)
	movem.l	$10(a5),d2/d7
	move.l	$8(a5),a4
L929
;   image = alloc_image();
	jsr	_alloc_image
	move.l	d0,-4(a5)
;   if (image) 
	tst.l	-4(a5)
	beq	L938
L930
;      image->Width = width;
	move.l	-4(a5),a0
	move.l	d2,(a0)
;      image->Height = height;
	move.l	-4(a5),a0
	move.l	d7,4(a0)
;      image->Depth = 1;
	move.l	-4(a5),a0
	move.l	#1,$8(a0)
;      image->Components = 1;
	move.l	-4(a5),a0
	move.l	#1,$C(a0)
;      image->Format = GL_DEPTH_COMPONENT;
	move.l	-4(a5),a0
	move.l	#$1902,$10(a0)
;      if (type==GL_UNSIGNED_SHORT) 
	move.l	$C(a5),d0
	cmp.l	#$1403,d0
	bne.b	L932
L931
;         image->Type = GL_UNSIGNED_SHORT;
	move.l	-4(a5),a0
	move.l	#$1403,$14(a0)
;         image->Data = malloc( width * height * sizeof(GLus
	move.l	d2,d0
	muls.l	d7,d0
	moveq	#1,d1
	asl.l	d1,d0
	move.l	d0,-(a7)
	jsr	_malloc
	addq.w	#4,a7
	move.l	-4(a5),a1
	move.l	d0,$18(a1)
	bra.b	L935
L932
;      else if (type==GL_UNSIGNED_INT) 
	move.l	$C(a5),d0
	cmp.l	#$1405,d0
	bne.b	L934
L933
;         image->Type = GL_UNSIGNED_INT;
	move.l	-4(a5),a0
	move.l	#$1405,$14(a0)
;         image->Data = malloc( width * height * sizeof(GLui
	move.l	d2,d0
	muls.l	d7,d0
	moveq	#2,d1
	asl.l	d1,d0
	move.l	d0,-(a7)
	jsr	_malloc
	addq.w	#4,a7
	move.l	-4(a5),a1
	move.l	d0,$18(a1)
	bra.b	L935
L934
;         image->Type = GL_FLOAT;
	move.l	-4(a5),a0
	move.l	#$1406,$14(a0)
;         image->Data = malloc( width * height * sizeof(GLfl
	move.l	d2,d0
	muls.l	d7,d0
	moveq	#2,d1
	asl.l	d1,d0
	move.l	d0,-(a7)
	jsr	_malloc
	addq.w	#4,a7
	move.l	-4(a5),a1
	move.l	d0,$18(a1)
L935
;      image->RefCount = 0;
	move.l	-4(a5),a0
	clr.l	$1E(a0)
;      if (!image->Data)
	move.l	-4(a5),a1
	tst.l	$18(a1)
	bne.b	L937
L936
	move.l	-4(a5),d0
	movem.l	(a7)+,d2-d7/a2-a4
	unlk	a5
	rts
L937
;         return 
	bra.b	L939
L938
	moveq	#0,d0
	movem.l	(a7)+,d2-d7/a2-a4
	unlk	a5
	rts
L939
;   fDst = (GLfloat *) image->Data;
	move.l	-4(a5),a0
	move.l	$18(a0),a2
;   sDst = (GLushort *) image->Data;
	move.l	-4(a5),a0
	move.l	$18(a0),-$C(a5)
;   iDst = (GLuint *) image->Data;
	move.l	-4(a5),a0
	move.l	$18(a0),-$10(a5)
;   for (i=0;
	moveq	#0,d5
	bra	L980
L940
;      GLvoid *src = gl_pixel_addr_in_image( &ctx->Unpack, pixe
	clr.l	-(a7)
	move.l	d5,-(a7)
	clr.l	-(a7)
	move.l	$C(a5),-(a7)
	pea	$1902.w
	move.l	d7,-(a7)
	move.l	d2,-(a7)
	move.l	$18(a5),-(a7)
	move.l	a4,a0
	add.l	#$E65E,a0
	pea	(a0)
	jsr	_gl_pixel_addr_in_image
	add.w	#$24,a7
	move.l	d0,a0
;      if (!src) 
	cmp.w	#0,a0
	bne.b	L942
L941
	move.l	-4(a5),d0
	movem.l	(a7)+,d2-d7/a2-a4
	unlk	a5
	rts
L942
;      switch (type)
	move.l	$C(a5),d0
	sub.l	#$1400,d0
	cmp.l	#6,d0
	bhi	L978
	move.l	L983(pc,d0.l*4),a1
	jmp	(a1)
L983
	dc.l	L943
	dc.l	L947
	dc.l	L954
	dc.l	L951
	dc.l	L963
	dc.l	L972
	dc.l	L975
;         
L943
;            for (j=0;
	moveq	#0,d0
	bra.b	L945
L944
;               *fDst++ = BYTE_TO_FLOAT(((GLbyte*)src)
	move.b	0(a0,d0.l),d1
	extb.l	d1
	fmove.l	d1,fp0
	fmul.s	#$.40000000,fp0
	fadd.s	#$.3F800000,fp0
	fmul.s	#$.3B808080,fp0
	fmove.s	fp0,(a2)+
	addq.l	#1,d0
L945
	cmp.l	d2,d0
	blt.b	L944
L946
;            
	bra	L979
L947
;            for (j=0;
	moveq	#0,d0
	bra.b	L949
L948
;               *fDst++ = UBYTE_TO_FLOAT(((GLubyte*)sr
	moveq	#0,d1
	move.b	0(a0,d0.l),d1
	fmove.l	d1,fp0
	fmul.s	#$.3B808080,fp0
	fmove.s	fp0,(a2)+
	addq.l	#1,d0
L949
	cmp.l	d2,d0
	blt.b	L948
L950
;            
	bra	L979
L951
;       MEMCPY( sD
	move.l	d2,d0
	moveq	#1,d1
	asl.l	d1,d0
	move.l	d0,-(a7)
	move.l	a0,-(a7)
	move.l	-$C(a5),-(a7)
	jsr	_q_memcpy
	add.w	#$C,a7
;            if (ctx->Unpack.SwapBytes) 
	move.l	a4,a0
	add.l	#$E65E,a0
	tst.b	$18(a0)
	beq.b	L953
L952
;               gl_swap2( sDst, width );
	move.l	d2,-(a7)
	move.l	-$C(a5),-(a7)
	jsr	_gl_swap2
	addq.w	#$8,a7
L953
;            sDst += width;
	move.l	d2,d0
	moveq	#1,d1
	asl.l	d1,d0
	add.l	-$C(a5),d0
	move.l	d0,-$C(a5)
;            
	bra	L979
L954
;            if (ctx->Unpack.SwapBytes) 
	move.l	a4,a1
	add.l	#$E65E,a1
	tst.b	$18(a1)
	beq.b	L959
L955
;               for (j=0;
	moveq	#0,d0
	bra.b	L957
L956
;                  GLshort value = ((GLshort*)src)[
	move.w	0(a0,d0.l*2),d3
;                  value = ((value >> 8) & 0xff) | 
	move.w	d3,d1
	ext.l	d1
	moveq	#$8,d4
	asr.l	d4,d1
	and.l	#$FF,d1
	ext.l	d3
	and.l	#$FF,d3
	moveq	#$8,d4
	asl.l	d4,d3
	or.l	d3,d1
;                  *fDst++ = SHORT_TO_FLOAT(value);
	ext.l	d1
	fmove.l	d1,fp0
	fmul.s	#$.40000000,fp0
	fadd.s	#$.3F800000,fp0
	fmul.s	#$.37800080,fp0
	fmove.s	fp0,(a2)+
	addq.l	#1,d0
L957
	cmp.l	d2,d0
	blt.b	L956
L958
	bra.b	L962
L959
;               for (j=0;
	moveq	#0,d0
	bra.b	L961
L960
;                  *fDst++ = SHORT_TO_FLOAT(((GLsho
	move.w	0(a0,d0.l*2),d1
	ext.l	d1
	fmove.l	d1,fp0
	fmul.s	#$.40000000,fp0
	fadd.s	#$.3F800000,fp0
	fmul.s	#$.37800080,fp0
	fmove.s	fp0,(a2)+
	addq.l	#1,d0
L961
	cmp.l	d2,d0
	blt.b	L960
L962
;            
	bra	L979
L963
;            if (ctx->Unpack.SwapBytes) 
	move.l	a4,a1
	add.l	#$E65E,a1
	tst.b	$18(a1)
	beq.b	L968
L964
;               for (j=0;
	moveq	#0,d0
	bra.b	L966
L965
;                  GLint value = ((GLint*)src)[j];
	move.l	0(a0,d0.l*4),d1
;         case GL_BYTE:
	move.l	d1,d3
	moveq	#$18,d4
	asr.l	d4,d3
	and.l	#$FF,d3
	move.l	d1,d4
	moveq	#$8,d6
	asr.l	d6,d4
	and.l	#$FF00,d4
	or.l	d4,d3
	move.l	d1,d4
	moveq	#$8,d6
	asl.l	d6,d4
	and.l	#$FF0000,d4
	or.l	d4,d3
	moveq	#$18,d4
	asl.l	d4,d1
	and.l	#-$1000000,d1
	or.l	d3,d1
;                  *fDst++ = INT_TO_FLOAT(value);
	fmove.l	d1,fp0
	fmul.s	#$.40000000,fp0
	fadd.s	#$.3F800000,fp0
	fmul.s	#$.2F800000,fp0
	fmove.s	fp0,(a2)+
	addq.l	#1,d0
L966
	cmp.l	d2,d0
	blt.b	L965
L967
	bra.b	L971
L968
;               for (j=0;
	moveq	#0,d0
	bra.b	L970
L969
;                  *fDst++ = INT_TO_FLOAT(((GLint*)
	fmove.l	0(a0,d0.l*4),fp0
	fmul.s	#$.40000000,fp0
	fadd.s	#$.3F800000,fp0
	fmul.s	#$.2F800000,fp0
	fmove.s	fp0,(a2)+
	addq.l	#1,d0
L970
	cmp.l	d2,d0
	blt.b	L969
L971
;            iDst += width;
	move.l	d2,d0
	moveq	#2,d1
	asl.l	d1,d0
	add.l	-$10(a5),d0
	move.l	d0,-$10(a5)
;            
	bra	L979
L972
;         MEMCPY( 
	move.l	d2,d0
	moveq	#2,d1
	asl.l	d1,d0
	move.l	d0,-(a7)
	move.l	a0,-(a7)
	move.l	-$10(a5),-(a7)
	jsr	_q_memcpy
	add.w	#$C,a7
;            if (ctx->Unpack.SwapBytes) 
	move.l	a4,a0
	add.l	#$E65E,a0
	tst.b	$18(a0)
	beq.b	L974
L973
;               gl_swap4( iDst, width );
	move.l	d2,-(a7)
	move.l	-$10(a5),-(a7)
	jsr	_gl_swap4
	addq.w	#$8,a7
L974
;            iDst += width;
	move.l	d2,d0
	moveq	#2,d1
	asl.l	d1,d0
	add.l	-$10(a5),d0
	move.l	d0,-$10(a5)
;            
	bra.b	L979
L975
;        MEMCPY( f
	move.l	d2,d0
	moveq	#2,d1
	asl.l	d1,d0
	move.l	d0,-(a7)
	move.l	a0,-(a7)
	move.l	a2,-(a7)
	jsr	_q_memcpy
	add.w	#$C,a7
;            if (ctx->Unpack.SwapBytes) 
	move.l	a4,a0
	add.l	#$E65E,a0
	tst.b	$18(a0)
	beq.b	L977
L976
;               gl_swap4( (GLuint*) fDst, width );
	move.l	d2,-(a7)
	move.l	a2,-(a7)
	jsr	_gl_swap4
	addq.w	#$8,a7
L977
;            fDst += width;
	move.l	d2,d0
	moveq	#2,d1
	asl.l	d1,d0
	add.l	d0,a2
;            
	bra.b	L979
L978
;            gl_problem(ctx, "unpack_depth_image type" );
	move.l	#L928,-(a7)
	move.l	a4,-(a7)
	jsr	_gl_problem
	addq.w	#$8,a7
	move.l	-4(a5),d0
	movem.l	(a7)+,d2-d7/a2-a4
	unlk	a5
	rts
L979
	addq.l	#1,d5
L980
	cmp.l	d7,d5
	blt	L940
L981
;            return 
	move.l	-4(a5),d0
	movem.l	(a7)+,d2-d7/a2-a4
	unlk	a5
	rts

L928
	dc.b	'unpack_depth_image type',0

	SECTION "_unpack_stencil_image:0",CODE


;static struct gl_image *unpack_stencil_image( GLcontext *ctx, GLenum
_unpack_stencil_image
L1035	EQU	-$24
	link	a5,#L1035
	movem.l	d2-d7/a2-a4,-(a7)
	movem.l	$10(a5),d2/d5
	move.l	$C(a5),d7
	move.l	$8(a5),a4
L985
;   image = alloc_image();
	jsr	_alloc_image
	move.l	d0,-4(a5)
;   if (image) 
	tst.l	-4(a5)
	beq.b	L989
L986
;      image->Width = width;
	move.l	-4(a5),a0
	move.l	d2,(a0)
;      image->Height = height;
	move.l	-4(a5),a0
	move.l	d5,4(a0)
;      image->Depth = 1;
	move.l	-4(a5),a0
	move.l	#1,$8(a0)
;      image->Components = 1;
	move.l	-4(a5),a0
	move.l	#1,$C(a0)
;      image->Format = GL_STENCIL_INDEX;
	move.l	-4(a5),a0
	move.l	#$1901,$10(a0)
;      image->Type = GL_UNSIGNED_BYTE;
	move.l	-4(a5),a0
	move.l	#$1401,$14(a0)
;      image->Data = malloc( width * height * sizeof(GLubyte));
	move.l	d2,d0
	muls.l	d5,d0
	move.l	d0,-(a7)
	jsr	_malloc
	addq.w	#4,a7
	move.l	-4(a5),a1
	move.l	d0,$18(a1)
;      image->RefCount = 0;
	move.l	-4(a5),a0
	clr.l	$1E(a0)
;      if (!image->Data)
	move.l	-4(a5),a1
	tst.l	$18(a1)
	bne.b	L988
L987
	move.l	-4(a5),d0
	movem.l	(a7)+,d2-d7/a2-a4
	unlk	a5
	rts
L988
;         return 
	bra.b	L990
L989
	moveq	#0,d0
	movem.l	(a7)+,d2-d7/a2-a4
	unlk	a5
	rts
L990
;   dst = (GLubyte *) image->Data;
	move.l	-4(a5),a0
	move.l	$18(a0),a2
;   for (i=0;
	moveq	#0,d4
	bra	L1033
L991
;      GLvoid *src = gl_pixel_addr_in_image( &ctx->Unpack, pixe
	clr.l	-(a7)
	move.l	d4,-(a7)
	clr.l	-(a7)
	move.l	d7,-(a7)
	pea	$1901.w
	move.l	d5,-(a7)
	move.l	d2,-(a7)
	move.l	$18(a5),-(a7)
	move.l	a4,a0
	add.l	#$E65E,a0
	pea	(a0)
	jsr	_gl_pixel_addr_in_image
	add.w	#$24,a7
	move.l	d0,a0
;      if (!src) 
	cmp.w	#0,a0
	bne.b	L993
L992
	move.l	-4(a5),d0
	movem.l	(a7)+,d2-d7/a2-a4
	unlk	a5
	rts
L993
;      switch (type)
	move.l	d7,d0
	sub.l	#$1400,d0
	cmp.l	#6,d0
	bhi	L1031
	move.l	L1036(pc,d0.l*4),a1
	jmp	(a1)
L1036
	dc.l	L994
	dc.l	L994
	dc.l	L995
	dc.l	L995
	dc.l	L1004
	dc.l	L1013
	dc.l	L1022
;         
L994
;         MEMCPY( 
	move.l	d2,-(a7)
	move.l	a0,-(a7)
	move.l	a2,-(a7)
	jsr	_q_memcpy
	add.w	#$C,a7
;            dst += width * sizeof(GLubyte);
	add.l	d2,a2
;            
	bra	L1032
L995
;            if (ctx->Unpack.SwapBytes) 
	move.l	a4,a1
	add.l	#$E65E,a1
	tst.b	$18(a1)
	beq.b	L1000
L996
;               for (j=0;
	moveq	#0,d0
	bra.b	L998
L997
;                  *dst++ = (((GLushort*)src)[j] & 
	moveq	#0,d1
	move.w	0(a0,d0.l*2),d1
	and.l	#$FF00,d1
	moveq	#$8,d3
	asr.l	d3,d1
	move.b	d1,(a2)+
	addq.l	#1,d0
L998
	cmp.l	d2,d0
	blt.b	L997
L999
	bra.b	L1003
L1000
;               for (j=0;
	moveq	#0,d0
	bra.b	L1002
L1001
;                  *dst++ = (((GLushort*)src)[j]) &
	moveq	#0,d1
	move.w	0(a0,d0.l*2),d1
	and.l	#$FF,d1
	move.b	d1,(a2)+
	addq.l	#1,d0
L1002
	cmp.l	d2,d0
	blt.b	L1001
L1003
;            
	bra	L1032
L1004
;            if (ctx->Unpack.SwapBytes) 
	move.l	a4,a1
	add.l	#$E65E,a1
	tst.b	$18(a1)
	beq.b	L1009
L1005
;               for (j=0;
	moveq	#0,d0
	bra.b	L1007
L1006
;                  *dst++ = (((GLuint*)src)[j] & 0x
	move.l	0(a0,d0.l*4),d1
	and.l	#-$1000000,d1
	moveq	#$8,d3
	lsr.l	d3,d1
	move.b	d1,(a2)+
	addq.l	#1,d0
L1007
	cmp.l	d2,d0
	blt.b	L1006
L1008
	bra.b	L1012
L1009
;               for (j=0;
	moveq	#0,d0
	bra.b	L1011
L1010
;                  *dst++ = (((GLuint*)src)[j]) & 0
	move.l	0(a0,d0.l*4),d1
	and.l	#$FF,d1
	move.b	d1,(a2)+
	addq.l	#1,d0
L1011
	cmp.l	d2,d0
	blt.b	L1010
L1012
;            
	bra	L1032
L1013
;            if (ctx->Unpack.SwapBytes) 
	move.l	a4,a1
	add.l	#$E65E,a1
	tst.b	$18(a1)
	beq.b	L1018
L1014
;               for (j=0;
	moveq	#0,d0
	bra.b	L1016
L1015
;                  *dst++ = (((GLuint*)src)[j] & 0x
	move.l	0(a0,d0.l*4),d1
	and.l	#-$1000000,d1
	moveq	#$8,d3
	lsr.l	d3,d1
	move.b	d1,(a2)+
	addq.l	#1,d0
L1016
	cmp.l	d2,d0
	blt.b	L1015
L1017
	bra.b	L1021
L1018
;               for (j=0;
	moveq	#0,d0
	bra.b	L1020
L1019
;                  *dst++ = (((GLuint*)src)[j]) & 0
	move.l	0(a0,d0.l*4),d1
	and.l	#$FF,d1
	move.b	d1,(a2)+
	addq.l	#1,d0
L1020
	cmp.l	d2,d0
	blt.b	L1019
L1021
;            
	bra	L1032
L1022
;            if (ctx->Unpack.SwapBytes) 
	move.l	a4,a1
	add.l	#$E65E,a1
	tst.b	$18(a1)
	beq.b	L1027
L1023
;               for (j=0;
	moveq	#0,d0
	bra.b	L1025
L1024
;                  GLint value = ((GLuint*)src)[j];
	move.l	0(a0,d0.l*4),-$1C(a5)
;                  value = ((value & 0xff000000) >>
	move.l	-$1C(a5),d1
	and.l	#-$1000000,d1
	moveq	#$18,d3
	lsr.l	d3,d1
	move.l	-$1C(a5),d3
	and.l	#$FF0000,d3
	moveq	#$8,d6
	asr.l	d6,d3
	or.l	d3,d1
	move.l	-$1C(a5),d3
	and.l	#$FF00,d3
	moveq	#$8,d6
	asl.l	d6,d3
	or.l	d3,d1
	move.l	-$1C(a5),d3
	and.l	#$FF,d3
	moveq	#$18,d6
	asl.l	d6,d3
	or.l	d3,d1
	move.l	d1,-$1C(a5)
;                  fvalue = *((GLfloat*) &value);
;                  *dst++ = ((GLint) fvalue) & 0xff;
	fmove.s	-$1C(a5),fp0
	fmove.l	fp0,d1
	and.l	#$FF,d1
	move.b	d1,(a2)+
	addq.l	#1,d0
L1025
	cmp.l	d2,d0
	blt.b	L1024
L1026
	bra.b	L1030
L1027
;               for (j=0;
	moveq	#0,d0
	bra.b	L1029
L1028
;                  GLfloat fvalue = ((GLfloat *)src)
;                  *dst++ = ((GLint) fvalue) & 0xff;
	fmove.s	0(a0,d0.l*4),fp0
	fmove.l	fp0,d1
	and.l	#$FF,d1
	move.b	d1,(a2)+
	addq.l	#1,d0
L1029
	cmp.l	d2,d0
	blt.b	L1028
L1030
;            
	bra.b	L1032
L1031
;            gl_problem(ctx, "unpack_stencil_image type" )
	move.l	#L984,-(a7)
	move.l	a4,-(a7)
	jsr	_gl_problem
	addq.w	#$8,a7
	move.l	-4(a5),d0
	movem.l	(a7)+,d2-d7/a2-a4
	unlk	a5
	rts
L1032
	addq.l	#1,d4
L1033
	cmp.l	d5,d4
	blt	L991
L1034
;            return 
	move.l	-4(a5),d0
	movem.l	(a7)+,d2-d7/a2-a4
	unlk	a5
	rts

L984
	dc.b	'unpack_stencil_image type',0

	SECTION "_unpack_bitmap:0",CODE


;static struct gl_image *unpack_bitmap( GLcontext *ctx, GLenum format
_unpack_bitmap
L1057	EQU	-$1C
	link	a5,#L1057
	movem.l	d2-d7/a2-a4,-(a7)
	move.l	$14(a5),d4
	move.l	$10(a5),d5
	move.l	$C(a5),d7
	move.l	$8(a5),a4
L1037
;   bytes = ((width+7)/8 * height);
	move.l	d5,d0
	addq.l	#7,d0
	divsl.l	#$8,d0
	muls.l	d4,d0
	move.l	d0,d6
;   if (bytes>0 && pixels!=NULL) 
	move.l	d6,d0
	cmp.l	#0,d0
	ble	L1052
L1038
	move.l	$18(a5),a0
	cmp.w	#0,a0
	beq	L1052
L1039
;      buffer = (GLubyte *) malloc( bytes );
	move.l	d6,-(a7)
	jsr	_malloc
	addq.w	#4,a7
	move.l	d0,a3
;      if (!buffer) 
	cmp.w	#0,a3
	bne.b	L1041
L1040
	moveq	#0,d0
	movem.l	(a7)+,d2-d7/a2-a4
	unlk	a5
	rts
L1041
;      width_in_bytes = CEILING( width, 8 );
	move.l	d5,d0
	divsl.l	#$8,d1:d0
	tst.l	d1
	bne.b	L1043
L1042
	move.l	d5,d3
	divsl.l	#$8,d3
	bra.b	L1044
L1043
	move.l	d5,d3
	divsl.l	#$8,d3
	addq.l	#1,d3
L1044
;      dst = buffer;
	move.l	a3,a2
;      for (i=0;
	moveq	#0,d2
	bra.b	L1048
L1045
;         GLvoid *src = gl_pixel_addr_in_image( &ctx->Unpack
	clr.l	-(a7)
	move.l	d2,-(a7)
	clr.l	-(a7)
	pea	$1A00.w
	pea	$1900.w
	move.l	d4,-(a7)
	move.l	d5,-(a7)
	move.l	$18(a5),-(a7)
	move.l	a4,a0
	add.l	#$E65E,a0
	pea	(a0)
	jsr	_gl_pixel_addr_in_image
	add.w	#$24,a7
	move.l	d0,a0
;         if (!src) 
	cmp.w	#0,a0
	bne.b	L1047
L1046
;            free(buffer);
	move.l	a3,-(a7)
	jsr	_free
	addq.w	#4,a7
	moveq	#0,d0
	movem.l	(a7)+,d2-d7/a2-a4
	unlk	a5
	rts
L1047
;         MEMCPY( dst, src,
	move.l	d3,-(a7)
	move.l	a0,-(a7)
	move.l	a2,-(a7)
	jsr	_q_memcpy
	add.w	#$C,a7
;         dst += width_in_bytes;
	add.l	d3,a2
	addq.l	#1,d2
L1048
	cmp.l	d4,d2
	blt.b	L1045
L1049
;      if (ctx->Unpack.LsbFirst) 
	move.l	a4,a0
	add.l	#$E65E,a0
	tst.b	$19(a0)
	beq.b	L1051
L1050
;         gl_flip_bytes( buffer, bytes );
	move.l	d6,-(a7)
	move.l	a3,-(a7)
	jsr	_gl_flip_bytes
	addq.w	#$8,a7
L1051
	bra.b	L1053
L1052
;      buffer = NULL;
	sub.l	a3,a3
L1053
;   image = alloc_image();
	jsr	_alloc_image
	move.l	d0,a0
;   if (image) 
	cmp.w	#0,a0
	beq.b	L1055
L1054
;      image->Width = width;
	move.l	d5,(a0)
;      image->Height = height;
	move.l	d4,4(a0)
;      image->Depth = 1;
	move.l	#1,$8(a0)
;      image->Components = 0;
	clr.l	$C(a0)
;      image->Format = format;
	move.l	d7,$10(a0)
;      image->Type = GL_BITMAP;
	move.l	#$1A00,$14(a0)
;      image->Data = buffer;
	move.l	a3,$18(a0)
;      image->RefCount = 0;
	clr.l	$1E(a0)
	bra.b	L1056
L1055
;      free( buffer );
	move.l	a3,-(a7)
	jsr	_free
	addq.w	#4,a7
	moveq	#0,d0
	movem.l	(a7)+,d2-d7/a2-a4
	unlk	a5
	rts
L1056
	move.l	a0,d0
	movem.l	(a7)+,d2-d7/a2-a4
	unlk	a5
	rts

	SECTION "_gl_unpack_polygon_stipple:0",CODE


;void gl_unpack_polygon_stipple( const GLcontext *ctx,
	XDEF	_gl_unpack_polygon_stipple
_gl_unpack_polygon_stipple
	movem.l	d2/d3/a2-a4,-(a7)
	move.l	$20(a7),a2
	move.l	$18(a7),a3
	move.l	$1C(a7),a4
L1058
;   for (i = 0;
	moveq	#0,d2
	bra.b	L1060
L1059
;      GLubyte *src = (GLubyte *) gl_pixel_addr_in_image( &ctx-
	clr.l	-(a7)
	move.l	d2,-(a7)
	clr.l	-(a7)
	pea	$1A00.w
	pea	$1900.w
	pea	$20.w
	pea	$20.w
	move.l	a4,-(a7)
	move.l	a3,a0
	add.l	#$E65E,a0
	pea	(a0)
	jsr	_gl_pixel_addr_in_image
	add.w	#$24,a7
	move.l	d0,a0
;      dest[i] = (src[0] << 24)
	moveq	#0,d0
	move.b	(a0),d0
	moveq	#$18,d1
	asl.l	d1,d0
	moveq	#0,d1
	move.b	1(a0),d1
	moveq	#$10,d3
	asl.l	d3,d1
	or.l	d1,d0
	moveq	#0,d1
	move.b	2(a0),d1
	moveq	#$8,d3
	asl.l	d3,d1
	or.l	d1,d0
	moveq	#0,d1
	move.b	3(a0),d1
	or.l	d1,d0
	move.l	d0,0(a2,d2.l*4)
	addq.l	#1,d2
L1060
	cmp.l	#$20,d2
	blt.b	L1059
L1061
;   if (ctx->Unpack.LsbFirst) 
	move.l	a3,a0
	add.l	#$E65E,a0
	tst.b	$19(a0)
	beq.b	L1063
L1062
;      gl_flip_bytes( (GLubyte *) dest, 32 * 4 );
	pea	$80.w
	move.l	a2,-(a7)
	jsr	_gl_flip_bytes
	addq.w	#$8,a7
L1063
	movem.l	(a7)+,d2/d3/a2-a4
	rts

	SECTION "_gl_pack_polygon_stipple:0",CODE


;void gl_pack_polygon_stipple( const GLcontext *ctx,
	XDEF	_gl_pack_polygon_stipple
_gl_pack_polygon_stipple
L1070	EQU	-$8
	link	a5,#L1070
	movem.l	d2/a2-a4,-(a7)
	move.l	$C(a5),a2
	move.l	$8(a5),a4
L1064
;   for (i = 0;
	moveq	#0,d2
	bra	L1068
L1065
;      GLubyte *dst = (GLubyte *) gl_pixel_addr_in_image( &ctx-
	clr.l	-(a7)
	move.l	d2,-(a7)
	clr.l	-(a7)
	pea	$1A00.w
	pea	$1900.w
	pea	$20.w
	pea	$20.w
	move.l	$10(a5),-(a7)
	move.l	a4,a0
	add.l	#$E644,a0
	pea	(a0)
	jsr	_gl_pixel_addr_in_image
	add.w	#$24,a7
	move.l	d0,a0
;      dst[0] = (pattern[i] >> 24) & 0xff;
	move.l	0(a2,d2.l*4),d0
	moveq	#$18,d1
	lsr.l	d1,d0
	and.l	#$FF,d0
	move.b	d0,(a0)
;      dst[1] = (pattern[i] >> 16) & 0xff;
	move.l	0(a2,d2.l*4),d0
	moveq	#$10,d1
	lsr.l	d1,d0
	and.l	#$FF,d0
	move.b	d0,1(a0)
;      dst[2] = (pattern[i] >>  8) & 0xff;
	move.l	0(a2,d2.l*4),d0
	moveq	#$8,d1
	lsr.l	d1,d0
	and.l	#$FF,d0
	move.b	d0,2(a0)
;      dst[3] = (pattern[i]      ) & 0xff;
	move.l	0(a2,d2.l*4),d0
	and.l	#$FF,d0
	move.b	d0,3(a0)
;      if (ctx->Pack.LsbFirst) 
	move.l	a4,a1
	add.l	#$E644,a1
	tst.b	$19(a1)
	beq.b	L1067
L1066
;         gl_flip_bytes( (GLubyte *) dst, 4 );
	pea	4.w
	move.l	a0,-(a7)
	jsr	_gl_flip_bytes
	addq.w	#$8,a7
L1067
	addq.l	#1,d2
L1068
	cmp.l	#$20,d2
	blt	L1065
L1069
	movem.l	(a7)+,d2/a2-a4
	unlk	a5
	rts

	SECTION "_unpack_ubyte_image:0",CODE


;static struct gl_image *unpack_ubyte_image( GLcontext *ctx,
_unpack_ubyte_image
L1106	EQU	-$26
	link	a5,#L1106
	movem.l	d2-d7/a2-a4,-(a7)
	move.l	$10(a5),d3
	move.l	$C(a5),d5
	move.l	$18(a5),d7
	move.l	$8(a5),a4
L1071
;   components = gl_components_in_format( format );
	move.l	d7,-(a7)
	jsr	_gl_components_in_format
	addq.w	#4,a7
	move.l	d0,-$C(a5)
;   width_in_bytes = width * components * sizeof(GLubyte);
	move.l	d5,d4
	muls.l	-$C(a5),d4
;   buffer = (GLubyte *) malloc( height * width_in_bytes * depth );
	move.l	d3,d0
	muls.l	d4,d0
	muls.l	$14(a5),d0
	move.l	d0,-(a7)
	jsr	_malloc
	addq.w	#4,a7
	move.l	d0,a2
;   if (!buffer) 
	cmp.w	#0,a2
	bne.b	L1073
L1072
	moveq	#0,d0
	movem.l	(a7)+,d2-d7/a2-a4
	unlk	a5
	rts
L1073
;   dst = buffer;
	move.l	a2,a3
;   for (d=0;
	moveq	#0,d6
	bra.b	L1080
L1074
;      for (i=0;
	moveq	#0,d2
	bra.b	L1078
L1075
;         GLubyte *src = (GLubyte *) gl_pixel_addr_in_image(
	clr.l	-(a7)
	move.l	d2,-(a7)
	move.l	d6,-(a7)
	pea	$1401.w
	move.l	d7,-(a7)
	move.l	d3,-(a7)
	move.l	d5,-(a7)
	move.l	$1C(a5),-(a7)
	move.l	a4,a0
	add.l	#$E65E,a0
	pea	(a0)
	jsr	_gl_pixel_addr_in_image
	add.w	#$24,a7
	move.l	d0,a0
;         if (!src) 
	cmp.w	#0,a0
	bne.b	L1077
L1076
;            free(buffer);
	move.l	a2,-(a7)
	jsr	_free
	addq.w	#4,a7
	moveq	#0,d0
	movem.l	(a7)+,d2-d7/a2-a4
	unlk	a5
	rts
L1077
;         MEMCPY( dst, src,
	move.l	d4,-(a7)
	move.l	a0,-(a7)
	move.l	a3,-(a7)
	jsr	_q_memcpy
	add.w	#$C,a7
;         dst += width_in_bytes;
	move.l	d4,d0
	add.l	a3,d0
	move.l	d0,a3
	addq.l	#1,d2
L1078
	cmp.l	d3,d2
	blt.b	L1075
L1079
	move.l	d6,d0
	addq.l	#1,d0
	move.l	d0,d6
L1080
	move.l	d6,d0
	cmp.l	$14(a5),d0
	blt.b	L1074
L1081
;   if (format == GL_BGR) 
	move.l	d7,d0
	cmp.l	#$80E0,d0
	bne.b	L1086
L1082
;      for (i=0;
	moveq	#0,d2
	bra.b	L1084
L1083
;         GLubyte b = buffer[i*3+0];
	move.l	d2,d0
	muls.l	#3,d0
	move.b	0(a2,d0.l),d4
;         GLubyte r = buffer[i*3+2];
	move.l	d2,d0
	muls.l	#3,d0
	lea	2(a2),a0
	move.b	0(a0,d0.l),d1
;         buffer[i*3+0] = r;
	move.l	d2,d0
	muls.l	#3,d0
	move.b	d1,0(a2,d0.l)
;         buffer[i*3+2] = b;
	move.l	d2,d0
	muls.l	#3,d0
	lea	2(a2),a0
	move.b	d4,0(a0,d0.l)
	addq.l	#1,d2
L1084
	move.l	d5,d0
	muls.l	d3,d0
	cmp.l	d0,d2
	blt.b	L1083
L1085
	bra	L1095
L1086
;   else if (format == GL_BGRA) 
	move.l	d7,d0
	cmp.l	#$80E1,d0
	bne.b	L1091
L1087
;      for (i=0;
	moveq	#0,d2
	bra.b	L1089
L1088
;         GLubyte b = buffer[i*4+0];
	move.l	d2,d0
	moveq	#2,d1
	asl.l	d1,d0
	move.b	0(a2,d0.l),d4
;         GLubyte r = buffer[i*4+2];
	move.l	d2,d0
	moveq	#2,d1
	asl.l	d1,d0
	lea	2(a2),a0
	move.b	0(a0,d0.l),d1
;         buffer[i*4+0] = r;
	move.l	d2,d0
	moveq	#2,d6
	asl.l	d6,d0
	move.b	d1,0(a2,d0.l)
;         buffer[i*4+2] = b;
	move.l	d2,d0
	moveq	#2,d1
	asl.l	d1,d0
	lea	2(a2),a0
	move.b	d4,0(a0,d0.l)
	addq.l	#1,d2
L1089
	move.l	d5,d0
	muls.l	d3,d0
	cmp.l	d0,d2
	blt.b	L1088
L1090
	bra	L1095
L1091
;   else if (format == GL_ABGR_EXT) 
	move.l	d7,d0
	cmp.l	#$8000,d0
	bne	L1095
L1092
;      for (i=0;
	moveq	#0,d2
	bra.b	L1094
L1093
;         GLubyte a = buffer[i*4+0];
	move.l	d2,d0
	moveq	#2,d1
	asl.l	d1,d0
	move.b	0(a2,d0.l),-$21(a5)
;         GLubyte b = buffer[i*4+1];
	move.l	d2,d0
	moveq	#2,d1
	asl.l	d1,d0
	lea	1(a2),a0
	move.b	0(a0,d0.l),-$22(a5)
;         GLubyte g = buffer[i*4+2];
	move.l	d2,d0
	moveq	#2,d1
	asl.l	d1,d0
	lea	2(a2),a0
	move.b	0(a0,d0.l),d4
;         GLubyte r = buffer[i*4+3];
	move.l	d2,d0
	moveq	#2,d1
	asl.l	d1,d0
	lea	3(a2),a0
	move.b	0(a0,d0.l),d1
;         buffer[i*4+0] = r;
	move.l	d2,d0
	moveq	#2,d6
	asl.l	d6,d0
	move.b	d1,0(a2,d0.l)
;         buffer[i*4+1] = g;
	move.l	d2,d0
	moveq	#2,d1
	asl.l	d1,d0
	lea	1(a2),a0
	move.b	d4,0(a0,d0.l)
;         buffer[i*4+2] = b;
	move.l	d2,d0
	moveq	#2,d1
	asl.l	d1,d0
	lea	2(a2),a0
	move.b	-$22(a5),0(a0,d0.l)
;         buffer[i*4+3] = a;
	move.l	d2,d0
	moveq	#2,d1
	asl.l	d1,d0
	lea	3(a2),a0
	move.b	-$21(a5),0(a0,d0.l)
	addq.l	#1,d2
L1094
	move.l	d5,d0
	muls.l	d3,d0
	cmp.l	d0,d2
	blt	L1093
L1095
;   image = alloc_image();
	jsr	_alloc_image
	move.l	d0,a3
;   if (image) 
	cmp.w	#0,a3
	beq	L1104
L1096
;      image->Width = width;
	move.l	a3,a0
	move.l	d5,(a0)
;      image->Height = height;
	move.l	a3,a0
	move.l	d3,4(a0)
;      image->Depth = depth;
	move.l	a3,a0
	move.l	$14(a5),$8(a0)
;      image->Components = components;
	move.l	a3,a0
	move.l	-$C(a5),$C(a0)
;      if (format == GL_BGR)
	move.l	d7,d0
	cmp.l	#$80E0,d0
	bne.b	L1098
L1097
;         image->Format = GL_RGB;
	move.l	a3,a0
	move.l	#$1907,$10(a0)
	bra.b	L1103
L1098
;      else if (format == GL_BGRA)
	move.l	d7,d0
	cmp.l	#$80E1,d0
	bne.b	L1100
L1099
;         image->Format = GL_RGBA;
	move.l	a3,a0
	move.l	#$1908,$10(a0)
	bra.b	L1103
L1100
;      else if (format == GL_ABGR_EXT)
	move.l	d7,d0
	cmp.l	#$8000,d0
	bne.b	L1102
L1101
;         image->Format = GL_RGBA;
	move.l	a3,a0
	move.l	#$1908,$10(a0)
	bra.b	L1103
L1102
;         image->Format = format;
	move.l	a3,a0
	move.l	d7,$10(a0)
L1103
;      image->Type = GL_UNSIGNED_BYTE;
	move.l	a3,a0
	move.l	#$1401,$14(a0)
;      image->Data = buffer;
	move.l	a3,a0
	move.l	a2,$18(a0)
;      image->RefCount = 0;
	move.l	a3,a0
	clr.l	$1E(a0)
	bra.b	L1105
L1104
;      free( buffer );
	move.l	a2,-(a7)
	jsr	_free
	addq.w	#4,a7
L1105
	move.l	a3,d0
	movem.l	(a7)+,d2-d7/a2-a4
	unlk	a5
	rts

	SECTION "_unpack_float_image:0",CODE


;static struct gl_image *unpack_float_image( GLcontext *ctx,
_unpack_float_image
L1289	EQU	-$8C
	link	a5,#L1289
	movem.l	d2-d7/a2-a4,-(a7)
	fmovem.x fp2/fp3,-(a7)
	move.l	$8(a5),a4
L1108
;   components = gl_components_in_format( format );
	move.l	$18(a5),-(a7)
	jsr	_gl_components_in_format
	addq.w	#4,a7
	move.l	d0,d3
;   elems_per_row = width * components;
	move.l	$C(a5),d2
	muls.l	d3,d2
;   image = alloc_image();
	jsr	_alloc_image
	move.l	d0,-4(a5)
;   if (image) 
	tst.l	-4(a5)
	beq	L1119
L1109
;      image->Width = width;
	move.l	-4(a5),a0
	move.l	$C(a5),(a0)
;      image->Height = height;
	move.l	-4(a5),a0
	move.l	$10(a5),4(a0)
;      image->Depth = depth;
	move.l	-4(a5),a0
	move.l	$14(a5),$8(a0)
;      image->Components = components;
	move.l	-4(a5),a0
	move.l	d3,$C(a0)
;      if (format == GL_BGR)
	move.l	$18(a5),d0
	cmp.l	#$80E0,d0
	bne.b	L1111
L1110
;         image->Format = GL_RGB;
	move.l	-4(a5),a0
	move.l	#$1907,$10(a0)
	bra.b	L1116
L1111
;      else if (format == GL_BGRA)
	move.l	$18(a5),d0
	cmp.l	#$80E1,d0
	bne.b	L1113
L1112
;         image->Format = GL_RGBA;
	move.l	-4(a5),a0
	move.l	#$1908,$10(a0)
	bra.b	L1116
L1113
;      else if (format == GL_ABGR_EXT)
	move.l	$18(a5),d0
	cmp.l	#$8000,d0
	bne.b	L1115
L1114
;         image->Format = GL_RGBA;
	move.l	-4(a5),a0
	move.l	#$1908,$10(a0)
	bra.b	L1116
L1115
;         image->Format = format;
	move.l	-4(a5),a0
	move.l	$18(a5),$10(a0)
L1116
;      image->Type = GL_FLOAT;
	move.l	-4(a5),a0
	move.l	#$1406,$14(a0)
;      image->Data = malloc( elems_per_row * height * depth * s
	move.l	d2,d0
	muls.l	$10(a5),d0
	muls.l	$14(a5),d0
	moveq	#2,d1
	asl.l	d1,d0
	move.l	d0,-(a7)
	jsr	_malloc
	addq.w	#4,a7
	move.l	-4(a5),a1
	move.l	d0,$18(a1)
;      image->RefCount = 0;
	move.l	-4(a5),a0
	clr.l	$1E(a0)
;      if (!image->Data)
	move.l	-4(a5),a1
	tst.l	$18(a1)
	bne.b	L1118
L1117
	move.l	-4(a5),d0
	fmovem.x (a7)+,fp2/fp3
	movem.l	(a7)+,d2-d7/a2-a4
	unlk	a5
	rts
L1118
;         return 
	bra.b	L1120
L1119
	moveq	#0,d0
	fmovem.x (a7)+,fp2/fp3
	movem.l	(a7)+,d2-d7/a2-a4
	unlk	a5
	rts
L1120
;   normalize = (format != GL_COLOR_INDEX) && (format != GL_STENCI
	moveq	#0,d0
	move.l	$18(a5),d1
	cmp.l	#$1900,d1
	beq.b	L1123
L1121
	move.l	$18(a5),d1
	cmp.l	#$1901,d1
	beq.b	L1123
L1122
	moveq	#1,d0
L1123
	move.b	d0,d4
;   dst = (GLfloat *) image->Data;
	move.l	-4(a5),a0
	move.l	$18(a0),a2
;   for (d=0;
	clr.l	-$1C(a5)
	bra	L1273
L1124
;      for (i=0;
	moveq	#0,d7
	bra	L1271
L1125
;         GLvoid *src = gl_pixel_addr_in_image( &ctx->Unpack
	clr.l	-(a7)
	move.l	d7,-(a7)
	move.l	-$1C(a5),-(a7)
	move.l	$1C(a5),-(a7)
	move.l	$18(a5),-(a7)
	move.l	$10(a5),-(a7)
	move.l	$C(a5),-(a7)
	move.l	$20(a5),-(a7)
	move.l	a4,a0
	add.l	#$E65E,a0
	pea	(a0)
	jsr	_gl_pixel_addr_in_image
	add.w	#$24,a7
	move.l	d0,a0
;         if (!src) 
	cmp.w	#0,a0
	bne.b	L1127
L1126
	move.l	-4(a5),d0
	fmovem.x (a7)+,fp2/fp3
	movem.l	(a7)+,d2-d7/a2-a4
	unlk	a5
	rts
L1127
;         switch (type)
	move.l	$1C(a5),d0
	cmp.l	#$8034,d0
	beq	L1245
	bgt.b	L1290
	cmp.l	#$1404,d0
	beq	L1197
	bgt.b	L1291
	cmp.l	#$1402,d0
	beq	L1163
	bgt.b	L1292
	cmp.l	#$1400,d0
	beq	L1137
	cmp.l	#$1401,d0
	beq	L1128
	bra	L1269
L1292
	bgt	L1146
L1291
	cmp.l	#$8032,d0
	beq	L1221
	bgt.b	L1293
	cmp.l	#$1405,d0
	beq	L1180
	cmp.l	#$1406,d0
	beq	L1214
	bra	L1269
L1293
	bgt	L1237
L1290
	cmp.l	#$8364,d0
	beq	L1233
	bgt.b	L1294
	cmp.l	#$8362,d0
	beq	L1225
	bgt.b	L1295
	cmp.l	#$8035,d0
	beq	L1253
	cmp.l	#$8036,d0
	beq	L1261
	bra	L1269
L1295
	bgt	L1229
L1294
	cmp.l	#$8367,d0
	beq	L1257
	bgt.b	L1296
	cmp.l	#$8365,d0
	beq	L1241
	cmp.l	#$8366,d0
	beq	L1249
	bra	L1269
L1296
	cmp.l	#$8368,d0
	beq	L1265
	bra	L1269
;            
L1128
;                  GLubyte *ubsrc = (GLubyte *) src;
;                  if (normalize) 
	tst.b	d4
	beq.b	L1133
L1129
;                     for (j=0;
	moveq	#0,d0
	bra.b	L1131
L1130
;                        *dst++ = UBYTE_TO_FL
	moveq	#0,d1
	move.b	0(a0,d0.l),d1
	fmove.l	d1,fp0
	fmul.s	#$.3B808080,fp0
	fmove.s	fp0,(a2)+
	addq.l	#1,d0
L1131
	cmp.l	d2,d0
	blt.b	L1130
L1132
	bra.b	L1136
L1133
;                     for (j=0;
	moveq	#0,d0
	bra.b	L1135
L1134
;                        *dst++ = (GLfloat) u
	moveq	#0,d1
	move.b	0(a0,d0.l),d1
	fmove.l	d1,fp0
	fmove.s	fp0,(a2)+
	addq.l	#1,d0
L1135
	cmp.l	d2,d0
	blt.b	L1134
L1136
;               
	bra	L1270
L1137
;               if (normalize) 
	tst.b	d4
	beq.b	L1142
L1138
;                  for (j=0;
	moveq	#0,d0
	bra.b	L1140
L1139
;                     *dst++ = BYTE_TO_FLOAT(((G
	move.b	0(a0,d0.l),d1
	extb.l	d1
	fmove.l	d1,fp0
	fmul.s	#$.40000000,fp0
	fadd.s	#$.3F800000,fp0
	fmul.s	#$.3B808080,fp0
	fmove.s	fp0,(a2)+
	addq.l	#1,d0
L1140
	cmp.l	d2,d0
	blt.b	L1139
L1141
	bra.b	L1145
L1142
;                  for (j=0;
	moveq	#0,d0
	bra.b	L1144
L1143
;                     *dst++ = (GLfloat) ((GLbyt
	move.b	0(a0,d0.l),d1
	extb.l	d1
	fmove.l	d1,fp0
	fmove.s	fp0,(a2)+
	addq.l	#1,d0
L1144
	cmp.l	d2,d0
	blt.b	L1143
L1145
;               
	bra	L1270
L1146
;               if (ctx->Unpack.SwapBytes) 
	move.l	a4,a1
	add.l	#$E65E,a1
	tst.b	$18(a1)
	beq.b	L1154
L1147
;                  for (j=0;
	moveq	#0,d0
	bra.b	L1152
L1148
;                     GLushort value = ((GLushor
	move.w	0(a0,d0.l*2),d3
;                     value = ((value >> 8) & 0x
	moveq	#0,d1
	move.w	d3,d1
	moveq	#$8,d5
	asr.l	d5,d1
	and.l	#$FF,d1
	and.l	#$FFFF,d3
	and.l	#$FF,d3
	moveq	#$8,d5
	asl.l	d5,d3
	or.l	d3,d1
	move.w	d1,d3
;                     if (normalize) 
	tst.b	d4
	beq.b	L1150
L1149
;                        *dst++ = USHORT_TO_F
	moveq	#0,d1
	move.w	d3,d1
	fmove.l	d1,fp0
	fmul.s	#$.37800080,fp0
	fmove.s	fp0,(a2)+
	bra.b	L1151
L1150
;                        *dst++ = (GLfloat) v
	moveq	#0,d1
	move.w	d3,d1
	fmove.l	d1,fp0
	fmove.s	fp0,(a2)+
L1151
	addq.l	#1,d0
L1152
	cmp.l	d2,d0
	blt.b	L1148
L1153
	bra.b	L1162
L1154
;                  if (normalize) 
	tst.b	d4
	beq.b	L1159
L1155
;                     for (j=0;
	moveq	#0,d0
	bra.b	L1157
L1156
;                        *dst++ = USHORT_TO_F
	moveq	#0,d1
	move.w	0(a0,d0.l*2),d1
	fmove.l	d1,fp0
	fmul.s	#$.37800080,fp0
	fmove.s	fp0,(a2)+
	addq.l	#1,d0
L1157
	cmp.l	d2,d0
	blt.b	L1156
L1158
	bra.b	L1162
L1159
;                     for (j=0;
	moveq	#0,d0
	bra.b	L1161
L1160
;                        *dst++ = (GLfloat) (
	moveq	#0,d1
	move.w	0(a0,d0.l*2),d1
	fmove.l	d1,fp0
	fmove.s	fp0,(a2)+
	addq.l	#1,d0
L1161
	cmp.l	d2,d0
	blt.b	L1160
L1162
;               
	bra	L1270
L1163
;               if (ctx->Unpack.SwapBytes) 
	move.l	a4,a1
	add.l	#$E65E,a1
	tst.b	$18(a1)
	beq.b	L1171
L1164
;                  for (j=0;
	moveq	#0,d0
	bra.b	L1169
L1165
;                     GLshort value = ((GLshort*)
	move.w	0(a0,d0.l*2),d3
;                     value = ((value >> 8) & 0x
	move.w	d3,d1
	ext.l	d1
	moveq	#$8,d5
	asr.l	d5,d1
	and.l	#$FF,d1
	ext.l	d3
	and.l	#$FF,d3
	moveq	#$8,d5
	asl.l	d5,d3
	or.l	d3,d1
	move.w	d1,d3
;                     if (normalize) 
	tst.b	d4
	beq.b	L1167
L1166
;                        *dst++ = SHORT_TO_FL
	move.w	d3,d1
	ext.l	d1
	fmove.l	d1,fp0
	fmul.s	#$.40000000,fp0
	fadd.s	#$.3F800000,fp0
	fmul.s	#$.37800080,fp0
	fmove.s	fp0,(a2)+
	bra.b	L1168
L1167
;                        *dst++ = (GLfloat) v
	move.w	d3,d1
	ext.l	d1
	fmove.l	d1,fp0
	fmove.s	fp0,(a2)+
L1168
	addq.l	#1,d0
L1169
	cmp.l	d2,d0
	blt.b	L1165
L1170
	bra.b	L1179
L1171
;                  if (normalize) 
	tst.b	d4
	beq.b	L1176
L1172
;                     for (j=0;
	moveq	#0,d0
	bra.b	L1174
L1173
;                        *dst++ = SHORT_TO_FL
	move.w	0(a0,d0.l*2),d1
	ext.l	d1
	fmove.l	d1,fp0
	fmul.s	#$.40000000,fp0
	fadd.s	#$.3F800000,fp0
	fmul.s	#$.37800080,fp0
	fmove.s	fp0,(a2)+
	addq.l	#1,d0
L1174
	cmp.l	d2,d0
	blt.b	L1173
L1175
	bra.b	L1179
L1176
;                     for (j=0;
	moveq	#0,d0
	bra.b	L1178
L1177
;                        *dst++ = (GLfloat) (
	move.w	0(a0,d0.l*2),d1
	ext.l	d1
	fmove.l	d1,fp0
	fmove.s	fp0,(a2)+
	addq.l	#1,d0
L1178
	cmp.l	d2,d0
	blt.b	L1177
L1179
;               
	bra	L1270
L1180
;               if (ctx->Unpack.SwapBytes) 
	move.l	a4,a1
	add.l	#$E65E,a1
	tst.b	$18(a1)
	beq.b	L1188
L1181
;                  for (j=0;
	moveq	#0,d0
	bra.b	L1186
L1182
;                     value = ((GLuint*)src)[j];
	move.l	0(a0,d0.l*4),d1
;                     value = ((value & 0xff0000
	move.l	d1,d3
	and.l	#-$1000000,d3
	moveq	#$18,d5
	lsr.l	d5,d3
	move.l	d1,d5
	and.l	#$FF0000,d5
	moveq	#$8,d6
	lsr.l	d6,d5
	or.l	d5,d3
	move.l	d1,d5
	and.l	#$FF00,d5
	moveq	#$8,d6
	asl.l	d6,d5
	or.l	d5,d3
	and.l	#$FF,d1
	moveq	#$18,d5
	asl.l	d5,d1
	or.l	d3,d1
;                     if (normalize) 
	tst.b	d4
	beq.b	L1184
L1183
;                        *dst++ = UINT_TO_FLO
	fmove.l	d1,fp0
	fmul.s	#$.2F800000,fp0
	fmove.s	fp0,(a2)+
	bra.b	L1185
L1184
;                        *dst++ = (GLfloat) v
	fmove.l	d1,fp0
	fmove.s	fp0,(a2)+
L1185
	addq.l	#1,d0
L1186
	cmp.l	d2,d0
	blt.b	L1182
L1187
	bra.b	L1196
L1188
;                  if (normalize) 
	tst.b	d4
	beq.b	L1193
L1189
;                     for (j=0;
	moveq	#0,d0
	bra.b	L1191
L1190
;                        *dst++ = UINT_TO_FLO
	fmove.l	0(a0,d0.l*4),fp0
	fmul.s	#$.2F800000,fp0
	fmove.s	fp0,(a2)+
	addq.l	#1,d0
L1191
	cmp.l	d2,d0
	blt.b	L1190
L1192
	bra.b	L1196
L1193
;                     for (j=0;
	moveq	#0,d0
	bra.b	L1195
L1194
;                        *dst++ = (GLfloat) (
	fmove.l	0(a0,d0.l*4),fp0
	fmove.s	fp0,(a2)+
	addq.l	#1,d0
L1195
	cmp.l	d2,d0
	blt.b	L1194
L1196
;               
	bra	L1270
L1197
;               if (ctx->Unpack.SwapBytes) 
	move.l	a4,a1
	add.l	#$E65E,a1
	tst.b	$18(a1)
	beq	L1205
L1198
;                  for (j=0;
	moveq	#0,d0
	bra	L1203
L1199
;                     value = ((GLint*)src)[j];
	move.l	0(a0,d0.l*4),d1
;                     value = ((value & 0xff0000
	move.l	d1,d3
	and.l	#-$1000000,d3
	moveq	#$18,d5
	lsr.l	d5,d3
	move.l	d1,d5
	and.l	#$FF0000,d5
	moveq	#$8,d6
	asr.l	d6,d5
	or.l	d5,d3
	move.l	d1,d5
	and.l	#$FF00,d5
	moveq	#$8,d6
	asl.l	d6,d5
	or.l	d5,d3
	and.l	#$FF,d1
	moveq	#$18,d5
	asl.l	d5,d1
	or.l	d3,d1
;                     if (normalize) 
	tst.b	d4
	beq.b	L1201
L1200
;                        *dst++ = INT_TO_FLOA
	fmove.l	d1,fp0
	fmul.s	#$.40000000,fp0
	fadd.s	#$.3F800000,fp0
	fmul.s	#$.2F800000,fp0
	fmove.s	fp0,(a2)+
	bra.b	L1202
L1201
;                        *dst++ = (GLfloat) v
	fmove.l	d1,fp0
	fmove.s	fp0,(a2)+
L1202
	addq.l	#1,d0
L1203
	cmp.l	d2,d0
	blt.b	L1199
L1204
	bra.b	L1213
L1205
;                  if (normalize) 
	tst.b	d4
	beq.b	L1210
L1206
;                     for (j=0;
	moveq	#0,d0
	bra.b	L1208
L1207
;                        *dst++ = INT_TO_FLOA
	fmove.l	0(a0,d0.l*4),fp0
	fmul.s	#$.40000000,fp0
	fadd.s	#$.3F800000,fp0
	fmul.s	#$.2F800000,fp0
	fmove.s	fp0,(a2)+
	addq.l	#1,d0
L1208
	cmp.l	d2,d0
	blt.b	L1207
L1209
	bra.b	L1213
L1210
;                     for (j=0;
	moveq	#0,d0
	bra.b	L1212
L1211
;                        *dst++ = (GLfloat) (
	fmove.l	0(a0,d0.l*4),fp0
	fmove.s	fp0,(a2)+
	addq.l	#1,d0
L1212
	cmp.l	d2,d0
	blt.b	L1211
L1213
;               
	bra	L1270
L1214
;               if (ctx->Unpack.SwapBytes) 
	move.l	a4,a1
	add.l	#$E65E,a1
	tst.b	$18(a1)
	beq.b	L1219
L1215
;                  for (j=0;
	moveq	#0,d0
	bra.b	L1217
L1216
;                     value = ((GLuint*)src)[j];
	move.l	0(a0,d0.l*4),-$36(a5)
;                     value = ((value & 0xff0000
	move.l	-$36(a5),d1
	and.l	#-$1000000,d1
	moveq	#$18,d3
	lsr.l	d3,d1
	move.l	-$36(a5),d3
	and.l	#$FF0000,d3
	moveq	#$8,d5
	asr.l	d5,d3
	or.l	d3,d1
	move.l	-$36(a5),d3
	and.l	#$FF00,d3
	moveq	#$8,d5
	asl.l	d5,d3
	or.l	d3,d1
	move.l	-$36(a5),d3
	and.l	#$FF,d3
	moveq	#$18,d5
	asl.l	d5,d3
	or.l	d3,d1
	move.l	d1,-$36(a5)
;                     *dst++ = *((GLfloat*) &val
	move.l	-$36(a5),(a2)+
	addq.l	#1,d0
L1217
	cmp.l	d2,d0
	blt.b	L1216
L1218
	bra.b	L1220
L1219
;   MEMCPY( dst, s
	move.l	d2,d0
	moveq	#2,d1
	asl.l	d1,d0
	move.l	d0,-(a7)
	move.l	a0,-(a7)
	move.l	a2,-(a7)
	jsr	_q_memcpy
	add.w	#$C,a7
;                  dst += elems_per_row;
	move.l	d2,d0
	moveq	#2,d1
	asl.l	d1,d0
	add.l	d0,a2
L1220
;               
	bra	L1270
L1221
;                  GLubyte *ubsrc = (GLubyte *) src;
	move.l	a0,a1
;                  for (j=0;
	moveq	#0,d0
	bra.b	L1223
L1222
;                     GLubyte p = ubsrc[j];
	move.b	0(a1,d0.l),d3
;                     *dst++ = ((p >> 5)      ) 
	moveq	#0,d1
	move.b	d3,d1
	moveq	#5,d5
	asr.l	d5,d1
	fmove.l	d1,fp0
	fmul.s	#$.3E124924,fp0
	fmove.s	fp0,(a2)+
;                     *dst++ = ((p >> 2) & 0x7) 
	moveq	#0,d1
	move.b	d3,d1
	moveq	#2,d5
	asr.l	d5,d1
	and.l	#7,d1
	fmove.l	d1,fp0
	fmul.s	#$.3E124924,fp0
	fmove.s	fp0,(a2)+
;                     *dst++ = ((p     ) & 0x3) 
	moveq	#0,d1
	move.b	d3,d1
	and.l	#3,d1
	fmove.l	d1,fp0
	fmul.s	#$.3EAAAAAA,fp0
	fmove.s	fp0,(a2)+
	addq.l	#1,d0
L1223
	cmp.l	d2,d0
	blt.b	L1222
L1224
;               
	bra	L1270
L1225
;                  GLubyte *ubsrc = (GLubyte *) src;
	move.l	a0,a1
;                  for (j=0;
	moveq	#0,d0
	bra	L1227
L1226
;                     GLubyte p = ubsrc[j];
	move.b	0(a1,d0.l),d3
;                     *dst++ = ((p     ) & 0x7) 
	moveq	#0,d1
	move.b	d3,d1
	and.l	#7,d1
	fmove.l	d1,fp0
	fmul.s	#$.3E124924,fp0
	fmove.s	fp0,(a2)+
;                     *dst++ = ((p >> 3) & 0x7) 
	moveq	#0,d1
	move.b	d3,d1
	moveq	#3,d5
	asr.l	d5,d1
	and.l	#7,d1
	fmove.l	d1,fp0
	fmul.s	#$.3E124924,fp0
	fmove.s	fp0,(a2)+
;                     *dst++ = ((p >> 6)      ) 
	moveq	#0,d1
	move.b	d3,d1
	moveq	#6,d3
	asr.l	d3,d1
	fmove.l	d1,fp0
	fmul.s	#$.3EAAAAAA,fp0
	fmove.s	fp0,(a2)+
	addq.l	#1,d0
L1227
	cmp.l	d2,d0
	blt.b	L1226
L1228
;               
	bra	L1270
L1229
;                  GLushort *ussrc = (GLushort *) s
	move.l	a0,a1
;                  for (j=0;
	moveq	#0,d0
	bra	L1231
L1230
;                     GLushort p = ussrc[j];
	move.w	0(a1,d0.l*2),d3
;                     *dst++ = ((p >> 11)       )
	moveq	#0,d1
	move.w	d3,d1
	moveq	#$B,d5
	asr.l	d5,d1
	fmove.l	d1,fp0
	fmul.s	#$.3D042108,fp0
	fmove.s	fp0,(a2)+
;                     *dst++ = ((p >>  5) & 0x3f)
	moveq	#0,d1
	move.w	d3,d1
	moveq	#5,d5
	asr.l	d5,d1
	and.l	#$3F,d1
	fmove.l	d1,fp0
	fmul.s	#$.3C820820,fp0
	fmove.s	fp0,(a2)+
;                     *dst++ = ((p      ) & 0x1f)
	moveq	#0,d1
	move.w	d3,d1
	and.l	#$1F,d1
	fmove.l	d1,fp0
	fmul.s	#$.3D042108,fp0
	fmove.s	fp0,(a2)+
	addq.l	#1,d0
L1231
	cmp.l	d2,d0
	blt.b	L1230
L1232
;               
	bra	L1270
L1233
;                  GLushort *ussrc = (GLushort *) s
	move.l	a0,a1
;                  for (j=0;
	moveq	#0,d0
	bra	L1235
L1234
;                     GLushort p = ussrc[j];
	move.w	0(a1,d0.l*2),d3
;                     *dst++ = ((p      ) & 0x1f)
	moveq	#0,d1
	move.w	d3,d1
	and.l	#$1F,d1
	fmove.l	d1,fp0
	fmul.s	#$.3D042108,fp0
	fmove.s	fp0,(a2)+
;                     *dst++ = ((p >>  5) & 0x3f)
	moveq	#0,d1
	move.w	d3,d1
	moveq	#5,d5
	asr.l	d5,d1
	and.l	#$3F,d1
	fmove.l	d1,fp0
	fmul.s	#$.3C820820,fp0
	fmove.s	fp0,(a2)+
;                     *dst++ = ((p >> 11)       )
	moveq	#0,d1
	move.w	d3,d1
	moveq	#$B,d3
	asr.l	d3,d1
	fmove.l	d1,fp0
	fmul.s	#$.3D042108,fp0
	fmove.s	fp0,(a2)+
	addq.l	#1,d0
L1235
	cmp.l	d2,d0
	blt.b	L1234
L1236
;               
	bra	L1270
L1237
;                  GLushort *ussrc = (GLushort *) s
	move.l	a0,a1
;                  for (j=0;
	moveq	#0,d0
	bra	L1239
L1238
;                     GLushort p = ussrc[j];
	move.w	0(a1,d0.l*2),d3
;                     *dst++ = ((p >> 12)      )
	moveq	#0,d1
	move.w	d3,d1
	moveq	#$C,d5
	asr.l	d5,d1
	fmove.l	d1,fp0
	fmul.s	#$.3D888888,fp0
	fmove.s	fp0,(a2)+
;                     *dst++ = ((p >>  8) & 0xf)
	moveq	#0,d1
	move.w	d3,d1
	moveq	#$8,d5
	asr.l	d5,d1
	and.l	#$F,d1
	fmove.l	d1,fp0
	fmul.s	#$.3D888888,fp0
	fmove.s	fp0,(a2)+
;                     *dst++ = ((p >>  4) & 0xf)
	moveq	#0,d1
	move.w	d3,d1
	moveq	#4,d5
	asr.l	d5,d1
	and.l	#$F,d1
	fmove.l	d1,fp0
	fmul.s	#$.3D888888,fp0
	fmove.s	fp0,(a2)+
;                     *dst++ = ((p      ) & 0xf)
	moveq	#0,d1
	move.w	d3,d1
	and.l	#$F,d1
	fmove.l	d1,fp0
	fmul.s	#$.3D888888,fp0
	fmove.s	fp0,(a2)+
	addq.l	#1,d0
L1239
	cmp.l	d2,d0
	blt.b	L1238
L1240
;               
	bra	L1270
L1241
;                  GLushort *ussrc = (GLushort *) s
	move.l	a0,a1
;                  for (j=0;
	moveq	#0,d0
	bra	L1243
L1242
;                     GLushort p = ussrc[j];
	move.w	0(a1,d0.l*2),d3
;                     *dst++ = ((p      ) & 0xf)
	moveq	#0,d1
	move.w	d3,d1
	and.l	#$F,d1
	fmove.l	d1,fp0
	fmul.s	#$.3D888888,fp0
	fmove.s	fp0,(a2)+
;                     *dst++ = ((p >>  4) & 0xf)
	moveq	#0,d1
	move.w	d3,d1
	moveq	#4,d5
	asr.l	d5,d1
	and.l	#$F,d1
	fmove.l	d1,fp0
	fmul.s	#$.3D888888,fp0
	fmove.s	fp0,(a2)+
;                     *dst++ = ((p >>  8) & 0xf)
	moveq	#0,d1
	move.w	d3,d1
	moveq	#$8,d5
	asr.l	d5,d1
	and.l	#$F,d1
	fmove.l	d1,fp0
	fmul.s	#$.3D888888,fp0
	fmove.s	fp0,(a2)+
;                     *dst++ = ((p >> 12)      )
	moveq	#0,d1
	move.w	d3,d1
	moveq	#$C,d3
	asr.l	d3,d1
	fmove.l	d1,fp0
	fmul.s	#$.3D888888,fp0
	fmove.s	fp0,(a2)+
	addq.l	#1,d0
L1243
	cmp.l	d2,d0
	blt.b	L1242
L1244
;               
	bra	L1270
L1245
;                  GLushort *ussrc = (GLushort *) s
	move.l	a0,a1
;                  for (j=0;
	moveq	#0,d0
	bra	L1247
L1246
;                     GLushort p = ussrc[j];
	move.w	0(a1,d0.l*2),d3
;                     *dst++ = ((p >> 11)       )
	moveq	#0,d1
	move.w	d3,d1
	moveq	#$B,d5
	asr.l	d5,d1
	fmove.l	d1,fp0
	fmul.s	#$.3D042108,fp0
	fmove.s	fp0,(a2)+
;                     *dst++ = ((p >>  6) & 0x1f)
	moveq	#0,d1
	move.w	d3,d1
	moveq	#6,d5
	asr.l	d5,d1
	and.l	#$1F,d1
	fmove.l	d1,fp0
	fmul.s	#$.3D042108,fp0
	fmove.s	fp0,(a2)+
;                     *dst++ = ((p >>  1) & 0x1f)
	moveq	#0,d1
	move.w	d3,d1
	moveq	#1,d5
	asr.l	d5,d1
	and.l	#$1F,d1
	fmove.l	d1,fp0
	fmul.s	#$.3D042108,fp0
	fmove.s	fp0,(a2)+
;                     *dst++ = ((p      ) & 0x1)
	moveq	#0,d1
	move.w	d3,d1
	and.l	#1,d1
	fmove.l	d1,fp0
	fmul.s	#$.3F800000,fp0
	fmove.s	fp0,(a2)+
	addq.l	#1,d0
L1247
	cmp.l	d2,d0
	blt.b	L1246
L1248
;               
	bra	L1270
L1249
;                  GLushort *ussrc = (GLushort *) s
	move.l	a0,a1
;                  for (j=0;
	moveq	#0,d0
	bra	L1251
L1250
;                     GLushort p = ussrc[j];
	move.w	0(a1,d0.l*2),d3
;                     *dst++ = ((p      ) & 0x1f)
	moveq	#0,d1
	move.w	d3,d1
	and.l	#$1F,d1
	fmove.l	d1,fp0
	fmul.s	#$.3D042108,fp0
	fmove.s	fp0,(a2)+
;                     *dst++ = ((p >>  5) & 0x1f)
	moveq	#0,d1
	move.w	d3,d1
	moveq	#5,d5
	asr.l	d5,d1
	and.l	#$1F,d1
	fmove.l	d1,fp0
	fmul.s	#$.3D042108,fp0
	fmove.s	fp0,(a2)+
;                     *dst++ = ((p >> 10) & 0x1f)
	moveq	#0,d1
	move.w	d3,d1
	moveq	#$A,d5
	asr.l	d5,d1
	and.l	#$1F,d1
	fmove.l	d1,fp0
	fmul.s	#$.3D042108,fp0
	fmove.s	fp0,(a2)+
;                     *dst++ = ((p >> 15)       )
	moveq	#0,d1
	move.w	d3,d1
	moveq	#$F,d3
	asr.l	d3,d1
	fmove.l	d1,fp0
	fmul.s	#$.3F800000,fp0
	fmove.s	fp0,(a2)+
	addq.l	#1,d0
L1251
	cmp.l	d2,d0
	blt.b	L1250
L1252
;               
	bra	L1270
L1253
;                  GLuint *uisrc = (GLuint *) src;
	move.l	a0,a1
;                  for (j=0;
	moveq	#0,d0
	bra	L1255
L1254
;                     GLuint p = uisrc[j];
	move.l	0(a1,d0.l*4),d1
;                     *dst++ = ((p >> 24)       )
	move.l	d1,d3
	moveq	#$18,d5
	lsr.l	d5,d3
	fmove.l	d3,fp0
	fmul.s	#$.3B808080,fp0
	fmove.s	fp0,(a2)+
;                     *dst++ = ((p >> 16) & 0xff)
	move.l	d1,d3
	moveq	#$10,d5
	lsr.l	d5,d3
	and.l	#$FF,d3
	fmove.l	d3,fp0
	fmul.s	#$.3B808080,fp0
	fmove.s	fp0,(a2)+
;                     *dst++ = ((p >>  8) & 0xff)
	move.l	d1,d3
	moveq	#$8,d5
	lsr.l	d5,d3
	and.l	#$FF,d3
	fmove.l	d3,fp0
	fmul.s	#$.3B808080,fp0
	fmove.s	fp0,(a2)+
;                     *dst++ = ((p      ) & 0xff)
	and.l	#$FF,d1
	fmove.l	d1,fp0
	fmul.s	#$.3F800000,fp0
	fmove.s	fp0,(a2)+
	addq.l	#1,d0
L1255
	cmp.l	d2,d0
	blt.b	L1254
L1256
;               
	bra	L1270
L1257
;                  GLuint *uisrc = (GLuint *) src;
	move.l	a0,a1
;                  for (j=0;
	moveq	#0,d0
	bra	L1259
L1258
;                     GLuint p = uisrc[j];
	move.l	0(a1,d0.l*4),d1
;                     *dst++ = ((p      ) & 0xff)
	move.l	d1,d3
	and.l	#$FF,d3
	fmove.l	d3,fp0
	fmul.s	#$.3F800000,fp0
	fmove.s	fp0,(a2)+
;                     *dst++ = ((p >>  8) & 0xff)
	move.l	d1,d3
	moveq	#$8,d5
	lsr.l	d5,d3
	and.l	#$FF,d3
	fmove.l	d3,fp0
	fmul.s	#$.3B808080,fp0
	fmove.s	fp0,(a2)+
;                     *dst++ = ((p >> 16) & 0xff)
	move.l	d1,d3
	moveq	#$10,d5
	lsr.l	d5,d3
	and.l	#$FF,d3
	fmove.l	d3,fp0
	fmul.s	#$.3B808080,fp0
	fmove.s	fp0,(a2)+
;                     *dst++ = ((p >> 24)       )
	moveq	#$18,d3
	lsr.l	d3,d1
	fmove.l	d1,fp0
	fmul.s	#$.3B808080,fp0
	fmove.s	fp0,(a2)+
	addq.l	#1,d0
L1259
	cmp.l	d2,d0
	blt.b	L1258
L1260
;               
	bra	L1270
L1261
;                  GLuint *uisrc = (GLuint *) src;
	move.l	a0,a1
;                  for (j=0;
	moveq	#0,d0
	bra	L1263
L1262
;                     GLuint p = uisrc[j];
	move.l	0(a1,d0.l*4),d1
;                     *dst++ = ((p >> 22)       
	move.l	d1,d3
	moveq	#$16,d5
	lsr.l	d5,d3
	fmove.l	d3,fp0
	fmul.s	#$.3A802008,fp0
	fmove.s	fp0,(a2)+
;                     *dst++ = ((p >> 12) & 0x3f
	move.l	d1,d3
	moveq	#$C,d5
	lsr.l	d5,d3
	and.l	#$3FF,d3
	fmove.l	d3,fp0
	fmul.s	#$.3A802008,fp0
	fmove.s	fp0,(a2)+
;                     *dst++ = ((p >>  2) & 0x3f
	move.l	d1,d3
	moveq	#2,d5
	lsr.l	d5,d3
	and.l	#$3FF,d3
	fmove.l	d3,fp0
	fmul.s	#$.3A802008,fp0
	fmove.s	fp0,(a2)+
;                     *dst++ = ((p      ) & 0x3 
	and.l	#3,d1
	fmove.l	d1,fp0
	fmul.s	#$.3EAAAAAA,fp0
	fmove.s	fp0,(a2)+
	addq.l	#1,d0
L1263
	cmp.l	d2,d0
	blt.b	L1262
L1264
;               
	bra	L1270
L1265
;                  GLuint *uisrc = (GLuint *) src;
	move.l	a0,a1
;                  for (j=0;
	moveq	#0,d0
	bra	L1267
L1266
;                     GLuint p = uisrc[j];
	move.l	0(a1,d0.l*4),d1
;                     *dst++ = ((p      ) & 0x3f
	move.l	d1,d3
	and.l	#$3FF,d3
	fmove.l	d3,fp0
	fmul.s	#$.3A802008,fp0
	fmove.s	fp0,(a2)+
;                     *dst++ = ((p >> 10) & 0x3f
	move.l	d1,d3
	moveq	#$A,d5
	lsr.l	d5,d3
	and.l	#$3FF,d3
	fmove.l	d3,fp0
	fmul.s	#$.3A802008,fp0
	fmove.s	fp0,(a2)+
;                     *dst++ = ((p >> 20) & 0x3f
	move.l	d1,d3
	moveq	#$14,d5
	lsr.l	d5,d3
	and.l	#$3FF,d3
	fmove.l	d3,fp0
	fmul.s	#$.3A802008,fp0
	fmove.s	fp0,(a2)+
;                     *dst++ = ((p >> 30)       
	moveq	#$1E,d3
	lsr.l	d3,d1
	fmove.l	d1,fp0
	fmul.s	#$.3EAAAAAA,fp0
	fmove.s	fp0,(a2)+
	addq.l	#1,d0
L1267
	cmp.l	d2,d0
	blt.b	L1266
L1268
;               
	bra.b	L1270
L1269
;               gl_problem(ctx, "unpack_float_image ty
	move.l	#L1107,-(a7)
	move.l	a4,-(a7)
	jsr	_gl_problem
	addq.w	#$8,a7
	move.l	-4(a5),d0
	fmovem.x (a7)+,fp2/fp3
	movem.l	(a7)+,d2-d7/a2-a4
	unlk	a5
	rts
L1270
	move.l	d7,d0
	addq.l	#1,d0
	move.l	d0,d7
L1271
	move.l	d7,d0
	cmp.l	$10(a5),d0
	blt	L1125
L1272
	addq.l	#1,-$1C(a5)
L1273
	move.l	-$1C(a5),d0
	cmp.l	$14(a5),d0
	blt	L1124
L1274
;               return 
;   if (format == GL_BGR) 
	move.l	$18(a5),d0
	cmp.l	#$80E0,d0
	bne	L1279
L1275
;      GLfloat *buffer = (GLfloat *) image->Data;
	move.l	-4(a5),a1
	move.l	$18(a1),a0
;      for (i=0;
	moveq	#0,d7
	bra.b	L1277
L1276
;         GLfloat b = buffer[i*3+0];
	move.l	d7,d0
	muls.l	#3,d0
	fmove.s	0(a0,d0.l*4),fp1
;         GLfloat r = buffer[i*3+2];
	move.l	d7,d0
	muls.l	#3,d0
	lea	$8(a0),a1
	fmove.s	0(a1,d0.l*4),fp0
;         buffer[i*3+0] = r;
	move.l	d7,d0
	muls.l	#3,d0
	fmove.s	fp0,0(a0,d0.l*4)
;         buffer[i*3+2] = b;
	move.l	d7,d0
	muls.l	#3,d0
	lea	$8(a0),a1
	fmove.s	fp1,0(a1,d0.l*4)
	move.l	d7,d0
	addq.l	#1,d0
	move.l	d0,d7
L1277
	move.l	$C(a5),d0
	muls.l	$10(a5),d0
	muls.l	$14(a5),d0
	move.l	d7,d1
	cmp.l	d0,d1
	blt.b	L1276
L1278
	bra	L1288
L1279
;   else if (format == GL_BGRA) 
	move.l	$18(a5),d0
	cmp.l	#$80E1,d0
	bne	L1284
L1280
;      GLfloat *buffer = (GLfloat *) image->Data;
	move.l	-4(a5),a1
	move.l	$18(a1),a0
;      for (i=0;
	moveq	#0,d7
	bra.b	L1282
L1281
;         GLfloat b = buffer[i*4+0];
	move.l	d7,d0
	moveq	#2,d1
	asl.l	d1,d0
	fmove.s	0(a0,d0.l*4),fp1
;         GLfloat r = buffer[i*4+2];
	move.l	d7,d0
	moveq	#2,d1
	asl.l	d1,d0
	lea	$8(a0),a1
	fmove.s	0(a1,d0.l*4),fp0
;         buffer[i*4+0] = r;
	move.l	d7,d0
	moveq	#2,d1
	asl.l	d1,d0
	fmove.s	fp0,0(a0,d0.l*4)
;         buffer[i*4+2] = b;
	move.l	d7,d0
	moveq	#2,d1
	asl.l	d1,d0
	lea	$8(a0),a1
	fmove.s	fp1,0(a1,d0.l*4)
	move.l	d7,d0
	addq.l	#1,d0
	move.l	d0,d7
L1282
	move.l	$C(a5),d0
	muls.l	$10(a5),d0
	muls.l	$14(a5),d0
	move.l	d7,d1
	cmp.l	d0,d1
	blt.b	L1281
L1283
	bra	L1288
L1284
;   else if (format == GL_ABGR_EXT) 
	move.l	$18(a5),d0
	cmp.l	#$8000,d0
	bne	L1288
L1285
;      GLfloat *buffer = (GLfloat *) image->Data;
	move.l	-4(a5),a1
	move.l	$18(a1),a0
;      for (i=0;
	moveq	#0,d7
	bra	L1287
L1286
;         GLfloat a = buffer[i*4+0];
	move.l	d7,d0
	moveq	#2,d1
	asl.l	d1,d0
	fmove.s	0(a0,d0.l*4),fp3
;         GLfloat b = buffer[i*4+1];
	move.l	d7,d0
	moveq	#2,d1
	asl.l	d1,d0
	lea	4(a0),a1
	fmove.s	0(a1,d0.l*4),fp2
;         GLfloat g = buffer[i*4+2];
	move.l	d7,d0
	moveq	#2,d1
	asl.l	d1,d0
	lea	$8(a0),a1
	fmove.s	0(a1,d0.l*4),fp1
;         GLfloat r = buffer[i*4+3];
	move.l	d7,d0
	moveq	#2,d1
	asl.l	d1,d0
	lea	$C(a0),a1
	fmove.s	0(a1,d0.l*4),fp0
;         buffer[i*4+0] = r;
	move.l	d7,d0
	moveq	#2,d1
	asl.l	d1,d0
	fmove.s	fp0,0(a0,d0.l*4)
;         buffer[i*4+1] = g;
	move.l	d7,d0
	moveq	#2,d1
	asl.l	d1,d0
	lea	4(a0),a1
	fmove.s	fp1,0(a1,d0.l*4)
;         buffer[i*4+2] = b;
	move.l	d7,d0
	moveq	#2,d1
	asl.l	d1,d0
	lea	$8(a0),a1
	fmove.s	fp2,0(a1,d0.l*4)
;         buffer[i*4+3] = a;
	move.l	d7,d0
	moveq	#2,d1
	asl.l	d1,d0
	lea	$C(a0),a1
	fmove.s	fp3,0(a1,d0.l*4)
	move.l	d7,d0
	addq.l	#1,d0
	move.l	d0,d7
L1287
	move.l	$C(a5),d0
	muls.l	$10(a5),d0
	muls.l	$14(a5),d0
	move.l	d7,d1
	cmp.l	d0,d1
	blt	L1286
L1288
	move.l	-4(a5),d0
	fmovem.x (a7)+,fp2/fp3
	movem.l	(a7)+,d2-d7/a2-a4
	unlk	a5
	rts

L1107
	dc.b	'unpack_float_image type',0

	SECTION "_gl_unpack_bitmap:0",CODE


;struct gl_image *gl_unpack_bitmap( GLcontext *ctx,
	XDEF	_gl_unpack_bitmap
_gl_unpack_bitmap
	movem.l	$8(a7),d0/d1/a1
	move.l	4(a7),a0
L1297
	move.l	a1,-(a7)
	pea	$1A00.w
	pea	$1900.w
	move.l	d1,-(a7)
	move.l	d0,-(a7)
	move.l	a0,-(a7)
	jsr	_gl_unpack_image
	add.w	#$18,a7
	rts

	SECTION "_gl_unpack_image:0",CODE


;struct gl_image *gl_unpack_image( GLcontext *ctx,
	XDEF	_gl_unpack_image
_gl_unpack_image
	movem.l	d2/d3,-(a7)
	movem.l	$10(a7),d0-d3/a1
	move.l	$C(a7),a0
L1298
	move.l	a1,-(a7)
	move.l	d3,-(a7)
	move.l	d2,-(a7)
	pea	1.w
	move.l	d1,-(a7)
	move.l	d0,-(a7)
	move.l	a0,-(a7)
	jsr	_gl_unpack_image3D
	add.w	#$1C,a7
	movem.l	(a7)+,d2/d3
	rts

	SECTION "_gl_unpack_image3D:0",CODE


;struct gl_image *gl_unpack_image3D( GLcontext *ctx,
	XDEF	_gl_unpack_image3D
_gl_unpack_image3D
	movem.l	d2-d4,-(a7)
	movem.l	$20(a7),d0/d3/a1
	movem.l	$18(a7),d1/d4
	move.l	$14(a7),d2
	move.l	$10(a7),a0
L1299
;   if (width <= 0 || height <= 0 || depth <= 0) 
	cmp.l	#0,d2
	ble.b	L1302
L1300
	cmp.l	#0,d1
	ble.b	L1302
L1301
	cmp.l	#0,d4
	bgt.b	L1303
L1302
	move.l	d3,-(a7)
	move.l	d0,-(a7)
	move.l	d4,-(a7)
	move.l	d1,-(a7)
	move.l	d2,-(a7)
	jsr	_alloc_error_image
	add.w	#$14,a7
	movem.l	(a7)+,d2-d4
	rts
L1303
;   if (type==GL_BITMAP) 
	cmp.l	#$1A00,d3
	bne.b	L1308
L1304
;      if (format != GL_COLOR_INDEX && format != GL_STENCIL_IND
	cmp.l	#$1900,d0
	beq.b	L1307
L1305
	cmp.l	#$1901,d0
	beq.b	L1307
L1306
	move.l	d3,-(a7)
	move.l	d0,-(a7)
	move.l	d4,-(a7)
	move.l	d1,-(a7)
	move.l	d2,-(a7)
	jsr	_alloc_error_image
	add.w	#$14,a7
	movem.l	(a7)+,d2-d4
	rts
L1307
	move.l	a1,-(a7)
	move.l	d1,-(a7)
	move.l	d2,-(a7)
	move.l	d0,-(a7)
	move.l	a0,-(a7)
	jsr	_unpack_bitmap
	add.w	#$14,a7
	movem.l	(a7)+,d2-d4
	rts
L1308
;   else if (format==GL_DEPTH_COMPONENT) 
	cmp.l	#$1902,d0
	bne.b	L1310
L1309
	move.l	a1,-(a7)
	move.l	d1,-(a7)
	move.l	d2,-(a7)
	move.l	d3,-(a7)
	move.l	a0,-(a7)
	jsr	_unpack_depth_image
	add.w	#$14,a7
	movem.l	(a7)+,d2-d4
	rts
L1310
;   else if (format==GL_STENCIL_INDEX) 
	cmp.l	#$1901,d0
	bne.b	L1312
L1311
	move.l	a1,-(a7)
	move.l	d1,-(a7)
	move.l	d2,-(a7)
	move.l	d3,-(a7)
	move.l	a0,-(a7)
	jsr	_unpack_stencil_image
	add.w	#$14,a7
	movem.l	(a7)+,d2-d4
	rts
L1312
;   else if (type==GL_UNSIGNED_BYTE) 
	cmp.l	#$1401,d3
	bne.b	L1314
L1313
	move.l	a1,-(a7)
	move.l	d0,-(a7)
	move.l	d4,-(a7)
	move.l	d1,-(a7)
	move.l	d2,-(a7)
	move.l	a0,-(a7)
	jsr	_unpack_ubyte_image
	add.w	#$18,a7
	movem.l	(a7)+,d2-d4
	rts
L1314
	move.l	a1,-(a7)
	move.l	d3,-(a7)
	move.l	d0,-(a7)
	move.l	d4,-(a7)
	move.l	d1,-(a7)
	move.l	d2,-(a7)
	move.l	a0,-(a7)
	jsr	_unpack_float_image
	add.w	#$1C,a7
	movem.l	(a7)+,d2-d4
	rts

	SECTION "_gl_scale_bias_map_image_data:0",CODE


;void gl_scale_bias_map_image_data( const GLcontext *ctx,
	XDEF	_gl_scale_bias_map_image_data
_gl_scale_bias_map_image_data
	movem.l	d2-d4/a2-a4,-(a7)
	fmovem.x fp2/fp3/fp4,-(a7)
	movem.l	$48(a7),d1/a2
	move.l	$44(a7),a0
	move.l	$40(a7),a4
L1317
;   start = row * image->Width * image->Components;
	move.l	d1,d3
	muls.l	(a0),d3
	muls.l	$C(a0),d3
;   for (i=0;
	moveq	#0,d1
	bra	L1332
L1318
;      GLint pos = start+i;
	move.l	d3,d0
	add.l	d1,d0
;      if (image->Type == GL_UNSIGNED_BYTE) 
	move.l	$14(a0),d2
	cmp.l	#$1401,d2
	bne	L1324
L1319
;         const GLubyte *data = (GLubyte *) image->Data;
	move.l	$18(a0),a1
;         switch (image->Format)
	move.l	$10(a0),d2
	cmp.l	#$1903,d2
	beq.b	L1320
	cmp.l	#$1907,d2
	beq.b	L1321
	bra	L1322
;            
L1320
;               red   = data[pos] * (1.0F/255.0F);
	move.b	0(a1,d0.l),d0
	and.l	#$FF,d0
	fmove.l	d0,fp0
	fmul.s	#$.3B808080,fp0
;               green = 0;
	fmove.s	#$.00000000,fp2
;               blue  = 0;
	fmove.s	#$.00000000,fp1
;               alpha = 0;
	fmove.s	#$.00000000,fp3
;               
	bra	L1323
L1321
;               red   = data[pos*3+0] * (1.0F/255.0F);
	move.l	d0,d2
	muls.l	#3,d2
	add.l	a1,d2
	move.l	d2,a3
	moveq	#0,d2
	move.b	(a3),d2
	fmove.l	d2,fp0
	fmul.s	#$.3B808080,fp0
;               green = data[pos*3+1] * (1.0F/255.0F);
	moveq	#1,d2
	add.l	a1,d2
	move.l	d2,a3
	move.l	d0,d2
	muls.l	#3,d2
	add.l	a3,d2
	move.l	d2,a3
	moveq	#0,d2
	move.b	(a3),d2
	fmove.l	d2,fp2
	fmul.s	#$.3B808080,fp2
;               blue  = data[pos*3+2] * (1.0F/255.0F);
	muls.l	#3,d0
	lea	2(a1),a1
	move.b	0(a1,d0.l),d0
	and.l	#$FF,d0
	fmove.l	d0,fp1
	fmul.s	#$.3B808080,fp1
;               alpha = 0;
	fmove.s	#$.00000000,fp3
;               
	bra.b	L1323
L1322
;               gl_problem(ctx, "bad image format in g
	move.l	#L1315,-(a7)
	move.l	a4,-(a7)
	jsr	_gl_problem
	addq.w	#$8,a7
	fmovem.x (a7)+,fp2/fp3/fp4
	movem.l	(a7)+,d2-d4/a2-a4
	rts
L1323
;               return;
	bra	L1331
L1324
;      else if (image->Type == GL_FLOAT) 
	move.l	$14(a0),d2
	cmp.l	#$1406,d2
	bne	L1330
L1325
;         const GLubyte *data = (GLubyte *) image->Data;
	move.l	$18(a0),a1
;         switch (image->Format)
	move.l	$10(a0),d2
	cmp.l	#$1903,d2
	beq.b	L1326
	cmp.l	#$1907,d2
	beq.b	L1327
	bra	L1328
;            
L1326
;               red   = data[pos];
	move.b	0(a1,d0.l),d0
	and.l	#$FF,d0
	fmove.l	d0,fp0
;               green = 0;
	fmove.s	#$.00000000,fp2
;               blue  = 0;
	fmove.s	#$.00000000,fp1
;               alpha = 0;
	fmove.s	#$.00000000,fp3
;               
	bra.b	L1329
L1327
;               red   = data[pos*3+0];
	move.l	d0,d2
	muls.l	#3,d2
	add.l	a1,d2
	move.l	d2,a3
	moveq	#0,d2
	move.b	(a3),d2
	fmove.l	d2,fp0
;               green = data[pos*3+1];
	moveq	#1,d2
	add.l	a1,d2
	move.l	d2,a3
	move.l	d0,d2
	muls.l	#3,d2
	add.l	a3,d2
	move.l	d2,a3
	moveq	#0,d2
	move.b	(a3),d2
	fmove.l	d2,fp2
;               blue  = data[pos*3+2];
	muls.l	#3,d0
	lea	2(a1),a1
	move.b	0(a1,d0.l),d0
	and.l	#$FF,d0
	fmove.l	d0,fp1
;               alpha = 0;
	fmove.s	#$.00000000,fp3
;               
	bra.b	L1329
L1328
;               gl_problem(ctx, "bad image format in g
	move.l	#L1315,-(a7)
	move.l	a4,-(a7)
	jsr	_gl_problem
	addq.w	#$8,a7
	fmovem.x (a7)+,fp2/fp3/fp4
	movem.l	(a7)+,d2-d4/a2-a4
	rts
L1329
;               return;
	bra.b	L1331
L1330
;         gl_problem(ctx, "Bad image type in gl_scale_...ima
	move.l	#L1316,-(a7)
	move.l	a4,-(a7)
	jsr	_gl_problem
	addq.w	#$8,a7
	fmovem.x (a7)+,fp2/fp3/fp4
	movem.l	(a7)+,d2-d4/a2-a4
	rts
L1331
;      result[i*4+0] = (GLubyte) (red   * 255.0);
	fmul.d	#$.406FE000.00000000,fp0
	fmove.l	fp0,d0
	move.b	d0,d2
	move.l	d1,d0
	moveq	#2,d4
	asl.l	d4,d0
	move.b	d2,0(a2,d0.l)
;      result[i*4+1] = (GLubyte) (green * 255.0);
	fmove.x	fp2,fp0
	fmul.d	#$.406FE000.00000000,fp0
	fmove.l	fp0,d0
	move.b	d0,d2
	move.l	d1,d0
	moveq	#2,d4
	asl.l	d4,d0
	lea	1(a2),a1
	move.b	d2,0(a1,d0.l)
;      result[i*4+2] = (GLubyte) (blue  * 255.0);
	fmove.x	fp1,fp0
	fmul.d	#$.406FE000.00000000,fp0
	fmove.l	fp0,d0
	move.b	d0,d2
	move.l	d1,d0
	moveq	#2,d4
	asl.l	d4,d0
	lea	2(a2),a1
	move.b	d2,0(a1,d0.l)
;      result[i*4+3] = (GLubyte) (alpha * 255.0);
	fmove.x	fp3,fp0
	fmul.d	#$.406FE000.00000000,fp0
	fmove.l	fp0,d0
	move.b	d0,d2
	move.l	d1,d0
	moveq	#2,d4
	asl.l	d4,d0
	lea	3(a2),a1
	move.b	d2,0(a1,d0.l)
	addq.l	#1,d1
L1332
	cmp.l	(a0),d1
	blt	L1318
L1333
	fmovem.x (a7)+,fp2/fp3/fp4
	movem.l	(a7)+,d2-d4/a2-a4
	rts

L1316
	dc.b	'Bad image type in gl_scale_...image_data',0
L1315
	dc.b	'bad image format in gl_scale...image_data',0

	SECTION "_gl_pack_rgba_span:0",CODE


;void gl_pack_rgba_span( const GLcontext *ctx,
	XDEF	_gl_pack_rgba_span
_gl_pack_rgba_span
L1771	EQU	-$7D4C
	link	a5,#L1771
	movem.l	d2-d4/a2-a4,-(a7)
	fmovem.x fp2/fp3/fp4/fp5,-(a7)
	movem.l	$C(a5),d2/a0
	movem.l	$14(a5),d3/d4/a2
	move.l	$8(a5),a4
L1336
;   if (!ctx->Pixel.ScaleOrBiasRGBA && !ctx->Pixel.MapColorFlag &&
	move.l	a4,a1
	add.l	#$B168,a1
	tst.b	$24(a1)
	bne.b	L1341
L1337
	move.l	a4,a1
	add.l	#$B168,a1
	tst.b	$36(a1)
	bne.b	L1341
L1338
	cmp.l	#$1908,d3
	bne.b	L1341
L1339
	cmp.l	#$1401,d4
	bne.b	L1341
L1340
;MEMCPY( destinati
	moveq	#2,d0
	asl.l	d0,d2
	move.l	d2,-(a7)
	move.l	a0,-(a7)
	move.l	a2,-(a7)
	jsr	_q_memcpy
	add.w	#$C,a7
	bra	L1770
L1341
;      GLfloat rscale = 1.0F / 255.0F;
	fmove.s	#$.3B808080,fp4
;      GLfloat gscale = 1.0F / 255.0F;
	fmove.s	#$.3B808080,fp3
;      GLfloat bscale = 1.0F / 255.0F;
	fmove.s	#$.3B808080,fp2
;      GLfloat ascale = 1.0F / 255.0F;
	fmove.s	#$.3B808080,fp1
;      for (i=0;
	moveq	#0,d0
	bra.b	L1343
L1342
;         red[i]   = rgba[i][RCOMP] * rscale;
	moveq	#0,d1
	move.b	0(a0,d0.l*4),d1
	fmove.l	d1,fp0
	fmul.x	fp4,fp0
	lea	-$190C(a5),a1
	fmove.s	fp0,0(a1,d0.l*4)
;         green[i] = rgba[i][GCOMP] * gscale;
	lea	0(a0,d0.l*4),a1
	moveq	#0,d1
	move.b	1(a1),d1
	fmove.l	d1,fp0
	fmul.x	fp3,fp0
	lea	-$320C(a5),a1
	fmove.s	fp0,0(a1,d0.l*4)
;         blue[i]  = rgba[i][BCOMP] * bscale;
	lea	0(a0,d0.l*4),a1
	moveq	#0,d1
	move.b	2(a1),d1
	fmove.l	d1,fp0
	fmul.x	fp2,fp0
	lea	-$4B0C(a5),a1
	fmove.s	fp0,0(a1,d0.l*4)
;         alpha[i] = rgba[i][ACOMP] * ascale;
	lea	0(a0,d0.l*4),a1
	moveq	#0,d1
	move.b	3(a1),d1
	fmove.l	d1,fp0
	fmul.x	fp1,fp0
	lea	-$640C(a5),a1
	fmove.s	fp0,0(a1,d0.l*4)
	addq.l	#1,d0
L1343
	cmp.l	d2,d0
	blo.b	L1342
L1344
;      if (ctx->Pixel.ScaleOrBiasRGBA) 
	move.l	a4,a0
	add.l	#$B168,a0
	tst.b	$24(a0)
	beq.b	L1346
L1345
;         gl_scale_and_bias_color( ctx, n, red, green, blue,
	pea	-$640C(a5)
	pea	-$4B0C(a5)
	pea	-$320C(a5)
	pea	-$190C(a5)
	move.l	d2,-(a7)
	move.l	a4,-(a7)
	jsr	_gl_scale_and_bias_color
	add.w	#$18,a7
L1346
;      if (ctx->Pixel.MapColorFlag) 
	move.l	a4,a0
	add.l	#$B168,a0
	tst.b	$36(a0)
	beq.b	L1348
L1347
;         gl_map_color( ctx, n, red, green, blue, alpha );
	pea	-$640C(a5)
	pea	-$4B0C(a5)
	pea	-$320C(a5)
	pea	-$190C(a5)
	move.l	d2,-(a7)
	move.l	a4,-(a7)
	jsr	_gl_map_color
	add.w	#$18,a7
L1348
;      if (format==GL_LUMINANCE || format==GL_LUMINANCE_ALPHA) 
	cmp.l	#$1909,d3
	beq.b	L1350
L1349
	cmp.l	#$190A,d3
	bne.b	L1359
L1350
;         for (i=0;
	moveq	#0,d0
	bra.b	L1358
L1351
;            GLfloat sum = red[i] + green[i] + blue[i];
	lea	-$190C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	lea	-$320C(a5),a0
	fadd.s	0(a0,d0.l*4),fp0
	lea	-$4B0C(a5),a0
	fadd.s	0(a0,d0.l*4),fp0
;            luminance[i] = CLAMP( sum, 0.0F, 1.0F );
	fcmp.s	#$.00000000,fp0
	fboge.b	L1353
L1352
	fmove.s	#$.00000000,fp0
	bra.b	L1357
L1353
	fcmp.s	#$.3F800000,fp0
	fbole.b	L1355
L1354
	fmove.s	#$.3F800000,fp0
L1355
L1356
L1357
	lea	-$7D0C(a5),a0
	fmove.s	fp0,0(a0,d0.l*4)
	addq.l	#1,d0
L1358
	cmp.l	d2,d0
	blo.b	L1351
L1359
;      switch (type)
	cmp.l	#$8034,d4
	beq	L1699
	bgt.b	L1772
	cmp.l	#$1404,d4
	beq	L1579
	bgt.b	L1773
	cmp.l	#$1402,d4
	beq	L1490
	bgt.b	L1774
	cmp.l	#$1400,d4
	beq	L1403
	cmp.l	#$1401,d4
	beq	L1360
	bra	L1769
L1774
	bgt	L1445
L1773
	cmp.l	#$8032,d4
	beq	L1669
	bgt.b	L1775
	cmp.l	#$1405,d4
	beq	L1534
	cmp.l	#$1406,d4
	beq	L1624
	bra	L1769
L1775
	bgt	L1689
L1772
	cmp.l	#$8364,d4
	beq	L1684
	bgt.b	L1776
	cmp.l	#$8362,d4
	beq	L1674
	bgt.b	L1777
	cmp.l	#$8035,d4
	beq	L1709
	cmp.l	#$8036,d4
	beq	L1739
	bra	L1769
L1777
	bgt	L1679
L1776
	cmp.l	#$8367,d4
	beq	L1724
	bgt.b	L1778
	cmp.l	#$8365,d4
	beq	L1694
	cmp.l	#$8366,d4
	beq	L1704
	bra	L1769
L1778
	cmp.l	#$8368,d4
	beq	L1754
	bra	L1769
;         
L1360
;               GLubyte *dst = (GLubyte *) destination;
	move.l	a2,a0
;               switch (format)
	cmp.l	#$1909,d3
	beq	L1373
	bgt.b	L1779
	cmp.l	#$1905,d3
	beq	L1369
	bgt.b	L1780
	cmp.l	#$1903,d3
	beq.b	L1361
	cmp.l	#$1904,d3
	beq.b	L1365
	bra	L1401
L1780
	cmp.l	#$1907,d3
	beq	L1381
	cmp.l	#$1908,d3
	beq	L1385
	bra	L1401
L1779
	cmp.l	#$80E0,d3
	beq	L1389
	bgt.b	L1781
	cmp.l	#$190A,d3
	beq	L1377
	cmp.l	#$8000,d3
	beq	L1397
	bra	L1401
L1781
	cmp.l	#$80E1,d3
	beq	L1393
	bra	L1401
;                  
L1361
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1363
L1362
;                        dst[i] = FLOAT_TO_UB
	lea	-$190C(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
L1363
	cmp.l	d2,d0
	blo.b	L1362
L1364
;                     
	bra	L1402
L1365
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1367
L1366
;                        dst[i] = FLOAT_TO_UB
	lea	-$320C(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
L1367
	cmp.l	d2,d0
	blo.b	L1366
L1368
;                     
	bra	L1402
L1369
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1371
L1370
;                        dst[i] = FLOAT_TO_UB
	lea	-$4B0C(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
L1371
	cmp.l	d2,d0
	blo.b	L1370
L1372
;                     
	bra	L1402
L1373
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1375
L1374
;                        dst[i] = FLOAT_TO_UB
	lea	-$7D0C(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
L1375
	cmp.l	d2,d0
	blo.b	L1374
L1376
;                     
	bra	L1402
L1377
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1379
L1378
;                        dst[i*2+0] = FLOAT_T
	lea	-$7D0C(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	move.b	d1,d3
	move.l	d0,d1
	moveq	#1,d4
	asl.l	d4,d1
	move.b	d3,0(a0,d1.l)
;                        dst[i*2+1] = FLOAT_T
	lea	-$640C(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	move.b	d1,d3
	move.l	d0,d1
	moveq	#1,d4
	asl.l	d4,d1
	addq.l	#1,d1
	move.b	d3,0(a0,d1.l)
	addq.l	#1,d0
L1379
	cmp.l	d2,d0
	blo.b	L1378
L1380
;                     
	bra	L1402
L1381
;                     for (i=0;
	moveq	#0,d0
	bra	L1383
L1382
;                        dst[i*3+0] = FLOAT_T
	lea	-$190C(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	move.b	d1,d3
	move.l	d0,d1
	mulu.l	#3,d1
	move.b	d3,0(a0,d1.l)
;                        dst[i*3+1] = FLOAT_T
	lea	-$320C(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	move.b	d1,d3
	move.l	d0,d1
	mulu.l	#3,d1
	addq.l	#1,d1
	move.b	d3,0(a0,d1.l)
;                        dst[i*3+2] = FLOAT_T
	lea	-$4B0C(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	move.b	d1,d3
	move.l	d0,d1
	mulu.l	#3,d1
	addq.l	#2,d1
	move.b	d3,0(a0,d1.l)
	addq.l	#1,d0
L1383
	cmp.l	d2,d0
	blo	L1382
L1384
;                     
	bra	L1402
L1385
;                     for (i=0;
	moveq	#0,d0
	bra	L1387
L1386
;                        dst[i*4+0] = FLOAT_T
	lea	-$190C(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	move.b	d1,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	move.b	d3,0(a0,d1.l)
;                        dst[i*4+1] = FLOAT_T
	lea	-$320C(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	move.b	d1,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#1,d1
	move.b	d3,0(a0,d1.l)
;                        dst[i*4+2] = FLOAT_T
	lea	-$4B0C(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	move.b	d1,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#2,d1
	move.b	d3,0(a0,d1.l)
;                        dst[i*4+3] = FLOAT_T
	lea	-$640C(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	move.b	d1,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#3,d1
	move.b	d3,0(a0,d1.l)
	addq.l	#1,d0
L1387
	cmp.l	d2,d0
	blo	L1386
L1388
;                     
	bra	L1402
L1389
;                     for (i=0;
	moveq	#0,d0
	bra	L1391
L1390
;                        dst[i*3+0] = FLOAT_T
	lea	-$4B0C(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	move.b	d1,d3
	move.l	d0,d1
	mulu.l	#3,d1
	move.b	d3,0(a0,d1.l)
;                        dst[i*3+1] = FLOAT_T
	lea	-$320C(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	move.b	d1,d3
	move.l	d0,d1
	mulu.l	#3,d1
	addq.l	#1,d1
	move.b	d3,0(a0,d1.l)
;                        dst[i*3+2] = FLOAT_T
	lea	-$190C(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	move.b	d1,d3
	move.l	d0,d1
	mulu.l	#3,d1
	addq.l	#2,d1
	move.b	d3,0(a0,d1.l)
	addq.l	#1,d0
L1391
	cmp.l	d2,d0
	blo	L1390
L1392
;                     
	bra	L1402
L1393
;                     for (i=0;
	moveq	#0,d0
	bra	L1395
L1394
;                        dst[i*4+0] = FLOAT_T
	lea	-$4B0C(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	move.b	d1,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	move.b	d3,0(a0,d1.l)
;                        dst[i*4+1] = FLOAT_T
	lea	-$320C(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	move.b	d1,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#1,d1
	move.b	d3,0(a0,d1.l)
;                        dst[i*4+2] = FLOAT_T
	lea	-$190C(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	move.b	d1,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#2,d1
	move.b	d3,0(a0,d1.l)
;                        dst[i*4+3] = FLOAT_T
	lea	-$640C(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	move.b	d1,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#3,d1
	move.b	d3,0(a0,d1.l)
	addq.l	#1,d0
L1395
	cmp.l	d2,d0
	blo	L1394
L1396
;                     
	bra	L1402
L1397
;                     for (i=0;
	moveq	#0,d0
	bra	L1399
L1398
;                        dst[i*4+0] = FLOAT_T
	lea	-$640C(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	move.b	d1,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	move.b	d3,0(a0,d1.l)
;                        dst[i*4+1] = FLOAT_T
	lea	-$4B0C(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	move.b	d1,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#1,d1
	move.b	d3,0(a0,d1.l)
;                        dst[i*4+2] = FLOAT_T
	lea	-$320C(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	move.b	d1,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#2,d1
	move.b	d3,0(a0,d1.l)
;                        dst[i*4+3] = FLOAT_T
	lea	-$190C(a5),a1
	fmove.s	0(a1,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	move.b	d1,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#3,d1
	move.b	d3,0(a0,d1.l)
	addq.l	#1,d0
L1399
	cmp.l	d2,d0
	blo	L1398
L1400
;                     
	bra.b	L1402
L1401
;                     gl_problem(ctx, "bad forma
	move.l	#L1334,-(a7)
	move.l	a4,-(a7)
	jsr	_gl_problem
	addq.w	#$8,a7
L1402
;	    
	bra	L1770
L1403
;               GLbyte *dst = (GLbyte *) destination;
	move.l	a2,a0
;               switch (format)
	cmp.l	#$1909,d3
	beq	L1416
	bgt.b	L1782
	cmp.l	#$1905,d3
	beq	L1412
	bgt.b	L1783
	cmp.l	#$1903,d3
	beq.b	L1404
	cmp.l	#$1904,d3
	beq	L1408
	bra	L1443
L1783
	cmp.l	#$1907,d3
	beq	L1424
	cmp.l	#$1908,d3
	beq	L1428
	bra	L1443
L1782
	cmp.l	#$80E0,d3
	beq	L1432
	bgt.b	L1784
	cmp.l	#$190A,d3
	beq	L1420
	cmp.l	#$8000,d3
	beq	L1439
	bra	L1443
L1784
	cmp.l	#$80E1,d3
	beq	L1436
	bra	L1443
;                  
L1404
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1406
L1405
;                        dst[i] = FLOAT_TO_BY
	lea	-$190C(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
L1406
	cmp.l	d2,d0
	blo.b	L1405
L1407
;                     
	bra	L1444
L1408
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1410
L1409
;                        dst[i] = FLOAT_TO_BY
	lea	-$320C(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
L1410
	cmp.l	d2,d0
	blo.b	L1409
L1411
;                     
	bra	L1444
L1412
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1414
L1413
;                        dst[i] = FLOAT_TO_BY
	lea	-$4B0C(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
L1414
	cmp.l	d2,d0
	blo.b	L1413
L1415
;                     
	bra	L1444
L1416
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1418
L1417
;                        dst[i] = FLOAT_TO_BY
	lea	-$7D0C(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
L1418
	cmp.l	d2,d0
	blo.b	L1417
L1419
;                     
	bra	L1444
L1420
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1422
L1421
;                        dst[i*2+0] = FLOAT_T
	lea	-$7D0C(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,d3
	move.l	d0,d1
	moveq	#1,d4
	asl.l	d4,d1
	move.b	d3,0(a0,d1.l)
;                        dst[i*2+1] = FLOAT_T
	lea	-$640C(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,d3
	move.l	d0,d1
	moveq	#1,d4
	asl.l	d4,d1
	addq.l	#1,d1
	move.b	d3,0(a0,d1.l)
	addq.l	#1,d0
L1422
	cmp.l	d2,d0
	blo.b	L1421
L1423
;                     
	bra	L1444
L1424
;                     for (i=0;
	moveq	#0,d0
	bra	L1426
L1425
;                        dst[i*3+0] = FLOAT_T
	lea	-$190C(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,d3
	move.l	d0,d1
	mulu.l	#3,d1
	move.b	d3,0(a0,d1.l)
;                        dst[i*3+1] = FLOAT_T
	lea	-$320C(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,d3
	move.l	d0,d1
	mulu.l	#3,d1
	addq.l	#1,d1
	move.b	d3,0(a0,d1.l)
;                        dst[i*3+2] = FLOAT_T
	lea	-$4B0C(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,d3
	move.l	d0,d1
	mulu.l	#3,d1
	addq.l	#2,d1
	move.b	d3,0(a0,d1.l)
	addq.l	#1,d0
L1426
	cmp.l	d2,d0
	blo	L1425
L1427
;                     
	bra	L1444
L1428
;                     for (i=0;
	moveq	#0,d0
	bra	L1430
L1429
;                        dst[i*4+0] = FLOAT_T
	lea	-$190C(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,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	move.b	d3,0(a0,d1.l)
;                        dst[i*4+1] = FLOAT_T
	lea	-$320C(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,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#1,d1
	move.b	d3,0(a0,d1.l)
;                        dst[i*4+2] = FLOAT_T
	lea	-$4B0C(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,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#2,d1
	move.b	d3,0(a0,d1.l)
;                        dst[i*4+3] = FLOAT_T
	lea	-$640C(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,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#3,d1
	move.b	d3,0(a0,d1.l)
	addq.l	#1,d0
L1430
	cmp.l	d2,d0
	blo	L1429
L1431
;                     
	bra	L1444
L1432
;                     for (i=0;
	moveq	#0,d0
	bra	L1434
L1433
;                        dst[i*3+0] = FLOAT_T
	lea	-$4B0C(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,d3
	move.l	d0,d1
	mulu.l	#3,d1
	move.b	d3,0(a0,d1.l)
;                        dst[i*3+1] = FLOAT_T
	lea	-$320C(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,d3
	move.l	d0,d1
	mulu.l	#3,d1
	addq.l	#1,d1
	move.b	d3,0(a0,d1.l)
;                        dst[i*3+2] = FLOAT_T
	lea	-$190C(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,d3
	move.l	d0,d1
	mulu.l	#3,d1
	addq.l	#2,d1
	move.b	d3,0(a0,d1.l)
	addq.l	#1,d0
L1434
	cmp.l	d2,d0
	blo	L1433
L1435
;                     
	bra	L1444
L1436
;                     for (i=0;
	moveq	#0,d0
	bra	L1438
L1437
;                        dst[i*4+0] = FLOAT_T
	lea	-$4B0C(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,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	move.b	d3,0(a0,d1.l)
;                        dst[i*4+1] = FLOAT_T
	lea	-$320C(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,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#1,d1
	move.b	d3,0(a0,d1.l)
;                        dst[i*4+2] = FLOAT_T
	lea	-$190C(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,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#2,d1
	move.b	d3,0(a0,d1.l)
;                        dst[i*4+3] = FLOAT_T
	lea	-$640C(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,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#3,d1
	move.b	d3,0(a0,d1.l)
	addq.l	#1,d0
L1438
	cmp.l	d2,d0
	blo	L1437
L1439
;                     for (i=0;
	moveq	#0,d0
	bra	L1441
L1440
;                        dst[i*4+0] = FLOAT_T
	lea	-$640C(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,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	move.b	d3,0(a0,d1.l)
;                        dst[i*4+1] = FLOAT_T
	lea	-$4B0C(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,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#1,d1
	move.b	d3,0(a0,d1.l)
;                        dst[i*4+2] = FLOAT_T
	lea	-$320C(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,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#2,d1
	move.b	d3,0(a0,d1.l)
;                        dst[i*4+3] = FLOAT_T
	lea	-$190C(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,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#3,d1
	move.b	d3,0(a0,d1.l)
	addq.l	#1,d0
L1441
	cmp.l	d2,d0
	blo	L1440
L1442
;                     
	bra.b	L1444
L1443
;                     gl_problem(ctx, "bad forma
	move.l	#L1334,-(a7)
	move.l	a4,-(a7)
	jsr	_gl_problem
	addq.w	#$8,a7
L1444
;	    
	bra	L1770
L1445
;               GLushort *dst = (GLushort *) destinati
;               switch (format)
	cmp.l	#$1909,d3
	beq	L1458
	bgt.b	L1785
	cmp.l	#$1905,d3
	beq	L1454
	bgt.b	L1786
	cmp.l	#$1903,d3
	beq.b	L1446
	cmp.l	#$1904,d3
	beq	L1450
	bra	L1486
L1786
	cmp.l	#$1907,d3
	beq	L1466
	cmp.l	#$1908,d3
	beq	L1470
	bra	L1486
L1785
	cmp.l	#$80E0,d3
	beq	L1474
	bgt.b	L1787
	cmp.l	#$190A,d3
	beq	L1462
	cmp.l	#$8000,d3
	beq	L1482
	bra	L1486
L1787
	cmp.l	#$80E1,d3
	beq	L1478
	bra	L1486
;                  
L1446
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1448
L1447
;                        dst[i] = FLOAT_TO_US
	lea	-$190C(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
L1448
	cmp.l	d2,d0
	blo.b	L1447
L1449
;                     
	bra	L1487
L1450
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1452
L1451
;                        dst[i] = FLOAT_TO_US
	lea	-$320C(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
L1452
	cmp.l	d2,d0
	blo.b	L1451
L1453
;                     
	bra	L1487
L1454
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1456
L1455
;                        dst[i] = FLOAT_TO_US
	lea	-$4B0C(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
L1456
	cmp.l	d2,d0
	blo.b	L1455
L1457
;                     
	bra	L1487
L1458
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1460
L1459
;                        dst[i] = FLOAT_TO_US
	lea	-$7D0C(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
L1460
	cmp.l	d2,d0
	blo.b	L1459
L1461
;                     
	bra	L1487
L1462
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1464
L1463
;                        dst[i*2+0] = FLOAT_T
	lea	-$7D0C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	move.w	d1,d3
	move.l	d0,d1
	moveq	#1,d4
	asl.l	d4,d1
	move.w	d3,0(a2,d1.l*2)
;                        dst[i*2+1] = FLOAT_T
	lea	-$640C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	move.w	d1,d3
	move.l	d0,d1
	moveq	#1,d4
	asl.l	d4,d1
	addq.l	#1,d1
	move.w	d3,0(a2,d1.l*2)
	addq.l	#1,d0
L1464
	cmp.l	d2,d0
	blo.b	L1463
L1465
;                     
	bra	L1487
L1466
;                     for (i=0;
	moveq	#0,d0
	bra	L1468
L1467
;                        dst[i*3+0] = FLOAT_T
	lea	-$190C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	move.w	d1,d3
	move.l	d0,d1
	mulu.l	#3,d1
	move.w	d3,0(a2,d1.l*2)
;                        dst[i*3+1] = FLOAT_T
	lea	-$320C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	move.w	d1,d3
	move.l	d0,d1
	mulu.l	#3,d1
	addq.l	#1,d1
	move.w	d3,0(a2,d1.l*2)
;                        dst[i*3+2] = FLOAT_T
	lea	-$4B0C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	move.w	d1,d3
	move.l	d0,d1
	mulu.l	#3,d1
	addq.l	#2,d1
	move.w	d3,0(a2,d1.l*2)
	addq.l	#1,d0
L1468
	cmp.l	d2,d0
	blo	L1467
L1469
;                     
	bra	L1487
L1470
;                     for (i=0;
	moveq	#0,d0
	bra	L1472
L1471
;                        dst[i*4+0] = FLOAT_T
	lea	-$190C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	move.w	d1,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	move.w	d3,0(a2,d1.l*2)
;                        dst[i*4+1] = FLOAT_T
	lea	-$320C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	move.w	d1,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#1,d1
	move.w	d3,0(a2,d1.l*2)
;                        dst[i*4+2] = FLOAT_T
	lea	-$4B0C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	move.w	d1,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#2,d1
	move.w	d3,0(a2,d1.l*2)
;                        dst[i*4+3] = FLOAT_T
	lea	-$640C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	move.w	d1,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#3,d1
	move.w	d3,0(a2,d1.l*2)
	addq.l	#1,d0
L1472
	cmp.l	d2,d0
	blo	L1471
L1473
;                     
	bra	L1487
L1474
;                     for (i=0;
	moveq	#0,d0
	bra	L1476
L1475
;                        dst[i*3+0] = FLOAT_T
	lea	-$4B0C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	move.w	d1,d3
	move.l	d0,d1
	mulu.l	#3,d1
	move.w	d3,0(a2,d1.l*2)
;                        dst[i*3+1] = FLOAT_T
	lea	-$320C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	move.w	d1,d3
	move.l	d0,d1
	mulu.l	#3,d1
	addq.l	#1,d1
	move.w	d3,0(a2,d1.l*2)
;                        dst[i*3+2] = FLOAT_T
	lea	-$190C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	move.w	d1,d3
	move.l	d0,d1
	mulu.l	#3,d1
	addq.l	#2,d1
	move.w	d3,0(a2,d1.l*2)
	addq.l	#1,d0
L1476
	cmp.l	d2,d0
	blo	L1475
L1477
;                     
	bra	L1487
L1478
;                     for (i=0;
	moveq	#0,d0
	bra	L1480
L1479
;                        dst[i*4+0] = FLOAT_T
	lea	-$4B0C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	move.w	d1,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	move.w	d3,0(a2,d1.l*2)
;                        dst[i*4+1] = FLOAT_T
	lea	-$320C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	move.w	d1,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#1,d1
	move.w	d3,0(a2,d1.l*2)
;                        dst[i*4+2] = FLOAT_T
	lea	-$190C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	move.w	d1,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#2,d1
	move.w	d3,0(a2,d1.l*2)
;                        dst[i*4+3] = FLOAT_T
	lea	-$640C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	move.w	d1,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#3,d1
	move.w	d3,0(a2,d1.l*2)
	addq.l	#1,d0
L1480
	cmp.l	d2,d0
	blo	L1479
L1481
;                     
	bra	L1487
L1482
;                     for (i=0;
	moveq	#0,d0
	bra	L1484
L1483
;                        dst[i*4+0] = FLOAT_T
	lea	-$640C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	move.w	d1,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	move.w	d3,0(a2,d1.l*2)
;                        dst[i*4+1] = FLOAT_T
	lea	-$4B0C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	move.w	d1,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#1,d1
	move.w	d3,0(a2,d1.l*2)
;                        dst[i*4+2] = FLOAT_T
	lea	-$320C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	move.w	d1,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#2,d1
	move.w	d3,0(a2,d1.l*2)
;                        dst[i*4+3] = FLOAT_T
	lea	-$190C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.477FFF00,fp0
	fmove.l	fp0,d1
	move.w	d1,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#3,d1
	move.w	d3,0(a2,d1.l*2)
	addq.l	#1,d0
L1484
	cmp.l	d2,d0
	blo	L1483
L1485
;                     
	bra.b	L1487
L1486
;                     gl_problem(ctx, "bad forma
	move.l	#L1334,-(a7)
	move.l	a4,-(a7)
	jsr	_gl_problem
	addq.w	#$8,a7
L1487
;               if (ctx->Pack.SwapBytes) 
	move.l	a4,a0
	add.l	#$E644,a0
	tst.b	$18(a0)
	beq.b	L1489
L1488
;                  gl_swap2( (GLushort *) dst, n*n )
	move.l	d2,d0
	mulu.l	d2,d0
	move.l	d0,-(a7)
	move.l	a2,-(a7)
	jsr	_gl_swap2
	addq.w	#$8,a7
L1489
;	    
	bra	L1770
L1490
;               GLshort *dst = (GLshort *) destination;
;               switch (format)
	cmp.l	#$1909,d3
	beq	L1503
	bgt.b	L1788
	cmp.l	#$1905,d3
	beq	L1499
	bgt.b	L1789
	cmp.l	#$1903,d3
	beq.b	L1491
	cmp.l	#$1904,d3
	beq	L1495
	bra	L1530
L1789
	cmp.l	#$1907,d3
	beq	L1511
	cmp.l	#$1908,d3
	beq	L1515
	bra	L1530
L1788
	cmp.l	#$80E0,d3
	beq	L1519
	bgt.b	L1790
	cmp.l	#$190A,d3
	beq	L1507
	cmp.l	#$8000,d3
	beq	L1526
	bra	L1530
L1790
	cmp.l	#$80E1,d3
	beq	L1523
	bra	L1530
;                  
L1491
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1493
L1492
;                        dst[i] = FLOAT_TO_SH
	lea	-$190C(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
L1493
	cmp.l	d2,d0
	blo.b	L1492
L1494
;                     
	bra	L1531
L1495
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1497
L1496
;                        dst[i] = FLOAT_TO_SH
	lea	-$320C(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
L1497
	cmp.l	d2,d0
	blo.b	L1496
L1498
;                     
	bra	L1531
L1499
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1501
L1500
;                        dst[i] = FLOAT_TO_SH
	lea	-$4B0C(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
L1501
	cmp.l	d2,d0
	blo.b	L1500
L1502
;                     
	bra	L1531
L1503
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1505
L1504
;                        dst[i] = FLOAT_TO_SH
	lea	-$7D0C(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
L1505
	cmp.l	d2,d0
	blo.b	L1504
L1506
;                     
	bra	L1531
L1507
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1509
L1508
;                        dst[i*2+0] = FLOAT_T
	lea	-$7D0C(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,d3
	move.l	d0,d1
	moveq	#1,d4
	asl.l	d4,d1
	move.w	d3,0(a2,d1.l*2)
;                        dst[i*2+1] = FLOAT_T
	lea	-$640C(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,d3
	move.l	d0,d1
	moveq	#1,d4
	asl.l	d4,d1
	addq.l	#1,d1
	move.w	d3,0(a2,d1.l*2)
	addq.l	#1,d0
L1509
	cmp.l	d2,d0
	blo.b	L1508
L1510
;                     
	bra	L1531
L1511
;                     for (i=0;
	moveq	#0,d0
	bra	L1513
L1512
;                        dst[i*3+0] = FLOAT_T
	lea	-$190C(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,d3
	move.l	d0,d1
	mulu.l	#3,d1
	move.w	d3,0(a2,d1.l*2)
;                        dst[i*3+1] = FLOAT_T
	lea	-$320C(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,d3
	move.l	d0,d1
	mulu.l	#3,d1
	addq.l	#1,d1
	move.w	d3,0(a2,d1.l*2)
;                        dst[i*3+2] = FLOAT_T
	lea	-$4B0C(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,d3
	move.l	d0,d1
	mulu.l	#3,d1
	addq.l	#2,d1
	move.w	d3,0(a2,d1.l*2)
	addq.l	#1,d0
L1513
	cmp.l	d2,d0
	blo	L1512
L1514
;                     
	bra	L1531
L1515
;                     for (i=0;
	moveq	#0,d0
	bra	L1517
L1516
;                        dst[i*4+0] = FLOAT_T
	lea	-$190C(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,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	move.w	d3,0(a2,d1.l*2)
;                        dst[i*4+1] = FLOAT_T
	lea	-$320C(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,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#1,d1
	move.w	d3,0(a2,d1.l*2)
;                        dst[i*4+2] = FLOAT_T
	lea	-$4B0C(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,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#2,d1
	move.w	d3,0(a2,d1.l*2)
;                        dst[i*4+3] = FLOAT_T
	lea	-$640C(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,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#3,d1
	move.w	d3,0(a2,d1.l*2)
	addq.l	#1,d0
L1517
	cmp.l	d2,d0
	blo	L1516
L1518
;                     
	bra	L1531
L1519
;                     for (i=0;
	moveq	#0,d0
	bra	L1521
L1520
;                        dst[i*3+0] = FLOAT_T
	lea	-$4B0C(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,d3
	move.l	d0,d1
	mulu.l	#3,d1
	move.w	d3,0(a2,d1.l*2)
;                        dst[i*3+1] = FLOAT_T
	lea	-$320C(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,d3
	move.l	d0,d1
	mulu.l	#3,d1
	addq.l	#1,d1
	move.w	d3,0(a2,d1.l*2)
;                        dst[i*3+2] = FLOAT_T
	lea	-$190C(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,d3
	move.l	d0,d1
	mulu.l	#3,d1
	addq.l	#2,d1
	move.w	d3,0(a2,d1.l*2)
	addq.l	#1,d0
L1521
	cmp.l	d2,d0
	blo	L1520
L1522
;                     
	bra	L1531
L1523
;                     for (i=0;
	moveq	#0,d0
	bra	L1525
L1524
;                        dst[i*4+0] = FLOAT_T
	lea	-$4B0C(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,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	move.w	d3,0(a2,d1.l*2)
;                        dst[i*4+1] = FLOAT_T
	lea	-$320C(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,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#1,d1
	move.w	d3,0(a2,d1.l*2)
;                        dst[i*4+2] = FLOAT_T
	lea	-$190C(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,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#2,d1
	move.w	d3,0(a2,d1.l*2)
;                        dst[i*4+3] = FLOAT_T
	lea	-$640C(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,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#3,d1
	move.w	d3,0(a2,d1.l*2)
	addq.l	#1,d0
L1525
	cmp.l	d2,d0
	blo	L1524
L1526
;                     for (i=0;
	moveq	#0,d0
	bra	L1528
L1527
;                        dst[i*4+0] = FLOAT_T
	lea	-$640C(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,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	move.w	d3,0(a2,d1.l*2)
;                        dst[i*4+1] = FLOAT_T
	lea	-$4B0C(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,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#1,d1
	move.w	d3,0(a2,d1.l*2)
;                        dst[i*4+2] = FLOAT_T
	lea	-$320C(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,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#2,d1
	move.w	d3,0(a2,d1.l*2)
;                        dst[i*4+3] = FLOAT_T
	lea	-$190C(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,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#3,d1
	move.w	d3,0(a2,d1.l*2)
	addq.l	#1,d0
L1528
	cmp.l	d2,d0
	blo	L1527
L1529
;                     
	bra.b	L1531
L1530
;                     gl_problem(ctx, "bad forma
	move.l	#L1334,-(a7)
	move.l	a4,-(a7)
	jsr	_gl_problem
	addq.w	#$8,a7
L1531
;               if (ctx->Pack.SwapBytes) 
	move.l	a4,a0
	add.l	#$E644,a0
	tst.b	$18(a0)
	beq.b	L1533
L1532
;                  gl_swap2( (GLushort *) dst, n*n )
	move.l	d2,d0
	mulu.l	d2,d0
	move.l	d0,-(a7)
	move.l	a2,-(a7)
	jsr	_gl_swap2
	addq.w	#$8,a7
L1533
;	    
	bra	L1770
L1534
;               GLuint *dst = (GLuint *) destination;
;               switch (format)
	cmp.l	#$1909,d3
	beq	L1547
	bgt.b	L1791
	cmp.l	#$1905,d3
	beq	L1543
	bgt.b	L1792
	cmp.l	#$1903,d3
	beq.b	L1535
	cmp.l	#$1904,d3
	beq	L1539
	bra	L1575
L1792
	cmp.l	#$1907,d3
	beq	L1555
	cmp.l	#$1908,d3
	beq	L1559
	bra	L1575
L1791
	cmp.l	#$80E0,d3
	beq	L1563
	bgt.b	L1793
	cmp.l	#$190A,d3
	beq	L1551
	cmp.l	#$8000,d3
	beq	L1571
	bra	L1575
L1793
	cmp.l	#$80E1,d3
	beq	L1567
	bra	L1575
;                  
L1535
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1537
L1536
;                        dst[i] = FLOAT_TO_UI
	lea	-$190C(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
L1537
	cmp.l	d2,d0
	blo.b	L1536
L1538
;                     
	bra	L1576
L1539
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1541
L1540
;                        dst[i] = FLOAT_TO_UI
	lea	-$320C(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
L1541
	cmp.l	d2,d0
	blo.b	L1540
L1542
;                     
	bra	L1576
L1543
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1545
L1544
;                        dst[i] = FLOAT_TO_UI
	lea	-$4B0C(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
L1545
	cmp.l	d2,d0
	blo.b	L1544
L1546
;                     
	bra	L1576
L1547
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1549
L1548
;                        dst[i] = FLOAT_TO_UI
	lea	-$7D0C(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
L1549
	cmp.l	d2,d0
	blo.b	L1548
L1550
;                     
	bra	L1576
L1551
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1553
L1552
;                        dst[i*2+0] = FLOAT_T
	lea	-$7D0C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41EFFFFF.FFE00000,fp0
	fmove.l	fp0,d3
	move.l	d0,d1
	moveq	#1,d4
	asl.l	d4,d1
	move.l	d3,0(a2,d1.l*4)
;                        dst[i*2+1] = FLOAT_T
	lea	-$640C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41EFFFFF.FFE00000,fp0
	fmove.l	fp0,d3
	move.l	d0,d1
	moveq	#1,d4
	asl.l	d4,d1
	addq.l	#1,d1
	move.l	d3,0(a2,d1.l*4)
	addq.l	#1,d0
L1553
	cmp.l	d2,d0
	blo.b	L1552
L1554
;                     
	bra	L1576
L1555
;                     for (i=0;
	moveq	#0,d0
	bra	L1557
L1556
;                        dst[i*3+0] = FLOAT_T
	lea	-$190C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41EFFFFF.FFE00000,fp0
	fmove.l	fp0,d3
	move.l	d0,d1
	mulu.l	#3,d1
	move.l	d3,0(a2,d1.l*4)
;                        dst[i*3+1] = FLOAT_T
	lea	-$320C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41EFFFFF.FFE00000,fp0
	fmove.l	fp0,d3
	move.l	d0,d1
	mulu.l	#3,d1
	addq.l	#1,d1
	move.l	d3,0(a2,d1.l*4)
;                        dst[i*3+2] = FLOAT_T
	lea	-$4B0C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41EFFFFF.FFE00000,fp0
	fmove.l	fp0,d3
	move.l	d0,d1
	mulu.l	#3,d1
	addq.l	#2,d1
	move.l	d3,0(a2,d1.l*4)
	addq.l	#1,d0
L1557
	cmp.l	d2,d0
	blo	L1556
L1558
;                     
	bra	L1576
L1559
;                     for (i=0;
	moveq	#0,d0
	bra	L1561
L1560
;                        dst[i*4+0] = FLOAT_T
	lea	-$190C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41EFFFFF.FFE00000,fp0
	fmove.l	fp0,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	move.l	d3,0(a2,d1.l*4)
;                        dst[i*4+1] = FLOAT_T
	lea	-$320C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41EFFFFF.FFE00000,fp0
	fmove.l	fp0,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#1,d1
	move.l	d3,0(a2,d1.l*4)
;                        dst[i*4+2] = FLOAT_T
	lea	-$4B0C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41EFFFFF.FFE00000,fp0
	fmove.l	fp0,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#2,d1
	move.l	d3,0(a2,d1.l*4)
;                        dst[i*4+3] = FLOAT_T
	lea	-$640C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41EFFFFF.FFE00000,fp0
	fmove.l	fp0,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#3,d1
	move.l	d3,0(a2,d1.l*4)
	addq.l	#1,d0
L1561
	cmp.l	d2,d0
	blo	L1560
L1562
;                     
	bra	L1576
L1563
;                     for (i=0;
	moveq	#0,d0
	bra	L1565
L1564
;                        dst[i*3+0] = FLOAT_T
	lea	-$4B0C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41EFFFFF.FFE00000,fp0
	fmove.l	fp0,d3
	move.l	d0,d1
	mulu.l	#3,d1
	move.l	d3,0(a2,d1.l*4)
;                        dst[i*3+1] = FLOAT_T
	lea	-$320C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41EFFFFF.FFE00000,fp0
	fmove.l	fp0,d3
	move.l	d0,d1
	mulu.l	#3,d1
	addq.l	#1,d1
	move.l	d3,0(a2,d1.l*4)
;                        dst[i*3+2] = FLOAT_T
	lea	-$190C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41EFFFFF.FFE00000,fp0
	fmove.l	fp0,d3
	move.l	d0,d1
	mulu.l	#3,d1
	addq.l	#2,d1
	move.l	d3,0(a2,d1.l*4)
	addq.l	#1,d0
L1565
	cmp.l	d2,d0
	blo	L1564
L1566
;                     
	bra	L1576
L1567
;                     for (i=0;
	moveq	#0,d0
	bra	L1569
L1568
;                        dst[i*4+0] = FLOAT_T
	lea	-$4B0C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41EFFFFF.FFE00000,fp0
	fmove.l	fp0,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	move.l	d3,0(a2,d1.l*4)
;                        dst[i*4+1] = FLOAT_T
	lea	-$320C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41EFFFFF.FFE00000,fp0
	fmove.l	fp0,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#1,d1
	move.l	d3,0(a2,d1.l*4)
;                        dst[i*4+2] = FLOAT_T
	lea	-$190C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41EFFFFF.FFE00000,fp0
	fmove.l	fp0,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#2,d1
	move.l	d3,0(a2,d1.l*4)
;                        dst[i*4+3] = FLOAT_T
	lea	-$640C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41EFFFFF.FFE00000,fp0
	fmove.l	fp0,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#3,d1
	move.l	d3,0(a2,d1.l*4)
	addq.l	#1,d0
L1569
	cmp.l	d2,d0
	blo	L1568
L1570
;                     
	bra	L1576
L1571
;                     for (i=0;
	moveq	#0,d0
	bra	L1573
L1572
;                        dst[i*4+0] = FLOAT_T
	lea	-$640C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41EFFFFF.FFE00000,fp0
	fmove.l	fp0,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	move.l	d3,0(a2,d1.l*4)
;                        dst[i*4+1] = FLOAT_T
	lea	-$4B0C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41EFFFFF.FFE00000,fp0
	fmove.l	fp0,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#1,d1
	move.l	d3,0(a2,d1.l*4)
;                        dst[i*4+2] = FLOAT_T
	lea	-$320C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41EFFFFF.FFE00000,fp0
	fmove.l	fp0,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#2,d1
	move.l	d3,0(a2,d1.l*4)
;                        dst[i*4+3] = FLOAT_T
	lea	-$190C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41EFFFFF.FFE00000,fp0
	fmove.l	fp0,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#3,d1
	move.l	d3,0(a2,d1.l*4)
	addq.l	#1,d0
L1573
	cmp.l	d2,d0
	blo	L1572
L1574
;                     
	bra.b	L1576
L1575
;                     gl_problem(ctx, "bad forma
	move.l	#L1334,-(a7)
	move.l	a4,-(a7)
	jsr	_gl_problem
	addq.w	#$8,a7
L1576
;               if (ctx->Pack.SwapBytes) 
	move.l	a4,a0
	add.l	#$E644,a0
	tst.b	$18(a0)
	beq.b	L1578
L1577
;                  gl_swap4( (GLuint *) dst, n*n );
	move.l	d2,d0
	mulu.l	d2,d0
	move.l	d0,-(a7)
	move.l	a2,-(a7)
	jsr	_gl_swap4
	addq.w	#$8,a7
L1578
;	    
	bra	L1770
L1579
;               GLint *dst = (GLint *) destination;
;               switch (format)
	cmp.l	#$1909,d3
	beq	L1592
	bgt.b	L1794
	cmp.l	#$1905,d3
	beq	L1588
	bgt.b	L1795
	cmp.l	#$1903,d3
	beq	L1580
	cmp.l	#$1904,d3
	beq	L1584
	bra	L1620
L1795
	cmp.l	#$1907,d3
	beq	L1600
	cmp.l	#$1908,d3
	beq	L1604
	bra	L1620
L1794
	cmp.l	#$80E0,d3
	beq	L1608
	bgt.b	L1796
	cmp.l	#$190A,d3
	beq	L1596
	cmp.l	#$8000,d3
	beq	L1616
	bra	L1620
L1796
	cmp.l	#$80E1,d3
	beq	L1612
	bra	L1620
;                  
L1580
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1582
L1581
;                        dst[i] = FLOAT_TO_IN
	lea	-$190C(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
L1582
	cmp.l	d2,d0
	blo.b	L1581
L1583
;                     
	bra	L1621
L1584
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1586
L1585
;                        dst[i] = FLOAT_TO_IN
	lea	-$320C(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
L1586
	cmp.l	d2,d0
	blo.b	L1585
L1587
;                     
	bra	L1621
L1588
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1590
L1589
;                        dst[i] = FLOAT_TO_IN
	lea	-$4B0C(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
L1590
	cmp.l	d2,d0
	blo.b	L1589
L1591
;                     
	bra	L1621
L1592
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1594
L1593
;                        dst[i] = FLOAT_TO_IN
	lea	-$7D0C(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
L1594
	cmp.l	d2,d0
	blo.b	L1593
L1595
;                     
	bra	L1621
L1596
;                     for (i=0;
	moveq	#0,d0
	bra	L1598
L1597
;                        dst[i*2+0] = FLOAT_T
	lea	-$7D0C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41DFFFFF.FFC00000,fp0
	fmove.l	fp0,d3
	move.l	d0,d1
	moveq	#1,d4
	asl.l	d4,d1
	move.l	d3,0(a2,d1.l*4)
;                        dst[i*2+1] = FLOAT_T
	lea	-$640C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41DFFFFF.FFC00000,fp0
	fmove.l	fp0,d3
	move.l	d0,d1
	moveq	#1,d4
	asl.l	d4,d1
	addq.l	#1,d1
	move.l	d3,0(a2,d1.l*4)
	addq.l	#1,d0
L1598
	cmp.l	d2,d0
	blo.b	L1597
L1599
;                     
	bra	L1621
L1600
;                     for (i=0;
	moveq	#0,d0
	bra	L1602
L1601
;                        dst[i*3+0] = FLOAT_T
	lea	-$190C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41DFFFFF.FFC00000,fp0
	fmove.l	fp0,d3
	move.l	d0,d1
	mulu.l	#3,d1
	move.l	d3,0(a2,d1.l*4)
;                        dst[i*3+1] = FLOAT_T
	lea	-$320C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41DFFFFF.FFC00000,fp0
	fmove.l	fp0,d3
	move.l	d0,d1
	mulu.l	#3,d1
	addq.l	#1,d1
	move.l	d3,0(a2,d1.l*4)
;                        dst[i*3+2] = FLOAT_T
	lea	-$4B0C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41DFFFFF.FFC00000,fp0
	fmove.l	fp0,d3
	move.l	d0,d1
	mulu.l	#3,d1
	addq.l	#2,d1
	move.l	d3,0(a2,d1.l*4)
	addq.l	#1,d0
L1602
	cmp.l	d2,d0
	blo	L1601
L1603
;                     
	bra	L1621
L1604
;                     for (i=0;
	moveq	#0,d0
	bra	L1606
L1605
;                        dst[i*4+0] = FLOAT_T
	lea	-$190C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41DFFFFF.FFC00000,fp0
	fmove.l	fp0,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	move.l	d3,0(a2,d1.l*4)
;                        dst[i*4+1] = FLOAT_T
	lea	-$320C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41DFFFFF.FFC00000,fp0
	fmove.l	fp0,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#1,d1
	move.l	d3,0(a2,d1.l*4)
;                        dst[i*4+2] = FLOAT_T
	lea	-$4B0C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41DFFFFF.FFC00000,fp0
	fmove.l	fp0,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#2,d1
	move.l	d3,0(a2,d1.l*4)
;                        dst[i*4+3] = FLOAT_T
	lea	-$640C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41DFFFFF.FFC00000,fp0
	fmove.l	fp0,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#3,d1
	move.l	d3,0(a2,d1.l*4)
	addq.l	#1,d0
L1606
	cmp.l	d2,d0
	blo	L1605
L1607
;                     
	bra	L1621
L1608
;                     for (i=0;
	moveq	#0,d0
	bra	L1610
L1609
;                        dst[i*3+0] = FLOAT_T
	lea	-$4B0C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41DFFFFF.FFC00000,fp0
	fmove.l	fp0,d3
	move.l	d0,d1
	mulu.l	#3,d1
	move.l	d3,0(a2,d1.l*4)
;                        dst[i*3+1] = FLOAT_T
	lea	-$320C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41DFFFFF.FFC00000,fp0
	fmove.l	fp0,d3
	move.l	d0,d1
	mulu.l	#3,d1
	addq.l	#1,d1
	move.l	d3,0(a2,d1.l*4)
;                        dst[i*3+2] = FLOAT_T
	lea	-$190C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41DFFFFF.FFC00000,fp0
	fmove.l	fp0,d3
	move.l	d0,d1
	mulu.l	#3,d1
	addq.l	#2,d1
	move.l	d3,0(a2,d1.l*4)
	addq.l	#1,d0
L1610
	cmp.l	d2,d0
	blo	L1609
L1611
;                     
	bra	L1621
L1612
;                     for (i=0;
	moveq	#0,d0
	bra	L1614
L1613
;                        dst[i*4+0] = FLOAT_T
	lea	-$4B0C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41DFFFFF.FFC00000,fp0
	fmove.l	fp0,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	move.l	d3,0(a2,d1.l*4)
;                        dst[i*4+1] = FLOAT_T
	lea	-$320C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41DFFFFF.FFC00000,fp0
	fmove.l	fp0,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#1,d1
	move.l	d3,0(a2,d1.l*4)
;                        dst[i*4+2] = FLOAT_T
	lea	-$190C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41DFFFFF.FFC00000,fp0
	fmove.l	fp0,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#2,d1
	move.l	d3,0(a2,d1.l*4)
;                        dst[i*4+3] = FLOAT_T
	lea	-$640C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41DFFFFF.FFC00000,fp0
	fmove.l	fp0,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#3,d1
	move.l	d3,0(a2,d1.l*4)
	addq.l	#1,d0
L1614
	cmp.l	d2,d0
	blo	L1613
L1615
;                     
	bra	L1621
L1616
;                     for (i=0;
	moveq	#0,d0
	bra	L1618
L1617
;                        dst[i*4+0] = FLOAT_T
	lea	-$640C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41DFFFFF.FFC00000,fp0
	fmove.l	fp0,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	move.l	d3,0(a2,d1.l*4)
;                        dst[i*4+1] = FLOAT_T
	lea	-$4B0C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41DFFFFF.FFC00000,fp0
	fmove.l	fp0,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#1,d1
	move.l	d3,0(a2,d1.l*4)
;                        dst[i*4+2] = FLOAT_T
	lea	-$320C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41DFFFFF.FFC00000,fp0
	fmove.l	fp0,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#2,d1
	move.l	d3,0(a2,d1.l*4)
;                        dst[i*4+3] = FLOAT_T
	lea	-$190C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.d	#$.41DFFFFF.FFC00000,fp0
	fmove.l	fp0,d3
	move.l	d0,d1
	moveq	#2,d4
	asl.l	d4,d1
	addq.l	#3,d1
	move.l	d3,0(a2,d1.l*4)
	addq.l	#1,d0
L1618
	cmp.l	d2,d0
	blo	L1617
L1619
;                     
	bra.b	L1621
L1620
;                     gl_problem(ctx, "bad forma
	move.l	#L1334,-(a7)
	move.l	a4,-(a7)
	jsr	_gl_problem
	addq.w	#$8,a7
L1621
;	       if (ctx->Pack.SwapBytes) 
	move.l	a4,a0
	add.l	#$E644,a0
	tst.b	$18(a0)
	beq.b	L1623
L1622
;		  gl_swap4( (GLuint *) dst, n*n );
	move.l	d2,d0
	mulu.l	d2,d0
	move.l	d0,-(a7)
	move.l	a2,-(a7)
	jsr	_gl_swap4
	addq.w	#$8,a7
L1623
;	    
	bra	L1770
L1624
;               GLfloat *dst = (GLfloat *) destination;
;               switch (format)
	cmp.l	#$1909,d3
	beq	L1637
	bgt.b	L1797
	cmp.l	#$1905,d3
	beq	L1633
	bgt.b	L1798
	cmp.l	#$1903,d3
	beq	L1625
	cmp.l	#$1904,d3
	beq	L1629
	bra	L1665
L1798
	cmp.l	#$1907,d3
	beq	L1645
	cmp.l	#$1908,d3
	beq	L1649
	bra	L1665
L1797
	cmp.l	#$80E0,d3
	beq	L1653
	bgt.b	L1799
	cmp.l	#$190A,d3
	beq	L1641
	cmp.l	#$8000,d3
	beq	L1661
	bra	L1665
L1799
	cmp.l	#$80E1,d3
	beq	L1657
	bra	L1665
;                  
L1625
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1627
L1626
;                        dst[i] = red[i];
	lea	-$190C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmove.s	fp0,0(a2,d0.l*4)
	addq.l	#1,d0
L1627
	cmp.l	d2,d0
	blo.b	L1626
L1628
;                     
	bra	L1666
L1629
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1631
L1630
;                        dst[i] = green[i];
	lea	-$320C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmove.s	fp0,0(a2,d0.l*4)
	addq.l	#1,d0
L1631
	cmp.l	d2,d0
	blo.b	L1630
L1632
;                     
	bra	L1666
L1633
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1635
L1634
;                        dst[i] = blue[i];
	lea	-$4B0C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmove.s	fp0,0(a2,d0.l*4)
	addq.l	#1,d0
L1635
	cmp.l	d2,d0
	blo.b	L1634
L1636
;                     
	bra	L1666
L1637
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1639
L1638
;                        dst[i] = luminance[i
	lea	-$7D0C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmove.s	fp0,0(a2,d0.l*4)
	addq.l	#1,d0
L1639
	cmp.l	d2,d0
	blo.b	L1638
L1640
;                     
	bra	L1666
L1641
;                     for (i=0;
	moveq	#0,d0
	bra.b	L1643
L1642
;                        dst[i*2+0] = luminan
	lea	-$7D0C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	move.l	d0,d1
	moveq	#1,d3
	asl.l	d3,d1
	fmove.s	fp0,0(a2,d1.l*4)
;                        dst[i*2+1] = alpha[i
	lea	-$640C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	move.l	d0,d1
	moveq	#1,d3
	asl.l	d3,d1
	addq.l	#1,d1
	fmove.s	fp0,0(a2,d1.l*4)
	addq.l	#1,d0
L1643
	cmp.l	d2,d0
	blo.b	L1642
L1644
;                     
	bra	L1666
L1645
;                     for (i=0;
	moveq	#0,d0
	bra	L1647
L1646
;                        dst[i*3+0] = red[i];
	lea	-$190C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	move.l	d0,d1
	mulu.l	#3,d1
	fmove.s	fp0,0(a2,d1.l*4)
;                        dst[i*3+1] = green[i
	lea	-$320C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	move.l	d0,d1
	mulu.l	#3,d1
	addq.l	#1,d1
	fmove.s	fp0,0(a2,d1.l*4)
;                        dst[i*3+2] = blue[i];
	lea	-$4B0C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	move.l	d0,d1
	mulu.l	#3,d1
	addq.l	#2,d1
	fmove.s	fp0,0(a2,d1.l*4)
	addq.l	#1,d0
L1647
	cmp.l	d2,d0
	blo.b	L1646
L1648
;                     
	bra	L1666
L1649
;                     for (i=0;
	moveq	#0,d0
	bra	L1651
L1650
;                        dst[i*4+0] = red[i];
	lea	-$190C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	move.l	d0,d1
	moveq	#2,d3
	asl.l	d3,d1
	fmove.s	fp0,0(a2,d1.l*4)
;                        dst[i*4+1] = green[i
	lea	-$320C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	move.l	d0,d1
	moveq	#2,d3
	asl.l	d3,d1
	addq.l	#1,d1
	fmove.s	fp0,0(a2,d1.l*4)
;                        dst[i*4+2] = blue[i];
	lea	-$4B0C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	move.l	d0,d1
	moveq	#2,d3
	asl.l	d3,d1
	addq.l	#2,d1
	fmove.s	fp0,0(a2,d1.l*4)
;                        dst[i*4+3] = alpha[i
	lea	-$640C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	move.l	d0,d1
	moveq	#2,d3
	asl.l	d3,d1
	addq.l	#3,d1
	fmove.s	fp0,0(a2,d1.l*4)
	addq.l	#1,d0
L1651
	cmp.l	d2,d0
	blo.b	L1650
L1652
;                     
	bra	L1666
L1653
;                     for (i=0;
	moveq	#0,d0
	bra	L1655
L1654
;                        dst[i*3+0] = blue[i];
	lea	-$4B0C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	move.l	d0,d1
	mulu.l	#3,d1
	fmove.s	fp0,0(a2,d1.l*4)
;                        dst[i*3+1] = green[i
	lea	-$320C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	move.l	d0,d1
	mulu.l	#3,d1
	addq.l	#1,d1
	fmove.s	fp0,0(a2,d1.l*4)
;                        dst[i*3+2] = red[i];
	lea	-$190C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	move.l	d0,d1
	mulu.l	#3,d1
	addq.l	#2,d1
	fmove.s	fp0,0(a2,d1.l*4)
	addq.l	#1,d0
L1655
	cmp.l	d2,d0
	blo.b	L1654
L1656
;                     
	bra	L1666
L1657
;                     for (i=0;
	moveq	#0,d0
	bra	L1659
L1658
;                        dst[i*4+0] = blue[i];
	lea	-$4B0C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	move.l	d0,d1
	moveq	#2,d3
	asl.l	d3,d1
	fmove.s	fp0,0(a2,d1.l*4)
;                        dst[i*4+1] = green[i
	lea	-$320C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	move.l	d0,d1
	moveq	#2,d3
	asl.l	d3,d1
	addq.l	#1,d1
	fmove.s	fp0,0(a2,d1.l*4)
;                        dst[i*4+2] = red[i];
	lea	-$190C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	move.l	d0,d1
	moveq	#2,d3
	asl.l	d3,d1
	addq.l	#2,d1
	fmove.s	fp0,0(a2,d1.l*4)
;                        dst[i*4+3] = alpha[i
	lea	-$640C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	move.l	d0,d1
	moveq	#2,d3
	asl.l	d3,d1
	addq.l	#3,d1
	fmove.s	fp0,0(a2,d1.l*4)
	addq.l	#1,d0
L1659
	cmp.l	d2,d0
	blo.b	L1658
L1660
;                     
	bra	L1666
L1661
;                     for (i=0;
	moveq	#0,d0
	bra	L1663
L1662
;                        dst[i*4+0] = alpha[i
	lea	-$640C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	move.l	d0,d1
	moveq	#2,d3
	asl.l	d3,d1
	fmove.s	fp0,0(a2,d1.l*4)
;                        dst[i*4+1] = blue[i];
	lea	-$4B0C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	move.l	d0,d1
	moveq	#2,d3
	asl.l	d3,d1
	addq.l	#1,d1
	fmove.s	fp0,0(a2,d1.l*4)
;                        dst[i*4+2] = green[i
	lea	-$320C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	move.l	d0,d1
	moveq	#2,d3
	asl.l	d3,d1
	addq.l	#2,d1
	fmove.s	fp0,0(a2,d1.l*4)
;                        dst[i*4+3] = red[i];
	lea	-$190C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	move.l	d0,d1
	moveq	#2,d3
	asl.l	d3,d1
	addq.l	#3,d1
	fmove.s	fp0,0(a2,d1.l*4)
	addq.l	#1,d0
L1663
	cmp.l	d2,d0
	blo.b	L1662
L1664
;                     
	bra.b	L1666
L1665
;                     gl_problem(ctx, "bad forma
	move.l	#L1334,-(a7)
	move.l	a4,-(a7)
	jsr	_gl_problem
	addq.w	#$8,a7
L1666
;	       if (ctx->Pack.SwapBytes) 
	move.l	a4,a0
	add.l	#$E644,a0
	tst.b	$18(a0)
	beq.b	L1668
L1667
;		  gl_swap4( (GLuint *) dst, n*n );
	move.l	d2,d0
	mulu.l	d2,d0
	move.l	d0,-(a7)
	move.l	a2,-(a7)
	jsr	_gl_swap4
	addq.w	#$8,a7
L1668
;	    
	bra	L1770
L1669
;            if (format == GL_RGB) 
	cmp.l	#$1907,d3
	bne	L1673
L1670
;               GLubyte *dst = (GLubyte *) destination;
	move.l	a2,a1
;               for (i=0;
	moveq	#0,d0
	bra	L1672
L1671
;                  dst[i] = (((GLint) (red[i]   * 7
	lea	-$190C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.40E00000,fp0
	fmove.l	fp0,d1
	moveq	#5,d3
	asl.l	d3,d1
	lea	-$320C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.40E00000,fp0
	fmove.l	fp0,d3
	moveq	#2,d4
	asl.l	d4,d3
	or.l	d3,d1
	lea	-$4B0C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.40400000,fp0
	fmove.l	fp0,d3
	or.l	d3,d1
	move.b	d1,0(a1,d0.l)
	addq.l	#1,d0
L1672
	cmp.l	d2,d0
	blo.b	L1671
L1673
;            
	bra	L1770
L1674
;            if (format == GL_RGB) 
	cmp.l	#$1907,d3
	bne	L1678
L1675
;               GLubyte *dst = (GLubyte *) destination;
	move.l	a2,a1
;               for (i=0;
	moveq	#0,d0
	bra	L1677
L1676
;                  dst[i] = (((GLint) (red[i]   * 7
	lea	-$190C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.40E00000,fp0
	fmove.l	fp0,d1
	lea	-$320C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.40E00000,fp0
	fmove.l	fp0,d3
	moveq	#3,d4
	asl.l	d4,d3
	or.l	d3,d1
	lea	-$4B0C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.40400000,fp0
	fmove.l	fp0,d3
	moveq	#5,d4
	asl.l	d4,d3
	or.l	d3,d1
	move.b	d1,0(a1,d0.l)
	addq.l	#1,d0
L1677
	cmp.l	d2,d0
	blo.b	L1676
L1678
;            
	bra	L1770
L1679
;            if (format == GL_RGB) 
	cmp.l	#$1907,d3
	bne	L1683
L1680
;               GLushort *dst = (GLushort *) destinati
	move.l	a2,a1
;               for (i=0;
	moveq	#0,d0
	bra	L1682
L1681
;                  dst[i] = (((GLint) (red[i]   * 3
	lea	-$190C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.41F80000,fp0
	fmove.l	fp0,d1
	moveq	#$B,d3
	asl.l	d3,d1
	lea	-$320C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.427C0000,fp0
	fmove.l	fp0,d3
	moveq	#5,d4
	asl.l	d4,d3
	or.l	d3,d1
	lea	-$4B0C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.41F80000,fp0
	fmove.l	fp0,d3
	or.l	d3,d1
	move.w	d1,0(a1,d0.l*2)
	addq.l	#1,d0
L1682
	cmp.l	d2,d0
	blo.b	L1681
L1683
;            
	bra	L1770
L1684
;            if (format == GL_RGB) 
	cmp.l	#$1907,d3
	bne	L1688
L1685
;               GLushort *dst = (GLushort *) destinati
	move.l	a2,a1
;               for (i=0;
	moveq	#0,d0
	bra	L1687
L1686
;                  dst[i] = (((GLint) (red[i]   * 3
	lea	-$190C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.41F80000,fp0
	fmove.l	fp0,d1
	lea	-$320C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.427C0000,fp0
	fmove.l	fp0,d3
	moveq	#5,d4
	asl.l	d4,d3
	or.l	d3,d1
	lea	-$4B0C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.41F80000,fp0
	fmove.l	fp0,d3
	moveq	#$B,d4
	asl.l	d4,d3
	or.l	d3,d1
	move.w	d1,0(a1,d0.l*2)
	addq.l	#1,d0
L1687
	cmp.l	d2,d0
	blo.b	L1686
L1688
;            
	bra	L1770
L1689
;            if (format == GL_RGB) 
	cmp.l	#$1907,d3
	bne	L1693
L1690
;               GLushort *dst = (GLushort *) destinati
	move.l	a2,a1
;               for (i=0;
	moveq	#0,d0
	bra	L1692
L1691
;                  dst[i] = (((GLint) (red[i]   * 1
	lea	-$190C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.41700000,fp0
	fmove.l	fp0,d1
	moveq	#$C,d3
	asl.l	d3,d1
	lea	-$320C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.41700000,fp0
	fmove.l	fp0,d3
	moveq	#$8,d4
	asl.l	d4,d3
	or.l	d3,d1
	lea	-$4B0C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.41700000,fp0
	fmove.l	fp0,d3
	moveq	#4,d4
	asl.l	d4,d3
	or.l	d3,d1
	lea	-$640C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.41700000,fp0
	fmove.l	fp0,d3
	or.l	d3,d1
	move.w	d1,0(a1,d0.l*2)
	addq.l	#1,d0
L1692
	cmp.l	d2,d0
	blo.b	L1691
L1693
;            
	bra	L1770
L1694
;            if (format == GL_RGB) 
	cmp.l	#$1907,d3
	bne	L1698
L1695
;               GLushort *dst = (GLushort *) destinati
	move.l	a2,a1
;               for (i=0;
	moveq	#0,d0
	bra	L1697
L1696
;                  dst[i] = (((GLint) (red[i]   * 1
	lea	-$190C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.41700000,fp0
	fmove.l	fp0,d1
	lea	-$320C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.41700000,fp0
	fmove.l	fp0,d3
	moveq	#4,d4
	asl.l	d4,d3
	or.l	d3,d1
	lea	-$4B0C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.41700000,fp0
	fmove.l	fp0,d3
	moveq	#$8,d4
	asl.l	d4,d3
	or.l	d3,d1
	lea	-$640C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.41700000,fp0
	fmove.l	fp0,d3
	moveq	#$C,d4
	asl.l	d4,d3
	or.l	d3,d1
	move.w	d1,0(a1,d0.l*2)
	addq.l	#1,d0
L1697
	cmp.l	d2,d0
	blo.b	L1696
L1698
;            
	bra	L1770
L1699
;            if (format == GL_RGB) 
	cmp.l	#$1907,d3
	bne	L1703
L1700
;               GLushort *dst = (GLushort *) destinati
	move.l	a2,a1
;               for (i=0;
	moveq	#0,d0
	bra	L1702
L1701
;                  dst[i] = (((GLint) (red[i]   * 3
	lea	-$190C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.41F80000,fp0
	fmove.l	fp0,d1
	moveq	#$B,d3
	asl.l	d3,d1
	lea	-$320C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.41F80000,fp0
	fmove.l	fp0,d3
	moveq	#6,d4
	asl.l	d4,d3
	or.l	d3,d1
	lea	-$4B0C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.41F80000,fp0
	fmove.l	fp0,d3
	moveq	#1,d4
	asl.l	d4,d3
	or.l	d3,d1
	lea	-$640C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.3F800000,fp0
	fmove.l	fp0,d3
	or.l	d3,d1
	move.w	d1,0(a1,d0.l*2)
	addq.l	#1,d0
L1702
	cmp.l	d2,d0
	blo.b	L1701
L1703
;            
	bra	L1770
L1704
;            if (format == GL_RGB) 
	cmp.l	#$1907,d3
	bne	L1708
L1705
;               GLushort *dst = (GLushort *) destinati
	move.l	a2,a1
;               for (i=0;
	moveq	#0,d0
	bra	L1707
L1706
;               }
	lea	-$190C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.41F80000,fp0
	fmove.l	fp0,d1
	lea	-$320C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.41F80000,fp0
	fmove.l	fp0,d3
	moveq	#5,d4
	asl.l	d4,d3
	or.l	d3,d1
	lea	-$4B0C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.41F80000,fp0
	fmove.l	fp0,d3
	moveq	#$A,d4
	asl.l	d4,d3
	or.l	d3,d1
	lea	-$640C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.3F800000,fp0
	fmove.l	fp0,d3
	moveq	#$F,d4
	asl.l	d4,d3
	or.l	d3,d1
	move.w	d1,0(a1,d0.l*2)
	addq.l	#1,d0
L1707
	cmp.l	d2,d0
	blo.b	L1706
L1708
;            
	bra	L1770
L1709
;            if (format == GL_RGBA) 
	cmp.l	#$1908,d3
	bne	L1714
L1710
;               GLuint *dst = (GLuint *) destination;
	move.l	a2,a1
;               for (i=0;
	moveq	#0,d0
	bra	L1712
L1711
;                  dst[i] = (((GLint) (red[i]   * 2
	lea	-$190C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	moveq	#$18,d3
	asl.l	d3,d1
	lea	-$320C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d3
	moveq	#$10,d4
	asl.l	d4,d3
	or.l	d3,d1
	lea	-$4B0C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d3
	moveq	#$8,d4
	asl.l	d4,d3
	or.l	d3,d1
	lea	-$640C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d3
	or.l	d3,d1
	move.l	d1,0(a1,d0.l*4)
	addq.l	#1,d0
L1712
	cmp.l	d2,d0
	blo.b	L1711
L1713
	bra	L1723
L1714
;            else if (format == GL_BGRA) 
	cmp.l	#$80E1,d3
	bne	L1719
L1715
;               GLushort *dst = (GLushort *) destinati
	move.l	a2,a1
;               for (i=0;
	moveq	#0,d0
	bra	L1717
L1716
;                  dst[i] = (((GLint) (blue[i]  * 2
	lea	-$4B0C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	moveq	#$18,d3
	asl.l	d3,d1
	lea	-$320C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d3
	moveq	#$10,d4
	asl.l	d4,d3
	or.l	d3,d1
	lea	-$190C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d3
	moveq	#$8,d4
	asl.l	d4,d3
	or.l	d3,d1
	lea	-$640C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d3
	or.l	d3,d1
	move.w	d1,0(a1,d0.l*2)
	addq.l	#1,d0
L1717
	cmp.l	d2,d0
	blo.b	L1716
L1718
	bra	L1723
L1719
;            else if (format == GL_ABGR_EXT) 
	cmp.l	#$8000,d3
	bne	L1723
L1720
;               GLushort *dst = (GLushort *) destinati
	move.l	a2,a1
;               for (i=0;
	moveq	#0,d0
	bra	L1722
L1721
;                  dst[i] = (((GLint) (alpha[i] * 2
	lea	-$640C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	moveq	#$18,d3
	asl.l	d3,d1
	lea	-$4B0C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d3
	moveq	#$10,d4
	asl.l	d4,d3
	or.l	d3,d1
	lea	-$320C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d3
	moveq	#$8,d4
	asl.l	d4,d3
	or.l	d3,d1
	lea	-$190C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d3
	or.l	d3,d1
	move.w	d1,0(a1,d0.l*2)
	addq.l	#1,d0
L1722
	cmp.l	d2,d0
	blo.b	L1721
L1723
;            
	bra	L1770
L1724
;            if (format == GL_RGBA) 
	cmp.l	#$1908,d3
	bne	L1729
L1725
;               GLuint *dst = (GLuint *) destination;
	move.l	a2,a1
;               for (i=0;
	moveq	#0,d0
	bra	L1727
L1726
;                  dst[i] = (((GLint) (red[i]   * 2
	lea	-$190C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	lea	-$320C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d3
	moveq	#$8,d4
	asl.l	d4,d3
	or.l	d3,d1
	lea	-$4B0C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d3
	moveq	#$10,d4
	asl.l	d4,d3
	or.l	d3,d1
	lea	-$640C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d3
	moveq	#$18,d4
	asl.l	d4,d3
	or.l	d3,d1
	move.l	d1,0(a1,d0.l*4)
	addq.l	#1,d0
L1727
	cmp.l	d2,d0
	blo.b	L1726
L1728
	bra	L1738
L1729
;            else if (format == GL_BGRA) 
	cmp.l	#$80E1,d3
	bne	L1734
L1730
;               GLushort *dst = (GLushort *) destinati
	move.l	a2,a1
;               for (i=0;
	moveq	#0,d0
	bra	L1732
L1731
;                  dst[i] = (((GLint) (blue[i]  * 2
	lea	-$4B0C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	lea	-$320C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d3
	moveq	#$8,d4
	asl.l	d4,d3
	or.l	d3,d1
	lea	-$190C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d3
	moveq	#$10,d4
	asl.l	d4,d3
	or.l	d3,d1
	lea	-$640C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d3
	moveq	#$18,d4
	asl.l	d4,d3
	or.l	d3,d1
	move.w	d1,0(a1,d0.l*2)
	addq.l	#1,d0
L1732
	cmp.l	d2,d0
	blo.b	L1731
L1733
	bra	L1738
L1734
;            else if (format == GL_ABGR_EXT) 
	cmp.l	#$8000,d3
	bne	L1738
L1735
;               GLushort *dst = (GLushort *) destinati
	move.l	a2,a1
;               for (i=0;
	moveq	#0,d0
	bra	L1737
L1736
;                  dst[i] = (((GLint) (alpha[i] * 2
	lea	-$640C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d1
	lea	-$4B0C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d3
	moveq	#$8,d4
	asl.l	d4,d3
	or.l	d3,d1
	lea	-$320C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d3
	moveq	#$10,d4
	asl.l	d4,d3
	or.l	d3,d1
	lea	-$190C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.437F0000,fp0
	fmove.l	fp0,d3
	moveq	#$18,d4
	asl.l	d4,d3
	or.l	d3,d1
	move.w	d1,0(a1,d0.l*2)
	addq.l	#1,d0
L1737
	cmp.l	d2,d0
	blo.b	L1736
L1738
;            
	bra	L1770
L1739
;            if (format == GL_RGBA) 
	cmp.l	#$1908,d3
	bne	L1744
L1740
;               GLuint *dst = (GLuint *) destination;
	move.l	a2,a1
;               for (i=0;
	moveq	#0,d0
	bra	L1742
L1741
;                  dst[i] = (((GLint) (red[i]   * 1
	lea	-$190C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.447FC000,fp0
	fmove.l	fp0,d1
	moveq	#$16,d3
	asl.l	d3,d1
	lea	-$320C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.447FC000,fp0
	fmove.l	fp0,d3
	moveq	#$C,d4
	asl.l	d4,d3
	or.l	d3,d1
	lea	-$4B0C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.447FC000,fp0
	fmove.l	fp0,d3
	moveq	#2,d4
	asl.l	d4,d3
	or.l	d3,d1
	lea	-$640C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.40400000,fp0
	fmove.l	fp0,d3
	or.l	d3,d1
	move.l	d1,0(a1,d0.l*4)
	addq.l	#1,d0
L1742
	cmp.l	d2,d0
	blo.b	L1741
L1743
	bra	L1753
L1744
;            else if (format == GL_BGRA) 
	cmp.l	#$80E1,d3
	bne	L1749
L1745
;               GLushort *dst = (GLushort *) destinati
	move.l	a2,a1
;               for (i=0;
	moveq	#0,d0
	bra	L1747
L1746
;                  dst[i] = (((GLint) (blue[i]  * 1
	lea	-$4B0C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.447FC000,fp0
	fmove.l	fp0,d1
	moveq	#$16,d3
	asl.l	d3,d1
	lea	-$320C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.447FC000,fp0
	fmove.l	fp0,d3
	moveq	#$C,d4
	asl.l	d4,d3
	or.l	d3,d1
	lea	-$190C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.447FC000,fp0
	fmove.l	fp0,d3
	moveq	#2,d4
	asl.l	d4,d3
	or.l	d3,d1
	lea	-$640C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.40400000,fp0
	fmove.l	fp0,d3
	or.l	d3,d1
	move.w	d1,0(a1,d0.l*2)
	addq.l	#1,d0
L1747
	cmp.l	d2,d0
	blo.b	L1746
L1748
	bra	L1753
L1749
;            else if (format == GL_ABGR_EXT) 
	cmp.l	#$8000,d3
	bne	L1753
L1750
;               GLushort *dst = (GLushort *) destinati
	move.l	a2,a1
;               for (i=0;
	moveq	#0,d0
	bra	L1752
L1751
;                  dst[i] = (((GLint) (alpha[i] * 1
	lea	-$640C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.447FC000,fp0
	fmove.l	fp0,d1
	moveq	#$16,d3
	asl.l	d3,d1
	lea	-$4B0C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.447FC000,fp0
	fmove.l	fp0,d3
	moveq	#$C,d4
	asl.l	d4,d3
	or.l	d3,d1
	lea	-$320C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.447FC000,fp0
	fmove.l	fp0,d3
	moveq	#2,d4
	asl.l	d4,d3
	or.l	d3,d1
	lea	-$190C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.40400000,fp0
	fmove.l	fp0,d3
	or.l	d3,d1
	move.w	d1,0(a1,d0.l*2)
	addq.l	#1,d0
L1752
	cmp.l	d2,d0
	blo.b	L1751
L1753
;            
	bra	L1770
L1754
;            if (format == GL_RGBA) 
	cmp.l	#$1908,d3
	bne	L1759
L1755
;               GLuint *dst = (GLuint *) destination;
	move.l	a2,a1
;               for (i=0;
	moveq	#0,d0
	bra	L1757
L1756
;                  dst[i] = (((GLint) (red[i]   * 1
	lea	-$190C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.447FC000,fp0
	fmove.l	fp0,d1
	lea	-$320C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.447FC000,fp0
	fmove.l	fp0,d3
	moveq	#$A,d4
	asl.l	d4,d3
	or.l	d3,d1
	lea	-$4B0C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.447FC000,fp0
	fmove.l	fp0,d3
	moveq	#$14,d4
	asl.l	d4,d3
	or.l	d3,d1
	lea	-$640C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.40400000,fp0
	fmove.l	fp0,d3
	moveq	#$1E,d4
	asl.l	d4,d3
	or.l	d3,d1
	move.l	d1,0(a1,d0.l*4)
	addq.l	#1,d0
L1757
	cmp.l	d2,d0
	blo.b	L1756
L1758
	bra	L1768
L1759
;            else if (format == GL_BGRA) 
	cmp.l	#$80E1,d3
	bne	L1764
L1760
;               GLushort *dst = (GLushort *) destinati
	move.l	a2,a1
;               for (i=0;
	moveq	#0,d0
	bra	L1762
L1761
;                  dst[i] = (((GLint) (blue[i]  * 1
	lea	-$4B0C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.447FC000,fp0
	fmove.l	fp0,d1
	lea	-$320C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.447FC000,fp0
	fmove.l	fp0,d3
	moveq	#$A,d4
	asl.l	d4,d3
	or.l	d3,d1
	lea	-$190C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.447FC000,fp0
	fmove.l	fp0,d3
	moveq	#$14,d4
	asl.l	d4,d3
	or.l	d3,d1
	lea	-$640C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.40400000,fp0
	fmove.l	fp0,d3
	moveq	#$1E,d4
	asl.l	d4,d3
	or.l	d3,d1
	move.w	d1,0(a1,d0.l*2)
	addq.l	#1,d0
L1762
	cmp.l	d2,d0
	blo.b	L1761
L1763
	bra	L1768
L1764
;            else if (format == GL_ABGR_EXT) 
	cmp.l	#$8000,d3
	bne	L1768
L1765
;               GLushort *dst = (GLushort *) destinati
	move.l	a2,a1
;               for (i=0;
	moveq	#0,d0
	bra	L1767
L1766
;                  dst[i] = (((GLint) (alpha[i] * 1
	lea	-$640C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.447FC000,fp0
	fmove.l	fp0,d1
	lea	-$4B0C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.447FC000,fp0
	fmove.l	fp0,d3
	moveq	#$A,d4
	asl.l	d4,d3
	or.l	d3,d1
	lea	-$320C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.447FC000,fp0
	fmove.l	fp0,d3
	moveq	#$14,d4
	asl.l	d4,d3
	or.l	d3,d1
	lea	-$190C(a5),a0
	fmove.s	0(a0,d0.l*4),fp0
	fmul.s	#$.40400000,fp0
	fmove.l	fp0,d3
	moveq	#$1E,d4
	asl.l	d4,d3
	or.l	d3,d1
	move.w	d1,0(a1,d0.l*2)
	addq.l	#1,d0
L1767
	cmp.l	d2,d0
	blo.b	L1766
L1768
;            
	bra.b	L1770
L1769
;            gl_problem( ctx, "bad type in gl_pack_rgba_s
	move.l	#L1335,-(a7)
	move.l	a4,-(a7)
	jsr	_gl_problem
	addq.w	#$8,a7
L1770
	fmovem.x (a7)+,fp2/fp3/fp4/fp5
	movem.l	(a7)+,d2-d4/a2-a4
	unlk	a5
	rts

L1334
	dc.b	'bad format in gl_pack_rgba_span',$A,0
L1335
	dc.b	'bad type in gl_pack_rgba_span',0

	END
