Previous 199869 Revisions Next

r19970 Monday 31st December, 2012 at 15:23:16 UTC by David Haywood
there are 81 track adf files out there, actually I think there can be anything from 1 track to 82 tracks, but we'll cross that bridge when we come to it etc.)
[src/lib/formats]ami_dsk.c

trunk/src/lib/formats/ami_dsk.c
r19969r19970
6868int adf_format::identify(io_generic *io, UINT32 form_factor)
6969{
7070   UINT64 size = io_generic_size(io);
71   if ((size == 901120) || (size == 1802240))
71   if ((size == 901120) || (size == 912384) || (size == 1802240))
7272   {
7373      return 50;
7474   }
r19969r19970
7979{
8080   desc_s sectors[22];
8181   UINT8 sectdata[512*22];
82   bool is_hd = false;
83   int tracks = 80;
84
8285   for(int i=0; i<22; i++) {
8386      sectors[i].data = sectdata + 512*i;
8487      sectors[i].size = 512;
r19969r19970
8689   }
8790
8891   UINT64 size = io_generic_size(io);
89   if(size == 901120) {
92   if(size == 901120)
93   {
94      is_hd = false;
95      tracks = 80;
96   }
97   else if (size == 912384)
98   {
99      is_hd = false;
100      tracks = 81;
101   }
102   else
103   {
104      is_hd = true;
105      tracks = 80;
106   }
107     
108   if (!is_hd) {
90109      image->set_variant(floppy_image::DSDD);
91      for(int track=0; track < 80; track++) {
110      for(int track=0; track < tracks; track++) {
92111         for(int side=0; side < 2; side++) {
93112            io_generic_read(io, sectdata, (track*2 + side)*512*11, 512*11);
94113            generate_track(amiga_11, track, side, sectors, 11, 100000, image);
r19969r19970
96115      }
97116   } else {
98117      image->set_variant(floppy_image::DSHD);
99      for(int track=0; track < 80; track++) {
118      for(int track=0; track < tracks; track++) {
100119         for(int side=0; side < 2; side++) {
101120            io_generic_read(io, sectdata, (track*2 + side)*512*22, 512*22);
102121            generate_track(amiga_22, track, side, sectors, 22, 200000, image);

Previous 199869 Revisions Next


© 1997-2024 The MAME Team