trunk/src/lib/formats/flopimg.c
| r31569 | r31570 | |
| 964 | 964 | |
| 965 | 965 | void floppy_image::get_actual_geometry(int &_tracks, int &_heads) |
| 966 | 966 | { |
| 967 | | int maxt = tracks*4, maxh = heads-1; |
| 967 | int maxt = (tracks-1)*4, maxh = heads-1; |
| 968 | 968 | |
| 969 | 969 | while(maxt >= 0) { |
| 970 | 970 | for(int i=0; i<=maxh; i++) |
| 971 | | if(get_track_size(maxt, i)) |
| 971 | if(track_array[maxt][i].track_size) |
| 972 | 972 | goto track_done; |
| 973 | 973 | maxt--; |
| 974 | 974 | } |
| r31569 | r31570 | |
| 976 | 976 | if(maxt >= 0) |
| 977 | 977 | while(maxh >= 0) { |
| 978 | 978 | for(int i=0; i<=maxt; i++) |
| 979 | | if(get_track_size(i, maxh)) |
| 979 | if(track_array[i][maxh].track_size) |
| 980 | 980 | goto head_done; |
| 981 | 981 | maxh--; |
| 982 | 982 | } |
| r31569 | r31570 | |
| 988 | 988 | int floppy_image::get_resolution() const |
| 989 | 989 | { |
| 990 | 990 | int mask = 0; |
| 991 | | for(int i=0; i<tracks*4+1; i++) |
| 991 | for(int i=0; i<=(tracks-1)*4; i++) |
| 992 | 992 | for(int j=0; j<heads; j++) |
| 993 | 993 | if(track_array[i][j].track_size) |
| 994 | 994 | mask |= 1 << (i & 3); |