summaryrefslogtreecommitdiff
path: root/Source/CloseIFF.S
blob: b463eaad138d1a88c3a36cb4da9100fb6e3c5be2 (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
**
**	$Id: $
**	$Revision: $
**
**	$Filename: CloseIFF.S $
**	$Author: Christian A. Weber $
**	$Release: 19.1 $
**	$Date: 92/05/11 21:11:27 $
**
**	iff.library/IFFLib_CloseIFF
**
**	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_CloseIFF
		SECTION	text,CODE

		INCLUDE	"IffLib.i"

		XREF	ClearError
		XDEF	CloseIFFFunc


******* iff.library/IFFLib_CloseIFF *****************************************
*
*    NAME
*	IFFLib_CloseIFF -- Close an IFF-file and deallocate buffers
*
*    SYNOPSIS
*	IFFLib_CloseIFF( ifffile )
*	                 A1
*
*	void IFFLib_CloseIFF( IFFFILE )
*
*    FUNCTION
*	Returns the memory previously allocated by OpenIFF().
*
*    INPUTS
*	ifffile - IFF file pointer, from OpenIFF()
*
*    RESULTS
*	For now, always results TRUE (this may change in the future).
*
*    SEE ALSO
*	IFFLib_OpenIFF()
*
*****************************************************************************

CloseIFFFunc:	movem.l	a5-a6,-(SP)
		movea.l	a6,a5		; IFFBase für ClearError()

		move.l	a1,d0		; Ist a1 == NULL ?
		beq.s	1$		; ja ---> don't free anything
		move.l	-(a1),d0	; Grösse des reservierten Bereichs
		movea.l	ib_SysBase(a5),a6
		JSRLIB	FreeMem
1$:		bsr	ClearError	; IFFError zurücksetzen, D0 := 1

		movem.l	(SP)+,a5-a6
		rts

		END