Merging diskimagedevice 52.78 into the main branch.
[AROS.git] / workbench / devs / diskimage / support / amigaos / asprintfpooled.s
blobc641de292ca3f728b0e1400f62b5a62658a126b7
1 ; Copyright 2007-2012 Fredrik Wikstrom. All rights reserved.
3 ; Redistribution and use in source and binary forms, with or without
4 ; modification, are permitted provided that the following conditions
5 ; are met:
7 ; 1. Redistributions of source code must retain the above copyright
8 ; notice, this list of conditions and the following disclaimer.
10 ; 2. Redistributions in binary form must reproduce the above copyright
11 ; notice, this list of conditions and the following disclaimer in the
12 ; documentation and/or other materials provided with the distribution.
14 ; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
15 ; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 ; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17 ; ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
18 ; LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
19 ; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
20 ; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
21 ; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
22 ; CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
23 ; ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
24 ; POSSIBILITY OF SUCH DAMAGE.
26 INCLUDE LVOs.i
28 XREF _SysBase
29 XREF AllocVecPooled
30 XREF CountPutCh
31 XREF SNPrintfPutCh
33 XDEF _ASPrintfPooled
34 _ASPrintfPooled:
35 pea 12(a7)
36 move.l 12(a7),-(a7)
37 move.l 12(a7),-(a7)
38 bsr.s _VASPrintfPooled
39 add.l #12,a7
40 rts
42 XDEF _VASPrintfPooled
43 _VASPrintfPooled:
44 movem.l a2/a3/a6,-(a7)
45 move.l 20(a7),a0
46 move.l 24(a7),a1
47 clr.l -(a7)
48 lea CountPutCh(pc),a2
49 move.l _SysBase,a6
50 move.l a7,a3
51 jsr _LVORawDoFmt(a6)
52 move.l 20(a7),a0
53 move.l (a7),d0
54 jsr AllocVecPooled
55 move.l d0,-(a7)
56 bne.s gotmem
57 addq.l #8,a7
58 movem.l (a7)+,a2/a3/a6
59 rts
60 gotmem:
61 move.l 28(a7),a0
62 move.l 32(a7),a1
63 lea SNPrintfPutCh(pc),a2
64 move.l a7,a3
65 move.l d0,-(a7)
66 jsr _LVORawDoFmt(a6)
67 move.l (a7)+,d0
68 addq.l #8,a7
69 movem.l (a7)+,a2/a3/a6
70 rts