Previous 15994 Revisions Next

r9632 Monday 22nd November, 2010 at 12:51:16 UTC by Cowering
Tiny timing fixes for upcoming drivers (won't work until Atari Ace fixes are fixed)
[src/mess/machine]mboard.c

src/mess/machine/mboard.c
r9631r9632
2929
3030static int m_board[64];
3131static int save_board[64];
32
3332static UINT16 Line18_LED;
3433static UINT16 Line18_REED;
3534
r9631r9632
6867
6968/*
7069
71Example board scan:
70Example board scan:
7271Starting postion and pawn on E2 is lifted
7372
7473
r9631r9632
8584mask: fb 1111 1011   Line 3
8685data: ff 1111 1111   all fields empty
8786mask: fd 1111 1101   Line 2
88data: 10 0001 0000   E2 is empty rest is occupied
87data: 10 0001 0000   E2 is empty rest is occupied
8988mask: fe 1111 1110   Line 1
9089data:  0 0000 0000   all fields occupied
9190
r9631r9632
120119      Line18_LED = 0;
121120   else
122121      Line18_LED = data;
123   
122
124123    read_board_flag = FALSE;
125124
126125   if (data == 0xff)
r9631r9632
145144
146145*/
147146
148
149147   for (i=0; i < 64; i++)                     /* all  LED's off */
150148      output_set_led_value(i, 0);
151149
r9631r9632
157155         {
158156            for (i_18 = 0; i_18 < 8; i_18++)
159157            {
160               LED = (i_18*8 + 8-i_AH-1);     
161               if (!(Line18_LED & (1 << i_18)))   /* cleared bit */
158               LED = (i_18*8 + 8-i_AH-1);
159               if (!(Line18_LED & (1 << i_18)))   /* cleared bit */
162160                  output_set_led_value(LED, 1);
163               else
164                  output_set_led_value(LED, 0);
161               //else
162               //   output_set_led_value(LED, 0);
165163            }
166164         }
167165      }
r9631r9632
176174   UINT8 data;
177175
178176   data=read_board();
177   logerror("Read Board Port  Data = %d\n  ",data);
179178   return data;
180179}
181180
r9631r9632
198197WRITE8_HANDLER( mboard_write_board_8 )
199198{
200199   write_board(space->machine,data);
200   logerror("Write Board Port  Data = %02x\n  ",data);
201201}
202202
203203WRITE16_HANDLER( mboard_write_board_16 )
204204{
205   if (data && 0xff) write_board(space->machine,data);
206   logerror("write board 16 %08x\n",data);
205207   write_board(space->machine,data>>8);
206208}
207209
208210WRITE32_HANDLER( mboard_write_board_32 )
209211{
212   data |= data << 24;
213   logerror("write board 32 o: %08x d: %08x\n",offset,data);
210214   write_board(space->machine,data>>24);
211215}
212216
213217WRITE8_HANDLER( mboard_write_LED_8 )
214218{
215    write_LED(data);
219   write_LED(data);
220   cpu_spinuntil_time(space->cpu, ATTOTIME_IN_USEC(7));
216221}
217222
218223WRITE16_HANDLER( mboard_write_LED_16 )
219224{
220225    write_LED(data >> 8);
226    cpu_spinuntil_time(space->cpu, ATTOTIME_IN_USEC(9));
221227}
222228
223229WRITE32_HANDLER( mboard_write_LED_32 )
224230{
225    write_LED(data >> 24);
231   data = data | data << 24;
232   write_LED(data >> 24);
233   cpu_spinuntil_time(space->cpu, ATTOTIME_IN_USEC(20));
226234}
227235
228236TIMER_CALLBACK( mboard_update_artwork )
229237{
230238   check_board_buttons(machine);
231239   set_artwork(machine);
232   mboard_set_boarder_pieces();
240   set_boarder_pieces();
233241}
234242
235243/* save states callback */
r9631r9632
317325
318326   if (click_on_boarder_piece)
319327   {
320      if (!mouse_down)
328      if (!mouse_down)
321329      {
322330         if (border_pieces[i] > 12 )      /* second click on selected border piece */
323331         {
r9631r9632
405413         mouse_hold.piece = 0;
406414         mouse_hold.border_piece = FALSE;
407415      }
408         
416
409417      return;
410418   }
411419

Previous 15994 Revisions Next


© 1998-2018 The MESS Team