mirror of
https://github.com/holub/mame
synced 2025-06-06 21:03:47 +03:00
(MESS) PDP1 : Fixed loading of paper tape, Spacewar works again [Robbbert]
This commit is contained in:
parent
b119c704f6
commit
4e0f0f4877
@ -630,7 +630,6 @@ static CPU_EXECUTE( pdp1 )
|
||||
if (cpustate->ioh && cpustate->ios)
|
||||
{
|
||||
cpustate->ioh = 0;
|
||||
cpustate->ios = 0;
|
||||
}
|
||||
|
||||
|
||||
@ -645,6 +644,7 @@ static CPU_EXECUTE( pdp1 )
|
||||
if (cpustate->read_binary_word)
|
||||
(*cpustate->read_binary_word)(cpustate->device); /* data will be transferred to IO register */
|
||||
cpustate->rim_step = 1;
|
||||
cpustate->ios = 0;
|
||||
break;
|
||||
|
||||
case 1:
|
||||
@ -689,6 +689,7 @@ static CPU_EXECUTE( pdp1 )
|
||||
if (cpustate->read_binary_word)
|
||||
(*cpustate->read_binary_word)(cpustate->device); /* data will be transferred to IO register */
|
||||
cpustate->rim_step = 3;
|
||||
cpustate->ios = 0;
|
||||
break;
|
||||
|
||||
case 3:
|
||||
@ -921,7 +922,7 @@ static CPU_SET_INFO( pdp1 )
|
||||
case CPUINFO_INT_REGISTER + PDP1_EXD: EXD = (cpustate->extend_support && info->i) ? 1 : 0; break;
|
||||
case CPUINFO_INT_REGISTER + PDP1_IOC: if (LOG) logerror("pdp1_set_reg to ioc flip-flop ignored\n");/* no way!*/ break;
|
||||
case CPUINFO_INT_REGISTER + PDP1_IOH: if (LOG) logerror("pdp1_set_reg to ioh flip-flop ignored\n");/* no way!*/ break;
|
||||
case CPUINFO_INT_REGISTER + PDP1_IOS: if (LOG) logerror("pdp1_set_reg to ios flip-flop ignored\n");/* no way!*/ break;
|
||||
case CPUINFO_INT_REGISTER + PDP1_IOS: cpustate->ios = info->i ? 1 : 0; break;
|
||||
case CPUINFO_INT_REGISTER + PDP1_START_CLEAR: pulse_start_clear(cpustate); break;
|
||||
case CPUINFO_INT_REGISTER + PDP1_IO_COMPLETE: cpustate->ios = 1; break;
|
||||
}
|
||||
@ -1635,7 +1636,7 @@ static void execute_instruction(pdp1_state *cpustate)
|
||||
/* ioh should be cleared at the end of the instruction cycle, and ios at the
|
||||
start of next instruction cycle, but who cares? */
|
||||
cpustate->ioh = 0;
|
||||
cpustate->ios = 0;
|
||||
//cpustate->ios = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -42,6 +42,15 @@ For more documentation look at the source for the driver,
|
||||
and the cpu/pdp1/pdp1.c file (information about the whereabouts of information
|
||||
and the java source).
|
||||
|
||||
|
||||
To load and play a game:
|
||||
- Load a .rim file into the first tape reader
|
||||
- Hold down Left Control, and press Enter. Let go.
|
||||
- The lights will flash while the paper tape is being read.
|
||||
- At the end, the game will start.
|
||||
|
||||
|
||||
|
||||
*/
|
||||
|
||||
#include "emu.h"
|
||||
@ -924,7 +933,7 @@ TIMER_CALLBACK_MEMBER(pdp1_state::reader_callback)
|
||||
if (m_tape_reader.rcp)
|
||||
{
|
||||
m_maincpu->set_state_int(PDP1_IO, m_tape_reader.rb); /* transfer reader buffer to IO */
|
||||
pdp1_pulse_iot_done(m_maincpu);
|
||||
m_maincpu->set_state_int(PDP1_IOS,1);
|
||||
}
|
||||
else
|
||||
m_io_status |= io_st_ptr;
|
||||
@ -1076,7 +1085,7 @@ TIMER_CALLBACK_MEMBER(pdp1_state::puncher_callback)
|
||||
m_io_status |= io_st_ptp;
|
||||
if (nac)
|
||||
{
|
||||
pdp1_pulse_iot_done(m_maincpu);
|
||||
m_maincpu->set_state_int(PDP1_IOS,1);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1284,7 +1293,7 @@ TIMER_CALLBACK_MEMBER(pdp1_state::tyo_callback)
|
||||
m_io_status |= io_st_tyo;
|
||||
if (nac)
|
||||
{
|
||||
pdp1_pulse_iot_done(m_maincpu);
|
||||
m_maincpu->set_state_int(PDP1_IOS,1);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1402,7 +1411,7 @@ static void iot_tyi(device_t *device, int op2, int nac, int mb, int *io, int ac)
|
||||
*/
|
||||
TIMER_CALLBACK_MEMBER(pdp1_state::dpy_callback)
|
||||
{
|
||||
pdp1_pulse_iot_done(m_maincpu);
|
||||
m_maincpu->set_state_int(PDP1_IOS,1);
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user