Previous 199869 Revisions Next

r37120 Saturday 11th April, 2015 at 17:56:40 UTC by Curt Coder
Cleanup. (nw)
[src/emu/bus/ieee488]c2040fdc.c c8050.c c8050fdc.c c8050fdc.h
[src/emu/machine]mos6530n.c
[src/mess/machine]victor9k_fdc.c

trunk/src/emu/bus/ieee488/c2040fdc.c
r245631r245632
2828
2929#define LOG 0
3030
31#define GCR_DECODE(_e, _i) \
32   ((BIT(_e, 6) << 7) | (BIT(_i, 7) << 6) | (_e & 0x33) | (BIT(_e, 2) << 3) | (_i & 0x04))
3133
34#define GCR_ENCODE(_e, _i) \
35   ((_e & 0xc0) << 2 | (_i & 0x80) | (_e & 0x3c) << 1 | (_i & 0x04) | (_e & 0x03))
3236
37
38
3339//**************************************************************************
3440//  DEVICE DEFINITIONS
3541//**************************************************************************
r245631r245632
349355
350356         if (!ready) {
351357            // load write shift register
352            // E7 E6 I7 E5 E4 E3 E2 I2 E1 E0
353            UINT8 e = cur_live.e;
354            offs_t i = cur_live.i;
358            cur_live.shift_reg_write = GCR_ENCODE(cur_live.e, cur_live.i);
355359
356            cur_live.shift_reg_write = BIT(e,7)<<9 | BIT(e,6)<<8 | BIT(i,7)<<7 | BIT(e,5)<<6 | BIT(e,4)<<5 | BIT(e,3)<<4 | BIT(e,2)<<3 | BIT(i,2)<<2 | (e & 0x03);
357
358360            if (LOG) logerror("%s load write shift register %03x\n",cur_live.tm.as_string(),cur_live.shift_reg_write);
359361         } else if (BIT(cell_counter, 1) && !BIT(cur_live.cell_counter, 1)) {
360362            // clock write shift register
r245631r245632
433435   UINT8 e = checkpoint_live.e;
434436   offs_t i = checkpoint_live.i;
435437
436   UINT8 data = (BIT(e, 6) << 7) | (BIT(i, 7) << 6) | (e & 0x33) | (BIT(e, 2) << 3) | (i & 0x04);
438   UINT8 data = GCR_DECODE(e, i);
437439
438440   if (LOG) logerror("%s %s VIA reads data %02x (%03x)\n", machine().time().as_string(), machine().describe_context(), data, checkpoint_live.shift_reg);
439441
trunk/src/emu/bus/ieee488/c8050.c
r245631r245632
550550   MCFG_MOS6530n_OUT_PB1_CB(DEVWRITELINE(FDC_TAG, c8050_fdc_t, ds0_w))
551551   MCFG_MOS6530n_OUT_PB2_CB(DEVWRITELINE(FDC_TAG, c8050_fdc_t, ds1_w))
552552   MCFG_MOS6530n_IN_PB3_CB(DEVREADLINE(FDC_TAG, c8050_fdc_t, wps_r))
553   MCFG_MOS6530n_IN_PB6_CB(VCC) // SINGLE SIDED
554553
555554   MCFG_DEVICE_ADD(FDC_TAG, C8050_FDC, XTAL_12MHz/2)
556555   MCFG_C8050_SYNC_CALLBACK(DEVWRITELINE(M6522_TAG, via6522_device, write_pb7))
trunk/src/emu/bus/ieee488/c8050fdc.c
r245631r245632
230230
231231   cur_live.shift_reg = 0;
232232   cur_live.shift_reg_write = 0;
233   cur_live.cycle_counter = 0;
234   cur_live.cell_counter = 0;
235233   cur_live.bit_counter = 0;
236234   cur_live.ds = m_ds;
237235   cur_live.drv_sel = m_drv_sel;
r245631r245632
395393
396394         // GCR decoder
397395         if (cur_live.rw_sel) {
398            cur_live.i = cur_live.shift_reg;
396            cur_live.i = (cur_live.rw_sel << 10) | cur_live.shift_reg;
399397         } else {
400            cur_live.i = ((cur_live.pi & 0xf0) << 1) | (cur_live.mode_sel << 4) | (cur_live.pi & 0x0f);
398            cur_live.i = (cur_live.rw_sel << 10) | ((cur_live.pi & 0xf0) << 1) | (cur_live.mode_sel << 4) | (cur_live.pi & 0x0f);
401399         }
402400
403         cur_live.e = m_gcr_rom->base()[cur_live.rw_sel << 10 | cur_live.i];
401         cur_live.e = m_gcr_rom->base()[cur_live.i];
404402
405403         if (LOG) logerror("%s cyl %u bit %u sync %u bc %u sr %03x i %03x e %02x\n",cur_live.tm.as_string(),get_floppy()->get_cyl(),bit,sync,cur_live.bit_counter,cur_live.shift_reg,cur_live.i,cur_live.e);
406404
trunk/src/emu/bus/ieee488/c8050fdc.h
r245631r245632
110110
111111      attotime edge;
112112      UINT16 shift_reg;
113      int cycle_counter;
114      int cell_counter;
115113      int bit_counter;
116114      UINT8 e;
117115      offs_t i;
trunk/src/emu/machine/mos6530n.c
r245631r245632
367367   UINT8 data = (out & ddr_out) | (in & ddr_in);
368368
369369   if (LOG) logerror("%s %s MOS6530 '%s' Port B Data In %02x\n", machine().time().as_string(), machine().describe_context(), tag(), data);
370logerror("PB data read %02x\n",data);
370
371371   return data;
372372}
373373
trunk/src/mess/machine/victor9k_fdc.c
r245631r245632
12451245
12461246         // GCR decoder
12471247         if (cur_live.drw) {
1248            cur_live.i = cur_live.shift_reg;
1248            cur_live.i = cur_live.drw << 10 | cur_live.shift_reg;
12491249         } else {
1250            cur_live.i = 0x200 | ((cur_live.wd & 0xf0) << 1) | cur_live.wrsync << 4 | (cur_live.wd & 0x0f);
1250            cur_live.i = cur_live.drw << 10 | 0x200 | ((cur_live.wd & 0xf0) << 1) | cur_live.wrsync << 4 | (cur_live.wd & 0x0f);
12511251         }
12521252
1253         cur_live.e = m_gcr_rom->base()[cur_live.drw << 10 | cur_live.i];
1253         cur_live.e = m_gcr_rom->base()[cur_live.i];
12541254
12551255         attotime next = cur_live.tm + m_period;
12561256         if (LOG) logerror("%s:%s cyl %u bit %u sync %u bc %u sr %03x sbc %u sBC %u syn %u i %03x e %02x\n",cur_live.tm.as_string(),next.as_string(),get_floppy()->get_cyl(),bit,sync,cur_live.bit_counter,cur_live.shift_reg,cur_live.sync_bit_counter,cur_live.sync_byte_counter,syn,cur_live.i,cur_live.e);


Previous 199869 Revisions Next


© 1997-2024 The MAME Team