branches/alto2/src/emu/cpu/alto2/alto2.c
| r26238 | r26239 | |
| 76 | 76 | AM_RANGE(0177776, 0177776) AM_READWRITE( noop_r, noop_w ) // { Digital-Analog Converter, Joystick } |
| 77 | 77 | AM_RANGE(0177777, 0177777) AM_READWRITE( noop_r, noop_w ) // { Digital-Analog Converter, Joystick } |
| 78 | 78 | |
| 79 | | // AM_RANGE(0200000, 0377777) AM_READWRITE( ioram_r, ioram_w ) |
| 79 | AM_RANGE(0200000, 0377777) AM_READWRITE( ioram_r, ioram_w ) |
| 80 | 80 | ADDRESS_MAP_END |
| 81 | 81 | |
| 82 | 82 | //------------------------------------------------- |
| r26238 | r26239 | |
| 86 | 86 | alto2_cpu_device::alto2_cpu_device(const machine_config& mconfig, const char* tag, device_t* owner, UINT32 clock) : |
| 87 | 87 | cpu_device(mconfig, ALTO2, "Xerox Alto-II", tag, owner, clock, "alto2", __FILE__), |
| 88 | 88 | #if ALTO2_DEBUG |
| 89 | | m_log_types(LOG_DISK|LOG_KSEC|LOG_KWD), |
| 89 | m_log_types(LOG_ALL), |
| 90 | 90 | m_log_level(8), |
| 91 | 91 | m_log_newline(true), |
| 92 | 92 | #endif |
| 93 | 93 | m_ucode_config("ucode", ENDIANNESS_BIG, 32, 12, -2 ), |
| 94 | 94 | m_const_config("const", ENDIANNESS_BIG, 16, 8, -1 ), |
| 95 | | m_iomem_config("iomem", ENDIANNESS_BIG, 16, 16, -1 ), |
| 95 | m_iomem_config("iomem", ENDIANNESS_BIG, 16, 17, -1 ), |
| 96 | 96 | m_ucode_crom(0), |
| 97 | 97 | m_const_data(0), |
| 98 | 98 | m_icount(0), |
| r26238 | r26239 | |
| 2611 | 2611 | |
| 2612 | 2612 | do { |
| 2613 | 2613 | int do_bs, flags; |
| 2614 | | UINT32 alu; |
| 2614 | UINT16 alu; |
| 2615 | 2615 | UINT8 aluf; |
| 2616 | 2616 | UINT8 bs; |
| 2617 | 2617 | UINT8 f1; |
| r26238 | r26239 | |
| 2853 | 2853 | alu = alu_74181(SMC(1,1,1,1, 0, 1)); |
| 2854 | 2854 | #else |
| 2855 | 2855 | alu = m_bus + 0177777; |
| 2856 | | m_aluc0 = (~m_alu >> 16) & 1; |
| 2856 | m_aluc0 = (~alu >> 16) & 1; |
| 2857 | 2857 | #endif |
| 2858 | 2858 | flags = ALUM2 | TSELECT; |
| 2859 | 2859 | LOG((LOG_CPU,2," ALU← BUS - 1 (%#o := %#o - 1)\n", alu, m_bus)); |
| r26238 | r26239 | |
| 2870 | 2870 | alu = alu_74181(SMC(1,0,0,1, 0, 1)); |
| 2871 | 2871 | #else |
| 2872 | 2872 | alu = m_bus + m_t; |
| 2873 | | m_aluc0 = (m_alu >> 16) & 1; |
| 2873 | m_aluc0 = (alu >> 16) & 1; |
| 2874 | 2874 | #endif |
| 2875 | 2875 | flags = ALUM2; |
| 2876 | 2876 | LOG((LOG_CPU,2," ALU← BUS + T (%#o := %#o + %#o)\n", alu, m_bus, m_t)); |
| r26238 | r26239 | |
| 2887 | 2887 | alu = alu_74181(SMC(0,1,1,0, 0, 0)); |
| 2888 | 2888 | #else |
| 2889 | 2889 | alu = m_bus + ~m_t + 1; |
| 2890 | | m_aluc0 = (~m_alu >> 16) & 1; |
| 2890 | m_aluc0 = (~alu >> 16) & 1; |
| 2891 | 2891 | #endif |
| 2892 | 2892 | flags = ALUM2; |
| 2893 | 2893 | LOG((LOG_CPU,2," ALU← BUS - T (%#o := %#o - %#o)\n", alu, m_bus, m_t)); |
| r26238 | r26239 | |
| 2904 | 2904 | alu = alu_74181(SMC(0,1,1,0, 0, 1)); |
| 2905 | 2905 | #else |
| 2906 | 2906 | alu = m_bus + ~m_t; |
| 2907 | | m_aluc0 = (~m_alu >> 16) & 1; |
| 2907 | m_aluc0 = (~alu >> 16) & 1; |
| 2908 | 2908 | #endif |
| 2909 | 2909 | flags = ALUM2; |
| 2910 | 2910 | LOG((LOG_CPU,2," ALU← BUS - T - 1 (%#o := %#o - %#o - 1)\n", alu, m_bus, m_t)); |
| r26238 | r26239 | |
| 2921 | 2921 | alu = alu_74181(SMC(1,0,0,1, 0, 0)); |
| 2922 | 2922 | #else |
| 2923 | 2923 | alu = m_bus + m_t + 1; |
| 2924 | | m_aluc0 = (m_alu >> 16) & 1; |
| 2924 | m_aluc0 = (alu >> 16) & 1; |
| 2925 | 2925 | #endif |
| 2926 | 2926 | flags = ALUM2 | TSELECT; |
| 2927 | 2927 | LOG((LOG_CPU,2," ALU← BUS + T + 1 (%#o := %#o + %#o + 1)\n", alu, m_bus, m_t)); |
| r26238 | r26239 | |
| 2938 | 2938 | alu = alu_74181(SMC(0,0,0,0, 0, m_emu.skip^1)); |
| 2939 | 2939 | #else |
| 2940 | 2940 | alu = m_bus + m_emu.skip; |
| 2941 | | m_aluc0 = (m_alu >> 16) & 1; |
| 2941 | m_aluc0 = (alu >> 16) & 1; |
| 2942 | 2942 | #endif |
| 2943 | 2943 | flags = ALUM2 | TSELECT; |
| 2944 | 2944 | LOG((LOG_CPU,2," ALU← BUS + SKIP (%#o := %#o + %#o)\n", alu, m_bus, m_emu.skip)); |