trunk/src/lib/formats/imd_dsk.c
| r22098 | r22099 | |
| 353 | 353 | |
| 354 | 354 | int imd_format::identify(io_generic *io, UINT32 form_factor) |
| 355 | 355 | { |
| 356 | | char h[32]; |
| 356 | char h[4]; |
| 357 | 357 | |
| 358 | | io_generic_read(io, h, 0, 31); |
| 359 | | if(h[7] == ':') { |
| 360 | | h[30] = 0; |
| 361 | | for(int i=0; i != 30; i++) |
| 362 | | if(h[i] >= '0' && h[i] <= '9') \ |
| 363 | | h[i] = '0'; |
| 358 | io_generic_read(io, h, 0, 4); |
| 359 | if(!memcmp(h, "IMD ", 4)) |
| 360 | return 100; |
| 364 | 361 | |
| 365 | | fixnum(h+ 9, h+11); |
| 366 | | fixnum(h+12, h+14); |
| 367 | | fixnum(h+15, h+19); |
| 368 | | fixnum(h+20, h+22); |
| 369 | | fixnum(h+23, h+25); |
| 370 | | fixnum(h+26, h+28); |
| 371 | | |
| 372 | | if(!strcmp(h, "IMD 0.0: 00/00/0000 00:00:00\015\012")) |
| 373 | | return 100; |
| 374 | | } else { |
| 375 | | h[31] = 0; |
| 376 | | for(int i=0; i != 31; i++) |
| 377 | | if(h[i] >= '0' && h[i] <= '9') \ |
| 378 | | h[i] = '0'; |
| 379 | | |
| 380 | | fixnum(h+10, h+12); |
| 381 | | fixnum(h+13, h+15); |
| 382 | | fixnum(h+16, h+20); |
| 383 | | fixnum(h+21, h+23); |
| 384 | | fixnum(h+24, h+26); |
| 385 | | fixnum(h+27, h+29); |
| 386 | | |
| 387 | | if(!strcmp(h, "IMD 0.00: 00/00/0000 00:00:00\015\012")) |
| 388 | | return 100; |
| 389 | | } |
| 390 | | |
| 391 | 362 | return 0; |
| 392 | 363 | } |
| 393 | 364 | |