the factomem at $8c00 is ok but for ulongtofac i need a routine that converts a 32-bit (4-byte) long integer into a float. There is such a routine in BASIC 2.0.
$8bd4 seems to copy a float from ROM (mem) into FAC#1; that's not what i need...
I found out myself in the meantime; for all that are interested:
To convert a 4-byte unsigne integer into a float, do the following:
copy the 4 bytes to FAC#1 ($64-$67)
FAC#1 will now conatin the float representation of the 4-byte unsgined integer...
This is a jump six bytes beyond the "2-byte-to-float" routine at $8c75, which bypasses the clearing of the "high word" at $66/$67 and it is necessary to load .X with $a0 and set the carry flag vefor jumping; the "lda #0" i think is in fact unnecessary but i found it like that in an assembler book for c64 from which i converted all this to c128, so it doesn't harm (except the 2 cycles) and just to be sure...
for signed integers it should go something like
but this is untested
EDIT: this is were i got some really useful information, quite nice site btw, so i think i should share this: http://members.tripod.com/~rvbelzen/