trunk/src/lib/formats/ami_dsk.c
| r19969 | r19970 | |
| 68 | 68 | int adf_format::identify(io_generic *io, UINT32 form_factor) |
| 69 | 69 | { |
| 70 | 70 | UINT64 size = io_generic_size(io); |
| 71 | | if ((size == 901120) || (size == 1802240)) |
| 71 | if ((size == 901120) || (size == 912384) || (size == 1802240)) |
| 72 | 72 | { |
| 73 | 73 | return 50; |
| 74 | 74 | } |
| r19969 | r19970 | |
| 79 | 79 | { |
| 80 | 80 | desc_s sectors[22]; |
| 81 | 81 | UINT8 sectdata[512*22]; |
| 82 | bool is_hd = false; |
| 83 | int tracks = 80; |
| 84 | |
| 82 | 85 | for(int i=0; i<22; i++) { |
| 83 | 86 | sectors[i].data = sectdata + 512*i; |
| 84 | 87 | sectors[i].size = 512; |
| r19969 | r19970 | |
| 86 | 89 | } |
| 87 | 90 | |
| 88 | 91 | 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) { |
| 90 | 109 | image->set_variant(floppy_image::DSDD); |
| 91 | | for(int track=0; track < 80; track++) { |
| 110 | for(int track=0; track < tracks; track++) { |
| 92 | 111 | for(int side=0; side < 2; side++) { |
| 93 | 112 | io_generic_read(io, sectdata, (track*2 + side)*512*11, 512*11); |
| 94 | 113 | generate_track(amiga_11, track, side, sectors, 11, 100000, image); |
| r19969 | r19970 | |
| 96 | 115 | } |
| 97 | 116 | } else { |
| 98 | 117 | image->set_variant(floppy_image::DSHD); |
| 99 | | for(int track=0; track < 80; track++) { |
| 118 | for(int track=0; track < tracks; track++) { |
| 100 | 119 | for(int side=0; side < 2; side++) { |
| 101 | 120 | io_generic_read(io, sectdata, (track*2 + side)*512*22, 512*22); |
| 102 | 121 | generate_track(amiga_22, track, side, sectors, 22, 200000, image); |