From 72de0fd51771831f9bf09ea655929a2780118cd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Fran=C3=A7ois=20DEL=20NERO?= Date: Wed, 9 Sep 2026 09:57:54 +0200 Subject: [PATCH] XML : Address mark field support. --- libhxcfe/sources/loaders/xml_loader/xml_writer.c | 7 ++++++- libhxcfe/sources/xml_disk/xml_disk.c | 9 ++++++++- libhxcfe/sources/xml_disk/xml_disk.h | 2 ++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/libhxcfe/sources/loaders/xml_loader/xml_writer.c b/libhxcfe/sources/loaders/xml_loader/xml_writer.c index 179379eb..c61c6d49 100644 --- a/libhxcfe/sources/loaders/xml_loader/xml_writer.c +++ b/libhxcfe/sources/loaders/xml_loader/xml_writer.c @@ -356,7 +356,12 @@ int XML_libWrite_DiskFile(HXCFE_IMGLDR* imgldr_ctx,HXCFE_FLOPPY * floppy,char * fprintf(xmlfile,"\t\t\t\t\t\t%.2f\n",MeasureTrackTiming(imgldr_ctx->hxcfe,floppy->tracks[j]->sides[i],0,sectp->startsectorindex) * 1000 * 1000); fprintf(xmlfile,"\t\t\t\t\t\t%.2f\n",MeasureTrackTiming(imgldr_ctx->hxcfe,floppy->tracks[j]->sides[i],sectp->startsectorindex,sectp->endsectorindex) * 1000 * 1000); } - + + if(export_mode > 0) + { + fprintf(xmlfile,"\t\t\t\t\t\t0x%.2X\n",sectp->alternate_addressmark); + } + if(sectp->use_alternate_datamark || export_mode > 0) { fprintf(xmlfile,"\t\t\t\t\t\t0x%.2X\n",sectp->alternate_datamark); diff --git a/libhxcfe/sources/xml_disk/xml_disk.c b/libhxcfe/sources/xml_disk/xml_disk.c index fd8488d4..830d3b4d 100644 --- a/libhxcfe/sources/xml_disk/xml_disk.c +++ b/libhxcfe/sources/xml_disk/xml_disk.c @@ -547,7 +547,7 @@ static void XMLCALL charhandler(void *data, const char *s, int len) { AppData *ad = (AppData *) data; char * buffer; - unsigned int datamark; + unsigned int addressmark,datamark; unsigned int crc; int track,sectorsize,i; int tmp_base_adress; @@ -755,6 +755,13 @@ static void XMLCALL charhandler(void *data, const char *s, int len) } } break; + case ADDRESSMARK_SECTOR: + if(!ad->xmlcheck) + { + sscanf(buffer,"0x%X",&addressmark); + hxcfe_setSectorAddressMark (ad->fb,(unsigned char)addressmark); + } + break; case DATAMARK_SECTOR: if(!ad->xmlcheck) { diff --git a/libhxcfe/sources/xml_disk/xml_disk.h b/libhxcfe/sources/xml_disk/xml_disk.h index 5f96e4d3..5feb88ec 100644 --- a/libhxcfe/sources/xml_disk/xml_disk.h +++ b/libhxcfe/sources/xml_disk/xml_disk.h @@ -55,6 +55,7 @@ enum SECTORSIZE_SECTOR, DATAFILL_SECTOR, DATAOFFSETSECTOR, + ADDRESSMARK_SECTOR, DATAMARK_SECTOR, DATACRC_SECTOR, DATACRCSTATUS_SECTOR, @@ -134,6 +135,7 @@ keyword keyword_list[]= {"sector_id", SECTORID_SECTOR, SECTOR}, {"size_id", SIZEID_SECTOR, SECTOR}, {"data_fill", DATAFILL_SECTOR, SECTOR}, + {"addressmark", ADDRESSMARK_SECTOR, SECTOR}, {"datamark", DATAMARK_SECTOR, SECTOR}, {"data_crc", DATACRC_SECTOR, SECTOR}, {"data_crc_status", DATACRCSTATUS_SECTOR, SECTOR},