~ubuntu-branches/ubuntu/lucid/sdlmame/lucid

« back to all changes in this revision

Viewing changes to src/emu/cpu/mcs51/mcs51.c

  • Committer: Bazaar Package Importer
  • Author(s): Cesare Falco
  • Date: 2009-11-03 17:10:15 UTC
  • mfrom: (1.1.5 upstream)
  • Revision ID: james.westby@ubuntu.com-20091103171015-6hop4ory5lxnumpn
Tags: 0.135-0ubuntu1
* New upstream release - Closes (LP: #403212)
* debian/watch: unstable releases are no longer detected
* mame.ini: added the cheat subdirectories to cheatpath so zipped
  cheatfiles will be searched too
* renamed crsshair subdirectory to crosshair to reflect upstream change
* mame.ini: renamed references to crosshair subdirectory (see above)

Show diffs side-by-side

added added

removed removed

Lines of Context:
2025
2025
                case ADDR_SCON:
2026
2026
                        break;
2027
2027
                default:
2028
 
                        LOG(("mcs51 '%s': attemping to write to an invalid/non-implemented SFR address: %zx at 0x%04x, data=%x\n", mcs51_state->device->tag, offset,PC,data));
 
2028
                        LOG(("mcs51 '%s': attemping to write to an invalid/non-implemented SFR address: %x at 0x%04x, data=%x\n", mcs51_state->device->tag, (UINT32)offset,PC,data));
2029
2029
                        /* no write in this case according to manual */
2030
2030
                        return;
2031
2031
        }
2065
2065
                        return memory_read_byte_8le(mcs51_state->data, (size_t) offset | 0x100);
2066
2066
                /* Illegal or non-implemented sfr */
2067
2067
                default:
2068
 
                        LOG(("mcs51 '%s': attemping to read an invalid/non-implemented SFR address: %zx at 0x%04x\n", mcs51_state->device->tag, offset,PC));
 
2068
                        LOG(("mcs51 '%s': attemping to read an invalid/non-implemented SFR address: %x at 0x%04x\n", mcs51_state->device->tag, (UINT32)offset,PC));
2069
2069
                        /* according to the manual, the read may return random bits */
2070
2070
                        return 0xff;
2071
2071
        }
2482
2482
                /* --- the following bits of info are returned as 64-bit signed integers --- */
2483
2483
                case CPUINFO_INT_CONTEXT_SIZE:                                  info->i = sizeof(mcs51_state_t);                                break;
2484
2484
                case CPUINFO_INT_DEFAULT_IRQ_VECTOR:                    info->i = 0;                                                            break;
2485
 
                case CPUINFO_INT_ENDIANNESS:                                    info->i = ENDIANNESS_LITTLE;                                            break;
 
2485
                case DEVINFO_INT_ENDIANNESS:                                    info->i = ENDIANNESS_LITTLE;                                            break;
2486
2486
                case CPUINFO_INT_CLOCK_MULTIPLIER:                              info->i = 1;                                                            break;
2487
2487
                case CPUINFO_INT_CLOCK_DIVIDER:                                 info->i = 12;                                                           break;
2488
2488
                case CPUINFO_INT_MIN_INSTRUCTION_BYTES:                 info->i = 1;                                                            break;
2537
2537
                case CPUINFO_PTR_INTERNAL_MEMORY_MAP_DATA:    info->internal_map8 = NULL;       break;
2538
2538
                case CPUINFO_PTR_INTERNAL_MEMORY_MAP_IO:      info->internal_map8 = NULL;       break;
2539
2539
 
2540
 
                case CPUINFO_STR_NAME:                                                  strcpy(info->s, "I8051");                                       break;
2541
 
                case CPUINFO_STR_CORE_FAMILY:                                   strcpy(info->s, "MCS-51");                                      break;
2542
 
                case CPUINFO_STR_CORE_VERSION:                                  strcpy(info->s, "1.0");                                         break;
2543
 
                case CPUINFO_STR_CORE_FILE:                                             strcpy(info->s, __FILE__);                                      break;
2544
 
                case CPUINFO_STR_CORE_CREDITS:                                  strcpy(info->s, "Copyright Steve Ellenoff"); break;
 
2540
                case DEVINFO_STR_NAME:                                                  strcpy(info->s, "I8051");                                       break;
 
2541
                case DEVINFO_STR_FAMILY:                                        strcpy(info->s, "MCS-51");                                      break;
 
2542
                case DEVINFO_STR_VERSION:                                       strcpy(info->s, "1.0");                                         break;
 
2543
                case DEVINFO_STR_SOURCE_FILE:                                           strcpy(info->s, __FILE__);                                      break;
 
2544
                case DEVINFO_STR_CREDITS:                                       strcpy(info->s, "Copyright Steve Ellenoff"); break;
2545
2545
 
2546
2546
                case CPUINFO_STR_FLAGS:
2547
2547
                        sprintf(info->s, "%c%c%c%c%c%c%c%c",
2584
2584
        switch (state)
2585
2585
        {
2586
2586
                case CPUINFO_PTR_INTERNAL_MEMORY_MAP_DATA:    info->internal_map8 = ADDRESS_MAP_NAME(data_7bit);        break;
2587
 
                case CPUINFO_STR_NAME:                                                  strcpy(info->s, "I8031");                                       break;
 
2587
                case DEVINFO_STR_NAME:                                                  strcpy(info->s, "I8031");                                       break;
2588
2588
                default:                                                                                CPU_GET_INFO_CALL(mcs51);                                       break;
2589
2589
        }
2590
2590
        /* --- the following bits of info are returned as NULL-terminated strings --- */
2596
2596
        {
2597
2597
                case CPUINFO_PTR_INTERNAL_MEMORY_MAP_PROGRAM: info->internal_map8 = ADDRESS_MAP_NAME(program_12bit);    break;
2598
2598
                case CPUINFO_PTR_INTERNAL_MEMORY_MAP_DATA:    info->internal_map8 = ADDRESS_MAP_NAME(data_7bit);        break;
2599
 
                case CPUINFO_STR_NAME:                                                  strcpy(info->s, "I8051");                                       break;
 
2599
                case DEVINFO_STR_NAME:                                                  strcpy(info->s, "I8051");                                       break;
2600
2600
                default:                                                                                CPU_GET_INFO_CALL(mcs51);                                       break;
2601
2601
        }
2602
2602
        /* --- the following bits of info are returned as NULL-terminated strings --- */
2609
2609
                case CPUINFO_FCT_INIT:                                                  info->init = CPU_INIT_NAME(i8052);                      break;
2610
2610
                case CPUINFO_PTR_INTERNAL_MEMORY_MAP_DATA:    info->internal_map8 = ADDRESS_MAP_NAME(data_8bit);        break;
2611
2611
                case CPUINFO_FCT_DISASSEMBLE:                                   info->disassemble = CPU_DISASSEMBLE_NAME(i8052);                                break;
2612
 
                case CPUINFO_STR_NAME:                                                  strcpy(info->s, "I8032");                                       break;
 
2612
                case DEVINFO_STR_NAME:                                                  strcpy(info->s, "I8032");                                       break;
2613
2613
                default:                                                                                CPU_GET_INFO_CALL(mcs51);                                       break;
2614
2614
        }
2615
2615
}
2622
2622
                case CPUINFO_PTR_INTERNAL_MEMORY_MAP_PROGRAM: info->internal_map8 = ADDRESS_MAP_NAME(program_13bit);    break;
2623
2623
                case CPUINFO_PTR_INTERNAL_MEMORY_MAP_DATA:    info->internal_map8 = ADDRESS_MAP_NAME(data_8bit);        break;
2624
2624
                case CPUINFO_FCT_DISASSEMBLE:                                   info->disassemble = CPU_DISASSEMBLE_NAME(i8052);                                break;
2625
 
                case CPUINFO_STR_NAME:                                                  strcpy(info->s, "I8052");                                       break;
 
2625
                case DEVINFO_STR_NAME:                                                  strcpy(info->s, "I8052");                                       break;
2626
2626
                default:                                                                                CPU_GET_INFO_CALL(mcs51);                                       break;
2627
2627
        }
2628
2628
}
2633
2633
        {
2634
2634
                case CPUINFO_PTR_INTERNAL_MEMORY_MAP_PROGRAM: info->internal_map8 = ADDRESS_MAP_NAME(program_12bit);    break;
2635
2635
                case CPUINFO_PTR_INTERNAL_MEMORY_MAP_DATA:    info->internal_map8 = ADDRESS_MAP_NAME(data_7bit);        break;
2636
 
                case CPUINFO_STR_NAME:                                                  strcpy(info->s, "I8751");                                       break;
 
2636
                case DEVINFO_STR_NAME:                                                  strcpy(info->s, "I8751");                                       break;
2637
2637
                default:                                                                                CPU_GET_INFO_CALL(mcs51);                                       break;
2638
2638
        }
2639
2639
}
2646
2646
                case CPUINFO_PTR_INTERNAL_MEMORY_MAP_PROGRAM: info->internal_map8 = ADDRESS_MAP_NAME(program_13bit);    break;
2647
2647
                case CPUINFO_PTR_INTERNAL_MEMORY_MAP_DATA:    info->internal_map8 = ADDRESS_MAP_NAME(data_8bit);        break;
2648
2648
                case CPUINFO_FCT_DISASSEMBLE:                                   info->disassemble = CPU_DISASSEMBLE_NAME(i8052);                                break;
2649
 
                case CPUINFO_STR_NAME:                                                  strcpy(info->s, "I8752");                                       break;
 
2649
                case DEVINFO_STR_NAME:                                                  strcpy(info->s, "I8752");                                       break;
2650
2650
                default:                                                                                CPU_GET_INFO_CALL(mcs51);                                       break;
2651
2651
        }
2652
2652
}
2665
2665
                case CPUINFO_PTR_INTERNAL_MEMORY_MAP_PROGRAM: info->internal_map8 = NULL;       break;
2666
2666
                case CPUINFO_PTR_INTERNAL_MEMORY_MAP_DATA:    info->internal_map8 = ADDRESS_MAP_NAME(data_7bit);        break;
2667
2667
                case CPUINFO_FCT_DISASSEMBLE:                                   info->disassemble = CPU_DISASSEMBLE_NAME(i80c51);                       break;
2668
 
                case CPUINFO_STR_NAME:                                                  strcpy(info->s, "I80C31");                                      break;
 
2668
                case DEVINFO_STR_NAME:                                                  strcpy(info->s, "I80C31");                                      break;
2669
2669
                default:                                                                                CPU_GET_INFO_CALL(i8031);                                       break;
2670
2670
        }
2671
2671
}
2676
2676
        {
2677
2677
                case CPUINFO_FCT_INIT:                                                  info->init = CPU_INIT_NAME(i80c51);                     break;
2678
2678
                case CPUINFO_FCT_DISASSEMBLE:                                   info->disassemble = CPU_DISASSEMBLE_NAME(i80c51);                       break;
2679
 
                case CPUINFO_STR_NAME:                                                  strcpy(info->s, "I80C51");                                      break;
 
2679
                case DEVINFO_STR_NAME:                                                  strcpy(info->s, "I80C51");                                      break;
2680
2680
                default:                                                                                CPU_GET_INFO_CALL(i8051);                                       break;
2681
2681
        }
2682
2682
}
2687
2687
        {
2688
2688
                case CPUINFO_FCT_INIT:                                                  info->init = CPU_INIT_NAME(i80c52);                     break;
2689
2689
                case CPUINFO_FCT_DISASSEMBLE:                                   info->disassemble = CPU_DISASSEMBLE_NAME(i80c52);                       break;
2690
 
                case CPUINFO_STR_NAME:                                                  strcpy(info->s, "I80C32");                                      break;
 
2690
                case DEVINFO_STR_NAME:                                                  strcpy(info->s, "I80C32");                                      break;
2691
2691
                default:                                                                                CPU_GET_INFO_CALL(i8032);                                       break;
2692
2692
        }
2693
2693
}
2697
2697
        switch (state)
2698
2698
        {
2699
2699
                case CPUINFO_FCT_INIT:                                                  info->init = CPU_INIT_NAME(i80c52);                     break;
2700
 
                case CPUINFO_STR_NAME:                                                  strcpy(info->s, "I80C52");                                      break;
 
2700
                case DEVINFO_STR_NAME:                                                  strcpy(info->s, "I80C52");                                      break;
2701
2701
                case CPUINFO_FCT_DISASSEMBLE:                                   info->disassemble = CPU_DISASSEMBLE_NAME(i80c52);                       break;
2702
2702
                default:                                                                                CPU_GET_INFO_CALL(i8052);                                       break;
2703
2703
        }
2708
2708
        switch (state)
2709
2709
        {
2710
2710
                case CPUINFO_FCT_INIT:                                                  info->init = CPU_INIT_NAME(i80c51);                     break;
2711
 
                case CPUINFO_STR_NAME:                                                  strcpy(info->s, "I87C51");                                      break;
 
2711
                case DEVINFO_STR_NAME:                                                  strcpy(info->s, "I87C51");                                      break;
2712
2712
                case CPUINFO_FCT_DISASSEMBLE:                                   info->disassemble = CPU_DISASSEMBLE_NAME(i80c51);                       break;
2713
2713
                default:                                                                                CPU_GET_INFO_CALL(i8751);                                       break;
2714
2714
        }
2719
2719
        switch (state)
2720
2720
        {
2721
2721
                case CPUINFO_FCT_INIT:                                                  info->init = CPU_INIT_NAME(i80c52);                     break;
2722
 
                case CPUINFO_STR_NAME:                                                  strcpy(info->s, "I87C52");                                      break;
 
2722
                case DEVINFO_STR_NAME:                                                  strcpy(info->s, "I87C52");                                      break;
2723
2723
                case CPUINFO_FCT_DISASSEMBLE:                                   info->disassemble = CPU_DISASSEMBLE_NAME(i80c52);                       break;
2724
2724
                default:                                                                                CPU_GET_INFO_CALL(i8752);                                       break;
2725
2725
        }
2734
2734
        switch (state)
2735
2735
        {
2736
2736
                case CPUINFO_FCT_INIT:                                                  info->init = CPU_INIT_NAME(i80c51);                     break;
2737
 
                case CPUINFO_STR_NAME:                                                  strcpy(info->s, "AT89C4051");                           break;
 
2737
                case DEVINFO_STR_NAME:                                                  strcpy(info->s, "AT89C4051");                           break;
2738
2738
                case CPUINFO_FCT_DISASSEMBLE:                                   info->disassemble = CPU_DISASSEMBLE_NAME(i80c51);                       break;
2739
2739
                default:                                                                                CPU_GET_INFO_CALL(i8051);                                       break;
2740
2740
        }
2745
2745
        switch (state)
2746
2746
        {
2747
2747
                case CPUINFO_FCT_INIT:                                                  info->init = CPU_INIT_NAME(ds5002fp);           break;
2748
 
                case CPUINFO_STR_NAME:                                                  strcpy(info->s, "DS5002FP");                            break;
2749
 
                case CPUINFO_STR_CORE_FAMILY:                                   strcpy(info->s, "Dallas");                                      break;
2750
 
                case CPUINFO_STR_CORE_VERSION:                                  strcpy(info->s, "1.0");                                         break;
2751
 
                case CPUINFO_STR_CORE_FILE:                                             strcpy(info->s, __FILE__);                                      break;
2752
 
                case CPUINFO_STR_CORE_CREDITS:                                  strcpy(info->s, "Copyright Manuel Abadia"); break;
 
2748
                case DEVINFO_STR_NAME:                                                  strcpy(info->s, "DS5002FP");                            break;
 
2749
                case DEVINFO_STR_FAMILY:                                        strcpy(info->s, "Dallas");                                      break;
 
2750
                case DEVINFO_STR_VERSION:                                       strcpy(info->s, "1.0");                                         break;
 
2751
                case DEVINFO_STR_SOURCE_FILE:                                           strcpy(info->s, __FILE__);                                      break;
 
2752
                case DEVINFO_STR_CREDITS:                                       strcpy(info->s, "Copyright Manuel Abadia"); break;
2753
2753
                case CPUINFO_FCT_DISASSEMBLE:                                   info->disassemble = CPU_DISASSEMBLE_NAME(ds5002fp);                     break;
2754
2754
                default:                                                                                CPU_GET_INFO_CALL(i8051);                                       break;
2755
2755
        }