| 193 | } |
| 194 | |
| 195 | void FormatTrack::DriveSwitchedToWriteMode(UINT uTrackIndex) |
| 196 | { |
| 197 | // ProDOS/DOS3.3: during track write, switches to read mode then back to write mode: |
| 198 | // . between Address Field & Gap2; and between Data Field & Gap3 |
| 199 | // . so if at TS_GAP2_START then stay at TS_GAP2_START |
| 200 | if (m_trackState != TS_GAP2_START) |
| 201 | m_trackState = (m_bmWrittenSectorAddrFields == 0x0000) ? TS_GAP1 : TS_GAP3; |
| 202 | m_uLast3Bytes = 0; |
| 203 | m_4and4idx = 0; |
| 204 | |
| 205 | if (m_bmWrittenSectorAddrFields == 0x0000) // written no sectors |
| 206 | { |
| 207 | m_WriteTrackStartIndex = (UINT)-1; // wait for 1st write |
| 208 | } |
| 209 | } |
| 210 | |
| 211 | // This is just for debug/logging: used to output when a new Address Field has been read |
| 212 | void FormatTrack::DecodeLatchNibbleRead(BYTE floppylatch) |