trunk/src/lib/formats/victor9k_dsk.c
| r242222 | r242223 | |
| 354 | 354 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
| 355 | 355 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, |
| 356 | 356 | 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, |
| 357 | | 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, |
| 358 | | 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, |
| 357 | 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, |
| 358 | 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, |
| 359 | 359 | 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, |
| 360 | 360 | 7, 7, 7, 7, 7, 7, 7, 7, 7 |
| 361 | 361 | }, |
trunk/src/mess/machine/victor9k_fdc.c
| r242222 | r242223 | |
| 30 | 30 | TODO: |
| 31 | 31 | |
| 32 | 32 | - communication error with SCP after loading boot sector |
| 33 | - bp ff1a8 |
| 34 | - patch ff1ab=c3 |
| 35 | - data block checksum errors loading header track |
| 36 | - bp ff46a (ax = checksum read from disk, dx = calculated checksum) |
| 37 | - bit stream is offset by 1 bit at some point |
| 33 | 38 | - 8048 spindle speed control |
| 34 | 39 | - read PLL |
| 35 | 40 | - write logic |
| r242222 | r242223 | |
| 1019 | 1024 | |
| 1020 | 1025 | READ8_MEMBER( victor_9000_fdc_t::cs7_r ) |
| 1021 | 1026 | { |
| 1022 | | if (!checkpoint_live.lbrdy) |
| 1023 | | { |
| 1024 | | live_sync(); |
| 1025 | | cur_live.lbrdy = 1; |
| 1026 | | cur_live.lbrdy_changed = true; |
| 1027 | | if (LOG_VIA) logerror("%s %s LBRDY 1 : %02x\n", machine().time().as_string(), machine().describe_context(), m_via5->read(space, offset)); |
| 1028 | | live_delay(RUNNING_SYNCPOINT); |
| 1029 | | } |
| 1027 | m_lbrdy_cb(1); |
| 1030 | 1028 | |
| 1029 | if (LOG_VIA) logerror("%s %s LBRDY 1 : %02x\n", machine().time().as_string(), machine().describe_context(), m_via5->read(space, offset)); |
| 1030 | |
| 1031 | 1031 | return m_via5->read(space, offset); |
| 1032 | 1032 | } |
| 1033 | 1033 | |
| 1034 | 1034 | WRITE8_MEMBER( victor_9000_fdc_t::cs7_w ) |
| 1035 | 1035 | { |
| 1036 | | if (!checkpoint_live.lbrdy) |
| 1037 | | { |
| 1038 | | live_sync(); |
| 1039 | | cur_live.lbrdy = 1; |
| 1040 | | cur_live.lbrdy_changed = true; |
| 1041 | | if (LOG_VIA) logerror("%s %s LBRDY 1\n", machine().time().as_string(), machine().describe_context()); |
| 1042 | | live_delay(RUNNING_SYNCPOINT); |
| 1043 | | } |
| 1036 | m_lbrdy_cb(1); |
| 1044 | 1037 | |
| 1038 | if (LOG_VIA) logerror("%s %s LBRDY 1\n", machine().time().as_string(), machine().describe_context()); |
| 1039 | |
| 1045 | 1040 | m_via5->write(space, offset, data); |
| 1046 | 1041 | } |
| 1047 | 1042 | |
| r242222 | r242223 | |
| 1179 | 1174 | cur_live.write_start_time = attotime::never; |
| 1180 | 1175 | |
| 1181 | 1176 | cur_live.brdy = 1; |
| 1182 | | cur_live.lbrdy = 1; |
| 1183 | 1177 | cur_live.lbrdy_changed = true; |
| 1184 | 1178 | cur_live.sync = 1; |
| 1185 | 1179 | cur_live.syn = 1; |
| r242222 | r242223 | |
| 1249 | 1243 | |
| 1250 | 1244 | cur_live.e = m_gcr_rom->base()[cur_live.i]; |
| 1251 | 1245 | |
| 1252 | | if (LOG) logerror("%s bit %u sync %u bc %u sbc %u sBC %u syn %u i %03x e %02x\n",cur_live.tm.as_string(),bit,sync,cur_live.bit_counter,cur_live.sync_bit_counter,cur_live.sync_byte_counter,syn,cur_live.i,cur_live.e); |
| 1246 | attotime next = cur_live.tm + m_period; |
| 1247 | if (LOG) logerror("%s:%s:%s bit %u sync %u bc %u sbc %u sBC %u syn %u i %03x e %02x\n",cur_live.tm.as_string(),next.as_string(),cur_live.edge.as_string(),bit,sync,cur_live.bit_counter,cur_live.sync_bit_counter,cur_live.sync_byte_counter,syn,cur_live.i,cur_live.e); |
| 1253 | 1248 | |
| 1254 | 1249 | // byte ready |
| 1255 | 1250 | int brdy = !(cur_live.bit_counter == 9); |
| r242222 | r242223 | |
| 1261 | 1256 | if (LOG) logerror("%s BRDY %u\n", cur_live.tm.as_string(),brdy); |
| 1262 | 1257 | if (!brdy) |
| 1263 | 1258 | { |
| 1264 | | cur_live.lbrdy = 0; |
| 1265 | 1259 | cur_live.lbrdy_changed = true; |
| 1266 | 1260 | if (LOG_VIA) logerror("%s LBRDY 0 : %02x\n", cur_live.tm.as_string(), GCR_DECODE(cur_live.e, cur_live.i)); |
| 1267 | 1261 | } |
| r242222 | r242223 | |
| 1302 | 1296 | |
| 1303 | 1297 | case RUNNING_SYNCPOINT: { |
| 1304 | 1298 | if (cur_live.lbrdy_changed) { |
| 1305 | | m_lbrdy_cb(cur_live.lbrdy); |
| 1299 | m_lbrdy_cb(0); |
| 1306 | 1300 | cur_live.lbrdy_changed = false; |
| 1307 | 1301 | } |
| 1308 | 1302 | |