sector position and duration information.

This commit is contained in:
Jean-François DEL NERO
2026-09-07 22:41:00 +02:00
parent 09234e6c90
commit 1176de74c8
2 changed files with 35 additions and 4 deletions
@@ -40,6 +40,8 @@
#include "libhxcadaptor.h"
#include "floppy_utils.h"
#include "version.h"
void gettracktype(HXCFE_SECTORACCESS* ss,int track,int side,int * nbsect,int *firstsectid,char * format,int * format_id, int *sectorsize)
@@ -223,6 +225,12 @@ int XML_libWrite_DiskFile(HXCFE_IMGLDR* imgldr_ctx,HXCFE_FLOPPY * floppy,char *
fprintf(xmlfile,"\t\t\t<track track_number=\"%.2d\" side_number=\"%d\">\n",j,i);
fprintf(xmlfile,"\t\t\t\t<data_offset>0x%.6X</data_offset>\n",fileoffset);
if( export_mode > 0 )
{
fprintf(xmlfile,"\t\t\t\t<track_length_cells>%d</track_length_cells>\n",floppy->tracks[j]->sides[i]->tracklen);
fprintf(xmlfile,"\t\t\t\t<track_length_us>%.2f</track_length_us>\n",GetTrackPeriod(imgldr_ctx->hxcfe,floppy->tracks[j]->sides[i])*1000*1000);
}
gettracktype(ss,j,i,&nbsect,&firstsectid,(char*)&trackformat,&trackformatid,&sectorsize);
fprintf(xmlfile,"\t\t\t\t<format>%s</format>\n",trackformat);
@@ -330,17 +338,26 @@ int XML_libWrite_DiskFile(HXCFE_IMGLDR* imgldr_ctx,HXCFE_FLOPPY * floppy,char *
}
}
if(sectp->head != i)
if(sectp->head != i || export_mode > 0)
{
fprintf(xmlfile,"\t\t\t\t\t\t<side_id>0x%.2X</side_id>\n",sectp->head);
}
if(sectp->cylinder != j)
if(sectp->cylinder != j || export_mode > 0)
{
fprintf(xmlfile,"\t\t\t\t\t\t<track_id>0x%.2X</track_id>\n",sectp->cylinder);
}
if(sectp->use_alternate_datamark)
if(export_mode > 0)
{
fprintf(xmlfile,"\t\t\t\t\t\t<start_sector_cell>%d</start_sector_cell>\n",sectp->startsectorindex);
fprintf(xmlfile,"\t\t\t\t\t\t<start_datasector_cell>%d</start_datasector_cell>\n",sectp->startdataindex);
fprintf(xmlfile,"\t\t\t\t\t\t<end_sector_cell>%d</end_sector_cell>\n",sectp->endsectorindex);
fprintf(xmlfile,"\t\t\t\t\t\t<start_sector_us>%.2f</start_sector_us>\n",MeasureTrackTiming(imgldr_ctx->hxcfe,floppy->tracks[j]->sides[i],0,sectp->startsectorindex) * 1000 * 1000);
fprintf(xmlfile,"\t\t\t\t\t\t<sector_duration_us>%.2f</sector_duration_us>\n",MeasureTrackTiming(imgldr_ctx->hxcfe,floppy->tracks[j]->sides[i],sectp->startsectorindex,sectp->endsectorindex) * 1000 * 1000);
}
if(sectp->use_alternate_datamark || export_mode > 0)
{
fprintf(xmlfile,"\t\t\t\t\t\t<datamark>0x%.2X</datamark>\n",sectp->alternate_datamark);
}
+15 -1
View File
@@ -67,7 +67,14 @@ enum
TRACK_PREGAP_US,
SET_INDEX_LENGTH,
SET_INDEX_POSITION,
FORMAT_SECTOR
FORMAT_SECTOR,
START_SECTOR_CELL,
START_DATASECTOR_CELL,
END_SECTOR_CELL,
SECTOR_SECTOR_US,
SECTOR_DURATION_US,
TRACK_LENGTH_CELLS,
TRACK_LENGTH_US
};
keyword keyword_list[]=
@@ -119,6 +126,8 @@ keyword keyword_list[]=
{"interleave", INTERLEAVE_TRACK, TRACK},
{"index_len_us", SET_INDEX_LENGTH, TRACK},
{"add_index_us", SET_INDEX_POSITION, TRACK},
{"track_length_cells", TRACK_LENGTH_CELLS, TRACK},
{"track_length_us", TRACK_LENGTH_US, TRACK},
{"sector", SECTOR, SECTORLIST},
{"track_id", TRACKID_SECTOR, SECTOR},
{"side_id", SIDEID_SECTOR, SECTOR},
@@ -134,5 +143,10 @@ keyword keyword_list[]=
{"sector_size", SECTORSIZE_SECTOR, SECTOR},
{"data_offset", DATAOFFSETSECTOR, SECTOR},
{"format", FORMAT_SECTOR, SECTOR},
{"start_sector_cell", START_SECTOR_CELL, SECTOR},
{"start_datasector_cell", START_DATASECTOR_CELL, SECTOR},
{"end_sector_cell", END_SECTOR_CELL, SECTOR},
{"start_sector_us", SECTOR_SECTOR_US, SECTOR},
{"sector_duration_us", SECTOR_DURATION_US, SECTOR},
{0,0,0}
};