[comp.sys.amiga.tech] How does RawDoFmt work?

dfrancis@tronsbox.xei.com (Dennis Francis Heffernan) (10/02/90)

	This question probably indicates that I shouldn't be messing around
with stuff like this, but here goes:  I can't for the life of me figure out
how to use exec.library's RawDoFmt() from assembly.  (I don't know C, and 
telling me to learn it isn't a useful answer.)  The autodocs are either Latin
or Greek ;-) and Compute's book doesn't want to talk about the subject.

	I'm planning to use amiga.lib's sprintf() instead- I can figure out
how THAT works; it's pretty straightforward.  Actually, I had wanted to use
printf(), but it doesn't look like there's any way to do that without making
the code Impure, which I don't want to do.  Correct me if I'm wrong- please!

	Email responses are OK; thanks in advance.


dfrancis@tronsbox.xei.com   ...uunet!tronsbox!dfrancis     GEnie: D.HEFFERNAN1
-------------------------------------------------------------------------------
"I don't understand why you make such a big deal out of everything...haven't
you learned; if it's not happenning to me it's not important?" -Murphy Brown

valentin@cbmvax.commodore.com (Valentin Pepelea) (10/05/90)

In article <27075958-963comp.sys.amiga.tech@tronsbox.xei.com>
dfrancis@tronsbox.xei.com (Dennis Francis Heffernan) writes:
>
>	This question probably indicates that I shouldn't be messing around
> with stuff like this, but here goes:  I can't for the life of me figure out
> how to use exec.library's RawDoFmt() from assembly.  (I don't know C, and 
> telling me to learn it isn't a useful answer.)  The autodocs are either Latin
> or Greek ;-) and Compute's book doesn't want to talk about the subject.
>
>	I'm planning to use amiga.lib's sprintf() instead- I can figure out
> how THAT works; it's pretty straightforward.

Well RawDoFmt() works pretty well like sprint(), except there is one additional
parameter. sprintf(outstring,format,values...) puts the output starting at
memory location "outstring".

Well, RawDoFmt(format,values,routine,outstring) has the additional parameter
"routine" which points to a function that copies the characters to "outstring"
one by one.

Therfore "routine" may either copy the characters to outstring, or perhaps
it may choose to ignore that parameter and output all characters to the
serial or parallel ports.

Look at page A-36 of the blue-green Amiga ROM Kernel Reference Manual, Includes
% Autodocs. It shows you how sprintf() is implemented using RawDoFmt().

Valentin

-- 
The Goddess of democracy? "The tyrants    Name:    Valentin Pepelea
may destroy a statue,  but they cannot    Phone:   (215) 431-9327
kill a god."                              UseNet:  cbmvax!valentin@uunet.uu.net
             - Ancient Chinese Proverb    Claimer: I not Commodore spokesman be