/[gxemul]/trunk/src/devices/dev_ps2_stuff.c
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/src/devices/dev_ps2_stuff.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 4 by dpavlin, Mon Oct 8 16:18:00 2007 UTC revision 24 by dpavlin, Mon Oct 8 16:19:56 2007 UTC
# Line 1  Line 1 
1  /*  /*
2   *  Copyright (C) 2003-2005  Anders Gavare.  All rights reserved.   *  Copyright (C) 2003-2006  Anders Gavare.  All rights reserved.
3   *   *
4   *  Redistribution and use in source and binary forms, with or without   *  Redistribution and use in source and binary forms, with or without
5   *  modification, are permitted provided that the following conditions are met:   *  modification, are permitted provided that the following conditions are met:
# Line 25  Line 25 
25   *  SUCH DAMAGE.   *  SUCH DAMAGE.
26   *     *  
27   *   *
28   *  $Id: dev_ps2_stuff.c,v 1.23 2005/04/11 22:55:42 debug Exp $   *  $Id: dev_ps2_stuff.c,v 1.28 2006/03/04 12:38:48 debug Exp $
29   *     *  
30   *  Playstation 2 misc. stuff:   *  Playstation 2 misc. stuff:
31   *   *
# Line 79  void dev_ps2_stuff_tick(struct cpu *cpu, Line 79  void dev_ps2_stuff_tick(struct cpu *cpu,
79                          cpu_interrupt(cpu, 8 + 9 + i);                          cpu_interrupt(cpu, 8 + 9 + i);
80    
81                          /*  timer 1..3 are "single-shot"? TODO  */                          /*  timer 1..3 are "single-shot"? TODO  */
82                          if (i > 0)                          if (i > 0) {
83                                  d->timer_mode[i] &= ~(T_MODE_CMPE | T_MODE_OVFF);                                  d->timer_mode[i] &=
84                                        ~(T_MODE_CMPE | T_MODE_OVFF);
85                            }
86                  }                  }
87          }          }
88  }  }
# Line 89  void dev_ps2_stuff_tick(struct cpu *cpu, Line 91  void dev_ps2_stuff_tick(struct cpu *cpu,
91  /*  /*
92   *  dev_ps2_stuff_access():   *  dev_ps2_stuff_access():
93   */   */
94  int dev_ps2_stuff_access(struct cpu *cpu, struct memory *mem,  DEVICE_ACCESS(ps2_stuff)
         uint64_t relative_addr, unsigned char *data, size_t len,  
         int writeflag, void *extra)  
95  {  {
96          uint64_t idata = 0, odata = 0;          uint64_t idata = 0, odata = 0;
97          int regnr = 0;          int regnr = 0;
98          struct ps2_data *d = extra;          struct ps2_data *d = extra;
99          int timer_nr = 0;          int timer_nr = 0;
100    
101          idata = memory_readmax64(cpu, data, len);          if (writeflag == MEM_WRITE)
102                    idata = memory_readmax64(cpu, data, len);
103    
104          if (relative_addr >= 0x8000 && relative_addr < 0x8000 + DMAC_REGSIZE) {          if (relative_addr >= 0x8000 && relative_addr < 0x8000 + DMAC_REGSIZE) {
105                  regnr = (relative_addr - 0x8000) / 16;                  regnr = (relative_addr - 0x8000) / 16;
# Line 334  struct ps2_data *dev_ps2_stuff_init(stru Line 335  struct ps2_data *dev_ps2_stuff_init(stru
335          d->other_memory_base[DMA_CH_GIF] = DEV_PS2_GIF_FAKE_BASE;          d->other_memory_base[DMA_CH_GIF] = DEV_PS2_GIF_FAKE_BASE;
336    
337          memory_device_register(mem, "ps2_stuff", baseaddr,          memory_device_register(mem, "ps2_stuff", baseaddr,
338              DEV_PS2_STUFF_LENGTH, dev_ps2_stuff_access, d, MEM_DEFAULT, NULL);              DEV_PS2_STUFF_LENGTH, dev_ps2_stuff_access, d, DM_DEFAULT, NULL);
339          machine_add_tickfunction(machine,          machine_add_tickfunction(machine,
340              dev_ps2_stuff_tick, d, TICK_STEPS_SHIFT);              dev_ps2_stuff_tick, d, TICK_STEPS_SHIFT, 0.0);
341    
342          return d;          return d;
343  }  }

Legend:
Removed from v.4  
changed lines
  Added in v.24

  ViewVC Help
Powered by ViewVC 1.1.26