8 #include "hw_helpers.h"
12 #define CHAR_START 0x81
25 enum{OUTSIDE
,INSIDE_ASM
,INSIDE_FORT
};
32 char bstart_str
[bstart_l
] = {CHAR_START
};
33 char bend_str
[bend_l
] = {CHAR_END
,0xff};
34 char endseq_str
[endseq_l
] = {0x83,0x93,0xff};
40 void split(datablock
* block
){
41 if ((block
->type
==BT_STOP
) && splitnum
){
44 snprintf(filename
,200,"%04i-STOP",number
);
45 fd
=open (filename
,O_WRONLY
|O_CREAT
|O_TRUNC
,00644);
46 write(fd
,endseq_str
,endseq_l
);
51 if (block
->type
!=BT_DATA
) return;
55 if (get_blocktype(block
)==6){
56 char* fn
= extract_label6(block
);
59 if (splitnum
) snprintf(filename
,200,"%04i-%s",number
,fn
);
60 else snprintf(filename
,200,"%s",fn
);
62 while (filename
[strlen(filename
)-1]==' ')filename
[strlen(filename
)-1]=0;
63 fd
=open (filename
,O_WRONLY
|O_CREAT
|O_TRUNC
,00644);
65 write(fd
,bstart_str
,bstart_l
);
66 write(fd
,block
->raw_data
,(block
->size
)*3);
67 write(fd
,bend_str
,bend_l
);
70 if ((get_blocktype(block
)==0)&& (get_blocksubtype(block
)==0)){
71 char ** labels
=extract_labels0(block
);
75 if (splitnum
) snprintf(filename
,200,"%04i-%s",number
,fn
);
76 else snprintf(filename
,200,"%s",fn
);
78 while (filename
[strlen(filename
)-1]==' ')filename
[strlen(filename
)-1]=0;
79 fd
=open (filename
,O_WRONLY
|O_CREAT
|O_TRUNC
,00644);
80 dispose_labels(labels
);
83 write(fd
,bstart_str
,bstart_l
);
84 write(fd
,block
->raw_data
,(block
->size
)*3);
85 write(fd
,bend_str
,bend_l
);
90 write(fd
,bstart_str
,bstart_l
);
91 write(fd
,block
->raw_data
,(block
->size
)*3);
92 write(fd
,bend_str
,bend_l
);
93 if (get_blocksubtype(block
)==014){
100 write(fd
,bstart_str
,bstart_l
);
101 write(fd
,block
->raw_data
,(block
->size
)*3);
102 write(fd
,bend_str
,bend_l
);
103 if ((get_blocktype(block
)==3)||get_blocktype(block
)==4){