41
41
static BYTE parallel_cable_cpu_value = 0xff;
42
static BYTE parallel_cable_drive0_value = 0xff;
43
static BYTE parallel_cable_drive1_value = 0xff;
46
void parallel_cable_drive0_write(BYTE data, int handshake)
42
static BYTE parallel_cable_drive_value[DRIVE_NUM] = { 0xff, 0xff, 0xff, 0xff };
45
static BYTE parallel_cable_value(void)
49
ciacore_set_flag(machine_context.cia2);
50
parallel_cable_drive0_value = data;
50
val = parallel_cable_cpu_value;
52
for (dnr = 0; dnr < DRIVE_NUM; dnr++) {
53
if (drive_context[dnr]->drive->enable
54
&& drive_context[dnr]->drive->parallel_cable_enabled)
55
val &= parallel_cable_drive_value[dnr];
53
void parallel_cable_drive1_write(BYTE data, int handshake)
61
void parallel_cable_drive_write(BYTE data, int handshake, unsigned int dnr)
56
64
ciacore_set_flag(machine_context.cia2);
57
parallel_cable_drive1_value = data;
66
parallel_cable_drive_value[dnr] = data;
60
69
BYTE parallel_cable_drive_read(int handshake)
63
72
ciacore_set_flag(machine_context.cia2);
64
return parallel_cable_cpu_value & parallel_cable_drive0_value
65
& parallel_cable_drive1_value;
74
return parallel_cable_value();
68
77
void parallel_cable_cpu_execute(void)
79
88
void parallel_cable_cpu_write(BYTE data)
81
if (!(drive_context[0]->drive->enable)
82
&& !(drive_context[1]->drive->enable))
85
90
parallel_cable_cpu_execute();
87
92
parallel_cable_cpu_value = data;
90
95
BYTE parallel_cable_cpu_read(void)
92
if (!(drive_context[0]->drive->enable)
93
&& !(drive_context[1]->drive->enable))
96
97
parallel_cable_cpu_execute();
98
return parallel_cable_cpu_value & parallel_cable_drive0_value
99
& parallel_cable_drive1_value;
99
return parallel_cable_value();
102
102
void parallel_cable_cpu_pulse(void)
104
104
unsigned int dnr;
106
if (!(drive_context[0]->drive->enable)
107
&& !(drive_context[1]->drive->enable))
110
106
parallel_cable_cpu_execute();
112
108
for (dnr = 0; dnr < DRIVE_NUM; dnr++) {