Previous 199869 Revisions Next

r33711 Saturday 6th December, 2014 at 17:05:13 UTC by Curt Coder
(MESS) victor9k: Floppy WIP. (nw)
[src/lib/formats]victor9k_dsk.c
[src/mess/drivers]victor9k.c
[src/mess/machine]victor9k_fdc.c victor9k_fdc.h

trunk/src/lib/formats/victor9k_dsk.c
r242222r242223
354354      1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
355355      2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
356356      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,
359359      6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
360360      7, 7, 7, 7, 7, 7, 7, 7, 7
361361   },
trunk/src/mess/drivers/victor9k.c
r242222r242223
1313
1414    TODO:
1515
16   - centronics
17   - expansion bus
18      - Z80 card
19      - Winchester DMA card (Xebec S1410 + Tandon TM502/TM603SE)
20      - RAM cards
21      - clock cards
1622    - floppy 8048
1723    - keyboard
1824    - hires graphics
r242222r242223
2026    - brightness/contrast
2127    - MC6852
2228    - codec sound
23    - hard disk (Tandon TM502, TM603SE)
2429
2530*/
2631
trunk/src/mess/machine/victor9k_fdc.c
r242222r242223
3030    TODO:
3131
3232   - 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
3338    - 8048 spindle speed control
3439    - read PLL
3540    - write logic
r242222r242223
10191024
10201025READ8_MEMBER( victor_9000_fdc_t::cs7_r )
10211026{
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);
10301028
1029   if (LOG_VIA) logerror("%s %s LBRDY 1 : %02x\n", machine().time().as_string(), machine().describe_context(), m_via5->read(space, offset));
1030
10311031   return m_via5->read(space, offset);
10321032}
10331033
10341034WRITE8_MEMBER( victor_9000_fdc_t::cs7_w )
10351035{
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);
10441037
1038   if (LOG_VIA) logerror("%s %s LBRDY 1\n", machine().time().as_string(), machine().describe_context());
1039
10451040   m_via5->write(space, offset, data);
10461041}
10471042
r242222r242223
11791174   cur_live.write_start_time = attotime::never;
11801175
11811176   cur_live.brdy = 1;
1182   cur_live.lbrdy = 1;
11831177   cur_live.lbrdy_changed = true;
11841178   cur_live.sync = 1;
11851179   cur_live.syn = 1;
r242222r242223
12491243
12501244         cur_live.e = m_gcr_rom->base()[cur_live.i];
12511245
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);
12531248
12541249         // byte ready
12551250         int brdy = !(cur_live.bit_counter == 9);
r242222r242223
12611256            if (LOG) logerror("%s BRDY %u\n", cur_live.tm.as_string(),brdy);
12621257            if (!brdy)
12631258            {
1264               cur_live.lbrdy = 0;
12651259               cur_live.lbrdy_changed = true;
12661260               if (LOG_VIA) logerror("%s LBRDY 0 : %02x\n", cur_live.tm.as_string(), GCR_DECODE(cur_live.e, cur_live.i));
12671261            }
r242222r242223
13021296
13031297      case RUNNING_SYNCPOINT: {
13041298         if (cur_live.lbrdy_changed) {
1305            m_lbrdy_cb(cur_live.lbrdy);
1299            m_lbrdy_cb(0);
13061300            cur_live.lbrdy_changed = false;
13071301         }
13081302
trunk/src/mess/machine/victor9k_fdc.h
r242222r242223
140140      int sync_bit_counter;
141141      int sync_byte_counter;
142142      int brdy;
143      int lbrdy;
144143      bool lbrdy_changed;
145144      int sync;
146145      int syn;


Previous 199869 Revisions Next


© 1997-2024 The MAME Team