mirror of
https://github.com/holub/mame
synced 2025-04-30 11:50:30 +03:00
This commit is contained in:
commit
9d10e02081
@ -170,7 +170,7 @@ An opcode description is a series of lines starting by an opcode entry
|
|||||||
by itself and followed by a series of indented lines with code
|
by itself and followed by a series of indented lines with code
|
||||||
executing the opcode.
|
executing the opcode.
|
||||||
|
|
||||||
For instance the asl <absolute adress> opcode looks like this:
|
For instance the asl <absolute address> opcode looks like this:
|
||||||
|
|
||||||
asl_aba
|
asl_aba
|
||||||
TMP = read_pc();
|
TMP = read_pc();
|
||||||
|
@ -257,7 +257,7 @@ WRITE_LINE_MEMBER(a2bus_corvfdc02_device::intrq_w)
|
|||||||
{
|
{
|
||||||
if (state)
|
if (state)
|
||||||
{
|
{
|
||||||
m_fdc_local_status &= ~2; // indicate IRQ occured
|
m_fdc_local_status &= ~2; // indicate IRQ occurred
|
||||||
if (m_fdc_local_command & 0x20)
|
if (m_fdc_local_command & 0x20)
|
||||||
{
|
{
|
||||||
raise_slot_irq();
|
raise_slot_irq();
|
||||||
|
@ -51,7 +51,7 @@ TODO - Write documentation
|
|||||||
| | +------------ input from FEAT0 on the feature connector
|
| | +------------ input from FEAT0 on the feature connector
|
||||||
| +-------------- input from FEAT1 on the feature connector
|
| +-------------- input from FEAT1 on the feature connector
|
||||||
+---------------- CRT Interrupt
|
+---------------- CRT Interrupt
|
||||||
0 = vertical retrace if occuring
|
0 = vertical retrace if occurring
|
||||||
1 = video is being displayed
|
1 = video is being displayed
|
||||||
|
|
||||||
|
|
||||||
|
@ -734,7 +734,7 @@ WRITE8_MEMBER(gf1_device::global_reg_data_w)
|
|||||||
* bit 2 - DMA channel width (0=8-bit, 1=16-bit)
|
* bit 2 - DMA channel width (0=8-bit, 1=16-bit)
|
||||||
* bits 3,4 - DMA rate divider
|
* bits 3,4 - DMA rate divider
|
||||||
* bit 5 - DMA terminal count IRQ enable
|
* bit 5 - DMA terminal count IRQ enable
|
||||||
* bit 6 - DMA terminal count IRQ pending (read), Data size (write, 0=8bit, 1=16-bit, independant of channel size)
|
* bit 6 - DMA terminal count IRQ pending (read), Data size (write, 0=8bit, 1=16-bit, independent of channel size)
|
||||||
* bit 7 - Invert MSB of data
|
* bit 7 - Invert MSB of data
|
||||||
*/
|
*/
|
||||||
if(offset == 1)
|
if(offset == 1)
|
||||||
|
@ -32,7 +32,7 @@ ROM_START( gfxultrp )
|
|||||||
ROM_SYSTEM_BIOS( 0, "isa", "ISA BIOS 112-18900-100" )
|
ROM_SYSTEM_BIOS( 0, "isa", "ISA BIOS 112-18900-100" )
|
||||||
ROMX_LOAD("gfxultrapro.bin", 0x00000, 0x8000, CRC(4e5effd7) SHA1(84ad3abf7653e4734bf39f5d5c8b88e74527e8ce), ROM_BIOS(1) )
|
ROMX_LOAD("gfxultrapro.bin", 0x00000, 0x8000, CRC(4e5effd7) SHA1(84ad3abf7653e4734bf39f5d5c8b88e74527e8ce), ROM_BIOS(1) )
|
||||||
|
|
||||||
// We can seperate out this BIOS once a proper VLB bus emulation is available
|
// We can separate out this BIOS once a proper VLB bus emulation is available
|
||||||
ROM_SYSTEM_BIOS( 1, "vlb", "VLB BIOS 113-19500-100" )
|
ROM_SYSTEM_BIOS( 1, "vlb", "VLB BIOS 113-19500-100" )
|
||||||
ROMX_LOAD("gfxultrapro_vlb.bin", 0x00000, 0x8000, CRC(5018f71e) SHA1(61321dfecf1bcdd8043836fabbe41786dbf3001b), ROM_BIOS(2) )
|
ROMX_LOAD("gfxultrapro_vlb.bin", 0x00000, 0x8000, CRC(5018f71e) SHA1(61321dfecf1bcdd8043836fabbe41786dbf3001b), ROM_BIOS(2) )
|
||||||
ROM_END
|
ROM_END
|
||||||
@ -43,7 +43,7 @@ ROM_START( mach64 )
|
|||||||
ROM_SYSTEM_BIOS( 0, "isa", "ISA BIOS 112-28122-101" )
|
ROM_SYSTEM_BIOS( 0, "isa", "ISA BIOS 112-28122-101" )
|
||||||
ROMX_LOAD("mach64.bin", 0x00000, 0x8000, CRC(1300aa8f) SHA1(dfc7f817900f125b89b0bda16fcb205f066a47fc), ROM_BIOS(1) )
|
ROMX_LOAD("mach64.bin", 0x00000, 0x8000, CRC(1300aa8f) SHA1(dfc7f817900f125b89b0bda16fcb205f066a47fc), ROM_BIOS(1) )
|
||||||
|
|
||||||
// We can seperate out these BIOSes once a proper PCI and VLB bus emulation is available
|
// We can separate out these BIOSes once a proper PCI and VLB bus emulation is available
|
||||||
ROM_SYSTEM_BIOS( 1, "vlb_d", "VLB DRAM BIOS 113-27803-102" )
|
ROM_SYSTEM_BIOS( 1, "vlb_d", "VLB DRAM BIOS 113-27803-102" )
|
||||||
ROMX_LOAD("mach64_vlb_dram.bin", 0x00000, 0x8000, CRC(f2a24699) SHA1(580401a8bdfc379180a8d7d77305fc529b2a8374), ROM_BIOS(2) )
|
ROMX_LOAD("mach64_vlb_dram.bin", 0x00000, 0x8000, CRC(f2a24699) SHA1(580401a8bdfc379180a8d7d77305fc529b2a8374), ROM_BIOS(2) )
|
||||||
|
|
||||||
|
@ -179,7 +179,7 @@ void nes_miracle_device::write(UINT8 data)
|
|||||||
|
|
||||||
if (m_strobe_clock < 66 && data == 0)
|
if (m_strobe_clock < 66 && data == 0)
|
||||||
{
|
{
|
||||||
// short delay is recieve mode
|
// short delay is receive mode
|
||||||
m_midi_mode = MIRACLE_MIDI_RECEIVE;
|
m_midi_mode = MIRACLE_MIDI_RECEIVE;
|
||||||
strobe_timer->reset();
|
strobe_timer->reset();
|
||||||
m_strobe_on = 0;
|
m_strobe_on = 0;
|
||||||
|
@ -312,7 +312,7 @@ WRITE8_MEMBER( sns_rom_pokemon_device::chip_write )
|
|||||||
// Tekken 2: It accesses the protection in a very strange way, always reading/writing the same data $f0 times,
|
// Tekken 2: It accesses the protection in a very strange way, always reading/writing the same data $f0 times,
|
||||||
// because each access must be repeated a couple of times to be registered (typically around 7-30 times)
|
// because each access must be repeated a couple of times to be registered (typically around 7-30 times)
|
||||||
// They probably used a microcontroller here.
|
// They probably used a microcontroller here.
|
||||||
// The protection itself is accessed in banks $80-$bf. Accessing (read/write, doesn't matter) adress lines
|
// The protection itself is accessed in banks $80-$bf. Accessing (read/write, doesn't matter) address lines
|
||||||
// A8,A9,A10 in these banks in a certain sequence makes the mc return a 4bit value. [d4s]
|
// A8,A9,A10 in these banks in a certain sequence makes the mc return a 4bit value. [d4s]
|
||||||
// Details on a possible algorythm behind the sequence of accesses were provided by nocash. Thanks!
|
// Details on a possible algorythm behind the sequence of accesses were provided by nocash. Thanks!
|
||||||
void sns_rom_tekken2_device::update_prot(UINT32 offset)
|
void sns_rom_tekken2_device::update_prot(UINT32 offset)
|
||||||
|
@ -173,7 +173,7 @@ void snes_miracle_device::write_strobe(UINT8 data)
|
|||||||
|
|
||||||
if (m_strobe_clock < 500 && data == 0)
|
if (m_strobe_clock < 500 && data == 0)
|
||||||
{
|
{
|
||||||
// short delay is recieve mode
|
// short delay is receive mode
|
||||||
m_midi_mode = MIRACLE_MIDI_RECEIVE;
|
m_midi_mode = MIRACLE_MIDI_RECEIVE;
|
||||||
strobe_timer->reset();
|
strobe_timer->reset();
|
||||||
m_strobe_on = 0;
|
m_strobe_on = 0;
|
||||||
|
@ -435,9 +435,9 @@ void alto2_cpu_device::eth_wakeup()
|
|||||||
* 'F401 is not in the data path, but only monitors the message. The
|
* 'F401 is not in the data path, but only monitors the message. The
|
||||||
* Error output becomes valid after the last check bit has been entered
|
* Error output becomes valid after the last check bit has been entered
|
||||||
* into the 'F401 by a HIGH-to-LOW transition of CP'. If no detectable
|
* into the 'F401 by a HIGH-to-LOW transition of CP'. If no detectable
|
||||||
* errors have occured during the transmission, the resultant internal
|
* errors have occurred during the transmission, the resultant internal
|
||||||
* register bits are all LOW and the Error Output (ER) is LOW.
|
* register bits are all LOW and the Error Output (ER) is LOW.
|
||||||
* If a detectable error has occured, ER is HIGH.
|
* If a detectable error has occurred, ER is HIGH.
|
||||||
*
|
*
|
||||||
* A HIGH on the Master Reset input (MR) asynchronously clears the
|
* A HIGH on the Master Reset input (MR) asynchronously clears the
|
||||||
* register. A LOW on the Preset input (P') asynchronously sets the
|
* register. A LOW on the Preset input (P') asynchronously sets the
|
||||||
|
@ -487,7 +487,7 @@ UINT32 alto2_cpu_device::hamming_code(int write, UINT32 dw_addr, UINT32 dw_data)
|
|||||||
*
|
*
|
||||||
* This register is a 'shadow MAR'; it holds the address of the
|
* This register is a 'shadow MAR'; it holds the address of the
|
||||||
* first error since the error status was last reset. If no error
|
* first error since the error status was last reset. If no error
|
||||||
* has occured, MEAR reports the address of the most recent
|
* has occurred, MEAR reports the address of the most recent
|
||||||
* memory access. Note that MEAR is set whenever an error of
|
* memory access. Note that MEAR is set whenever an error of
|
||||||
* _any kind_ (single-bit or double-bit) is detected.
|
* _any kind_ (single-bit or double-bit) is detected.
|
||||||
*/
|
*/
|
||||||
@ -504,7 +504,7 @@ READ16_MEMBER( alto2_cpu_device::mear_r )
|
|||||||
* @brief memory error status register read
|
* @brief memory error status register read
|
||||||
*
|
*
|
||||||
* This register reports specifics of the first error that
|
* This register reports specifics of the first error that
|
||||||
* occured since MESR was last reset. Storing anything into
|
* occurred since MESR was last reset. Storing anything into
|
||||||
* this register resets the error logic and enables it to
|
* this register resets the error logic and enables it to
|
||||||
* detect a new error. Bits are "low true", i.e. if the bit
|
* detect a new error. Bits are "low true", i.e. if the bit
|
||||||
* is 0, the conidition is true.
|
* is 0, the conidition is true.
|
||||||
@ -513,7 +513,7 @@ READ16_MEMBER( alto2_cpu_device::mear_r )
|
|||||||
* MESR[6] Parity error
|
* MESR[6] Parity error
|
||||||
* MESR[7] Memory parity bit
|
* MESR[7] Memory parity bit
|
||||||
* MESR[8-13] Syndrome bits
|
* MESR[8-13] Syndrome bits
|
||||||
* MESR[14-15] Bank number in which error occured
|
* MESR[14-15] Bank number in which error occurred
|
||||||
* </PRE>
|
* </PRE>
|
||||||
*/
|
*/
|
||||||
READ16_MEMBER( alto2_cpu_device::mesr_r )
|
READ16_MEMBER( alto2_cpu_device::mesr_r )
|
||||||
@ -551,7 +551,7 @@ WRITE16_MEMBER( alto2_cpu_device::mesr_w )
|
|||||||
* the memory error logic. This register is set to all ones
|
* the memory error logic. This register is set to all ones
|
||||||
* (disable all interrupts) when the alto is bootstrapped
|
* (disable all interrupts) when the alto is bootstrapped
|
||||||
* and when the parity error task first detects an error.
|
* and when the parity error task first detects an error.
|
||||||
* When an error has occured, MEAR and MESR should be read
|
* When an error has occurred, MEAR and MESR should be read
|
||||||
* before setting MECR. Bits are "low true", i.e. a 0 bit
|
* before setting MECR. Bits are "low true", i.e. a 0 bit
|
||||||
* enables the condition.
|
* enables the condition.
|
||||||
*
|
*
|
||||||
|
@ -86,7 +86,7 @@ CPU_DISASSEMBLE( apexc )
|
|||||||
UINT32 instruction; /* 32-bit machine instruction */
|
UINT32 instruction; /* 32-bit machine instruction */
|
||||||
int x, y, function, c6, vector; /* instruction fields */
|
int x, y, function, c6, vector; /* instruction fields */
|
||||||
int n; /* 'friendly', instruction-dependant interpretation of C6 */
|
int n; /* 'friendly', instruction-dependant interpretation of C6 */
|
||||||
const instr_desc *the_desc; /* pointer to the revelant entry in the instructions array */
|
const instr_desc *the_desc; /* pointer to the relevant entry in the instructions array */
|
||||||
char mnemonic[9]; /* storage for generated mnemonic */
|
char mnemonic[9]; /* storage for generated mnemonic */
|
||||||
|
|
||||||
/* read the instruction to disassemble */
|
/* read the instruction to disassemble */
|
||||||
@ -99,7 +99,7 @@ CPU_DISASSEMBLE( apexc )
|
|||||||
c6 = (instruction >> 1) & 0x3F;
|
c6 = (instruction >> 1) & 0x3F;
|
||||||
vector = instruction & 1;
|
vector = instruction & 1;
|
||||||
|
|
||||||
/* get the revelant entry in instructions */
|
/* get the relevant entry in instructions */
|
||||||
the_desc = & instructions[function >> 1];
|
the_desc = & instructions[function >> 1];
|
||||||
|
|
||||||
/* generate mnemonic : append a 'v' to the basic mnemonic if it is a vector instruction */
|
/* generate mnemonic : append a 'v' to the basic mnemonic if it is a vector instruction */
|
||||||
|
@ -91,12 +91,12 @@ protected:
|
|||||||
UINT16 m_sdx;
|
UINT16 m_sdx;
|
||||||
UINT16 m_pioc;
|
UINT16 m_pioc;
|
||||||
UINT16 m_pdx0; // pdx0 & pdx1 refer to the same physical register (page 6-1)
|
UINT16 m_pdx0; // pdx0 & pdx1 refer to the same physical register (page 6-1)
|
||||||
UINT16 m_pdx1; // but we keep them seperate for logic's sake.
|
UINT16 m_pdx1; // but we keep them separate for logic's sake.
|
||||||
|
|
||||||
// internal stuff
|
// internal stuff
|
||||||
UINT16 m_ppc;
|
UINT16 m_ppc;
|
||||||
|
|
||||||
// This CPU core handles the cache as more of a loop than 15 seperate memory elements.
|
// This CPU core handles the cache as more of a loop than 15 separate memory elements.
|
||||||
// It's a bit of a hack, but it's easier this way (for now).
|
// It's a bit of a hack, but it's easier this way (for now).
|
||||||
UINT16 m_cacheStart;
|
UINT16 m_cacheStart;
|
||||||
UINT16 m_cacheEnd;
|
UINT16 m_cacheEnd;
|
||||||
|
@ -698,7 +698,7 @@ INLINE UINT32 m68ki_ic_readimm16(m68000_base_device *m68k, UINT32 address)
|
|||||||
|
|
||||||
// printf("m68k: doing cache fill at %08x (tag %08x idx %d)\n", address, tag, idx);
|
// printf("m68k: doing cache fill at %08x (tag %08x idx %d)\n", address, tag, idx);
|
||||||
|
|
||||||
// if no buserror occured, validate the tag
|
// if no buserror occurred, validate the tag
|
||||||
if (!m68k->mmu_tmp_buserror_occurred)
|
if (!m68k->mmu_tmp_buserror_occurred)
|
||||||
{
|
{
|
||||||
m68k->ic_address[idx] = tag;
|
m68k->ic_address[idx] = tag;
|
||||||
|
@ -124,7 +124,7 @@
|
|||||||
* - Fix limenko.c videopkr.c : Issue with core allocation of ram (duplicate savestate)
|
* - Fix limenko.c videopkr.c : Issue with core allocation of ram (duplicate savestate)
|
||||||
* - Handle internal ram better (debugger visible)
|
* - Handle internal ram better (debugger visible)
|
||||||
* - Fixed port reading
|
* - Fixed port reading
|
||||||
* - Rewrote Macros for better readibility
|
* - Rewrote Macros for better readability
|
||||||
* - Fixed and rewrote Interrupt handling
|
* - Fixed and rewrote Interrupt handling
|
||||||
* - Now returns INTERNAL_DIVIDER, adjusted cycle counts
|
* - Now returns INTERNAL_DIVIDER, adjusted cycle counts
|
||||||
* - Remove unnecessary and duplicated code
|
* - Remove unnecessary and duplicated code
|
||||||
|
@ -394,7 +394,7 @@ TIMER_CALLBACK_MEMBER( mn10200_device::simple_timer_cb )
|
|||||||
|
|
||||||
// handle our expiring and also tick our cascaded children
|
// handle our expiring and also tick our cascaded children
|
||||||
if (timer_tick_simple(tmr) == 2)
|
if (timer_tick_simple(tmr) == 2)
|
||||||
m_simple_timer[tmr].cur = 0xff; // cascaded and no underflow occured
|
m_simple_timer[tmr].cur = 0xff; // cascaded and no underflow occurred
|
||||||
else
|
else
|
||||||
m_simple_timer[tmr].cur = m_simple_timer[tmr].base;
|
m_simple_timer[tmr].cur = m_simple_timer[tmr].base;
|
||||||
|
|
||||||
|
@ -441,7 +441,7 @@ void pdp1_device::field_interrupt()
|
|||||||
/* current_irq: 1 bit for each active pending interrupt request
|
/* current_irq: 1 bit for each active pending interrupt request
|
||||||
Pending interrupts are in b3 (simulated by (m_irq_state & m_b1) | m_b2)), but they
|
Pending interrupts are in b3 (simulated by (m_irq_state & m_b1) | m_b2)), but they
|
||||||
are only honored if no higher priority interrupt routine is in execution (one bit set in b4
|
are only honored if no higher priority interrupt routine is in execution (one bit set in b4
|
||||||
for each routine in execution). The revelant mask is created with (m_b4 | (- m_b4)),
|
for each routine in execution). The relevant mask is created with (m_b4 | (- m_b4)),
|
||||||
as the carry chain (remember that -b4 = (~ b4) + 1) does precisely what we want.
|
as the carry chain (remember that -b4 = (~ b4) + 1) does precisely what we want.
|
||||||
b4: 0001001001000
|
b4: 0001001001000
|
||||||
-b4: 1110110111000
|
-b4: 1110110111000
|
||||||
@ -833,7 +833,7 @@ void pdp1_device::execute_run()
|
|||||||
else if ((IR == DIO) || (IR == DAC)) /* dio or dac instruction ? */
|
else if ((IR == DIO) || (IR == DAC)) /* dio or dac instruction ? */
|
||||||
{ /* there is a discrepancy: the pdp1 handbook tells that only dio should be used,
|
{ /* there is a discrepancy: the pdp1 handbook tells that only dio should be used,
|
||||||
but the lisp tape uses the dac instruction instead */
|
but the lisp tape uses the dac instruction instead */
|
||||||
/* Yet maintainance manual p. 6-25 states clearly that the data is located
|
/* Yet maintenance manual p. 6-25 states clearly that the data is located
|
||||||
in IO and transfered to MB, so DAC is likely to be a mistake. */
|
in IO and transfered to MB, so DAC is likely to be a mistake. */
|
||||||
m_rim_step = 2;
|
m_rim_step = 2;
|
||||||
}
|
}
|
||||||
@ -881,7 +881,7 @@ void pdp1_device::execute_run()
|
|||||||
/* yes, interrupt can occur in the midst of an instruction (impressing, huh?) */
|
/* yes, interrupt can occur in the midst of an instruction (impressing, huh?) */
|
||||||
/* Note that break cannot occur during a one-cycle jump that is deferred only once,
|
/* Note that break cannot occur during a one-cycle jump that is deferred only once,
|
||||||
or another break cycle. Also, it cannot interrupt the long cycle 1 of automatic
|
or another break cycle. Also, it cannot interrupt the long cycle 1 of automatic
|
||||||
multiply/divide. (maintainance manual 6-19) */
|
multiply/divide. (maintenance manual 6-19) */
|
||||||
if (m_sbs_request && (! m_no_sequence_break) && (! m_brk_ctr))
|
if (m_sbs_request && (! m_no_sequence_break) && (! m_brk_ctr))
|
||||||
{ /* begin sequence break */
|
{ /* begin sequence break */
|
||||||
m_brk_ctr = 1;
|
m_brk_ctr = 1;
|
||||||
@ -900,7 +900,7 @@ void pdp1_device::execute_run()
|
|||||||
MA = m_sbs_level << 2; /* always 0 with standard sequence break system */
|
MA = m_sbs_level << 2; /* always 0 with standard sequence break system */
|
||||||
MB = AC; /* save AC to MB */
|
MB = AC; /* save AC to MB */
|
||||||
AC = (OV << 17) | (EXD << 16) | PC; /* save OV/EXD/PC to AC */
|
AC = (OV << 17) | (EXD << 16) | PC; /* save OV/EXD/PC to AC */
|
||||||
EXD = OV = 0; /* according to maintainance manual p. 8-17 and ?-?? */
|
EXD = OV = 0; /* according to maintenance manual p. 8-17 and ?-?? */
|
||||||
m_cycle = m_defer = m_exc = 0; /* mere guess */
|
m_cycle = m_defer = m_exc = 0; /* mere guess */
|
||||||
WRITE_PDP_18BIT(MA, MB); /* save former AC to memory */
|
WRITE_PDP_18BIT(MA, MB); /* save former AC to memory */
|
||||||
INCREMENT_MA;
|
INCREMENT_MA;
|
||||||
@ -954,7 +954,7 @@ void pdp1_device::execute_run()
|
|||||||
m_b4 &= ~(1 << level);
|
m_b4 &= ~(1 << level);
|
||||||
field_interrupt();
|
field_interrupt();
|
||||||
if (m_extend_support)
|
if (m_extend_support)
|
||||||
EXD = 1; /* according to maintainance manual p. 6-33 */
|
EXD = 1; /* according to maintenance manual p. 6-33 */
|
||||||
m_sbs_restore = 1;
|
m_sbs_restore = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -990,7 +990,7 @@ void pdp1_device::execute_run()
|
|||||||
m_exc = 0;
|
m_exc = 0;
|
||||||
|
|
||||||
if (m_sbs_restore)
|
if (m_sbs_restore)
|
||||||
{ /* interrupt return: according to maintainance manual p. 6-33 */
|
{ /* interrupt return: according to maintenance manual p. 6-33 */
|
||||||
if (m_extend_support)
|
if (m_extend_support)
|
||||||
EXD = (MB >> 16) & 1;
|
EXD = (MB >> 16) & 1;
|
||||||
OV = (MB >> 17) & 1;
|
OV = (MB >> 17) & 1;
|
||||||
@ -1119,7 +1119,7 @@ void pdp1_device::execute_instruction()
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SUB: /* Subtract */
|
case SUB: /* Subtract */
|
||||||
{ /* maintainance manual 7-14 seems to imply that substract does not test for -0.
|
{ /* maintenance manual 7-14 seems to imply that substract does not test for -0.
|
||||||
The sim 2.3 source says so explicitely, though they do not give a reference.
|
The sim 2.3 source says so explicitely, though they do not give a reference.
|
||||||
It sounds a bit weird, but the reason is probably that doing so would
|
It sounds a bit weird, but the reason is probably that doing so would
|
||||||
require additionnal logic that does not exist. */
|
require additionnal logic that does not exist. */
|
||||||
@ -1230,7 +1230,7 @@ void pdp1_device::execute_instruction()
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{ /* MUS */
|
{ /* MUS */
|
||||||
/* should we check for -0??? (Maintainance manual 7-14 seems to imply we should not:
|
/* should we check for -0??? (Maintenance manual 7-14 seems to imply we should not:
|
||||||
as a matter of fact, since the MUS instruction is supposed to have positive operands,
|
as a matter of fact, since the MUS instruction is supposed to have positive operands,
|
||||||
there is no need to check for -0, therefore such a simplification does not sound
|
there is no need to check for -0, therefore such a simplification does not sound
|
||||||
absurd.) */
|
absurd.) */
|
||||||
@ -1777,8 +1777,8 @@ void pdp1_device::pdp1_type_20_sbs_iot(int op2, int nac, int mb, int *io, int ac
|
|||||||
void pdp1_device::pulse_start_clear()
|
void pdp1_device::pulse_start_clear()
|
||||||
{
|
{
|
||||||
/* processor registers */
|
/* processor registers */
|
||||||
PC = 0; /* according to maintainance manual p. 6-17 */
|
PC = 0; /* according to maintenance manual p. 6-17 */
|
||||||
IR = 0; /* according to maintainance manual p. 6-13 */
|
IR = 0; /* according to maintenance manual p. 6-13 */
|
||||||
/*MB = 0;*/ /* ??? */
|
/*MB = 0;*/ /* ??? */
|
||||||
/*MA = 0;*/ /* ??? */
|
/*MA = 0;*/ /* ??? */
|
||||||
/*AC = 0;*/ /* ??? */
|
/*AC = 0;*/ /* ??? */
|
||||||
@ -1790,14 +1790,14 @@ void pdp1_device::pulse_start_clear()
|
|||||||
m_cycle = 0; /* mere guess */
|
m_cycle = 0; /* mere guess */
|
||||||
m_defer = 0; /* mere guess */
|
m_defer = 0; /* mere guess */
|
||||||
m_brk_ctr = 0; /* mere guess */
|
m_brk_ctr = 0; /* mere guess */
|
||||||
m_ov = 0; /* according to maintainance manual p. 7-18 */
|
m_ov = 0; /* according to maintenance manual p. 7-18 */
|
||||||
m_rim = 0; /* ??? */
|
m_rim = 0; /* ??? */
|
||||||
m_sbm = 0; /* ??? */
|
m_sbm = 0; /* ??? */
|
||||||
EXD = 0; /* according to maintainance manual p. 8-16 */
|
EXD = 0; /* according to maintenance manual p. 8-16 */
|
||||||
m_exc = 0; /* according to maintainance manual p. 8-16 */
|
m_exc = 0; /* according to maintenance manual p. 8-16 */
|
||||||
m_ioc = 1; /* according to maintainance manual p. 6-10 */
|
m_ioc = 1; /* according to maintenance manual p. 6-10 */
|
||||||
m_ioh = 0; /* according to maintainance manual p. 6-10 */
|
m_ioh = 0; /* according to maintenance manual p. 6-10 */
|
||||||
m_ios = 0; /* according to maintainance manual p. 6-10 */
|
m_ios = 0; /* according to maintenance manual p. 6-10 */
|
||||||
|
|
||||||
m_b1 = m_type_20_sbs ? 0 : 1; /* mere guess */
|
m_b1 = m_type_20_sbs ? 0 : 1; /* mere guess */
|
||||||
m_b2 = 0; /* mere guess */
|
m_b2 = 0; /* mere guess */
|
||||||
|
@ -571,7 +571,7 @@ void pps4_device::iEXD()
|
|||||||
* The 4-bit contents, immediate field I(4:1),
|
* The 4-bit contents, immediate field I(4:1),
|
||||||
* of the instruction are placed in the accumulator.
|
* of the instruction are placed in the accumulator.
|
||||||
*
|
*
|
||||||
* Note: Only the first occurence of an LDI in a consecutive
|
* Note: Only the first occurrence of an LDI in a consecutive
|
||||||
* string of LDIs will be executed. The program will ignore
|
* string of LDIs will be executed. The program will ignore
|
||||||
* remaining LDIs and execute next valid instruction.
|
* remaining LDIs and execute next valid instruction.
|
||||||
*
|
*
|
||||||
@ -815,7 +815,7 @@ void pps4_device::iCYS()
|
|||||||
* This instruction takes two cycles to execute but occupies
|
* This instruction takes two cycles to execute but occupies
|
||||||
* only one ROM word. (Automatic return)
|
* only one ROM word. (Automatic return)
|
||||||
*
|
*
|
||||||
* Only the first occurence of an LB or LBL instruction in a
|
* Only the first occurrence of an LB or LBL instruction in a
|
||||||
* consecutive string of LB or LBL will be executed. The
|
* consecutive string of LB or LBL will be executed. The
|
||||||
* program will ignore the remaining LB or LBL and execute
|
* program will ignore the remaining LB or LBL and execute
|
||||||
* the next valid instruction. Within subroutines the LB
|
* the next valid instruction. Within subroutines the LB
|
||||||
@ -858,7 +858,7 @@ void pps4_device::iLB()
|
|||||||
* bits of the B register. The four most significant bits
|
* bits of the B register. The four most significant bits
|
||||||
* of B (BU) will be loaded with zeroes.
|
* of B (BU) will be loaded with zeroes.
|
||||||
*
|
*
|
||||||
* Only the first occurence of an LB or LBL instruction in a
|
* Only the first occurrence of an LB or LBL instruction in a
|
||||||
* consecutive string of LB or LBL will be executed. The
|
* consecutive string of LB or LBL will be executed. The
|
||||||
* program will ignore the remaining LB or LBL and execute
|
* program will ignore the remaining LB or LBL and execute
|
||||||
* the next valid instruction.
|
* the next valid instruction.
|
||||||
|
@ -1102,7 +1102,7 @@ void tms32025_device::macd() /** RAM blocks B0,B1,B2 may be important !
|
|||||||
CALCULATE_ADD_OVERFLOW(m_ALU.d);
|
CALCULATE_ADD_OVERFLOW(m_ALU.d);
|
||||||
CALCULATE_ADD_CARRY();
|
CALCULATE_ADD_CARRY();
|
||||||
GETDATA(0, 0);
|
GETDATA(0, 0);
|
||||||
if ( (m_opcode.b.l & 0x80) || m_init_load_addr ) { /* No writing during repitition, or DMA mode */
|
if ( (m_opcode.b.l & 0x80) || m_init_load_addr ) { /* No writing during repetition, or DMA mode */
|
||||||
M_WRTRAM((m_memaccess+1), m_ALU.w.l);
|
M_WRTRAM((m_memaccess+1), m_ALU.w.l);
|
||||||
}
|
}
|
||||||
m_Treg = m_ALU.w.l;
|
m_Treg = m_ALU.w.l;
|
||||||
|
@ -787,7 +787,7 @@ WRITE8_HANDLER(tms9995_internal2_w)
|
|||||||
#elif (TMS99XX_MODEL == TMS9900_ID) || (TMS99XX_MODEL == TMS9940_ID)
|
#elif (TMS99XX_MODEL == TMS9900_ID) || (TMS99XX_MODEL == TMS9940_ID)
|
||||||
/*16-bit data bus, 16-bit address bus (internal bus in the case of TMS9940)*/
|
/*16-bit data bus, 16-bit address bus (internal bus in the case of TMS9940)*/
|
||||||
/*Note that tms9900 actually never accesses a single byte : when performing byte operations,
|
/*Note that tms9900 actually never accesses a single byte : when performing byte operations,
|
||||||
it reads a 16-bit word, changes the revelant byte, then write a complete word. You should
|
it reads a 16-bit word, changes the relevant byte, then write a complete word. You should
|
||||||
remember this when writing memory handlers.*/
|
remember this when writing memory handlers.*/
|
||||||
/*This does not apply to tms9995 and tms99xxx, but does apply to tms9980 (see below).*/
|
/*This does not apply to tms9995 and tms99xxx, but does apply to tms9980 (see below).*/
|
||||||
|
|
||||||
@ -2342,7 +2342,7 @@ static void tms99xx_set_irq_line(tms99xx_state *cpustate, int irqline, int state
|
|||||||
/*
|
/*
|
||||||
* field_interrupt
|
* field_interrupt
|
||||||
*
|
*
|
||||||
* Determines whether if an interrupt is pending, and sets the revelant flag.
|
* Determines whether if an interrupt is pending, and sets the relevant flag.
|
||||||
*
|
*
|
||||||
* Called when an interrupt pin (LOAD*, INTREQ*, IC0-IC3) is changed, and when the interrupt mask
|
* Called when an interrupt pin (LOAD*, INTREQ*, IC0-IC3) is changed, and when the interrupt mask
|
||||||
* is modified.
|
* is modified.
|
||||||
@ -2959,9 +2959,9 @@ static void contextswitch(tms99xx_state *cpustate, UINT16 addr)
|
|||||||
|
|
||||||
#if HAS_MAPPING || HAS_PRIVILEGE
|
#if HAS_MAPPING || HAS_PRIVILEGE
|
||||||
|
|
||||||
/* priviledged context switch, that occurs after a reset, interrupt or XOP:
|
/* privileged context switch, that occurs after a reset, interrupt or XOP:
|
||||||
we enter priviledged mode and select map file 0 before doing the context switch */
|
we enter privileged mode and select map file 0 before doing the context switch */
|
||||||
/* For CPU that have no priviledge support, contextswitchX would behave
|
/* For CPU that have no privilege support, contextswitchX would behave
|
||||||
identically to contextswitch, so we can call contextswitch in all cases. */
|
identically to contextswitch, so we can call contextswitch in all cases. */
|
||||||
static void contextswitchX(tms99xx_state *cpustate, UINT16 addr)
|
static void contextswitchX(tms99xx_state *cpustate, UINT16 addr)
|
||||||
{
|
{
|
||||||
@ -2973,7 +2973,7 @@ static void contextswitchX(tms99xx_state *cpustate, UINT16 addr)
|
|||||||
setstat(cpustate);
|
setstat(cpustate);
|
||||||
oldST = cpustate->STATUS;
|
oldST = cpustate->STATUS;
|
||||||
|
|
||||||
/* enter priviledged mode and select map file 0 */
|
/* enter privileged mode and select map file 0 */
|
||||||
#if HAS_PRIVILEGE
|
#if HAS_PRIVILEGE
|
||||||
cpustate->STATUS &= ~ ST_PR;
|
cpustate->STATUS &= ~ ST_PR;
|
||||||
#endif
|
#endif
|
||||||
@ -4951,7 +4951,7 @@ static void h4000b(tms99xx_state *cpustate, UINT16 opcode)
|
|||||||
setst_byte_laep(cpustate, value);
|
setst_byte_laep(cpustate, value);
|
||||||
#if (TMS99XX_MODEL <= TMS9985_ID)
|
#if (TMS99XX_MODEL <= TMS9985_ID)
|
||||||
/* On ti990/10 and tms9900, MOVB needs to read destination, because it cannot actually
|
/* On ti990/10 and tms9900, MOVB needs to read destination, because it cannot actually
|
||||||
read one single byte. It reads a word, replaces the revelant byte, then write
|
read one single byte. It reads a word, replaces the relevant byte, then write
|
||||||
the result. A tms9980 should not need to do so, but still does, because it is just
|
the result. A tms9980 should not need to do so, but still does, because it is just
|
||||||
a tms9900 with a 16 to 8 bit multiplexer (instead of a new chip design, like tms9995). */
|
a tms9900 with a 16 to 8 bit multiplexer (instead of a new chip design, like tms9995). */
|
||||||
(void)readbyteX(cpustate, dest, dst_map);
|
(void)readbyteX(cpustate, dest, dst_map);
|
||||||
|
@ -1467,7 +1467,7 @@ void tms9995_device::int_prefetch_and_decode()
|
|||||||
if (m_idle_state)
|
if (m_idle_state)
|
||||||
{
|
{
|
||||||
m_idle_state = false;
|
m_idle_state = false;
|
||||||
if (TRACE_INT) logerror("tms9995: Interrupt occured, terminate IDLE state\n");
|
if (TRACE_INT) logerror("tms9995: Interrupt occurred, terminate IDLE state\n");
|
||||||
}
|
}
|
||||||
PC = PC + 2; // PC must be advanced (see flow chart), but no prefetch
|
PC = PC + 2; // PC must be advanced (see flow chart), but no prefetch
|
||||||
if (TRACE_INT) logerror("tms9995: Interrupts pending; no prefetch; advance PC to %04x\n", PC);
|
if (TRACE_INT) logerror("tms9995: Interrupts pending; no prefetch; advance PC to %04x\n", PC);
|
||||||
|
@ -68,7 +68,7 @@ public:
|
|||||||
/* end is ready to accept it */
|
/* end is ready to accept it */
|
||||||
DSR = 0x0004, /* Data Set ready. (INPUT) Other end of connection has data */
|
DSR = 0x0004, /* Data Set ready. (INPUT) Other end of connection has data */
|
||||||
DTR = 0x0008, /* Data terminal Ready. (OUTPUT) TX contains new data. */
|
DTR = 0x0008, /* Data terminal Ready. (OUTPUT) TX contains new data. */
|
||||||
RX = 0x0010, /* Recieve data. (INPUT) */
|
RX = 0x0010, /* Receive data. (INPUT) */
|
||||||
TX = 0x0020 /* TX = Transmit data. (OUTPUT) */
|
TX = 0x0020 /* TX = Transmit data. (OUTPUT) */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -627,7 +627,7 @@ void hdc9234_device::read_id(int& cont, bool implied_seek, bool wait_seek_comple
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case READ_ID1:
|
case READ_ID1:
|
||||||
// If an error occured (no IDAM found), terminate the command
|
// If an error occurred (no IDAM found), terminate the command
|
||||||
if ((m_register_r[CHIP_STATUS] & CS_SYNCERR) != 0)
|
if ((m_register_r[CHIP_STATUS] & CS_SYNCERR) != 0)
|
||||||
{
|
{
|
||||||
if (TRACE_FAIL) logerror("%s: READ_ID failed to find any IDAM\n", tag());
|
if (TRACE_FAIL) logerror("%s: READ_ID failed to find any IDAM\n", tag());
|
||||||
@ -735,7 +735,7 @@ void hdc9234_device::verify(int& cont, bool verify_all)
|
|||||||
|
|
||||||
if (TRACE_VERIFY && TRACE_SUBSTATES) logerror("%s: substate VERIFY\n", tag());
|
if (TRACE_VERIFY && TRACE_SUBSTATES) logerror("%s: substate VERIFY\n", tag());
|
||||||
|
|
||||||
// If an error occured (no IDAM found), terminate the command
|
// If an error occurred (no IDAM found), terminate the command
|
||||||
// (This test is only relevant when we did not have a seek phase before)
|
// (This test is only relevant when we did not have a seek phase before)
|
||||||
if ((m_register_r[CHIP_STATUS] & CS_SYNCERR) != 0)
|
if ((m_register_r[CHIP_STATUS] & CS_SYNCERR) != 0)
|
||||||
{
|
{
|
||||||
@ -1757,7 +1757,7 @@ void hdc9234_device::write_sectors()
|
|||||||
state machine attempts to find marks on the track, starting from the current
|
state machine attempts to find marks on the track, starting from the current
|
||||||
position. When found, it waits for the machine to catch up. When an event
|
position. When found, it waits for the machine to catch up. When an event
|
||||||
happens in the meantime, the state machine is rolled back, and the actions
|
happens in the meantime, the state machine is rolled back, and the actions
|
||||||
are replayed until the position where the event occured.
|
are replayed until the position where the event occurred.
|
||||||
|
|
||||||
Lots of code is taken from wd_fdc, with some minor restructuring and renaming.
|
Lots of code is taken from wd_fdc, with some minor restructuring and renaming.
|
||||||
Same ideas, though. More comments.
|
Same ideas, though. More comments.
|
||||||
|
@ -127,7 +127,7 @@ private:
|
|||||||
ARB_TIMEOUT_ABORT,
|
ARB_TIMEOUT_ABORT,
|
||||||
ARB_DESKEW_WAIT,
|
ARB_DESKEW_WAIT,
|
||||||
|
|
||||||
// Send/recieve byte
|
// Send/receive byte
|
||||||
SEND_WAIT_SETTLE,
|
SEND_WAIT_SETTLE,
|
||||||
SEND_WAIT_REQ_0,
|
SEND_WAIT_REQ_0,
|
||||||
RECV_WAIT_REQ_1,
|
RECV_WAIT_REQ_1,
|
||||||
|
@ -119,7 +119,7 @@ private:
|
|||||||
ARB_TIMEOUT_ABORT,
|
ARB_TIMEOUT_ABORT,
|
||||||
ARB_DESKEW_WAIT,
|
ARB_DESKEW_WAIT,
|
||||||
|
|
||||||
// Send/recieve byte
|
// Send/receive byte
|
||||||
SEND_WAIT_SETTLE,
|
SEND_WAIT_SETTLE,
|
||||||
SEND_WAIT_REQ_0,
|
SEND_WAIT_REQ_0,
|
||||||
RECV_WAIT_REQ_1,
|
RECV_WAIT_REQ_1,
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
Interfacing it with the tms5110 would make sense, too.
|
Interfacing it with the tms5110 would make sense, too.
|
||||||
|
|
||||||
TODO:
|
TODO:
|
||||||
Create seperate devices for TMS6100 & TMS6125
|
Create separate devices for TMS6100 & TMS6125
|
||||||
Implement the serial protocol
|
Implement the serial protocol
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@
|
|||||||
|
|
||||||
Data is streamed from a CPU by means of a clock generated on the chip.
|
Data is streamed from a CPU by means of a clock generated on the chip.
|
||||||
|
|
||||||
A reset signal is set high or low to determine whether playback (and interrupts) are occuring.
|
A reset signal is set high or low to determine whether playback (and interrupts) are occurring.
|
||||||
|
|
||||||
MSM6585: is an upgraded MSM5205 voice synth IC.
|
MSM6585: is an upgraded MSM5205 voice synth IC.
|
||||||
Improvements:
|
Improvements:
|
||||||
|
@ -562,7 +562,7 @@ void sega315_5124_device::check_pending_flags()
|
|||||||
/* A timer ensures that this function will run at least at end of each line.
|
/* A timer ensures that this function will run at least at end of each line.
|
||||||
When this function runs through a CPU instruction executed when the timer
|
When this function runs through a CPU instruction executed when the timer
|
||||||
was about to fire, the time added in the CPU timeslice may make hpos()
|
was about to fire, the time added in the CPU timeslice may make hpos()
|
||||||
return some position in the begining of next line. To ensure the instruction
|
return some position in the beginning of next line. To ensure the instruction
|
||||||
will get updated status, here a maximum hpos is set if the timer reports no
|
will get updated status, here a maximum hpos is set if the timer reports no
|
||||||
remaining time, what could also occur due to the ahead time of the timeslice. */
|
remaining time, what could also occur due to the ahead time of the timeslice. */
|
||||||
if (m_pending_flags_timer->remaining() == attotime::zero)
|
if (m_pending_flags_timer->remaining() == attotime::zero)
|
||||||
@ -712,7 +712,7 @@ WRITE8_MEMBER( sega315_5124_device::register_write )
|
|||||||
//
|
//
|
||||||
// For VINT disabling through register 01:
|
// For VINT disabling through register 01:
|
||||||
// When running eagles5 on the smskr driver the irq_state is 1 because of some
|
// When running eagles5 on the smskr driver the irq_state is 1 because of some
|
||||||
// previos HINTs that occured. eagles5 sets register 01 to 0x02 and expects
|
// previos HINTs that occurred. eagles5 sets register 01 to 0x02 and expects
|
||||||
// the irq state to be cleared after that.
|
// the irq state to be cleared after that.
|
||||||
// The following bit of code takes care of that.
|
// The following bit of code takes care of that.
|
||||||
//
|
//
|
||||||
|
@ -96,7 +96,7 @@ UINT64 epic12_device_blit_delay;
|
|||||||
|
|
||||||
inline UINT16 epic12_device::READ_NEXT_WORD(offs_t *addr)
|
inline UINT16 epic12_device::READ_NEXT_WORD(offs_t *addr)
|
||||||
{
|
{
|
||||||
// UINT16 data = space.read_word(*addr); // going through the memory system is 'more correct' but noticably slower
|
// UINT16 data = space.read_word(*addr); // going through the memory system is 'more correct' but noticeably slower
|
||||||
UINT16 data = m_use_ram[((*addr & m_main_rammask) >> 1) ^ NATIVE_ENDIAN_VALUE_LE_BE(3, 0)];
|
UINT16 data = m_use_ram[((*addr & m_main_rammask) >> 1) ^ NATIVE_ENDIAN_VALUE_LE_BE(3, 0)];
|
||||||
|
|
||||||
*addr += 2;
|
*addr += 2;
|
||||||
@ -107,7 +107,7 @@ inline UINT16 epic12_device::READ_NEXT_WORD(offs_t *addr)
|
|||||||
|
|
||||||
inline UINT16 epic12_device::COPY_NEXT_WORD(address_space &space, offs_t *addr)
|
inline UINT16 epic12_device::COPY_NEXT_WORD(address_space &space, offs_t *addr)
|
||||||
{
|
{
|
||||||
// UINT16 data = space.read_word(*addr); // going through the memory system is 'more correct' but noticably slower
|
// UINT16 data = space.read_word(*addr); // going through the memory system is 'more correct' but noticeably slower
|
||||||
UINT16 data = m_ram16[((*addr & m_main_rammask) >> 1) ^ NATIVE_ENDIAN_VALUE_LE_BE(3, 0)];
|
UINT16 data = m_ram16[((*addr & m_main_rammask) >> 1) ^ NATIVE_ENDIAN_VALUE_LE_BE(3, 0)];
|
||||||
m_ram16_copy[((*addr & m_main_rammask) >> 1) ^ NATIVE_ENDIAN_VALUE_LE_BE(3, 0)] = data;
|
m_ram16_copy[((*addr & m_main_rammask) >> 1) ^ NATIVE_ENDIAN_VALUE_LE_BE(3, 0)] = data;
|
||||||
|
|
||||||
|
@ -3240,7 +3240,7 @@ UINT8 v99x8_device::command_unit_w(UINT8 Op)
|
|||||||
// Start execution if we still have time slices
|
// Start execution if we still have time slices
|
||||||
if(m_vdp_engine&&(m_vdp_ops_count>0)) (this->*m_vdp_engine)();
|
if(m_vdp_engine&&(m_vdp_ops_count>0)) (this->*m_vdp_engine)();
|
||||||
|
|
||||||
// Operation successfull initiated
|
// Operation successfully initiated
|
||||||
return(1);
|
return(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2669,12 +2669,12 @@ void chd_file_compressor::async_read()
|
|||||||
}
|
}
|
||||||
catch (chd_error& err)
|
catch (chd_error& err)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "CHD error occured: %s\n", chd_file::error_string(err));
|
fprintf(stderr, "CHD error occurred: %s\n", chd_file::error_string(err));
|
||||||
m_read_error = true;
|
m_read_error = true;
|
||||||
}
|
}
|
||||||
catch (std::exception& ex)
|
catch (std::exception& ex)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "exception occured: %s\n", ex.what());
|
fprintf(stderr, "exception occurred: %s\n", ex.what());
|
||||||
m_read_error = true;
|
m_read_error = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -33,7 +33,7 @@ One GFX ROM is bad though.
|
|||||||
See A30-26.u23\A30-26.txt for details about the bad ROM.
|
See A30-26.u23\A30-26.txt for details about the bad ROM.
|
||||||
To summarise:
|
To summarise:
|
||||||
Dumps from GFX ROM A30-26.u23 were inconsistent. Reads with checksums
|
Dumps from GFX ROM A30-26.u23 were inconsistent. Reads with checksums
|
||||||
41A3 and 415F occured a couple of times, and the difference is one byte
|
41A3 and 415F occurred a couple of times, and the difference is one byte
|
||||||
at offset $0004 (data $CC or $88). Maybe one of these reads is correct
|
at offset $0004 (data $CC or $88). Maybe one of these reads is correct
|
||||||
or closest to the real ROM. We are using the one with checksum 415F,
|
or closest to the real ROM. We are using the one with checksum 415F,
|
||||||
the other one makes one sprite looks worse.
|
the other one makes one sprite looks worse.
|
||||||
|
@ -202,7 +202,7 @@ ADDRESS_MAP_END
|
|||||||
|
|
||||||
static ADDRESS_MAP_START( chance32_portmap, AS_IO, 8, chance32_state )
|
static ADDRESS_MAP_START( chance32_portmap, AS_IO, 8, chance32_state )
|
||||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||||
AM_RANGE(0x10, 0x10) AM_WRITENOP // writting bit3 constantly... watchdog?
|
AM_RANGE(0x10, 0x10) AM_WRITENOP // writing bit3 constantly... watchdog?
|
||||||
AM_RANGE(0x13, 0x13) AM_WRITE(mux_w)
|
AM_RANGE(0x13, 0x13) AM_WRITE(mux_w)
|
||||||
AM_RANGE(0x20, 0x20) AM_READ_PORT("DSW0")
|
AM_RANGE(0x20, 0x20) AM_READ_PORT("DSW0")
|
||||||
AM_RANGE(0x21, 0x21) AM_READ_PORT("DSW1")
|
AM_RANGE(0x21, 0x21) AM_READ_PORT("DSW1")
|
||||||
|
@ -387,7 +387,7 @@ static ADDRESS_MAP_START( cocoloco_map, AS_PROGRAM, 8, cocoloco_state )
|
|||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
/*
|
/*
|
||||||
1800-3fff: RW --> code inits reading and writting the whole range.
|
1800-3fff: RW --> code inits reading and writing the whole range.
|
||||||
|
|
||||||
All 3 instances of A005 reads (d07e, d355 and dca8),
|
All 3 instances of A005 reads (d07e, d355 and dca8),
|
||||||
discard the read in a non-sense way....
|
discard the read in a non-sense way....
|
||||||
|
@ -112,7 +112,7 @@
|
|||||||
(keep pressing HOLD 4, and press HIGH and LOW to set the stake limit
|
(keep pressing HOLD 4, and press HIGH and LOW to set the stake limit
|
||||||
between 10-100).
|
between 10-100).
|
||||||
|
|
||||||
Pressing DEAL/START, you can get the winning hands, occurence of
|
Pressing DEAL/START, you can get the winning hands, occurrence of
|
||||||
spades, diamonds, clubs and hearts. also number of jokers dealt.
|
spades, diamonds, clubs and hearts. also number of jokers dealt.
|
||||||
|
|
||||||
With DIP switch #8 ON, you can enter a sort of test mode, where you
|
With DIP switch #8 ON, you can enter a sort of test mode, where you
|
||||||
|
@ -2195,7 +2195,7 @@ void coolridr_state::blit_current_sprite(address_space &space)
|
|||||||
//
|
//
|
||||||
// all other cliprect blits seem to be written after mode 50, so this hack just prevents
|
// all other cliprect blits seem to be written after mode 50, so this hack just prevents
|
||||||
// writes with a higher value than the last one from taking effect, fixing the ending...
|
// writes with a higher value than the last one from taking effect, fixing the ending...
|
||||||
// especially noticable with 'LoveMachine'
|
// especially noticeable with 'LoveMachine'
|
||||||
// (mode 4f) unknown sprite list type 1 - 0054 0105 0059 0198 (00540105 0060019f 00000007)
|
// (mode 4f) unknown sprite list type 1 - 0054 0105 0059 0198 (00540105 0060019f 00000007)
|
||||||
// (mode 50) unknown sprite list type 1 - 0000 017f 0000 01f0 (0000017f 000701f7 00000007)
|
// (mode 50) unknown sprite list type 1 - 0000 017f 0000 01f0 (0000017f 000701f7 00000007)
|
||||||
// said ending also ends up drawing a red bar under the image, which isn't clipped out and
|
// said ending also ends up drawing a red bar under the image, which isn't clipped out and
|
||||||
|
@ -8,7 +8,7 @@ driver by Zsolt Vasvari
|
|||||||
Convention: "sl" stands for "searchlight"
|
Convention: "sl" stands for "searchlight"
|
||||||
|
|
||||||
Note: This game doesn't seem to support cocktail mode, which is not too
|
Note: This game doesn't seem to support cocktail mode, which is not too
|
||||||
suprising for a gun game.
|
surprising for a gun game.
|
||||||
|
|
||||||
0000-3fff ROM
|
0000-3fff ROM
|
||||||
5000-53ff Text layer videoram
|
5000-53ff Text layer videoram
|
||||||
|
@ -1108,7 +1108,7 @@ ROM_START( clocknch )
|
|||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
/* 13 */
|
/* 13 */
|
||||||
/* Photo of Dongle shows DP-1130B (the "B" is in a seperate white box then the DP-1130 label) */
|
/* Photo of Dongle shows DP-1130B (the "B" is in a separate white box then the DP-1130 label) */
|
||||||
ROM_START( cprogolf ) // version 9-B-0
|
ROM_START( cprogolf ) // version 9-B-0
|
||||||
DECOCASS_BIOS_B_ROMS
|
DECOCASS_BIOS_B_ROMS
|
||||||
|
|
||||||
@ -1152,7 +1152,7 @@ ROM_START( cdsteljn ) // version 4-A-3
|
|||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
/* 15 Lucky Poker */
|
/* 15 Lucky Poker */
|
||||||
/* Photo of Dongle shows DP-1150B (the "B" is in a seperate white box then the DP-1150 label) */
|
/* Photo of Dongle shows DP-1150B (the "B" is in a separate white box then the DP-1150 label) */
|
||||||
ROM_START( cluckypo )
|
ROM_START( cluckypo )
|
||||||
DECOCASS_BIOS_B_ROMS
|
DECOCASS_BIOS_B_ROMS
|
||||||
|
|
||||||
@ -1213,7 +1213,7 @@ ROM_START( ctisland3 )
|
|||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
/* 18 Explorer */
|
/* 18 Explorer */
|
||||||
/* Photo of Dongle shows DP-1180B (the "B" is in a seperate white box then the DP-1180 label) */
|
/* Photo of Dongle shows DP-1180B (the "B" is in a separate white box then the DP-1180 label) */
|
||||||
ROM_START( cexplore )
|
ROM_START( cexplore )
|
||||||
DECOCASS_BIOS_B_ROMS
|
DECOCASS_BIOS_B_ROMS
|
||||||
|
|
||||||
@ -1233,7 +1233,7 @@ ROM_END
|
|||||||
|
|
||||||
/* 19 Disco No.1 / Sweet Heart */
|
/* 19 Disco No.1 / Sweet Heart */
|
||||||
ROM_START( cdiscon1 )
|
ROM_START( cdiscon1 )
|
||||||
/* Photo of Dongle shows DP-1190B (the "B" is in a seperate white box then the DP-1190 label) */
|
/* Photo of Dongle shows DP-1190B (the "B" is in a separate white box then the DP-1190 label) */
|
||||||
DECOCASS_BIOS_B_ROMS
|
DECOCASS_BIOS_B_ROMS
|
||||||
|
|
||||||
ROM_REGION( 0x00800, "dongle", 0 ) /* dongle data */
|
ROM_REGION( 0x00800, "dongle", 0 ) /* dongle data */
|
||||||
@ -1265,7 +1265,7 @@ ROM_START( ctornado )
|
|||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
/* 21 Mission-X */
|
/* 21 Mission-X */
|
||||||
/* Photo of Dongle shows DP-121B with Cassette DT-1213B (the "3B" is in a seperate white box then the DP-121 label) */
|
/* Photo of Dongle shows DP-121B with Cassette DT-1213B (the "3B" is in a separate white box then the DP-121 label) */
|
||||||
ROM_START( cmissnx )
|
ROM_START( cmissnx )
|
||||||
DECOCASS_BIOS_B_ROMS
|
DECOCASS_BIOS_B_ROMS
|
||||||
|
|
||||||
@ -1314,7 +1314,7 @@ ROM_END
|
|||||||
|
|
||||||
|
|
||||||
/* 26 Hamburger / Burger Time */
|
/* 26 Hamburger / Burger Time */
|
||||||
/* Photo of Dongle shows DP-126B with Cassette DT-1267B (the "7B" is in a seperate white box then the DP-126 label) */
|
/* Photo of Dongle shows DP-126B with Cassette DT-1267B (the "7B" is in a separate white box then the DP-126 label) */
|
||||||
ROM_START( cbtime ) // version 7-B-0
|
ROM_START( cbtime ) // version 7-B-0
|
||||||
DECOCASS_BIOS_B_ROMS
|
DECOCASS_BIOS_B_ROMS
|
||||||
|
|
||||||
@ -1336,7 +1336,7 @@ ROM_START( chamburger ) // version 0-A-0
|
|||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
/* 27 Burnin' Rubber / Bump 'n' Jump */
|
/* 27 Burnin' Rubber / Bump 'n' Jump */
|
||||||
/* Photo of Dongle shows DP-127B with Cassette DP-1275B (the "5B" is in a seperate white box then the DP-127 label) */
|
/* Photo of Dongle shows DP-127B with Cassette DP-1275B (the "5B" is in a separate white box then the DP-127 label) */
|
||||||
ROM_START( cburnrub )
|
ROM_START( cburnrub )
|
||||||
DECOCASS_BIOS_B_ROMS
|
DECOCASS_BIOS_B_ROMS
|
||||||
|
|
||||||
|
@ -64,7 +64,7 @@ U.S.A. Trivia New Sports General Facts
|
|||||||
or alt: Adult Sex 2 or alt: Adult Sex 3 or alt: Gay Times
|
or alt: Adult Sex 2 or alt: Adult Sex 3 or alt: Gay Times
|
||||||
|
|
||||||
NOTE: Trivia Question rom names are the internal names used. IE: read from the file with
|
NOTE: Trivia Question rom names are the internal names used. IE: read from the file with
|
||||||
a Hex Editor. Any "_alt" extention is used to seperate different roms with the same
|
a Hex Editor. Any "_alt" extention is used to separate different roms with the same
|
||||||
label or internal name.
|
label or internal name.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
@ -373,7 +373,7 @@ Notes:
|
|||||||
subroutines, after all.)
|
subroutines, after all.)
|
||||||
|
|
||||||
- the serial device at 0080000(A|C) is not an EEPROM; it's likely some
|
- the serial device at 0080000(A|C) is not an EEPROM; it's likely some
|
||||||
weird device that is used to query the heirarchy of the attached
|
weird device that is used to query the hierarchy of the attached
|
||||||
input/output devices. Probably the naomi has something similar, I
|
input/output devices. Probably the naomi has something similar, I
|
||||||
haven't looked into it yet.
|
haven't looked into it yet.
|
||||||
|
|
||||||
|
@ -570,7 +570,7 @@ ADDRESS_MAP_END
|
|||||||
|
|
||||||
/* I/O byte R/W
|
/* I/O byte R/W
|
||||||
|
|
||||||
0x080 R ; Input port? polled once at begining.
|
0x080 R ; Input port? Polled once at beginning.
|
||||||
0x0C8 R ; Input port.
|
0x0C8 R ; Input port.
|
||||||
|
|
||||||
Can't see more inputs. There is a multiplexion with the following offsets as selectors:
|
Can't see more inputs. There is a multiplexion with the following offsets as selectors:
|
||||||
|
@ -282,7 +282,7 @@ WRITE8_MEMBER(kas89_state::mux_w)
|
|||||||
7654 3210
|
7654 3210
|
||||||
xxxx xxxx Input selector.
|
xxxx xxxx Input selector.
|
||||||
|
|
||||||
Writes: 1-2-4-8-10-20-40-3f. Only 80 (for DSW) at very begining...
|
Writes: 1-2-4-8-10-20-40-3f. Only 80 (for DSW) at very beginning...
|
||||||
*/
|
*/
|
||||||
|
|
||||||
m_mux_data = data;
|
m_mux_data = data;
|
||||||
|
@ -271,7 +271,7 @@ MAYGAY M2 - London Underground SWP game
|
|||||||
Dumped by Andy Welburn on a sunny morning 10/03/07
|
Dumped by Andy Welburn on a sunny morning 10/03/07
|
||||||
|
|
||||||
*************************************************
|
*************************************************
|
||||||
**Do not seperate this text file from the roms.**
|
**Do not separate this text file from the roms.**
|
||||||
*************************************************
|
*************************************************
|
||||||
|
|
||||||
filename: label: location type
|
filename: label: location type
|
||||||
|
@ -1796,7 +1796,7 @@ ROM_START( tictac )
|
|||||||
ROM_LOAD( "merit.u40", 0x00000, 0x2000, CRC(ab0088eb) SHA1(23a05a4dc11a8497f4fc7e4a76085af15ff89cea) )
|
ROM_LOAD( "merit.u40", 0x00000, 0x2000, CRC(ab0088eb) SHA1(23a05a4dc11a8497f4fc7e4a76085af15ff89cea) )
|
||||||
|
|
||||||
ROM_REGION( 0xa0000, "user1", ROMREGION_ERASEFF ) /* questions */
|
ROM_REGION( 0xa0000, "user1", ROMREGION_ERASEFF ) /* questions */
|
||||||
ROM_LOAD( "spo-004_01a.1", 0x08000, 0x8000, CRC(71b398a9) SHA1(5ea07c409afd52c7d08592b30ff0ff3b72c3f8c3) ) /* Trivia catagories are: */
|
ROM_LOAD( "spo-004_01a.1", 0x08000, 0x8000, CRC(71b398a9) SHA1(5ea07c409afd52c7d08592b30ff0ff3b72c3f8c3) ) /* Trivia categories are: */
|
||||||
ROM_LOAD( "spo-004_02a.2", 0x18000, 0x8000, CRC(eb34672f) SHA1(c472fc4445fc434029a2740dfc1d9ab9b1ef9f87) ) /* Sports, Entertainment, General Interest & Sex Trivia III */
|
ROM_LOAD( "spo-004_02a.2", 0x18000, 0x8000, CRC(eb34672f) SHA1(c472fc4445fc434029a2740dfc1d9ab9b1ef9f87) ) /* Sports, Entertainment, General Interest & Sex Trivia III */
|
||||||
ROM_LOAD( "spo-004_03a.3", 0x28000, 0x8000, CRC(8eea30b9) SHA1(fe1d0332106631f56bc6c57a888da9e4e63fa52f) )
|
ROM_LOAD( "spo-004_03a.3", 0x28000, 0x8000, CRC(8eea30b9) SHA1(fe1d0332106631f56bc6c57a888da9e4e63fa52f) )
|
||||||
ROM_LOAD( "ent-004_01.4", 0x38000, 0x8000, CRC(3f45064d) SHA1(de109ac0b19fd1cd7f0020cc174c2da21708108c) )
|
ROM_LOAD( "ent-004_01.4", 0x38000, 0x8000, CRC(3f45064d) SHA1(de109ac0b19fd1cd7f0020cc174c2da21708108c) )
|
||||||
@ -1821,7 +1821,7 @@ ROM_START( tictacv )
|
|||||||
ROM_LOAD( "ttts_u-40.u40", 0x00000, 0x2000, CRC(c7071c98) SHA1(88e1b26f198cfbbd86b492356f60fc1b81b38d97) )
|
ROM_LOAD( "ttts_u-40.u40", 0x00000, 0x2000, CRC(c7071c98) SHA1(88e1b26f198cfbbd86b492356f60fc1b81b38d97) )
|
||||||
|
|
||||||
ROM_REGION( 0xa0000, "user1", ROMREGION_ERASEFF ) /* questions */
|
ROM_REGION( 0xa0000, "user1", ROMREGION_ERASEFF ) /* questions */
|
||||||
ROM_LOAD( "spo-004_01a.1", 0x08000, 0x8000, CRC(71b398a9) SHA1(5ea07c409afd52c7d08592b30ff0ff3b72c3f8c3) ) /* Trivia catagories are: */
|
ROM_LOAD( "spo-004_01a.1", 0x08000, 0x8000, CRC(71b398a9) SHA1(5ea07c409afd52c7d08592b30ff0ff3b72c3f8c3) ) /* Trivia categories are: */
|
||||||
ROM_LOAD( "spo-004_02a.2", 0x18000, 0x8000, CRC(eb34672f) SHA1(c472fc4445fc434029a2740dfc1d9ab9b1ef9f87) ) /* Sports, Entertainment, General Interest & Sex Trivia III */
|
ROM_LOAD( "spo-004_02a.2", 0x18000, 0x8000, CRC(eb34672f) SHA1(c472fc4445fc434029a2740dfc1d9ab9b1ef9f87) ) /* Sports, Entertainment, General Interest & Sex Trivia III */
|
||||||
ROM_LOAD( "spo-004_03a.3", 0x28000, 0x8000, CRC(8eea30b9) SHA1(fe1d0332106631f56bc6c57a888da9e4e63fa52f) )
|
ROM_LOAD( "spo-004_03a.3", 0x28000, 0x8000, CRC(8eea30b9) SHA1(fe1d0332106631f56bc6c57a888da9e4e63fa52f) )
|
||||||
ROM_LOAD( "ent-004_01.4", 0x38000, 0x8000, CRC(3f45064d) SHA1(de109ac0b19fd1cd7f0020cc174c2da21708108c) )
|
ROM_LOAD( "ent-004_01.4", 0x38000, 0x8000, CRC(3f45064d) SHA1(de109ac0b19fd1cd7f0020cc174c2da21708108c) )
|
||||||
|
@ -28,7 +28,7 @@ Kotoba no Puzzle Mojipittan (KPM1 Ver.A) (C) Namco, 2001
|
|||||||
Mr Driller 2 (DR21 Ver.A) (C) Namco, 2000
|
Mr Driller 2 (DR21 Ver.A) (C) Namco, 2000
|
||||||
Mr Driller 2 (DR22 Ver.A) (C) Namco, 2000
|
Mr Driller 2 (DR22 Ver.A) (C) Namco, 2000
|
||||||
Mr Driller G (DRG1 Ver.A) (C) Namco, 2001
|
Mr Driller G (DRG1 Ver.A) (C) Namco, 2001
|
||||||
NFL Classic Football (NCF3 Ver.A) (C) Namco, 2003 - Has a noticable red dot the right right of the version printed on PCB. Something to determine region?
|
NFL Classic Football (NCF3 Ver.A) (C) Namco, 2003 - Has a noticeable red dot on the right of the version printed on PCB. Something to determine region?
|
||||||
Panicuru Panekuru (PPA1 Ver.A) (C) Namco, 2001
|
Panicuru Panekuru (PPA1 Ver.A) (C) Namco, 2001
|
||||||
*Photo Battole (C) Namco, 2001
|
*Photo Battole (C) Namco, 2001
|
||||||
Point Blank 3 / Gunbalina (GNN2 Ver. A) (C) Namco, 2000
|
Point Blank 3 / Gunbalina (GNN2 Ver. A) (C) Namco, 2000
|
||||||
|
@ -67,7 +67,7 @@ TODO (general):
|
|||||||
* Shootout Pool Medal
|
* Shootout Pool Medal
|
||||||
* Shootout Pool Prize
|
* Shootout Pool Prize
|
||||||
|
|
||||||
- "com error occured between Naomi BD and I/O BD"
|
- "com error occurred between Naomi BD and I/O BD"
|
||||||
* Samba de Amigo
|
* Samba de Amigo
|
||||||
* Samba de Amigo (prototype)
|
* Samba de Amigo (prototype)
|
||||||
* Samba de Amigo Ver. 2000
|
* Samba de Amigo Ver. 2000
|
||||||
@ -595,7 +595,7 @@ Mushiking - The King Of Beetles II ENG (Ver. 1.001) 840-0164C not present 2 (5
|
|||||||
Mushiking - The King Of Beetles II ENG (Ver. 2.001) 840-0164C 24357 2 (512Mb) present 317-0437-COM present IC4# is marked "18"
|
Mushiking - The King Of Beetles II ENG (Ver. 2.001) 840-0164C 24357 2 (512Mb) present 317-0437-COM present IC4# is marked "18"
|
||||||
Poka Suka Ghost 840-0170C not present 5 (512Mb) present 317-0461-COM present requires 837-14672 sensor board (SH4 based)
|
Poka Suka Ghost 840-0170C not present 5 (512Mb) present 317-0461-COM present requires 837-14672 sensor board (SH4 based)
|
||||||
Radirgy Noa 841-0062C not present 4 (512Mb) present 317-5138-JPN present IC2# is labeled "VER.2" - IC4# is marked "8A"
|
Radirgy Noa 841-0062C not present 4 (512Mb) present 317-5138-JPN present IC2# is labeled "VER.2" - IC4# is marked "8A"
|
||||||
Rythm Tengoku 841-0177C not present 4 (512Mb) present 317-0503-JPN present IC2# is labeled "VER.2" - IC4# is marked "8A"
|
Rhythm Tengoku 841-0177C not present 4 (512Mb) present 317-0503-JPN present IC2# is labeled "VER.2" - IC4# is marked "8A"
|
||||||
Star Horse Progress Returns (satellite) 840-0186C not present 2 (512Mb) present not present present IC2# is labeled "VER.2", requires 837-13785 ARCNET&IO BD
|
Star Horse Progress Returns (satellite) 840-0186C not present 2 (512Mb) present not present present IC2# is labeled "VER.2", requires 837-13785 ARCNET&IO BD
|
||||||
Shooting Love 2007 841-0057C not present 4 (512Mb) present 317-5129-JPN present IC2# is labeled "VER.2"
|
Shooting Love 2007 841-0057C not present 4 (512Mb) present 317-5129-JPN present IC2# is labeled "VER.2"
|
||||||
Touch De Zunou (Rev A) 840-0166C not present 2 (512Mb) present 317-0435-JPN present IC4# is marked "18", requires 837-14672 sensor board (SH4 based)
|
Touch De Zunou (Rev A) 840-0166C not present 2 (512Mb) present 317-0435-JPN present IC4# is marked "18", requires 837-14672 sensor board (SH4 based)
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
IGS037(GFX PROCESSOR)
|
IGS037(GFX PROCESSOR)
|
||||||
YMZ774-S(SOUND)
|
YMZ774-S(SOUND)
|
||||||
R5F21256SN(extra MCU for protection and ICcard communication)
|
R5F21256SN(extra MCU for protection and ICcard communication)
|
||||||
- Appears to be refered to by the games as MPU
|
- Appears to be referred to by the games as MPU
|
||||||
|
|
||||||
Cartridges
|
Cartridges
|
||||||
IGS036 (MAIN CPU) (differs per game, internal code)
|
IGS036 (MAIN CPU) (differs per game, internal code)
|
||||||
|
@ -54,7 +54,7 @@ TODO:
|
|||||||
ROM is currently missing.
|
ROM is currently missing.
|
||||||
- Lucky Boom has some minor colour issue with the background - see the title screen. The
|
- Lucky Boom has some minor colour issue with the background - see the title screen. The
|
||||||
game selects the wrong colour for some tiles. The tiles should be colour 0x01 not 0x02.
|
game selects the wrong colour for some tiles. The tiles should be colour 0x01 not 0x02.
|
||||||
Affects the backgrounds in game however it's barely noticable.
|
Affects the backgrounds in game however it's barely noticeable.
|
||||||
|
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
|
@ -108,7 +108,7 @@ TAKO-8
|
|||||||
|
|
||||||
--- Gunbarich ---
|
--- Gunbarich ---
|
||||||
|
|
||||||
0-2-9-2-0 Maintainance Mode
|
0-2-9-2-0 Maintenance Mode
|
||||||
0-2-9-1-0 All Data Initialised
|
0-2-9-1-0 All Data Initialised
|
||||||
1-2-3-4-5 Best Score Erased
|
1-2-3-4-5 Best Score Erased
|
||||||
|
|
||||||
|
@ -53,7 +53,7 @@ Cookie & Bibi 3
|
|||||||
This game is quite buggy. The test mode is incomplete and displays garbage
|
This game is quite buggy. The test mode is incomplete and displays garbage
|
||||||
on the 'Dipswitch settings' screens, and during some of the attract mode
|
on the 'Dipswitch settings' screens, and during some of the attract mode
|
||||||
scenes the credit counter is not updated when you insert coins until the next
|
scenes the credit counter is not updated when you insert coins until the next
|
||||||
scene. Both these bugs are verified as occuring on the original hardware.
|
scene. Both these bugs are verified as occurring on the original hardware.
|
||||||
|
|
||||||
Honey Doll / Twin Adventure
|
Honey Doll / Twin Adventure
|
||||||
|
|
||||||
|
@ -54,7 +54,7 @@ RST 10,the main IRQ, is to be triggered each time the screen is refreshed.
|
|||||||
RST 08 must be triggered in order to make the game work properly. I haven't
|
RST 08 must be triggered in order to make the game work properly. I haven't
|
||||||
ascertained the exact frequency of this interrupt yet, though the game
|
ascertained the exact frequency of this interrupt yet, though the game
|
||||||
appears to run at the correct speed with RST08 at 30Hz. Curiously a trace
|
appears to run at the correct speed with RST08 at 30Hz. Curiously a trace
|
||||||
on the interrupt pin shows two interrupts occuring at 60Hz, obviously the
|
on the interrupt pin shows two interrupts occurring at 60Hz, obviously the
|
||||||
VBlank interrupt followed by a second interrupt some 3.3ms later. At some
|
VBlank interrupt followed by a second interrupt some 3.3ms later. At some
|
||||||
stage I'll get around to probing the data lines to find the interrupt
|
stage I'll get around to probing the data lines to find the interrupt
|
||||||
vector addresses.
|
vector addresses.
|
||||||
|
@ -29,7 +29,7 @@ PRINTER communication (Star Printer )
|
|||||||
******************************************************
|
******************************************************
|
||||||
SECURITY SYSTEM
|
SECURITY SYSTEM
|
||||||
|
|
||||||
ADRESS A40000..A40001
|
ADDRESS A40000..A40001
|
||||||
U35 PAL16R8 SECURITY
|
U35 PAL16R8 SECURITY
|
||||||
PAL is connect on the BUS D15..D8
|
PAL is connect on the BUS D15..D8
|
||||||
Write Clock 8 bits in D15..D8
|
Write Clock 8 bits in D15..D8
|
||||||
@ -204,7 +204,7 @@ need further test on PAL16R8 (FlipFlop Trick with other bits ?)
|
|||||||
this DUMP is done writing 0 to 255 and reading output (probably not the good way.)
|
this DUMP is done writing 0 to 255 and reading output (probably not the good way.)
|
||||||
|
|
||||||
PAL is connected on the UPPER byte D15..D8
|
PAL is connected on the UPPER byte D15..D8
|
||||||
Adress A40000..A40001
|
Address A40000..A40001
|
||||||
2 Type of PAL (one for game, the other is to set game to fabric default)
|
2 Type of PAL (one for game, the other is to set game to fabric default)
|
||||||
|
|
||||||
there is a 74LS173 on the LOWER byte that used bit D3..D0
|
there is a 74LS173 on the LOWER byte that used bit D3..D0
|
||||||
@ -469,7 +469,7 @@ U40 MC68681 PIN38 IP5 from U51 DS1260 smart Battery POWER FAIL FLAG
|
|||||||
U40 MC68681 Pin12 OP1 JCM Bill Acceptor (Enable Comm. U34)
|
U40 MC68681 Pin12 OP1 JCM Bill Acceptor (Enable Comm. U34)
|
||||||
U40 MC68681 Pin27 OP4 JCM Bill Acceptor (J4-6, J4-7 Control)
|
U40 MC68681 Pin27 OP4 JCM Bill Acceptor (J4-6, J4-7 Control)
|
||||||
|
|
||||||
// missing adress for :
|
// missing address for :
|
||||||
// external I/O board communication via PAL23
|
// external I/O board communication via PAL23
|
||||||
|
|
||||||
A23 A22 A21 A20 | A19 A18 A17 A16 | A15 A14 A13 A12 | A11 A10 A9 A8 | A7 A6 A5 A4 | A3 A2 A1 xx
|
A23 A22 A21 A20 | A19 A18 A17 A16 | A15 A14 A13 A12 | A11 A10 A9 A8 | A7 A6 A5 A4 | A3 A2 A1 xx
|
||||||
@ -487,11 +487,11 @@ U40 MC68681 Pin27 OP4 JCM Bill Acceptor (J4-6, J4-7 Control)
|
|||||||
00014001
|
00014001
|
||||||
00020001
|
00020001
|
||||||
00024001
|
00024001
|
||||||
00900001 6845 CS CRTC U8 RS=LOW ADRESS REGISTER (A15 ON RS) Data bus on D7..D0
|
00900001 6845 CS CRTC U8 RS=LOW ADDRESS REGISTER (A15 ON RS) Data bus on D7..D0
|
||||||
00980001 6845 CS CRTC U8 RS=HIGH DATA REGISTER (A15 ON RS)
|
00980001 6845 CS CRTC U8 RS=HIGH DATA REGISTER (A15 ON RS)
|
||||||
00A00001 I/O Board Communication
|
00A00001 I/O Board Communication
|
||||||
00A08001 I/O Board Communication
|
00A08001 I/O Board Communication
|
||||||
00A10000 WDT STROBE DS1232 WatchDog Controller (this adress reset Strobe of Ds1232)
|
00A10000 WDT STROBE DS1232 WatchDog Controller (this address reset Strobe of Ds1232)
|
||||||
00A20001 AY8912 BDIR AUDIO Data bus on D7..D0
|
00A20001 AY8912 BDIR AUDIO Data bus on D7..D0
|
||||||
00A28001 AY8912 BC1 AUDIO
|
00A28001 AY8912 BC1 AUDIO
|
||||||
00A300x1 6242 CS RTC U41 A0..A3 (A4..A7 ON A0..A3) Data bus on D3..D0
|
00A300x1 6242 CS RTC U41 A0..A3 (A4..A7 ON A0..A3) Data bus on D3..D0
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<!-- Hankin copied from gp_1.lay -->
|
<!-- Hankin copied from gp_1.lay -->
|
||||||
|
|
||||||
<!-- 2014-08-14: Initial version. [Robbbert] -->
|
<!-- 2014-08-14: Initial version. [Robbbert] -->
|
||||||
<!-- 2014-08-18: Changed to flourescent vacuum display. [Robbbert] -->
|
<!-- 2014-08-18: Changed to fluorescent vacuum display. [Robbbert] -->
|
||||||
|
|
||||||
<mamelayout version="2">
|
<mamelayout version="2">
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@
|
|||||||
<bounds left="0" top="20" right="362" bottom="394" />
|
<bounds left="0" top="20" right="362" bottom="394" />
|
||||||
</backdrop>
|
</backdrop>
|
||||||
|
|
||||||
<!-- Flourescent Displays -->
|
<!-- Fluorescent Displays -->
|
||||||
|
|
||||||
<!-- Player 1 Score -->
|
<!-- Player 1 Score -->
|
||||||
|
|
||||||
|
@ -36,7 +36,7 @@
|
|||||||
<bounds left="0" top="20" right="318" bottom="394" />
|
<bounds left="0" top="20" right="318" bottom="394" />
|
||||||
</backdrop>
|
</backdrop>
|
||||||
|
|
||||||
<!-- Flourescent Displays -->
|
<!-- Fluorescent Displays -->
|
||||||
|
|
||||||
<!-- Player 1 Score -->
|
<!-- Player 1 Score -->
|
||||||
|
|
||||||
|
@ -56,8 +56,8 @@ void iteagle_fpga_device::device_reset()
|
|||||||
m_ctrl_regs[0x10/4] = 0x00000000; // 0xFFFFFFFF causes a write of 0xFFFEFFFF then 0xFFFFFFFF // Not sure
|
m_ctrl_regs[0x10/4] = 0x00000000; // 0xFFFFFFFF causes a write of 0xFFFEFFFF then 0xFFFFFFFF // Not sure
|
||||||
// 0x00&0x2 == 1 for boot
|
// 0x00&0x2 == 1 for boot
|
||||||
m_fpga_regs[0x00/4] = 0xC0000002; // 0xCF000002;// byte 3 is voltage sensor? high = 0x40 good = 0xC0 0xF0 0xFF; //0x80 0x30 0x00FF = voltage low
|
m_fpga_regs[0x00/4] = 0xC0000002; // 0xCF000002;// byte 3 is voltage sensor? high = 0x40 good = 0xC0 0xF0 0xFF; //0x80 0x30 0x00FF = voltage low
|
||||||
//m_fpga_regs[0x308/4]=0x0000ffff; // Low 16 bits gets read alot?
|
//m_fpga_regs[0x308/4]=0x0000ffff; // Low 16 bits get read a lot?
|
||||||
m_fpga_regs[0x08/4]=0x00000000; // Low 16 bits gets read alot?
|
m_fpga_regs[0x08/4]=0x00000000; // Low 16 bits get read a lot?
|
||||||
m_prev_reg = 0;
|
m_prev_reg = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -690,7 +690,7 @@ Historical Issues
|
|||||||
TC0480SCP_ctrl_word_write.
|
TC0480SCP_ctrl_word_write.
|
||||||
|
|
||||||
4) Zoom movement was jagged: improved by bringing in scroll delta
|
4) Zoom movement was jagged: improved by bringing in scroll delta
|
||||||
values... but the results are noticably imperfect.
|
values... but the results are noticeably imperfect.
|
||||||
|
|
||||||
**********************************************************************/
|
**********************************************************************/
|
||||||
|
|
||||||
|
@ -3019,7 +3019,7 @@ static SLOT_INTERFACE_START(apple2_cards)
|
|||||||
SLOT_INTERFACE("ap16alt", A2BUS_IBSAP16ALT) /* IBS AP16 (German VideoTerm clone), alternate revision */
|
SLOT_INTERFACE("ap16alt", A2BUS_IBSAP16ALT) /* IBS AP16 (German VideoTerm clone), alternate revision */
|
||||||
SLOT_INTERFACE("vtc1", A2BUS_VTC1) /* Unknown VideoTerm clone #1 */
|
SLOT_INTERFACE("vtc1", A2BUS_VTC1) /* Unknown VideoTerm clone #1 */
|
||||||
SLOT_INTERFACE("vtc2", A2BUS_VTC2) /* Unknown VideoTerm clone #2 */
|
SLOT_INTERFACE("vtc2", A2BUS_VTC2) /* Unknown VideoTerm clone #2 */
|
||||||
SLOT_INTERFACE("arcbd", A2BUS_ARCADEBOARD) /* Third Millenium Engineering Arcade Board */
|
SLOT_INTERFACE("arcbd", A2BUS_ARCADEBOARD) /* Third Millennium Engineering Arcade Board */
|
||||||
SLOT_INTERFACE("midi", A2BUS_MIDI) /* Generic 6840+6850 MIDI board */
|
SLOT_INTERFACE("midi", A2BUS_MIDI) /* Generic 6840+6850 MIDI board */
|
||||||
SLOT_INTERFACE("zipdrive", A2BUS_ZIPDRIVE) /* ZIP Technologies IDE card */
|
SLOT_INTERFACE("zipdrive", A2BUS_ZIPDRIVE) /* ZIP Technologies IDE card */
|
||||||
SLOT_INTERFACE("echoiiplus", A2BUS_ECHOPLUS) /* Street Electronics Echo Plus (Echo II + Mockingboard clone) */
|
SLOT_INTERFACE("echoiiplus", A2BUS_ECHOPLUS) /* Street Electronics Echo Plus (Echo II + Mockingboard clone) */
|
||||||
|
@ -288,7 +288,7 @@ static SLOT_INTERFACE_START(apple2_cards)
|
|||||||
SLOT_INTERFACE("sam", A2BUS_SAM) /* SAM Software Automated Mouth (8-bit DAC + speaker) */
|
SLOT_INTERFACE("sam", A2BUS_SAM) /* SAM Software Automated Mouth (8-bit DAC + speaker) */
|
||||||
SLOT_INTERFACE("alfam2", A2BUS_ALFAM2) /* ALF Apple Music II */
|
SLOT_INTERFACE("alfam2", A2BUS_ALFAM2) /* ALF Apple Music II */
|
||||||
SLOT_INTERFACE("echoii", A2BUS_ECHOII) /* Street Electronics Echo II */
|
SLOT_INTERFACE("echoii", A2BUS_ECHOII) /* Street Electronics Echo II */
|
||||||
SLOT_INTERFACE("arcbd", A2BUS_ARCADEBOARD) /* Third Millenium Engineering Arcade Board */
|
SLOT_INTERFACE("arcbd", A2BUS_ARCADEBOARD) /* Third Millennium Engineering Arcade Board */
|
||||||
SLOT_INTERFACE("midi", A2BUS_MIDI) /* Generic 6840+6850 MIDI board */
|
SLOT_INTERFACE("midi", A2BUS_MIDI) /* Generic 6840+6850 MIDI board */
|
||||||
SLOT_INTERFACE("vulcan", A2BUS_VULCAN) /* AE Vulcan IDE card */
|
SLOT_INTERFACE("vulcan", A2BUS_VULCAN) /* AE Vulcan IDE card */
|
||||||
SLOT_INTERFACE("vulcangold", A2BUS_VULCANGOLD) /* AE Vulcan Gold IDE card */
|
SLOT_INTERFACE("vulcangold", A2BUS_VULCANGOLD) /* AE Vulcan Gold IDE card */
|
||||||
|
@ -40,7 +40,7 @@
|
|||||||
* cchsV - Read a sector from disk (cc = cylinder, h = head [bit 0=drive, bit 2=side], s = sector)
|
* cchsV - Read a sector from disk (cc = cylinder, h = head [bit 0=drive, bit 2=side], s = sector)
|
||||||
* cchsW - Write a sector from disk
|
* cchsW - Write a sector from disk
|
||||||
* nnnnmmmmX - I/O port transmit (nnnn = number of bytes to transmit, mmmm = start of data to transmit)
|
* nnnnmmmmX - I/O port transmit (nnnn = number of bytes to transmit, mmmm = start of data to transmit)
|
||||||
* nnnnY - I/O port recieve (nnnn = address of data loaded)
|
* nnnnY - I/O port receive (nnnn = address of data loaded)
|
||||||
* Z - Auto Disk Test (1Z for drive B)
|
* Z - Auto Disk Test (1Z for drive B)
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
|
@ -200,7 +200,7 @@ MACHINE_RESET_MEMBER(microvision_state, microvision)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case RC_TYPE_100PF_23_2K:
|
case RC_TYPE_100PF_23_2K:
|
||||||
case RC_TYPE_UNKNOWN: // Default to most occuring setting
|
case RC_TYPE_UNKNOWN: // Default to most occurring setting
|
||||||
static_set_clock( m_tms1100, 500000 );
|
static_set_clock( m_tms1100, 500000 );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -405,7 +405,7 @@ static void iot_cks(device_t *device, int op2, int nac, int mb, int *io, int ac)
|
|||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
devices which are known to generate a completion pulse (source: maintainance manual 9-??,
|
devices which are known to generate a completion pulse (source: maintenance manual 9-??,
|
||||||
and 9-20, 9-21):
|
and 9-20, 9-21):
|
||||||
emulated:
|
emulated:
|
||||||
* perforated tape reader
|
* perforated tape reader
|
||||||
@ -451,8 +451,8 @@ static pdp1_reset_param_t pdp1_reset_param =
|
|||||||
{
|
{
|
||||||
{ /* external iot handlers. NULL means that the iot is unimplemented, unless there are
|
{ /* external iot handlers. NULL means that the iot is unimplemented, unless there are
|
||||||
parentheses around the iot name, in which case the iot is internal to the cpu core. */
|
parentheses around the iot name, in which case the iot is internal to the cpu core. */
|
||||||
/* I put a ? when the source is the handbook, since a) I have used the maintainance manual
|
/* I put a ? when the source is the handbook, since a) I have used the maintenance manual
|
||||||
as the primary source (as it goes more into details) b) the handbook and the maintainance
|
as the primary source (as it goes more into details) b) the handbook and the maintenance
|
||||||
manual occasionnally contradict each other. */
|
manual occasionnally contradict each other. */
|
||||||
/* dia, dba, dcc, dra are documented in MIT PDP-1 COMPUTER MODIFICATION
|
/* dia, dba, dcc, dra are documented in MIT PDP-1 COMPUTER MODIFICATION
|
||||||
BULLETIN no. 2 (drumInstrWriteup.bin/drumInstrWriteup.txt), and are
|
BULLETIN no. 2 (drumInstrWriteup.bin/drumInstrWriteup.txt), and are
|
||||||
@ -1303,7 +1303,7 @@ static void iot_tyo(device_t *device, int op2, int nac, int mb, int *io, int ac)
|
|||||||
state->typewriter_out(ch);
|
state->typewriter_out(ch);
|
||||||
state->m_io_status &= ~io_st_tyo;
|
state->m_io_status &= ~io_st_tyo;
|
||||||
|
|
||||||
/* compute completion delay (source: maintainance manual 9-12, 9-13 and 9-14) */
|
/* compute completion delay (source: maintenance manual 9-12, 9-13 and 9-14) */
|
||||||
switch (ch)
|
switch (ch)
|
||||||
{
|
{
|
||||||
case 072: /* lower-case */
|
case 072: /* lower-case */
|
||||||
|
@ -500,7 +500,7 @@ WRITE8_MEMBER(socrates_state::speech_command) // write 0x4x
|
|||||||
does not have the rom read mode, which the socrates definitely uses! */
|
does not have the rom read mode, which the socrates definitely uses! */
|
||||||
/* Commands (tc8802):
|
/* Commands (tc8802):
|
||||||
SEL 5 4 3 2 1 0
|
SEL 5 4 3 2 1 0
|
||||||
0 0 n n n n - ADLD - ADress LoaD - writes one nybble to the address
|
0 0 n n n n - ADLD - ADdress LoaD - writes one nybble to the address
|
||||||
of vsm rom selected (internal or external) starting
|
of vsm rom selected (internal or external) starting
|
||||||
from the low 4 bits; each subsequent write writes to
|
from the low 4 bits; each subsequent write writes to
|
||||||
the next higher 4 bits; resetting the chip resets
|
the next higher 4 bits; resetting the chip resets
|
||||||
|
@ -435,7 +435,7 @@ WRITE8_MEMBER( ti99_4x_state::external_operation )
|
|||||||
|
|
||||||
When an interrupt line is set (and the corresponding bit in the interrupt mask is set),
|
When an interrupt line is set (and the corresponding bit in the interrupt mask is set),
|
||||||
a level 1 interrupt is requested from the TMS9900. This interrupt request lasts as long as
|
a level 1 interrupt is requested from the TMS9900. This interrupt request lasts as long as
|
||||||
the interrupt pin and the revelant bit in the interrupt mask are set.
|
the interrupt pin and the relevant bit in the interrupt mask are set.
|
||||||
|
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
|
@ -616,9 +616,9 @@ READ8_MEMBER(vk100_state::SYSTAT_A)
|
|||||||
/* port 0x48: "SYSTAT B"; NOT documented in the tech manual at all.
|
/* port 0x48: "SYSTAT B"; NOT documented in the tech manual at all.
|
||||||
* when in loopback/test mode, SYSTAT_B is read and expected the following, around 0x606:
|
* when in loopback/test mode, SYSTAT_B is read and expected the following, around 0x606:
|
||||||
* reset 8751, modewrite of 0x5E
|
* reset 8751, modewrite of 0x5E
|
||||||
* write command -> 0x20 (normal, normal, /RTS is 0, normal, normal, recieve off, /DTR is 1, transmit off)
|
* write command -> 0x20 (normal, normal, /RTS is 0, normal, normal, receive off, /DTR is 1, transmit off)
|
||||||
* read SYSTAT B (and xor with 0xe), expect d7 to be CLEAR or jump to error
|
* read SYSTAT B (and xor with 0xe), expect d7 to be CLEAR or jump to error
|
||||||
* write command -> 0x05 (normal, normal, /RTS is 1, normal, normal, recieve ON, /DTR is 0, transmit off)
|
* write command -> 0x05 (normal, normal, /RTS is 1, normal, normal, receive ON, /DTR is 0, transmit off)
|
||||||
* read SYSTAT B (and xor with 0xe), expect d7 to be SET or jump to error
|
* read SYSTAT B (and xor with 0xe), expect d7 to be SET or jump to error
|
||||||
* after this it does something and waits for an rxrdy interrupt
|
* after this it does something and waits for an rxrdy interrupt
|
||||||
|
|
||||||
|
@ -35,7 +35,7 @@
|
|||||||
Ram 0000-FFFF (preloaded with binary)
|
Ram 0000-FFFF (preloaded with binary)
|
||||||
Special calls take place for three ram values (this interface was designed by kevtris):
|
Special calls take place for three ram values (this interface was designed by kevtris):
|
||||||
FFFD - 'ack' - shared ram with output device; z80 reads from here and considers the byte at FFFF read if this value incremented
|
FFFD - 'ack' - shared ram with output device; z80 reads from here and considers the byte at FFFF read if this value incremented
|
||||||
FFFE - 'req' - shared ram with output device; z80 writes an incrementing value to FFFE to indicate that there is a byte waiting at FFFF and hence requesting the output device on the other end do something about it, until FFFD is incremented by the output device to acknowledge reciept
|
FFFE - 'req' - shared ram with output device; z80 writes an incrementing value to FFFE to indicate that there is a byte waiting at FFFF and hence requesting the output device on the other end do something about it, until FFFD is incremented by the output device to acknowledge receipt
|
||||||
FFFF - 'data' - shared ram with output device; z80 writes the data to be sent to output device here
|
FFFF - 'data' - shared ram with output device; z80 writes the data to be sent to output device here
|
||||||
One i/o port is used:
|
One i/o port is used:
|
||||||
0001 - bit 0 controls whether interrupt timer is enabled (1) or not (0), this is a holdover from a project of kevtris' and can be ignored.
|
0001 - bit 0 controls whether interrupt timer is enabled (1) or not (0), this is a holdover from a project of kevtris' and can be ignored.
|
||||||
|
@ -29,7 +29,7 @@
|
|||||||
#define MAC_539X_2_TAG "539x_2"
|
#define MAC_539X_2_TAG "539x_2"
|
||||||
#define MACKBD_TAG "mackbd"
|
#define MACKBD_TAG "mackbd"
|
||||||
|
|
||||||
// uncomment to run i8021 keyboard in orignal Mac/512(e)/Plus
|
// uncomment to run i8021 keyboard in original Mac/512(e)/Plus
|
||||||
//#define MAC_USE_EMULATED_KBD (1)
|
//#define MAC_USE_EMULATED_KBD (1)
|
||||||
|
|
||||||
// model helpers
|
// model helpers
|
||||||
|
@ -25,9 +25,9 @@ this is set to toggle at 1Hz, this seems to be good enough to trigger the
|
|||||||
cartline, but is so slow in real terms that it should have very little
|
cartline, but is so slow in real terms that it should have very little
|
||||||
impact on the emulation speed.
|
impact on the emulation speed.
|
||||||
|
|
||||||
Re-factored the code common to all machines, and seperated the code different,
|
Re-factored the code common to all machines, and separated the code different,
|
||||||
into callbacks/functions unique to the machines, in preperation for splitting
|
into callbacks/functions unique to the machines, in preperation for splitting
|
||||||
the code for individual machine types into seperate files, I have preposed, that
|
the code for individual machine types into separate files, I have preposed, that
|
||||||
the CoCo 1/2 should stay in coco.c, and that the coco3 and dragon specifc code
|
the CoCo 1/2 should stay in coco.c, and that the coco3 and dragon specifc code
|
||||||
should go into coco3.c and dragon.c which should (hopefully) make the code
|
should go into coco3.c and dragon.c which should (hopefully) make the code
|
||||||
easier to manage.
|
easier to manage.
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
Ensoniq Vacuum Flourescent Displays (VFDs)
|
Ensoniq Vacuum Fluorescent Displays (VFDs)
|
||||||
Emulation by R. Belmont
|
Emulation by R. Belmont
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -805,7 +805,7 @@ DIRECT_UPDATE_HANDLER (lisa_OPbaseoverride)
|
|||||||
{
|
{
|
||||||
int seg_offset = address & 0x01ffff;
|
int seg_offset = address & 0x01ffff;
|
||||||
|
|
||||||
/* add revelant origin -> address */
|
/* add relevant origin -> address */
|
||||||
offs_t mapped_address = (m_mmu_regs[the_seg][segment].sorg + seg_offset) & 0x1fffff;
|
offs_t mapped_address = (m_mmu_regs[the_seg][segment].sorg + seg_offset) & 0x1fffff;
|
||||||
|
|
||||||
switch ((mmu_entry_t)m_mmu_regs[the_seg][segment].type)
|
switch ((mmu_entry_t)m_mmu_regs[the_seg][segment].type)
|
||||||
@ -1331,7 +1331,7 @@ READ16_MEMBER(lisa_state::lisa_r)
|
|||||||
/* offset in segment */
|
/* offset in segment */
|
||||||
int seg_offset = (offset & 0x00ffff) << 1;
|
int seg_offset = (offset & 0x00ffff) << 1;
|
||||||
|
|
||||||
/* add revelant origin -> address */
|
/* add relevant origin -> address */
|
||||||
offs_t address = (m_mmu_regs[the_seg][segment].sorg + seg_offset) & 0x1fffff;
|
offs_t address = (m_mmu_regs[the_seg][segment].sorg + seg_offset) & 0x1fffff;
|
||||||
|
|
||||||
/*logerror("read, logical address%lX\n", offset);
|
/*logerror("read, logical address%lX\n", offset);
|
||||||
@ -1537,7 +1537,7 @@ WRITE16_MEMBER(lisa_state::lisa_w)
|
|||||||
/* offset in segment */
|
/* offset in segment */
|
||||||
int seg_offset = (offset & 0x00ffff) << 1;
|
int seg_offset = (offset & 0x00ffff) << 1;
|
||||||
|
|
||||||
/* add revelant origin -> address */
|
/* add relevant origin -> address */
|
||||||
offs_t address = (m_mmu_regs[the_seg][segment].sorg + seg_offset) & 0x1fffff;
|
offs_t address = (m_mmu_regs[the_seg][segment].sorg + seg_offset) & 0x1fffff;
|
||||||
|
|
||||||
switch (m_mmu_regs[the_seg][segment].type)
|
switch (m_mmu_regs[the_seg][segment].type)
|
||||||
|
@ -525,7 +525,7 @@ WRITE8_MEMBER( swtpc09_state::piaide_b_w )
|
|||||||
/* DAT ram write handler (Dynamic Address Translator) */
|
/* DAT ram write handler (Dynamic Address Translator) */
|
||||||
/* This creates the address map when a page is mapped in */
|
/* This creates the address map when a page is mapped in */
|
||||||
/* memory map is created based on system_type flag */
|
/* memory map is created based on system_type flag */
|
||||||
/* this is accomodate the different cards installed */
|
/* this is accommodate the different cards installed */
|
||||||
|
|
||||||
WRITE8_MEMBER(swtpc09_state::dat_w)
|
WRITE8_MEMBER(swtpc09_state::dat_w)
|
||||||
{
|
{
|
||||||
|
@ -154,7 +154,7 @@ void ti85_state::update_ti83p_memory ()
|
|||||||
{
|
{
|
||||||
//address_space &space = m_maincpu->space(AS_PROGRAM);
|
//address_space &space = m_maincpu->space(AS_PROGRAM);
|
||||||
|
|
||||||
m_membank1->set_bank(m_booting ? 0x1f : 0); //Always flash page 0, well allmost
|
m_membank1->set_bank(m_booting ? 0x1f : 0); //Always flash page 0, well almost
|
||||||
|
|
||||||
if (m_ti83p_port4 & 1)
|
if (m_ti83p_port4 & 1)
|
||||||
{
|
{
|
||||||
|
@ -321,7 +321,7 @@ machine_config_constructor single_conn_device::device_mconfig_additions() const
|
|||||||
The multi-cartridge extender
|
The multi-cartridge extender
|
||||||
|
|
||||||
This is a somewhat mythical device which was never available for the normal
|
This is a somewhat mythical device which was never available for the normal
|
||||||
customer, but there are reports of the existance of such a device
|
customer, but there are reports of the existence of such a device
|
||||||
in development labs or demonstrations.
|
in development labs or demonstrations.
|
||||||
|
|
||||||
The interesting thing about this is that the OS of the console
|
The interesting thing about this is that the OS of the console
|
||||||
|
@ -108,7 +108,7 @@ struct hp48_card
|
|||||||
|
|
||||||
struct hp48_partition
|
struct hp48_partition
|
||||||
{
|
{
|
||||||
/* pointer to the begining of the partition inside the hp48_card */
|
/* pointer to the beginning of the partition inside the hp48_card */
|
||||||
UINT8* data;
|
UINT8* data;
|
||||||
|
|
||||||
/* size, in bytes (128 KB or less) */
|
/* size, in bytes (128 KB or less) */
|
||||||
|
@ -496,7 +496,7 @@ struct dsk_subdir
|
|||||||
/*
|
/*
|
||||||
DSK VIB record
|
DSK VIB record
|
||||||
|
|
||||||
Most fields in this record are only revelant to level 2 routines, but level
|
Most fields in this record are only relevant to level 2 routines, but level
|
||||||
1 routines need the disk geometry information extracted from the VIB.
|
1 routines need the disk geometry information extracted from the VIB.
|
||||||
*/
|
*/
|
||||||
struct dsk_vib
|
struct dsk_vib
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
emulated). The ASR is attached to the computer with a serial interface.
|
emulated). The ASR is attached to the computer with a serial interface.
|
||||||
|
|
||||||
References:
|
References:
|
||||||
945401-9701 Model 990/4 Computer System Field Maintainance Manual p. C-1,
|
945401-9701 Model 990/4 Computer System Field Maintenance Manual p. C-1,
|
||||||
945250-9701 990 Computer Family Systems Handbook pp. 5-9 through 5-16,
|
945250-9701 990 Computer Family Systems Handbook pp. 5-9 through 5-16,
|
||||||
0943442-9701 Model 990 Computer Reference Manual Preliminary pp. 3-13
|
0943442-9701 Model 990 Computer Reference Manual Preliminary pp. 3-13
|
||||||
through 3-21 and 3-39 through 3-44.
|
through 3-21 and 3-39 through 3-44.
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
video system.
|
video system.
|
||||||
|
|
||||||
On the real machine, the Video chip has a block of 64K of memory which is
|
On the real machine, the Video chip has a block of 64K of memory which is
|
||||||
completely seperate from the main 80186 memory.
|
completely separate from the main 80186 memory.
|
||||||
|
|
||||||
The main CPU write to the video chip via a series of registers in the
|
The main CPU write to the video chip via a series of registers in the
|
||||||
0x0000 to 0x002F reigon, the video chip then manages all video memory
|
0x0000 to 0x002F reigon, the video chip then manages all video memory
|
||||||
|
@ -2930,12 +2930,12 @@ int CLIB_DECL main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
catch (chd_error &err)
|
catch (chd_error &err)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "CHD error occured (main): %s\n", chd_file::error_string(err));
|
fprintf(stderr, "CHD error occurred (main): %s\n", chd_file::error_string(err));
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
catch (fatal_error &err)
|
catch (fatal_error &err)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "Fatal error occured: %d\n", err.error());
|
fprintf(stderr, "Fatal error occurred: %d\n", err.error());
|
||||||
return err.error();
|
return err.error();
|
||||||
}
|
}
|
||||||
catch (std::exception& ex)
|
catch (std::exception& ex)
|
||||||
|
@ -127,8 +127,8 @@
|
|||||||
#define OUTPUT_COMBINATORIAL 0x00000004
|
#define OUTPUT_COMBINATORIAL 0x00000004
|
||||||
#define OUTPUT_REGISTERED 0x00000008
|
#define OUTPUT_REGISTERED 0x00000008
|
||||||
#define OUTPUT_FEEDBACK_OUTPUT 0x00000010 /* Feedback state depends on output enable */
|
#define OUTPUT_FEEDBACK_OUTPUT 0x00000010 /* Feedback state depends on output enable */
|
||||||
#define OUTPUT_FEEDBACK_COMBINATORIAL 0x00000020 /* Feedback state independant of output enable */
|
#define OUTPUT_FEEDBACK_COMBINATORIAL 0x00000020 /* Feedback state independent of output enable */
|
||||||
#define OUTPUT_FEEDBACK_REGISTERED 0x00000040 /* Feedback state independant of output enable */
|
#define OUTPUT_FEEDBACK_REGISTERED 0x00000040 /* Feedback state independent of output enable */
|
||||||
#define OUTPUT_FEEDBACK_NONE 0x00000080 /* Feedback not available */
|
#define OUTPUT_FEEDBACK_NONE 0x00000080 /* Feedback not available */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -55,7 +55,7 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
catch(...)
|
catch(...)
|
||||||
{
|
{
|
||||||
printf("Exception occured");
|
printf("Exception occurred");
|
||||||
return 1000;
|
return 1000;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user