--- cwcbm/writecbm.c 2004/01/07 16:53:58 1.2 +++ cwcbm/writecbm.c 2004/01/10 14:05:59 1.3 @@ -155,7 +155,7 @@ static void encode_sectors(int track) int sector; // Encode each sector - for (sector = 0; sector < num_sectors[track]; sector++) { + for (sector = 0; sector < format->num_sectors[track]; sector++) { encode_header(track, sector, 0x41, 0x41); encode_data(track, track_buf + SECTOR_SIZE * sector); } @@ -172,10 +172,10 @@ static int write_track(int drive, int tr // Write empty track inb(c.iobase + 1); - for (i = 0; i < bps[std_speed[track]] * 60 / drive_rpm; i++) + for (i = 0; i < format->bps[format->std_speed[track]] * 60 / drive_rpm; i++) PUT(2); outb(0xff, c.io_mem); - if (!catweasel_write(c.drives + drive, 0, 1, 1100 * 60 / drive_rpm)) { + if (!catweasel_write(c.drives + drive, track > format->tracks_per_side ? 1 : 0, 1, 1100 * 60 / drive_rpm)) { fprintf(stderr, "Error writing track %d\n", track); return 0; } @@ -225,9 +225,9 @@ int main(int argc, char **argv) if (!catweasel_write_protected(c.drives + drive_num)) { // No, write all tracks - for (track = 1; track <= NUM_TRACKS; track++) { + for (track = 1; track <= format->sides * format->tracks_per_side; track++) { printf("Track %d...\n", track); - if (fread(track_buf, 256, num_sectors[track], f) != num_sectors[track]) { + if (fread(track_buf, 256, format->num_sectors[track], f) != format->num_sectors[track]) { fprintf(stderr, "Error reading input file\n"); break; }