static WRITE8_HANDLER( apple1_pia0_dsp_write_signal ) { /* PIA output CB2 is inverted to become the DA signal, used to signal a display write to the video hardware. */ /* DA is directly connected to PIA input PB7, so the processor can read bit 7 of port B to test whether the display has completed a write. */ pia_set_input_b(0, (!data) << 7); /* Once DA is asserted, the display will wait until it can perform the write, when the cursor position is about to be refreshed. Only then will it assert \RDA to signal readiness for another write. Thus the write delay depends on the cursor position and where the display is in the refresh cycle. */ if (!data) timer_set(apple1_vh_dsp_time_to_ready(), 0, apple1_dsp_ready_start); }
static WRITE8_DEVICE_HANDLER( apple1_pia0_dsp_write_signal ) { /* PIA output CB2 is inverted to become the DA signal, used to signal a display write to the video hardware. */ /* DA is directly connected to PIA input PB7, so the processor can read bit 7 of port B to test whether the display has completed a write. */ pia6821_device *pia = downcast<pia6821_device *>(device); pia->portb_w((!data) << 7); /* Once DA is asserted, the display will wait until it can perform the write, when the cursor position is about to be refreshed. Only then will it assert \RDA to signal readiness for another write. Thus the write delay depends on the cursor position and where the display is in the refresh cycle. */ if (!data) device->machine().scheduler().timer_set(apple1_vh_dsp_time_to_ready(device->machine()), FUNC(apple1_dsp_ready_start)); }