/[gxemul]/trunk/src/devices/dev_malta_lcd.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_malta_lcd.c

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

revision 10 by dpavlin, Mon Oct 8 16:18:27 2007 UTC revision 22 by dpavlin, Mon Oct 8 16:19:37 2007 UTC
# Line 1  Line 1 
1  /*  /*
2   *  Copyright (C) 2005  Anders Gavare.  All rights reserved.   *  Copyright (C) 2005-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_malta_lcd.c,v 1.1 2005/06/20 08:19:58 debug Exp $   *  $Id: dev_malta_lcd.c,v 1.6 2006/02/09 20:02:59 debug Exp $
29   *   *
30   *  Malta (evbmips) LCD thingy.   TODO: This is just a dummy device.   *  Malta (evbmips) LCD thingy. Mostly a dummy device.
31   */   */
32    
33  #include <stdio.h>  #include <stdio.h>
# Line 68  void dev_malta_lcd_tick(struct cpu *cpu, Line 68  void dev_malta_lcd_tick(struct cpu *cpu,
68                  d->display_modified = 2;                  d->display_modified = 2;
69                  return;                  return;
70          }          }
71          fatal("[ malta_lcd:  ");          debug("[ malta_lcd:  ");
72          for (i=0; i<LCD_LEN; i++)          for (i=0; i<LCD_LEN; i++)
73                  if (d->display[i] >= ' ')                  if (d->display[i] >= ' ')
74                          fatal("%c", d->display[i]);                          debug("%c", d->display[i]);
75          fatal("  ]\n");          debug("  ]\n");
76          d->display_modified = 0;          d->display_modified = 0;
77  }  }
78    
# Line 80  void dev_malta_lcd_tick(struct cpu *cpu, Line 80  void dev_malta_lcd_tick(struct cpu *cpu,
80  /*  /*
81   *  dev_malta_lcd_access():   *  dev_malta_lcd_access():
82   */   */
83  int dev_malta_lcd_access(struct cpu *cpu, struct memory *mem,  DEVICE_ACCESS(malta_lcd)
         uint64_t relative_addr, unsigned char *data, size_t len,  
         int writeflag, void *extra)  
84  {  {
85          struct malta_lcd_data *d = (struct malta_lcd_data *) extra;          struct malta_lcd_data *d = (struct malta_lcd_data *) extra;
86          uint64_t idata = 0, odata = 0;          uint64_t idata = 0, odata = 0;
87          int i;          int i;
88    
89          idata = memory_readmax64(cpu, data, len);          if (writeflag == MEM_WRITE)
90                    idata = memory_readmax64(cpu, data, len);
91    
92          switch (relative_addr) {          switch (relative_addr) {
93          case 0x18:          case 0x18:
# Line 123  int dev_malta_lcd_access(struct cpu *cpu Line 122  int dev_malta_lcd_access(struct cpu *cpu
122  }  }
123    
124    
125  /*  DEVINIT(malta_lcd)
  *  devinit_malta_lcd():  
  */  
 int devinit_malta_lcd(struct devinit *devinit)  
126  {  {
127          struct malta_lcd_data *d = malloc(sizeof(struct malta_lcd_data));          struct malta_lcd_data *d = malloc(sizeof(struct malta_lcd_data));
128    
# Line 138  int devinit_malta_lcd(struct devinit *de Line 134  int devinit_malta_lcd(struct devinit *de
134    
135          memory_device_register(devinit->machine->memory, devinit->name,          memory_device_register(devinit->machine->memory, devinit->name,
136              devinit->addr, DEV_MALTA_LCD_LENGTH,              devinit->addr, DEV_MALTA_LCD_LENGTH,
137              dev_malta_lcd_access, (void *)d, MEM_DEFAULT, NULL);              dev_malta_lcd_access, (void *)d, DM_DEFAULT, NULL);
138    
139          machine_add_tickfunction(devinit->machine, dev_malta_lcd_tick,          machine_add_tickfunction(devinit->machine, dev_malta_lcd_tick,
140              d, MALTA_LCD_TICK_SHIFT);              d, MALTA_LCD_TICK_SHIFT);

Legend:
Removed from v.10  
changed lines
  Added in v.22

  ViewVC Help
Powered by ViewVC 1.1.26