7 #include "hw_helpers.h"
11 #define CHAR_START 0x81
24 enum{OUTSIDE
,INSIDE_ASM
,INSIDE_FORT
};
31 char bstart_str
[bstart_l
] = {CHAR_START
};
32 char bend_str
[bend_l
] = {CHAR_END
,0xff};
33 char endseq_str
[endseq_l
] = {0x83,0x93,0xff};
39 void split(datablock
* block
){
40 if ((block
->type
==BT_STOP
) && splitnum
){
43 snprintf(filename
,200,"%04i-STOP",number
);
44 fd
=open (filename
,O_WRONLY
|O_CREAT
|O_TRUNC
,00644);
45 write(fd
,endseq_str
,endseq_l
);
50 if (block
->type
!=BT_DATA
) return;
54 if (get_blocktype(block
)==6){
55 char* fn
= extract_label6(block
);
58 if (splitnum
) snprintf(filename
,200,"%04i-%s",number
,fn
);
59 else snprintf(filename
,200,"%s",fn
);
61 while (filename
[strlen(filename
)-1]==' ')filename
[strlen(filename
)-1]=0;
62 fd
=open (filename
,O_WRONLY
|O_CREAT
|O_TRUNC
,00644);
64 write(fd
,bstart_str
,bstart_l
);
65 write(fd
,block
->raw_data
,(block
->size
)*3);
66 write(fd
,bend_str
,bend_l
);
69 if ((get_blocktype(block
)==0)&& (get_blocksubtype(block
)==0)){
70 char ** labels
=extract_labels0(block
);
74 if (splitnum
) snprintf(filename
,200,"%04i-%s",number
,fn
);
75 else snprintf(filename
,200,"%s",fn
);
77 while (filename
[strlen(filename
)-1]==' ')filename
[strlen(filename
)-1]=0;
78 fd
=open (filename
,O_WRONLY
|O_CREAT
|O_TRUNC
,00644);
79 dispose_labels(labels
);
82 write(fd
,bstart_str
,bstart_l
);
83 write(fd
,block
->raw_data
,(block
->size
)*3);
84 write(fd
,bend_str
,bend_l
);
89 write(fd
,bstart_str
,bstart_l
);
90 write(fd
,block
->raw_data
,(block
->size
)*3);
91 write(fd
,bend_str
,bend_l
);
92 if (get_blocksubtype(block
)==014){
99 write(fd
,bstart_str
,bstart_l
);
100 write(fd
,block
->raw_data
,(block
->size
)*3);
101 write(fd
,bend_str
,bend_l
);
102 if ((get_blocktype(block
)==3)||get_blocktype(block
)==4){