36 lines
734 B
C
36 lines
734 B
C
|
/*
|
||
|
* d16out.c
|
||
|
*
|
||
|
* Outputting for 16-bit decoder
|
||
|
*/
|
||
|
|
||
|
#include "decoder.h"
|
||
|
|
||
|
|
||
|
void NEAR copy_data_to_output(
|
||
|
t_decoder_context * context,
|
||
|
long amount,
|
||
|
const byte * data
|
||
|
)
|
||
|
{
|
||
|
/*
|
||
|
* Save pages before we transform
|
||
|
*
|
||
|
* Don't save pages if amount < CHUNK_SIZE, because that
|
||
|
* means that this is our last chunk of data ever.
|
||
|
* This will save a few page writes at the end.
|
||
|
*/
|
||
|
if (amount >= CHUNK_SIZE)
|
||
|
DComp_Save_Output_Pages(context, (uint) amount);
|
||
|
|
||
|
/* perform jump translation */
|
||
|
if (context->dec_current_file_size)
|
||
|
{
|
||
|
decoder_translate_e8(
|
||
|
context,
|
||
|
context->dec_output_buffer,
|
||
|
amount
|
||
|
);
|
||
|
}
|
||
|
}
|