33 lines
634 B
C
33 lines
634 B
C
|
// Copyright © 2017 Project Golan, all rights reserved.
|
||
|
#include "m_binio.h"
|
||
|
|
||
|
#include <stdio.h>
|
||
|
#include <math.h>
|
||
|
|
||
|
// Extern Functions ----------------------------------------------------------|
|
||
|
|
||
|
//
|
||
|
// M_IO_WriteLE4u
|
||
|
//
|
||
|
void M_IO_WriteLE4u(FILE *fp, mword v)
|
||
|
{
|
||
|
fputc((v >> 24) & 0xFF, fp);
|
||
|
fputc((v >> 16) & 0xFF, fp);
|
||
|
fputc((v >> 8) & 0xFF, fp);
|
||
|
fputc((v >> 0) & 0xFF, fp);
|
||
|
}
|
||
|
|
||
|
//
|
||
|
// M_IO_WriteLE4k
|
||
|
//
|
||
|
void M_IO_WriteLE4k(FILE *fp, float v)
|
||
|
{
|
||
|
float a = fabsf(v);
|
||
|
mword k = ((mword)a << 7) & 0x7FFFFF80;
|
||
|
k |= (mword)(fmod(a, 1) * 0x7F) & 0x7F;
|
||
|
if(v < 0) k |= 0x80000000;
|
||
|
M_IO_WriteLE4u(fp, k);
|
||
|
}
|
||
|
|
||
|
// EOF
|