Große Umstellung. Viel hinzugefügt.
[h316.git] / pc-tools / ldc / process.c
CommitLineData
437b3ba8 1#include <stdio.h>
2#include "hw_types.h"
3#include "hw_helpers.h"
4
5#include "process.h"
6
7//#define DEBUG_DATA
8/**********************************************************************/
9
10int get_blocktype (datablock * block){
11 return block->data[0].blocktype.type;
12}
13
14int get_blocksubtype(datablock * block){
15 if (block->data[0].blocktype.type!=0) return 0;
16 return block->data[0].blocktype.t0_subtype;
17}
18
19void block_copy(datablock* dest, datablock* src){
20 dest->data = (hw16 *) malloc (src->size * sizeof (hw16));
21 dest->raw_data = (unsigned char *) malloc (src->size * 3 );
22 dest->size=src->size;
23 memcpy (dest->data, src->data, src->size * sizeof (hw16));
24 memcpy (dest->raw_data, src->raw_data, src->size * 3);
25
26}
27
28datablock * block_clone(datablock * orgblock){
29 datablock * block = (datablock *) malloc (sizeof (datablock));
30 block_copy(block,orgblock);
31 return block;
32}
33
34void block_dispose(datablock * victim){
35 free(victim->data);
36 free(victim->raw_data);
37 free(victim);
38}
39
40char ** extract_labels0(datablock * blockp){
41 char ** result=(char **) malloc (sizeof(char **));
42 result[0]==NULL;
43 if (get_blocktype(blockp)!=0) return NULL;
44
45 datablock block;
46 block_copy(&block,blockp);
47
48 hw16 * data = block.data;
49 int c;
50 parstrip ((char *)data +4, (block.size - 3) * 2);
51 twistbytes (data + 2, block.size - 3);
52 for (c = 0; c < (((head0*)data)->N - 3) / 3; c++) {
53 char akt[7];
54 memcpy (akt, ((char *) data) + 4 + c * 6, 6);
55 akt[6]=0;
56
57
58 int dd=5;
59