trunk/src/lib/formats/flex_dsk.c
| r31111 | r31112 | |
| 44 | 44 | int bps = 256; |
| 45 | 45 | int cell_count = 100000; |
| 46 | 46 | int offset = 0; |
| 47 | int head_num = 1; |
| 48 | int total_tracks = info.last_trk+1; |
| 49 | bool double_sided = false; |
| 47 | 50 | |
| 48 | | for(int track=0; track < info.last_trk+1; track++) |
| 51 | if(total_tracks == 40 && spt == 36) |
| 52 | double_sided = true; |
| 53 | if(total_tracks == 77 && spt == 30) |
| 54 | double_sided = true; |
| 55 | if(total_tracks == 80 && spt == 40) // 800kB |
| 56 | double_sided = true; |
| 57 | if(total_tracks == 80 && spt == 72) // 1.44MB |
| 58 | double_sided = true; |
| 59 | |
| 60 | if(double_sided) |
| 49 | 61 | { |
| 50 | | desc_pc_sector sects[80]; |
| 51 | | UINT8 sect_data[20000]; |
| 52 | | int sdatapos = 0; |
| 53 | | for(int i=0; i<spt; i++) |
| 62 | spt = spt / 2; |
| 63 | head_num = 2; |
| 64 | } |
| 65 | |
| 66 | for(int track=0; track < total_tracks; track++) |
| 67 | for(int head=0;head < head_num;head++) |
| 54 | 68 | { |
| 55 | | sects[i].track = track; |
| 56 | | sects[i].head = 0; // no side select? |
| 57 | | sects[i].sector = i+1; |
| 58 | | sects[i].size = 1; |
| 59 | | sects[i].actual_size = bps; |
| 60 | | sects[i].deleted = false; |
| 61 | | sects[i].bad_crc = false; |
| 62 | | sects[i].data = §_data[sdatapos]; |
| 63 | | io_generic_read(io, sects[i].data, offset, bps); |
| 64 | | offset += bps; |
| 65 | | sdatapos += bps; |
| 69 | desc_pc_sector sects[80]; |
| 70 | UINT8 sect_data[20000]; |
| 71 | int sdatapos = 0; |
| 72 | for(int i=0; i<spt; i++) |
| 73 | { |
| 74 | sects[i].track = track; |
| 75 | sects[i].head = head; // no side select? |
| 76 | if(head == 0) |
| 77 | sects[i].sector = i+1; |
| 78 | else |
| 79 | sects[i].sector = i+1+spt; |
| 80 | sects[i].actual_size = bps; |
| 81 | sects[i].size = 1; |
| 82 | sects[i].deleted = false; |
| 83 | sects[i].bad_crc = false; |
| 84 | sects[i].data = §_data[sdatapos]; |
| 85 | io_generic_read(io, sects[i].data, offset, bps); |
| 86 | offset += bps; |
| 87 | sdatapos += bps; |
| 88 | } |
| 89 | // gap sizes unverified |
| 90 | build_wd_track_fm(track, head, image, cell_count, spt, sects, 24, 16, 11); |
| 66 | 91 | } |
| 67 | | // gap sizes unverified |
| 68 | | build_wd_track_fm(track, 0, image, cell_count, spt, sects, 24, 16, 11); |
| 69 | | } |
| 70 | 92 | return true; |
| 71 | 93 | } |
| 72 | 94 | |
trunk/src/mess/drivers/gimix.c
| r31111 | r31112 | |
| 171 | 171 | AM_RANGE(0x0e001, 0x0e001) AM_DEVREADWRITE("acia1",acia6850_device,data_r,data_w) |
| 172 | 172 | AM_RANGE(0x0e004, 0x0e004) AM_DEVREADWRITE("acia2",acia6850_device,status_r,control_w) |
| 173 | 173 | AM_RANGE(0x0e005, 0x0e005) AM_DEVREADWRITE("acia2",acia6850_device,data_r,data_w) |
| 174 | | AM_RANGE(0x0e018, 0x0e01b) AM_READWRITE(fdc_r, fdc_w) // FD1797 FDC (PIO) |
| 174 | //AM_RANGE(0x0e018, 0x0e01b) AM_READWRITE(fdc_r, fdc_w) // FD1797 FDC (PIO) |
| 175 | 175 | AM_RANGE(0x0e100, 0x0e1ff) AM_RAM |
| 176 | 176 | //AM_RANGE(0x0e200, 0x0e20f) // 9511A / 9512 Arithmetic Processor |
| 177 | 177 | AM_RANGE(0x0e210, 0x0e21f) AM_DEVREADWRITE("timer",ptm6840_device,read,write) |