diff options
author | Vas Crabb <vas@vastheman.com> | 2020-02-02 04:19:17 +1100 |
---|---|---|
committer | Vas Crabb <vas@vastheman.com> | 2020-02-02 04:19:17 +1100 |
commit | 753dd7944226dced299d0e6317ad7d3e38177d02 (patch) | |
tree | 6594d06d8e5f8b8ca06f1d0286deea0505fd25ce | |
parent | ed4aa2ec9a658ff378daddb0c5ac08d86152af60 (diff) | |
parent | 4bf541695a96ad3a01e1327a3badaba5109f55d8 (diff) |
Merge branch 'release0218' into mainline-master
25 files changed, 387 insertions, 350 deletions
diff --git a/src/devices/bus/isa/s3virge.cpp b/src/devices/bus/isa/s3virge.cpp index d24e0893fb0..111d87002e8 100644 --- a/src/devices/bus/isa/s3virge.cpp +++ b/src/devices/bus/isa/s3virge.cpp @@ -80,9 +80,9 @@ void s3virge_vga_device::device_start() vga.memory.resize(vga.svga_intf.vram_size); memset(&vga.memory[0], 0, vga.svga_intf.vram_size); save_item(vga.memory,"Video RAM"); - save_pointer(vga.crtc.data,"CRTC Registers",0x100); - save_pointer(vga.sequencer.data,"Sequencer Registers",0x100); - save_pointer(vga.attribute.data,"Attribute Registers", 0x15); + save_item(vga.crtc.data,"CRTC Registers"); + save_item(vga.sequencer.data,"Sequencer Registers"); + save_item(vga.attribute.data,"Attribute Registers"); m_vblank_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(vga_device::vblank_timer_cb),this)); m_draw_timer = timer_alloc(TIMER_DRAW_STEP); @@ -91,12 +91,12 @@ void s3virge_vga_device::device_start() memset(&s3virge, 0, sizeof(s3virge)); s3virge.linear_address = 0x70000000; s3virge.s3d.cmd_fifo_slots_free = 16; - save_pointer(s3virge.s3d.pattern,"S3D Pattern Data", 0xc0); - save_pointer(s3virge.s3d.reg[0],"S3D Registers: BitBLT",0x100); - save_pointer(s3virge.s3d.reg[1],"S3D Registers: 2D Line",0x100); - save_pointer(s3virge.s3d.reg[2],"S3D Registers: 2D Polygon",0x100); - save_pointer(s3virge.s3d.reg[3],"S3D Registers: 3D Line",0x100); - save_pointer(s3virge.s3d.reg[4],"S3D Registers: 3D Triangle",0x100); + save_item(s3virge.s3d.pattern,"S3D Pattern Data"); + save_item(s3virge.s3d.reg[0],"S3D Registers: BitBLT"); + save_item(s3virge.s3d.reg[1],"S3D Registers: 2D Line"); + save_item(s3virge.s3d.reg[2],"S3D Registers: 2D Polygon"); + save_item(s3virge.s3d.reg[3],"S3D Registers: 3D Line"); + save_item(s3virge.s3d.reg[4],"S3D Registers: 3D Triangle"); // Initialise hardware graphics cursor colours, Windows 95 doesn't touch the registers for some reason for(x=0;x<4;x++) @@ -932,7 +932,7 @@ void s3virge_vga_device::command_start() m_draw_timer->adjust(attotime::from_nsec(250),0,attotime::from_nsec(250)); s3virge.s3d.bitblt_step_count = 0; s3virge.s3d.bitblt_mono_pattern = - s3virge.s3d.cmd_fifo[s3virge.s3d.cmd_fifo_current_ptr].reg[S3D_REG_MONO_PAT_0] | (uint64_t)(s3virge.s3d.cmd_fifo[s3virge.s3d.cmd_fifo_current_ptr].reg[S3D_REG_MONO_PAT_1]) << 32; + s3virge.s3d.cmd_fifo[s3virge.s3d.cmd_fifo_current_ptr].reg[S3D_REG_MONO_PAT_0] | (uint64_t)(s3virge.s3d.cmd_fifo[s3virge.s3d.cmd_fifo_current_ptr].reg[S3D_REG_MONO_PAT_1]) << 32; s3virge.s3d.bitblt_current_pixel = 0; s3virge.s3d.bitblt_pixel_pos = 0; s3virge.s3d.cmd_fifo[s3virge.s3d.cmd_fifo_current_ptr].reg[S3D_REG_PAT_BG_CLR] = 0xffffffff; // win31 never sets this? @@ -1058,8 +1058,10 @@ bool s3virge_vga_device::advance_pixel() s3virge.s3d.bitblt_pat_x = s3virge.s3d.bitblt_x_current % 8; if(s3virge.s3d.bitblt_pat_y >= 8 || s3virge.s3d.bitblt_pat_y < 0) s3virge.s3d.bitblt_pat_y = s3virge.s3d.bitblt_y_current % 8; - logerror("SRC: %i,%i DST: %i,%i PAT: %i,%i Bounds: %i,%i,%i,%i\n", - s3virge.s3d.bitblt_x_src_current,s3virge.s3d.bitblt_y_src_current,s3virge.s3d.bitblt_x_current,s3virge.s3d.bitblt_y_current,s3virge.s3d.bitblt_pat_x,s3virge.s3d.bitblt_pat_y, + logerror("SRC: %i,%i DST: %i,%i PAT: %i,%i Bounds: %i,%i,%i,%i\n", + s3virge.s3d.bitblt_x_src_current,s3virge.s3d.bitblt_y_src_current, + s3virge.s3d.bitblt_x_current,s3virge.s3d.bitblt_y_current, + s3virge.s3d.bitblt_pat_x,s3virge.s3d.bitblt_pat_y, left,right,top,bottom); if((s3virge.s3d.bitblt_y_current >= bottom) || (s3virge.s3d.bitblt_y_current <= top)) return true; diff --git a/src/devices/bus/multibus/isbc202.cpp b/src/devices/bus/multibus/isbc202.cpp index 864856eca8c..490ed125e97 100644 --- a/src/devices/bus/multibus/isbc202.cpp +++ b/src/devices/bus/multibus/isbc202.cpp @@ -135,11 +135,11 @@ offs_t isbc202_disassembler::disassemble(std::ostream &stream, offs_t pc, const uint32_t microcode = opcodes.r32(pc); // Decode address control instruction - uint8_t ac = (uint8_t)(microcode >> 25); + uint8_t ac = uint8_t(microcode >> 25); if ((ac & 0b1100000) == 0b0000000) { // JCC - util::stream_format(stream , "JCC $%03x" , (((uint16_t)ac & 0b11111) << 4) | (pc & 0xf)); + util::stream_format(stream , "JCC $%03x" , ((uint16_t(ac) & 0b11111) << 4) | (pc & 0xf)); } else if ((ac & 0b1110000) == 0b0100000) { // JZR util::stream_format(stream , "JZR $00%x" , ac & 0b1111); @@ -173,11 +173,11 @@ offs_t isbc202_disassembler::disassemble(std::ostream &stream, offs_t pc, const } // Decode input multiplexer - uint8_t in = (uint8_t)((microcode >> 13) & 7); + uint8_t in = uint8_t((microcode >> 13) & 7); util::stream_format(stream , " I=%u" , in); // Decode function code - uint8_t fc = (uint8_t)((microcode >> 18) & 0x7f); + uint8_t fc = uint8_t((microcode >> 18) & 0x7f); uint8_t fg; uint8_t rg; unsigned reg; @@ -189,8 +189,8 @@ offs_t isbc202_disassembler::disassemble(std::ostream &stream, offs_t pc, const stream << (BIT(microcode , 16) ? " HCZ" : " SCZ"); // Decode K - uint8_t slk = (uint8_t)((microcode >> 8) & 3); - uint8_t mask = (uint8_t)microcode; + uint8_t slk = uint8_t((microcode >> 8) & 3); + uint8_t mask = uint8_t(microcode); uint8_t kbus; if (!BIT(slk , 0)) { kbus = mask; @@ -204,7 +204,7 @@ offs_t isbc202_disassembler::disassemble(std::ostream &stream, offs_t pc, const // Decode OUT util::stream_format(stream , " S=%u M=$%02x" , slk , mask); if (BIT(slk , 0) && !BIT(mask , 7)) { - uint8_t out = (uint8_t)((microcode >> 10) & 7); + uint8_t out = uint8_t((microcode >> 10) & 7); util::stream_format(stream , " O=%u" , out); } @@ -481,11 +481,11 @@ void isbc202_device::device_timer(emu_timer &timer, device_timer_id id, int para } ROM_START(isbc202) - ROM_REGION(0x800 , "microcode" , ROMREGION_32BIT | ROMREGION_BE) - ROM_LOAD32_BYTE("sbc202-a10-0230.bin" , 0x000 , 0x200 , CRC(e8fa3893) SHA1(88fab74b0466e8aac36eee46cd7536ed1b32a2c9)) - ROM_LOAD32_BYTE("sbc202-a11-0261.bin" , 0x001 , 0x200 , CRC(3ad01769) SHA1(4c22b8fc3ea599dd49684ff4dcafc29ec3425c4c)) - ROM_LOAD32_BYTE("sbc202-a12-0233.bin" , 0x002 , 0x200 , CRC(61496232) SHA1(b0473217944b2f6e966d97e97cf5ad8d883a09e4)) - ROM_LOAD32_BYTE("sbc202-a13-0232.bin" , 0x003 , 0x200 , CRC(c369ab86) SHA1(fc3b7f9c3e71ea1442827c51247a9944c6d40b37)) + ROM_REGION(0x800 , "microcode" , ROMREGION_32BIT | ROMREGION_BE) + ROM_LOAD32_BYTE("sbc202-a10-0230.bin" , 0x000 , 0x200 , CRC(e8fa3893) SHA1(88fab74b0466e8aac36eee46cd7536ed1b32a2c9)) + ROM_LOAD32_BYTE("sbc202-a11-0261.bin" , 0x001 , 0x200 , CRC(3ad01769) SHA1(4c22b8fc3ea599dd49684ff4dcafc29ec3425c4c)) + ROM_LOAD32_BYTE("sbc202-a12-0233.bin" , 0x002 , 0x200 , CRC(61496232) SHA1(b0473217944b2f6e966d97e97cf5ad8d883a09e4)) + ROM_LOAD32_BYTE("sbc202-a13-0232.bin" , 0x003 , 0x200 , CRC(c369ab86) SHA1(fc3b7f9c3e71ea1442827c51247a9944c6d40b37)) ROM_END const tiny_rom_entry *isbc202_device::device_rom_region() const @@ -571,14 +571,14 @@ void isbc202_device::execute_run() // 12..10 Output control // 9..8 SLK field // 7..0 Mask field - m_ac = (uint8_t)(m_code_word >> 25); - m_fc = (uint8_t)((m_code_word >> 18) & 0x7f); + m_ac = uint8_t(m_code_word >> 25); + m_fc = uint8_t((m_code_word >> 18) & 0x7f); m_fc32 = BIT(m_code_word , 17); m_fc10 = BIT(m_code_word , 16); - m_in_sel = (uint8_t)((m_code_word >> 13) & 7); - m_out_sel = (uint8_t)((m_code_word >> 10) & 7); - m_slk = (uint8_t)((m_code_word >> 8) & 3); - m_mask = (uint8_t)m_code_word; + m_in_sel = uint8_t((m_code_word >> 13) & 7); + m_out_sel = uint8_t((m_code_word >> 10) & 7); + m_slk = uint8_t((m_code_word >> 8) & 3); + m_mask = uint8_t(m_code_word); m_mcu->fc_w((m_fc32 ? 0b1100 : 0b0000) | (m_fc10 ? 0b0011 : 0b0000)); @@ -852,7 +852,7 @@ void isbc202_device::set_output() if (m_mem_wrt) { if (!m_wrt_inh) { // CPU memory write - uint16_t addr = m_addr_low_out | ((uint16_t)abus_r() << 8); + uint16_t addr = m_addr_low_out | (uint16_t(abus_r()) << 8); if (m_mem_space) { LOG_BUS("MEM W %04x=%02x\n" , addr , m_data_low_out); m_mem_space->write_byte(addr , m_data_low_out); @@ -862,7 +862,7 @@ void isbc202_device::set_output() } } else { // CPU memory read - uint16_t addr = m_addr_low_out | ((uint16_t)abus_r() << 8); + uint16_t addr = m_addr_low_out | (uint16_t(abus_r()) << 8); if (m_mem_space) { m_data_low_in = m_mem_space->read_byte(addr); LOG_BUS("MEM R %04x=%02x\n" , addr , m_data_low_in); @@ -1130,7 +1130,7 @@ uint8_t isbc202_device::aligned_rd_data(uint16_t sr) LOG_RD("Aligning by %u bits\n" , bits); sr <<= bits; } - return (uint8_t)(sr >> 8); + return uint8_t(sr >> 8); } void isbc202_device::rd_bits(unsigned n) diff --git a/src/devices/bus/ti99/internal/992board.cpp b/src/devices/bus/ti99/internal/992board.cpp index fcb5d904a68..5bae14a0e9a 100644 --- a/src/devices/bus/ti99/internal/992board.cpp +++ b/src/devices/bus/ti99/internal/992board.cpp @@ -12,6 +12,7 @@ ***************************************************************************/ #include "emu.h" +#include "992board.h" #define LOG_WARN (1U<<1) // Warnings #define LOG_CRU (1U<<2) // CRU logging @@ -20,10 +21,9 @@ #define LOG_BANK (1U<<5) // Change ROM banks #define LOG_KEYBOARD (1U<<6) // Keyboard operation -#define VERBOSE ( LOG_GENERAL | LOG_WARN ) +#define VERBOSE ( LOG_WARN ) #include "logmacro.h" -#include "992board.h" /* Emulation of the CRT Gate Array of the TI-99/2 diff --git a/src/devices/cpu/gigatron/gigatron.cpp b/src/devices/cpu/gigatron/gigatron.cpp index 3e687baa930..643e99dabe5 100644 --- a/src/devices/cpu/gigatron/gigatron.cpp +++ b/src/devices/cpu/gigatron/gigatron.cpp @@ -13,7 +13,7 @@ #include "gigatrondasm.h" -DEFINE_DEVICE_TYPE(GTRON, gigatron_cpu_device, "gigatron_cpu", "Gigatron") +DEFINE_DEVICE_TYPE(GTRON, gigatron_cpu_device, "gigatron_cpu", "Gigatron CPU") /* FLAGS */ @@ -59,28 +59,28 @@ void gigatron_cpu_device::execute_run() uint8_t bus = (opcode >> 8) & 0x0003; uint8_t d = (opcode >> 0) & 0x00ff; - switch( op) + switch (op) { - case 0: - case 1: - case 2: - case 3: - case 4: - case 5: - aluOp(op, mode, bus, d); - break; - case 6: - storeOp(op, mode, bus, d); - break; - case 7: - branchOp(op, mode, bus, d); - break; - default: - gigatron_illegal(); - break; + case 0: + case 1: + case 2: + case 3: + case 4: + case 5: + aluOp(op, mode, bus, d); + break; + case 6: + storeOp(op, mode, bus, d); + break; + case 7: + branchOp(op, mode, bus, d); + break; + default: + gigatron_illegal(); + break; } m_icount--; - } while( m_icount > 0 ); + } while (m_icount > 0); } @@ -127,35 +127,37 @@ void gigatron_cpu_device::branchOp(uint8_t op, uint8_t mode, uint8_t bus, uint8_ bool c = false; uint8_t ac2 = m_ac ^ ZERO; uint16_t base = m_pc & 0xff00; - switch (mode) { - case 0: - c = true; - base = m_y << 8; - break; - case 1: - c = (ac2 > ZERO); - break; - case 2: - c = (ac2 < ZERO); - break; - case 3: - c = (ac2 != ZERO); - break; - case 4: - c = (ac2 == ZERO); - break; - case 5: - c = (ac2 >= ZERO); - break; - case 6: - c = (ac2 <= ZERO); - break; - case 7: - c = true; - break; + switch (mode) + { + case 0: + c = true; + base = m_y << 8; + break; + case 1: + c = (ac2 > ZERO); + break; + case 2: + c = (ac2 < ZERO); + break; + case 3: + c = (ac2 != ZERO); + break; + case 4: + c = (ac2 == ZERO); + break; + case 5: + c = (ac2 >= ZERO); + break; + case 6: + c = (ac2 <= ZERO); + break; + case 7: + c = true; + break; } - if (c) { + if (c) + { uint8_t b = offset(bus, d); m_npc = base | b; } @@ -164,94 +166,97 @@ void gigatron_cpu_device::branchOp(uint8_t op, uint8_t mode, uint8_t bus, uint8_ void gigatron_cpu_device::aluOp(uint8_t op, uint8_t mode, uint8_t bus, uint8_t d) { uint8_t b = 0; - switch(bus) { - case 0: - b = d; - break; - case 1: - b = gigatron_readmem8((uint16_t)(addr(mode, d) & m_ramMask)); - break; - case 2: - b = m_ac; - break; - case 3: - b = m_inReg; - break; + switch (bus) + { + case 0: + b = d; + break; + case 1: + b = gigatron_readmem8((uint16_t)(addr(mode, d) & m_ramMask)); + break; + case 2: + b = m_ac; + break; + case 3: + b = m_inReg; + break; } - switch(op) { - case 1: - b = (m_ac & b); - break; - case 2: - b = (m_ac | b); - break; - case 3: - b = (m_ac ^ b); - break; - case 4: - b = (m_ac + b); - break; - case 5: - b = (m_ac - b); - break; + switch (op) + { + case 1: + b = (m_ac & b); + break; + case 2: + b = (m_ac | b); + break; + case 3: + b = (m_ac ^ b); + break; + case 4: + b = (m_ac + b); + break; + case 5: + b = (m_ac - b); + break; } - switch (mode) { - case 0: - case 1: - case 2: - case 3: - m_ac = b; - break; - case 4: - m_x = b; - break; - case 5: - m_y = b; - break; - case 6: - case 7: - uint16_t rising = ~(m_out & b); - if (rising & 0x40) { - m_outx = m_ac; - } - break; - + switch (mode) + { + case 0: + case 1: + case 2: + case 3: + m_ac = b; + break; + case 4: + m_x = b; + break; + case 5: + m_y = b; + break; + case 6: + case 7: + uint16_t rising = ~(m_out & b); + if (rising & 0x40) + m_outx = m_ac; + break; } } uint16_t gigatron_cpu_device::addr(uint8_t mode, uint8_t d) { - switch (mode) { - case 0: - case 4: - case 5: - case 6: - return d; - case 1: - return m_x; - case 2: - return (m_y << 8) | d; - case 3: - return (m_y << 8) | m_x; - case 7: - uint16_t addr2 = (m_y << 8) | m_x; - m_x = (m_x + 1) & 0xff; - return addr2; + switch (mode) + { + case 0: + case 4: + case 5: + case 6: + return d; + case 1: + return m_x; + case 2: + return (m_y << 8) | d; + case 3: + return (m_y << 8) | m_x; + case 7: + uint16_t addr2 = (m_y << 8) | m_x; + m_x = (m_x + 1) & 0xff; + return addr2; } return 0; } uint8_t gigatron_cpu_device::offset(uint8_t bus, uint8_t d) { - switch (bus) { - case 0: - return d; - case 1: - return gigatron_readmem8(d); - case 2: - return m_ac; - case 3: - return m_inReg; + switch (bus) + { + case 0: + return d; + case 1: + return gigatron_readmem8(d); + case 2: + return m_ac; + case 3: + return m_inReg; } return 0; } @@ -259,16 +264,17 @@ uint8_t gigatron_cpu_device::offset(uint8_t bus, uint8_t d) void gigatron_cpu_device::storeOp(uint8_t op, uint8_t mode, uint8_t bus, uint8_t d) { uint8_t b = 0; - switch (bus) { - case 0: - b = d; - break; - case 2: - b = m_ac; - break; - case 3: - b = m_inReg; - break; + switch (bus) + { + case 0: + b = d; + break; + case 2: + b = m_ac; + break; + case 3: + b = m_inReg; + break; } u16 address = addr(mode, d); @@ -277,13 +283,14 @@ void gigatron_cpu_device::storeOp(uint8_t op, uint8_t mode, uint8_t bus, uint8_t else gigatron_writemem8(address & m_ramMask, b); - switch (mode) { - case 4: - m_x = b; - break; - case 5: - m_y = b; - break; + switch (mode) + { + case 4: + m_x = b; + break; + case 5: + m_y = b; + break; } } @@ -294,10 +301,10 @@ void gigatron_cpu_device::device_reset() void gigatron_cpu_device::execute_set_input(int irqline, int state) { #if 0 - switch(irqline) + switch (irqline) { - default: - break; + default: + break; } #endif } @@ -315,13 +322,13 @@ void gigatron_cpu_device::state_string_export(const device_state_entry &entry, s { switch (entry.index()) { - case STATE_GENFLAGS: - str = util::string_format("%c%c%c%c", - m_flags & 0x80 ? 'S':'.', - m_flags & 0x40 ? 'Z':'.', - m_flags & 0x20 ? 'V':'.', - m_flags & 0x10 ? 'C':'.'); - break; + case STATE_GENFLAGS: + str = util::string_format("%c%c%c%c", + m_flags & 0x80 ? 'S':'.', + m_flags & 0x40 ? 'Z':'.', + m_flags & 0x20 ? 'V':'.', + m_flags & 0x10 ? 'C':'.'); + break; } } diff --git a/src/devices/machine/s3c24xx.hxx b/src/devices/machine/s3c24xx.hxx index 63e8dfbd2d7..603ee085b1b 100644 --- a/src/devices/machine/s3c24xx.hxx +++ b/src/devices/machine/s3c24xx.hxx @@ -77,45 +77,45 @@ #endif -#define LOG_RESET (1 << 0) -#define LOG_ADC (1 << 1) -#define LOG_LCD_DMA (1 << 2) -#define LOG_LCD_TIMER (1 << 3) -#define LOG_LCD_REGS (1 << 4) -#define LOG_SPI (1 << 5) -#define LOG_LCD_CFG (1 << 6) -#define LOG_LCD_TFT (1 << 7) -#define LOG_LCD_STN (1 << 8) -#define LOG_CLKPOW (1 << 9) -#define LOG_MMC (1 << 10) -#define LOG_IRQS (1 << 11) -#define LOG_IRQ_REGS (1 << 12) -#define LOG_FLASH (1 << 13) -#define LOG_PWM (1 << 14) -#define LOG_PWM_REGS (1 << 15) -#define LOG_CAM (1 << 16) -#define LOG_DMA (1 << 17) -#define LOG_DMA_REQS (1 << 18) -#define LOG_DMA_REGS (1 << 19) -#define LOG_AC97 (1 << 20) -#define LOG_DMA_TIMERS (1 << 21) -#define LOG_GPIO (1 << 22) -#define LOG_MEMCON (1 << 23) -#define LOG_USBHOST (1 << 24) -#define LOG_UART (1 << 25) -#define LOG_USB (1 << 26) -#define LOG_WDT (1 << 27) -#define LOG_I2C (1 << 28) -#define LOG_I2S (1 << 29) -#define LOG_RTC (1 << 30) -#define LOG_SDI (1 << 31) +#define LOG_RESET (u64(1) << 1) +#define LOG_ADC (u64(1) << 2) +#define LOG_LCD_DMA (u64(1) << 3) +#define LOG_LCD_TIMER (u64(1) << 4) +#define LOG_LCD_REGS (u64(1) << 5) +#define LOG_SPI (u64(1) << 6) +#define LOG_LCD_CFG (u64(1) << 7) +#define LOG_LCD_TFT (u64(1) << 8) +#define LOG_LCD_STN (u64(1) << 9) +#define LOG_CLKPOW (u64(1) << 10) +#define LOG_MMC (u64(1) << 11) +#define LOG_IRQS (u64(1) << 12) +#define LOG_IRQ_REGS (u64(1) << 13) +#define LOG_FLASH (u64(1) << 14) +#define LOG_PWM (u64(1) << 15) +#define LOG_PWM_REGS (u64(1) << 16) +#define LOG_CAM (u64(1) << 17) +#define LOG_DMA (u64(1) << 18) +#define LOG_DMA_REQS (u64(1) << 19) +#define LOG_DMA_REGS (u64(1) << 20) +#define LOG_AC97 (u64(1) << 21) +#define LOG_DMA_TIMERS (u64(1) << 22) +#define LOG_GPIO (u64(1) << 23) +#define LOG_MEMCON (u64(1) << 24) +#define LOG_USBHOST (u64(1) << 25) +#define LOG_UART (u64(1) << 26) +#define LOG_USB (u64(1) << 27) +#define LOG_WDT (u64(1) << 28) +#define LOG_I2C (u64(1) << 29) +#define LOG_I2S (u64(1) << 30) +#define LOG_RTC (u64(1) << 31) +#define LOG_SDI (u64(1) << 32) #define LOG_ALL (LOG_RESET | LOG_ADC | LOG_LCD_DMA | LOG_LCD_TIMER | LOG_LCD_REGS | LOG_SPI | LOG_LCD_CFG | LOG_LCD_TFT | LOG_LCD_STN \ | LOG_CLKPOW | LOG_MMC | LOG_IRQS | LOG_IRQ_REGS | LOG_FLASH | LOG_PWM | LOG_PWM_REGS | LOG_CAM | LOG_DMA | LOG_DMA_REQS \ | LOG_DMA_REGS | LOG_AC97 | LOG_DMA_TIMERS | LOG_GPIO | LOG_MEMCON | LOG_USBHOST | LOG_UART | LOG_USB \ | LOG_WDT | LOG_I2C | LOG_I2S | LOG_RTC | LOG_SDI) -#define VERBOSE (LOG_ALL & ~(LOG_FLASH | LOG_UART)) +//#define VERBOSE (LOG_ALL & ~(LOG_FLASH | LOG_UART)) #include "logmacro.h" /*************************************************************************** @@ -272,11 +272,6 @@ void S3C24_CLASS_NAME::s3c24xx_lcd_dma_reload() LOGMASKED(LOG_LCD_DMA, "LCD - vramaddr %08X %08X offsize %08X pagewidth %08X\n", m_lcd.vramaddr_cur, m_lcd.vramaddr_max, m_lcd.offsize, m_lcd.pagewidth_max); m_lcd.dma_data = 0; m_lcd.dma_bits = 0; - - if (machine().input().code_pressed_once(KEYCODE_K)) - { - s3c24xx_uart_fifo_w(0, 0x55); - } } void S3C24_CLASS_NAME::s3c24xx_lcd_dma_init() diff --git a/src/emu/xtal.cpp b/src/emu/xtal.cpp index 2e02b4ab0e0..156a452a1b8 100644 --- a/src/emu/xtal.cpp +++ b/src/emu/xtal.cpp @@ -89,7 +89,7 @@ const double XTAL::known_xtals[] = { 3'521'280, /* 3.52128_MHz_XTAL RCA COSMAC VIP */ 3'570'000, /* 3.57_MHz_XTAL Telmac TMC-600 */ 3'578'640, /* 3.57864_MHz_XTAL Atari Portfolio PCD3311T */ - 3'579'000, /* 3.579_MHz_XTAL BeebOPL */ + 3'579'000, /* 3.579_MHz_XTAL BeebOPL */ 3'579'545, /* 3.579545_MHz_XTAL NTSC color subcarrier, extremely common, used on 100's of PCBs (Keytronic custom part #48-300-010 is equivalent) */ 3'686'400, /* 3.6864_MHz_XTAL Baud rate clock for MC68681 and similar UARTs */ 3'840'000, /* 3.84_MHz_XTAL Fairlight CMI Alphanumeric Keyboard */ diff --git a/src/lib/formats/img_dsk.cpp b/src/lib/formats/img_dsk.cpp index 0dfcc7a359f..40093bee4aa 100644 --- a/src/lib/formats/img_dsk.cpp +++ b/src/lib/formats/img_dsk.cpp @@ -19,7 +19,7 @@ // Debugging #define VERBOSE 0 -#define LOG(...) do { if (VERBOSE) printf(__VA_ARGS__); } while (false) +#define LOG(...) do { if (VERBOSE) osd_printf_info(__VA_ARGS__); } while (false) constexpr unsigned CELL_SIZE = 1200; // Bit cell size (1 µs) constexpr uint8_t INDEX_AM = 0x0c; // Index address mark @@ -31,7 +31,7 @@ constexpr unsigned SYNC_00_LEN = 18; // 00's in sync (gaps 1, 2, 3) constexpr unsigned SYNC_FF_LEN = 10; // FF's in sync (gaps 1, 2, 3) constexpr int ID_DATA_OFFSET = 35 * 16; // Nominal distance (in cells) between ID & DATA AM // Size of image file -constexpr unsigned IMG_IMAGE_SIZE = IMG_TRACKS * IMG_HEADS * IMG_SECTORS * IMG_SECTOR_SIZE; +constexpr unsigned IMG_IMAGE_SIZE = img_format::TRACKS * img_format::HEADS * img_format::SECTORS * img_format::SECTOR_SIZE; constexpr uint16_t CRC_POLY = 0x1021; // CRC-CCITT img_format::img_format() @@ -62,7 +62,7 @@ bool img_format::load(io_generic *io, uint32_t form_factor, floppy_image *image) std::vector<uint8_t> image_data(size); io_generic_read(io, (void *)image_data.data(), 0, size); - for (unsigned cyl = 0; cyl < IMG_TRACKS; cyl++) { + for (unsigned cyl = 0; cyl < TRACKS; cyl++) { std::vector<uint32_t> track_data; write_gap(track_data, 0 , PREIDX_GAP); @@ -83,9 +83,9 @@ bool img_format::load(io_generic *io, uint32_t form_factor, floppy_image *image) } std::vector<uint8_t> sector_list = interleaved_sectors(il_factor); - for (unsigned sector = 0; sector < IMG_SECTORS; sector++) { - unsigned real_sector = sector_list[ (sector + skew) % IMG_SECTORS ]; - unsigned offset_in_image = (real_sector - 1 + cyl * IMG_SECTORS) * IMG_SECTOR_SIZE; + for (unsigned sector = 0; sector < SECTORS; sector++) { + unsigned real_sector = sector_list[ (sector + skew) % SECTORS ]; + unsigned offset_in_image = (real_sector - 1 + cyl * SECTORS) * SECTOR_SIZE; write_sector(track_data , cyl , real_sector , &image_data[ offset_in_image ]); } fill_with_gap4(track_data); @@ -96,17 +96,17 @@ bool img_format::load(io_generic *io, uint32_t form_factor, floppy_image *image) bool img_format::save(io_generic *io, floppy_image *image) { - for (int cyl = 0; cyl < IMG_TRACKS; cyl++) { + for (int cyl = 0; cyl < TRACKS; cyl++) { uint8_t bitstream[ 21000 ]; int bitstream_size; generate_bitstream_from_track(cyl , 0 , CELL_SIZE , bitstream , bitstream_size , image , 0); int pos = 0; unsigned track_no , sector_no; - uint8_t sector_data[ IMG_SECTOR_SIZE ]; + uint8_t sector_data[ SECTOR_SIZE ]; while (get_next_sector(bitstream , bitstream_size , pos , track_no , sector_no , sector_data)) { - if (track_no == cyl && sector_no >= 1 && sector_no <= IMG_SECTORS) { - unsigned offset_in_image = (cyl * IMG_SECTORS + sector_no - 1) * IMG_SECTOR_SIZE; - io_generic_write(io, sector_data, offset_in_image, IMG_SECTOR_SIZE); + if (track_no == cyl && sector_no >= 1 && sector_no <= SECTORS) { + unsigned offset_in_image = (cyl * SECTORS + sector_no - 1) * SECTOR_SIZE; + io_generic_write(io, sector_data, offset_in_image, SECTOR_SIZE); } } } @@ -135,18 +135,18 @@ bool img_format::supports_save() const std::vector<uint8_t> img_format::interleaved_sectors(unsigned il_factor) { - std::vector<uint8_t> out(IMG_SECTORS); + std::vector<uint8_t> out(SECTORS); unsigned idx = 0; - for (unsigned s = 0; s < IMG_SECTORS; s++) { + for (unsigned s = 0; s < SECTORS; s++) { while (out[ idx ] != 0) { - if (++idx >= IMG_SECTORS) { + if (++idx >= SECTORS) { idx = 0; } } out[ idx ] = s + 1; idx += il_factor; - if (idx >= IMG_SECTORS) { - idx -= IMG_SECTORS; + if (idx >= SECTORS) { + idx -= SECTORS; } } return out; @@ -235,7 +235,7 @@ void img_format::write_sector(std::vector<uint32_t> &buffer , uint8_t track_no , // Data AM m_crc = 0; write_mmfm_byte(buffer , DATA_AM , AM_CLOCK); - for (unsigned i = 0; i < IMG_SECTOR_SIZE; i++) { + for (unsigned i = 0; i < SECTOR_SIZE; i++) { // Data write_mmfm_byte(buffer , sect_data[ i ]); } @@ -317,7 +317,7 @@ std::vector<uint8_t> img_format::get_next_id_n_block(const uint8_t *bitstream , if (data_sr == ID_AM) { to_dump = 4; } else if (data_sr == DATA_AM) { - to_dump = IMG_SECTOR_SIZE; + to_dump = SECTOR_SIZE; } else { to_dump = 0; } @@ -365,12 +365,12 @@ bool img_format::get_next_sector(const uint8_t *bitstream , int bitstream_size , if (block.size() == 0) { return false; } - if (block[ 0 ] == DATA_AM && block.size() >= (IMG_SECTOR_SIZE + 1) && abs((data_pos - id_pos) - ID_DATA_OFFSET) <= 64) { + if (block[ 0 ] == DATA_AM && block.size() >= (SECTOR_SIZE + 1) && abs((data_pos - id_pos) - ID_DATA_OFFSET) <= 64) { break; } } - memcpy(sector_data , block.data() + 1 , IMG_SECTOR_SIZE); + memcpy(sector_data , block.data() + 1 , SECTOR_SIZE); return true; } diff --git a/src/lib/formats/img_dsk.h b/src/lib/formats/img_dsk.h index f1ac7aef3c0..ab2c5adc1c2 100644 --- a/src/lib/formats/img_dsk.h +++ b/src/lib/formats/img_dsk.h @@ -16,15 +16,15 @@ #include <vector> -// Geometry constants -constexpr unsigned IMG_TRACKS = 77; -constexpr unsigned IMG_HEADS = 1; -constexpr unsigned IMG_SECTORS = 52; -constexpr unsigned IMG_SECTOR_SIZE = 128; - class img_format : public floppy_image_format_t { public: + // Geometry constants + static constexpr unsigned TRACKS = 77; + static constexpr unsigned HEADS = 1; + static constexpr unsigned SECTORS = 52; + static constexpr unsigned SECTOR_SIZE = 128; + img_format(); virtual int identify(io_generic *io, uint32_t form_factor) override; diff --git a/src/mame/drivers/spg2xx.cpp b/src/mame/drivers/spg2xx.cpp index e17b256d820..4091d27d68e 100644 --- a/src/mame/drivers/spg2xx.cpp +++ b/src/mame/drivers/spg2xx.cpp @@ -148,6 +148,7 @@ *******************************************************************************/ +#include "emu.h" #include "includes/spg2xx.h" /************************* diff --git a/src/mame/drivers/spg2xx_dreamlife.cpp b/src/mame/drivers/spg2xx_dreamlife.cpp index 53fb40bd29e..e580c308d49 100644 --- a/src/mame/drivers/spg2xx_dreamlife.cpp +++ b/src/mame/drivers/spg2xx_dreamlife.cpp @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Ryan Holtz, David Haywood +#include "emu.h" #include "includes/spg2xx.h" + #include "machine/eepromser.h" class dreamlif_state : public spg2xx_game_state diff --git a/src/mame/drivers/spg2xx_ican.cpp b/src/mame/drivers/spg2xx_ican.cpp index 01e2f570fa9..c0892d8feb2 100644 --- a/src/mame/drivers/spg2xx_ican.cpp +++ b/src/mame/drivers/spg2xx_ican.cpp @@ -3,10 +3,13 @@ /* Fisher Price / Mattel "I Can..." systems */ +#include "emu.h" #include "includes/spg2xx.h" + #include "bus/generic/slot.h" #include "bus/generic/carts.h" + class icanguit_state : public spg2xx_game_state { public: diff --git a/src/mame/drivers/spg2xx_jakks.cpp b/src/mame/drivers/spg2xx_jakks.cpp index 18590249053..46bbd408382 100644 --- a/src/mame/drivers/spg2xx_jakks.cpp +++ b/src/mame/drivers/spg2xx_jakks.cpp @@ -3,9 +3,12 @@ // Note: even after the GameKey port was physically removed and the PCBs redesigned, many of the test modes still show the value read from the port (and many games still show the Game Key Ready splash screen on startup) +#include "emu.h" #include "includes/spg2xx.h" + #include "bus/jakks_gamekey/slot.h" + class jakks_gkr_state : public spg2xx_game_state { public: diff --git a/src/mame/drivers/spg2xx_lexibook.cpp b/src/mame/drivers/spg2xx_lexibook.cpp index 4519dd4dde1..cf61f2c4aee 100644 --- a/src/mame/drivers/spg2xx_lexibook.cpp +++ b/src/mame/drivers/spg2xx_lexibook.cpp @@ -1,8 +1,10 @@ // license:BSD-3-Clause // copyright-holders:Ryan Holtz, David Haywood +#include "emu.h" #include "includes/spg2xx.h" + class spg2xx_lexiseal_game_state : public spg2xx_game_state { public: diff --git a/src/mame/drivers/spg2xx_pdc.cpp b/src/mame/drivers/spg2xx_pdc.cpp index 37bd32d212d..a42d798c1ca 100644 --- a/src/mame/drivers/spg2xx_pdc.cpp +++ b/src/mame/drivers/spg2xx_pdc.cpp @@ -1,8 +1,10 @@ // license:BSD-3-Clause // copyright-holders:Ryan Holtz, David Haywood +#include "emu.h" #include "includes/spg2xx.h" + class spg2xx_pdc100_game_state : public spg2xx_game_state { public: diff --git a/src/mame/drivers/spg2xx_playvision.cpp b/src/mame/drivers/spg2xx_playvision.cpp index 7d8650d345b..5fafc471b8f 100644 --- a/src/mame/drivers/spg2xx_playvision.cpp +++ b/src/mame/drivers/spg2xx_playvision.cpp @@ -1,7 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Ryan Holtz, David Haywood +#include "emu.h" #include "includes/spg2xx.h" + #include "pvmil.lh" diff --git a/src/mame/drivers/spg2xx_senario.cpp b/src/mame/drivers/spg2xx_senario.cpp index 4b217e1063a..dc8c945d87f 100644 --- a/src/mame/drivers/spg2xx_senario.cpp +++ b/src/mame/drivers/spg2xx_senario.cpp @@ -14,9 +14,12 @@ */ +#include "emu.h" #include "includes/spg2xx.h" + #include "machine/intelfsh.h" + class spg2xx_senario_state : public spg2xx_game_state { public: diff --git a/src/mame/drivers/spg2xx_senario_poker.cpp b/src/mame/drivers/spg2xx_senario_poker.cpp index 3a532ba3d30..6cbba4ada8b 100644 --- a/src/mame/drivers/spg2xx_senario_poker.cpp +++ b/src/mame/drivers/spg2xx_senario_poker.cpp @@ -8,7 +8,9 @@ improve controller hookup / simulation and remove PC-based hacks! */ +#include "emu.h" #include "includes/spg2xx.h" + #include "sentx6p.lh" diff --git a/src/mame/drivers/spg2xx_shredmjr.cpp b/src/mame/drivers/spg2xx_shredmjr.cpp index bc6304e12ed..09cbdfbc101 100644 --- a/src/mame/drivers/spg2xx_shredmjr.cpp +++ b/src/mame/drivers/spg2xx_shredmjr.cpp @@ -1,8 +1,10 @@ // license:BSD-3-Clause // copyright-holders:Ryan Holtz, David Haywood +#include "emu.h" #include "includes/spg2xx.h" + class shredmjr_game_state : public spg2xx_game_state { public: diff --git a/src/mame/drivers/spg2xx_telestory.cpp b/src/mame/drivers/spg2xx_telestory.cpp index bfc9537bd8e..97fde832e7e 100644 --- a/src/mame/drivers/spg2xx_telestory.cpp +++ b/src/mame/drivers/spg2xx_telestory.cpp @@ -1,10 +1,13 @@ // license:BSD-3-Clause // copyright-holders:Ryan Holtz, David Haywood +#include "emu.h" #include "includes/spg2xx.h" + #include "bus/generic/slot.h" #include "bus/generic/carts.h" + class telestory_state : public spg2xx_game_state { public: diff --git a/src/mame/drivers/spg2xx_tvgogo.cpp b/src/mame/drivers/spg2xx_tvgogo.cpp index 47208b85a09..8fe9e3948c2 100644 --- a/src/mame/drivers/spg2xx_tvgogo.cpp +++ b/src/mame/drivers/spg2xx_tvgogo.cpp @@ -1,10 +1,13 @@ // license:BSD-3-Clause // copyright-holders:Ryan Holtz, David Haywood +#include "emu.h" #include "includes/spg2xx.h" + #include "bus/generic/slot.h" #include "bus/generic/carts.h" + class tvgogo_state : public spg2xx_game_state { public: diff --git a/src/mame/drivers/spg2xx_vii.cpp b/src/mame/drivers/spg2xx_vii.cpp index 00f71242817..537d2cdd8c9 100644 --- a/src/mame/drivers/spg2xx_vii.cpp +++ b/src/mame/drivers/spg2xx_vii.cpp @@ -3,10 +3,13 @@ /* 'Zone' systems */ +#include "emu.h" #include "includes/spg2xx.h" + #include "bus/generic/slot.h" #include "bus/generic/carts.h" + class vii_state : public spg2xx_game_state { public: diff --git a/src/mame/drivers/spg2xx_zone.cpp b/src/mame/drivers/spg2xx_zone.cpp index e31a57533a4..0f74d332205 100644 --- a/src/mame/drivers/spg2xx_zone.cpp +++ b/src/mame/drivers/spg2xx_zone.cpp @@ -3,8 +3,10 @@ /* 'Zone' systems */ +#include "emu.h" #include "includes/spg2xx.h" + class wireless60_state : public spg2xx_game_state { public: diff --git a/src/mame/drivers/spg2xx_zone_32bit.cpp b/src/mame/drivers/spg2xx_zone_32bit.cpp index 7a048a4b2e8..c056fc15f92 100644 --- a/src/mame/drivers/spg2xx_zone_32bit.cpp +++ b/src/mame/drivers/spg2xx_zone_32bit.cpp @@ -3,8 +3,10 @@ /* 'Zone' '32-bit' systems */ +#include "emu.h" #include "includes/spg2xx.h" + class zon32bit_state : public spg2xx_game_state { public: diff --git a/src/mame/includes/spg2xx.h b/src/mame/includes/spg2xx.h index 8ec57d6fabb..d12bc476de1 100644 --- a/src/mame/includes/spg2xx.h +++ b/src/mame/includes/spg2xx.h @@ -1,11 +1,9 @@ // license:BSD-3-Clause // copyright-holders:Ryan Holtz, David Haywood -#pragma once - #ifndef MAME_INCLUDES_SPG2XX_H #define MAME_INCLUDES_SPG2XX_H -#include "emu.h" +#pragma once #include "cpu/unsp/unsp.h" #include "machine/i2cmem.h" diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 4f9e6b9ad3a..93eb25abb89 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -36927,6 +36927,104 @@ speedspn // (c) 1994 @source:speglsht.cpp speglsht // (c) 1994 Seta +@source:spg110.cpp +jak_capb // +jak_spdmo // +conyteni // +conyping // +conyfght + +@source:spg2xx.cpp +rad_skat // +rad_skatp // +rad_sktv // +rad_crik // +rad_fb2 // +mattelcs // +abltenni // +tvsprt10 // +wiwi18 // + +@source:spg2xx_dreamlife.cpp +dreamlif // + +@source:spg2xx_ican.cpp +icanguit // +icanpian // + +@source:spg2xx_jakks.cpp +jak_batm // The Batman, 2004 +jak_wall // +jak_wwe // +jak_fan4 // +jak_just // +jak_dora // +jak_dorr // +jak_disn // +jak_disf // +jak_dpr // +jak_dprs // +jak_sith // +jak_sdoo // +jak_dbz // +jak_mpac // +jak_capc // +jak_wof // +jak_spdm // +jak_pooh // +jak_care // +jak_nick // +jak_sbfc // + +@source:spg2xx_lexibook.cpp +lexizeus // Lexibook +lexiseal // + +@source:spg2xx_pdc.cpp +pdc100 +tmntpdc + +@source:spg2xx_playvision.cpp +pvmil // + +@source:spg2xx_senario.cpp +senmil +senbbs +senapren +senpmate +sencosmo + +@source:spg2xx_senario_poker.cpp +sentx6p // +sentx6puk +sentx6pd + +@source:spg2xx_shredmjr.cpp +taikeegr // +shredmjr // + +@source:spg2xx_telestory.cpp +telestry // + +@source:spg2xx_tvgogo.cpp +tvgogo // + +@source:spg2xx_vii.cpp +vii // KenSingTon / Jungle Soft / Siatronics Vii + +@source:spg2xx_zone.cpp +wirels60 // Wireless 60 +zone40 // Zone 40 +reactmd +itvg49 +zone60 // Zone 60 +zone100 // +lx_jg7415 // + +@source:spg2xx_zone_32bit.cpp +mywicodx // +zon32bit // Zone 32-bit + @source:spiders.cpp spiders // (c) 1981 Sigma Ent. Inc. spiders2 // (c) 1981 Sigma Ent. Inc. @@ -39846,104 +39944,6 @@ vigilantd // (c) 1988 (Japan Rev D) vigilantg // (c) 1988 (US Rev G) vigilanto // (c) 1988 (US) -@source:spg110.cpp -jak_capb // -jak_spdmo // -conyteni // -conyping // -conyfght - -@source:spg2xx.cpp -rad_skat // -rad_skatp // -rad_sktv // -rad_crik // -rad_fb2 // -mattelcs // -abltenni // -tvsprt10 // -wiwi18 // - -@source:spg2xx_jakks.cpp -jak_batm // The Batman, 2004 -jak_wall // -jak_wwe // -jak_fan4 // -jak_just // -jak_dora // -jak_dorr // -jak_disn // -jak_disf // -jak_dpr // -jak_dprs // -jak_sith // -jak_sdoo // -jak_dbz // -jak_mpac // -jak_capc // -jak_wof // -jak_spdm // -jak_pooh // -jak_care // -jak_nick // -jak_sbfc // - -@source:spg2xx_zone.cpp -wirels60 // Wireless 60 -zone40 // Zone 40 -reactmd -itvg49 -zone60 // Zone 60 -zone100 // -lx_jg7415 // - -@source:spg2xx_zone_32bit.cpp -mywicodx // -zon32bit // Zone 32-bit - -@source:spg2xx_senario.cpp -senmil -senbbs -senapren -senpmate -sencosmo - -@source:spg2xx_senario_poker.cpp -sentx6p // -sentx6puk -sentx6pd - -@source:spg2xx_vii.cpp -vii // KenSingTon / Jungle Soft / Siatronics Vii - -@source:spg2xx_ican.cpp -icanguit // -icanpian // - -@source:spg2xx_playvision.cpp -pvmil // - -@source:spg2xx_shredmjr.cpp -taikeegr // -shredmjr // - -@source:spg2xx_telestory.cpp -telestry // - -@source:spg2xx_tvgogo.cpp -tvgogo // - -@source:spg2xx_pdc.cpp -pdc100 -tmntpdc - -@source:spg2xx_dreamlife.cpp -dreamlif // - -@source:spg2xx_lexibook.cpp -lexizeus // Lexibook -lexiseal // - @source:vsmile.cpp vsmile // vsmilem // |