Previous 199869 Revisions Next

r30986 Monday 16th June, 2014 at 01:31:54 UTC by Barry Rodewald
dim_dsk: fix 2HS image loading (can now boot Illumination LASER from floppy)
[src/lib/formats]dim_dsk.c

trunk/src/lib/formats/dim_dsk.c
r30985r30986
148148{
149149   int offset = 0x100;
150150   UINT8 h;
151   UINT8 track_total = 77;
152   int cell_count = form_factor == floppy_image::FF_35 ? 200000 : 166666;
151153
152154   io_generic_read(io, &h, 0, 1);
153155
r30985r30986
160162      size = 3;
161163      break;
162164   case 1:
165      spt = 9;
166      gap3 = 0x39;
167      size = 3;
168      break;
163169   case 3:
164170      spt = 9;
165171      gap3 = 0x39;
r30985r30986
183189   }
184190   bps = 128 << size;
185191
186   for(int track=0; track < 77; track++)
192   for(int track=0; track < track_total; track++)
187193      for(int head=0; head < 2; head++) {
188194         desc_pc_sector sects[30];
189195         UINT8 sect_data[10000];
r30985r30986
191197         for(int i=0; i<spt; i++) {
192198            sects[i].track       = track;
193199            sects[i].head        = head;
194            sects[i].sector      = i+1;
200            if(h == 1)  // handle 2HS sector layout
201            {
202               if(i == 0 && track == 0)
203                  sects[i].sector      = i+1;
204               else
205                  sects[i].sector      = i+10;
206            }
207            else
208               sects[i].sector      = i+1;
195209            sects[i].size        = size;
196210            sects[i].actual_size = bps;
197211            sects[i].deleted     = false;
r30985r30986
202216            sdatapos += bps;
203217         }
204218
205         build_pc_track_mfm(track, head, image, (500000*60/360)*2, spt, sects, gap3);
219         build_pc_track_mfm(track, head, image, cell_count, spt, sects, gap3);
206220      }
207221
208222   return true;

Previous 199869 Revisions Next


© 1997-2024 The MAME Team