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

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

revision 34 by dpavlin, Mon Oct 8 16:21:17 2007 UTC revision 42 by dpavlin, Mon Oct 8 16:22:32 2007 UTC
# Line 25  Line 25 
25   *  SUCH DAMAGE.   *  SUCH DAMAGE.
26   *     *  
27   *   *
28   *  $Id: dev_fdc.c,v 1.19 2006/12/30 13:30:58 debug Exp $   *  $Id: dev_fdc.c,v 1.21 2007/06/15 19:11:15 debug Exp $
29   *     *  
30   *  PC-style floppy controller.   *  COMMENT: PC-style floppy controller
31   *   *
32   *  TODO!  (This is just a dummy skeleton right now.)   *  TODO!  (This is just a dummy skeleton right now.)
33   *   *
# Line 42  Line 42 
42  #include <string.h>  #include <string.h>
43    
44  #include "device.h"  #include "device.h"
45    #include "interrupt.h"
46  #include "machine.h"  #include "machine.h"
47  #include "memory.h"  #include "memory.h"
48  #include "misc.h"  #include "misc.h"
# Line 51  Line 52 
52    
53    
54  struct fdc_data {  struct fdc_data {
55          unsigned char   reg[DEV_FDC_LENGTH];          uint8_t                 reg[DEV_FDC_LENGTH];
56          int             irqnr;          struct interrupt        irq;
57  };  };
58    
59    
 /*  
  *  dev_fdc_access():  
  */  
60  DEVICE_ACCESS(fdc)  DEVICE_ACCESS(fdc)
61  {  {
62            struct fdc_data *d = extra;
63          uint64_t idata = 0, odata = 0;          uint64_t idata = 0, odata = 0;
64          size_t i;          size_t i;
         struct fdc_data *d = extra;  
65    
66          if (writeflag == MEM_WRITE)          if (writeflag == MEM_WRITE)
67                  idata = memory_readmax64(cpu, data, len);                  idata = memory_readmax64(cpu, data, len);
# Line 95  DEVINIT(fdc) Line 93  DEVINIT(fdc)
93  {  {
94          struct fdc_data *d;          struct fdc_data *d;
95    
96          d = malloc(sizeof(struct fdc_data));          CHECK_ALLOCATION(d = malloc(sizeof(struct fdc_data)));
         if (d == NULL) {  
                 fprintf(stderr, "out of memory\n");  
                 exit(1);  
         }  
97          memset(d, 0, sizeof(struct fdc_data));          memset(d, 0, sizeof(struct fdc_data));
98          d->irqnr = devinit->irq_nr;  
99            INTERRUPT_CONNECT(devinit->interrupt_path, d->irq);
100    
101          memory_device_register(devinit->machine->memory, devinit->name,          memory_device_register(devinit->machine->memory, devinit->name,
102              devinit->addr, DEV_FDC_LENGTH, dev_fdc_access, d,              devinit->addr, DEV_FDC_LENGTH, dev_fdc_access, d,

Legend:
Removed from v.34  
changed lines
  Added in v.42

  ViewVC Help
Powered by ViewVC 1.1.26