| version 1.1, 2004/08/02 13:38:46 | version 1.3, 2004/08/09 04:47:53 | 
| Line 79  void IOOUTCALL fdc_o(UINT port, REG8 val | Line 79  void IOOUTCALL fdc_o(UINT port, REG8 val | 
 |  |  | 
 | REG8    cmd; | REG8    cmd; | 
 |  |  | 
 |  | if ((port & (~7)) != 0x0ff8) { | 
 |  | return; | 
 |  | } | 
 | port &= 0xf; | port &= 0xf; | 
 | if (port == 8) {                                                // コマンド | if (port == 8) {                                                // コマンド | 
 | driveset = 0; | driveset = 0; | 
| Line 165  void IOOUTCALL fdc_o(UINT port, REG8 val | Line 168  void IOOUTCALL fdc_o(UINT port, REG8 val | 
 | break; | break; | 
 |  |  | 
 | case 0xc:                                                               // リードアドレス | case 0xc:                                                               // リードアドレス | 
| fdc.crc_off = 0; | fdc.s.bufpos = 0; | 
|  | fdc.s.bufsize = 0; | 
 | fdcdummyread = 2; | fdcdummyread = 2; | 
 | if (fdc.motor) {                                                                        // ver0.25 | if (fdc.motor) {                                                                        // ver0.25 | 
 | if (dma.DMA_ENBL) { | if (dma.DMA_ENBL) { | 
| Line 175  void IOOUTCALL fdc_o(UINT port, REG8 val | Line 179  void IOOUTCALL fdc_o(UINT port, REG8 val | 
 | { | { | 
 | FDDFILE fdd = fddfile + fdc.drv; | FDDFILE fdd = fddfile + fdc.drv; | 
 | switch(fdd->type) { | switch(fdd->type) { | 
 | case DISKTYPE_NOTREADY: |  | 
 | break; |  | 
 |  |  | 
 | case DISKTYPE_BETA: | case DISKTYPE_BETA: | 
| fdd_crc_2d(); | fdd2d_crc(fdd); | 
 | break; | break; | 
 |  |  | 
 | case DISKTYPE_D88: | case DISKTYPE_D88: | 
 | default: | default: | 
| fdd_crc_d88(); | fddd88_crc(fdd); | 
 | break; | break; | 
 | } | } | 
 | } | } | 
| Line 303  static short last_off; | Line 304  static short last_off; | 
 | BYTE    ans; | BYTE    ans; | 
 | REG8    cmd; | REG8    cmd; | 
 |  |  | 
 |  | if ((port & (~7)) != 0x0ff8) { | 
 |  | return(0xff); | 
 |  | } | 
 | cmd = (REG8)(fdc.cmd >> 4); | cmd = (REG8)(fdc.cmd >> 4); | 
 |  |  | 
 | if ((port &= 0xf) != 8) { | if ((port &= 0xf) != 8) { | 
 | last_r = -1; | last_r = -1; | 
 | last_off = -1; | last_off = -1; | 
| Line 379  static short last_off; | Line 382  static short last_off; | 
 | inc_off(); | inc_off(); | 
 | } | } | 
 | else if (cmd == 0x0c) {                 // リード・アドレス | else if (cmd == 0x0c) {                 // リード・アドレス | 
| if (fdc.crc_off < 6) {          // ver0.25 | if (fdc.s.bufpos < 6) { | 
| fdc.data = fdc.crc_dat[fdc.crc_off]; | fdc.data = fdc.s.buffer[fdc.s.bufpos]; | 
| if (fdcdummyread) {             // ver0.25 | if (fdcdummyread) { | 
 | fdcdummyread--; | fdcdummyread--; | 
 | } | } | 
 | else { | else { | 
| fdc.crc_off++; | fdc.s.bufpos++; | 
 | } | } | 
 | } | } | 
 | } | } | 
| Line 401  static short last_off; | Line 404  static short last_off; | 
 | //                      break; | //                      break; | 
 |  |  | 
 | case 0xe:                                                               // 1.6M | case 0xe:                                                               // 1.6M | 
| fdc.media = 1; | fdc.s.media = DISKTYPE_2HD; | 
 | return(0xff); | return(0xff); | 
 |  |  | 
 | case 0xf:                                                               // 500K/1M | case 0xf:                                                               // 500K/1M | 
| fdc.media = 0; | fdc.s.media = DISKTYPE_2D; | 
 | return(0xff); | return(0xff); | 
 | } | } | 
 | return(0); | return(0); |