Previous 199869 Revisions Next

r20855 Saturday 9th February, 2013 at 10:35:45 UTC by O. Galibert
flopimg: When generating a pc layout, don't write the gap3 after the last sector [O. Galibert]
[src/lib/formats]flopimg.c

trunk/src/lib/formats/flopimg.c
r20854r20855
26112611      total_size += sects[i].actual_size;
26122612
26132613   int etpos = tpos;
2614   etpos += (sector_count*(6+5+2+11+6+1+2) + total_size)*16;
2614   etpos += (sector_count*(6+5+2+gap_2+6+1+2) + total_size)*16;
26152615
26162616   if(etpos > cell_count)
26172617      throw emu_fatalerror("Incorrect layout on track %d head %d, expected_size=%d, current_size=%d", track, head, cell_count, etpos);
r20854r20855
26362636      for(int j=0; j<gap_2; j++) fm_w(track_data, tpos, 8, 0xff);
26372637
26382638      if(!sects[i].data)
2639         for(int j=0; j<6+1+sects[i].actual_size+2+gap_3; j++) fm_w(track_data, tpos, 8, 0xff);
2639         for(int j=0; j<6+1+sects[i].actual_size+2+(i != sector_count-1 ? gap_3 : 0); j++) fm_w(track_data, tpos, 8, 0xff);
26402640
26412641      else {
26422642         // sync, DAM, data and gap 3
r20854r20855
26482648         if(sects[i].bad_crc)
26492649            crc = 0xffff^crc;
26502650         fm_w(track_data, tpos, 16, crc);
2651         for(int j=0; j<gap_3; j++) fm_w(track_data, tpos, 8, 0xff);
2651         if(i != sector_count-1)
2652            for(int j=0; j<gap_3; j++) fm_w(track_data, tpos, 8, 0xff);
26522653      }
26532654   }
26542655
r20854r20855
27062707      for(int j=0; j<gap_2; j++) mfm_w(track_data, tpos, 8, 0x4e);
27072708
27082709      if(!sects[i].data)
2709         for(int j=0; j<12+4+sects[i].actual_size+2+gap_3; j++) mfm_w(track_data, tpos, 8, 0x4e);
2710         for(int j=0; j<12+4+sects[i].actual_size+2+(i != sector_count-1 ? gap_3 : 0); j++) mfm_w(track_data, tpos, 8, 0x4e);
27102711
27112712      else {
27122713         // sync, DAM, data and gap 3
r20854r20855
27192720         if(sects[i].bad_crc)
27202721            crc = 0xffff^crc;
27212722         mfm_w(track_data, tpos, 16, crc);
2722         for(int j=0; j<gap_3; j++) mfm_w(track_data, tpos, 8, 0x4e);
2723         if(i != sector_count-1)
2724            for(int j=0; j<gap_3; j++) mfm_w(track_data, tpos, 8, 0x4e);
27232725      }
27242726   }
27252727

Previous 199869 Revisions Next


© 1997-2024 The MAME Team