summaryrefslogtreecommitdiff
path: root/Source/GetBMHD.S
blob: 35aec4078c48bc7f60054fc34b7e967eb42db102 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
**
**	$Id: $
**	$Revision: $
**
**	$Filename: GetBMHD.S $
**	$Author: Christian A. Weber $
**	$Release: 19.1 $
**	$Date: 92/05/11 21:11:27 $
**
**	iff.library/IFFLib_GetBMHD
**
**	COPYRIGHT (C) 1987-1992 BY CHRISTIAN A. WEBER, BRUGGERWEG 2,
**	CH-8037 ZUERICH, SWITZERLAND.  ALL RIGHTS RESERVED.  NO PART
**	OF THIS SOFTWARE MAY BE COPIED, REPRODUCED,  OR  TRANSMITTED
**	IN ANY FORM OR BY ANY MEANS,  WITHOUT THE PRIOR WRITTEN PER-
**	MISSION OF THE AUTHOR. USE AT YOUR OWN RISK.
**


		IDNT	IFFLib_GetBMHD
		SECTION	text,CODE

		INCLUDE	"IffLib.i"

		XREF	SetError,ClearError,FindChunkFunc
		XDEF	GetBMHDFunc


******* iff.library/IFFLib_GetBMHD ******************************************
*
*    NAME
*	IFFLib_GetBMHD -- find a BitMapHeader of an IFF-file
*
*    SYNOPSIS
*	header = IFFLib_GetBMHD( ifffile )
*	 D0                      A1
*
*	struct BitMapHeader *IFFLib_GetBMHD( IFFFILE )
*
*    FUNCTION
*	Returns a pointer to a 'BitMapHeader' structure as defined in
*	iff.h and iff.i
*
*    INPUTS
*	ifffile - IFF file pointer, returned by IFFLib_OpenIFF()
*
*    RESULTS
*	Pointer to the BitMapHeader, or NULL if no BMHD chunk found
*
*    SEE ALSO
*	IFFLib_FindChunk(), IFFLib_GetColorTab()
*
*****************************************************************************

GetBMHDFunc:	movem.l	d2/a5-a6,-(SP)
		movea.l	a6,a5			; IFFBase für ClearError()
		move.l	#'BMHD',d0
		bsr	FindChunkFunc		; setzt Z-Flag wenn not found
		bne.s	1$			; Chunk gefunden --->
		moveq.l	#IFF_NOBMHD,d0
		bsr	SetError
		bra.s	99$
1$:
		addq.l	#8,d0			; BMHD.... überspringen
		move.l	d0,d2
		bsr	ClearError
		move.l	d2,d0
99$:		movem.l	(SP)+,d2/a5-a6
		rts

		END