4 ; APCS interface to Dynamite SWIs
6 ; © 1994-1998 Straylight
9 ;----- Licensing note -------------------------------------------------------
11 ; This file is part of Straylight's Dynamite
13 ; Dynamite is free software; you can redistribute it and/or modify
14 ; it under the terms of the GNU General Public License as published by
15 ; the Free Software Foundation; either version 2, or (at your option)
18 ; Dynamite is distributed in the hope that it will be useful,
19 ; but WITHOUT ANY WARRANTY; without even the implied warranty of
20 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 ; GNU General Public License for more details.
23 ; You should have received a copy of the GNU General Public License
24 ; along with Dynamite. If not, write to the Free Software Foundation,
25 ; 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
27 ;----- Standard header ------------------------------------------------------
34 ;----- Main code ------------------------------------------------------------
36 AREA |C$$Code|,CODE,READONLY
38 ; --- dynamite_alloc ---
40 ; On entry: a1 == address of anchor
41 ; a2 == size of block, in bytes
44 ; On exit: a1 == 0 or pointer to error
53 ; --- dynamite_free ---
55 ; On entry: a1 == address of anchor
57 ; On exit: a1 == 0 or pointer to error
66 ; --- dynamite_freeWithID ---
68 ; On entry: a1 == block ID (must be non-zero)
70 ; On exit: a1 == 0 or pointer to error
72 EXPORT dynamite_freeWithID
75 SWI XDynamite_FreeWithID
79 ; --- dynamite_blockInfo ---
81 ; On entry: a1 == address of block anchor
82 ; a2 == address of structure to fill in
84 ; On exit: a1 == 0 or pointer to error
86 EXPORT dynamite_blockInfo
90 SWI XDynamite_BlockInfo
95 ; --- dynamite_changeID ---
97 ; On entry: a1 == address of anchor, or 0
99 ; a3 == (optional) old ID
101 ; On exit: a1 == 0 or pointer to error
103 EXPORT dynamite_changeID
106 SWI XDynamite_ChangeID
110 ; --- dynamite_resize ---
112 ; On entry: a1 == address of anchor
113 ; a2 == new size, in bytes
115 ; On exit: a1 == 0 or pointer to error
117 EXPORT dynamite_resize
124 ; --- dynamite_midExtend ---
126 ; On entry: a1 == address of anchor
127 ; a2 == offset at which to extend
128 ; a3 == number of bytes to add
130 ; On exit: a1 == 0 or pointer to error
132 EXPORT dynamite_midExtend
135 SWI XDynamite_MidExtend
139 ; --- dynamite_save ---
141 ; On entry: a1 == value to save
143 ; On exit: a1 == 0 or pointer to error
154 ; --- dynamite_load ---
158 ; On exit: a1 == value loaded from relocation stack
167 ; --- dynamite_reduce ---
171 ; On exit: a1 == 0 if compaction not performed, nonzero otherwise
173 EXPORT dynamite_reduce
181 ; --- dynamite_compact ---
185 ; On exit: a1 == 0 or pointer to error
187 EXPORT dynamite_compact
190 SWI XDynamite_Compact
194 ; --- dynamite_lock ---
198 ; On exit: a1 == 0 or pointer to error
207 ; --- dynamite_unlock ---
211 ; On exit: a1 == 0 or pointer to error
213 EXPORT dynamite_unlock
220 ; --- dynamite_claimAnchor ---
222 ; On entry: a1 == address of where to store anchor
224 ; On exit: a1 == 0 or pointer to error
226 EXPORT dynamite_claimAnchor
230 SWI XDynamite_ClaimAnchor
235 ; --- dynamite_releaseAnchor ---
237 ; On entry: a1 == address of anchor
239 ; On exit: a1 == 0 or pointer to error
241 EXPORT dynamite_releaseAnchor
242 dynamite_releaseAnchor
244 SWI XDynamite_ReleaseAnchor
248 ; --- dynamite_readSpriteSize ---
250 ; On entry: a1 == where to store the sprite size
252 ; On exit: a1 == 0 or pointer to error
254 EXPORT dynamite_readSpriteSize
255 dynamite_readSpriteSize
258 SWI XDynamite_ReadSpriteSize
263 ; --- dynamite_describe ---
265 ; On entry: a1 == address of a structure to fill in
267 ; On exit: a1 == 0 or pointer to error
269 EXPORT dynamite_describe
273 SWI XDynamite_Describe
280 ;----- That's all, folks ----------------------------------------------------