/* 250..253 write only 00 be 00 10 252 write 0 b0000 memory activ 252 write 0x10 b8000 memory activ jim 04: 0:4.77 0x40:7.16 pio 63: 11,19 4.77 51,59 7.16 63 bit 6,7 clock select 254 bit 6,7 clock select 250 bit 0: mouse on bit 1: joystick on 254..257 r/w memory ? JIM asic? ram behaviour */ extern WRITE8_HANDLER ( europc_jim_w ) { switch (offset) { case 2: if (!(data&0x80)) { switch (data) { case 0x1f: case 0x0b: europc_jim.mode=AGA_MONO; break; case 0xe: /*80 columns? */ case 0xd: /*40 columns? */ case 0x18: case 0x1a: europc_jim.mode=AGA_COLOR; break; default: europc_jim.mode=AGA_OFF; break; } } /* mode= data&0x10?AGA_COLOR:AGA_MONO; */ /* mode= data&0x10?AGA_COLOR:AGA_OFF; */ pc_aga_set_mode(europc_jim.mode); if (data&0x80) europc_jim.state=0; break; case 4: switch(data&0xc0) { case 0x00: cpunum_set_clockscale(0, 1.0/2);break; case 0x40: cpunum_set_clockscale(0, 3.0/4);break; default: cpunum_set_clockscale(0, 1);break; } break; case 0xa: europc_rtc_w(0, data); return; } logerror("jim write %.2x %.2x\n",offset,data); europc_jim.data[offset]=data; }
void primo_common_machine_init (void) { if (readinputport(6)) primo_port_FD = 0x00; primo_update_memory(); cpunum_set_clockscale(0, readinputport(5) ? 1.5 : 1.0); }
static void pc_turbo_callback(int param) { struct pc_turbo_info *ti; int val; ti = (struct pc_turbo_info *) param; val = readinputport(ti->port) & ti->mask; if (val != ti->cur_val) { ti->cur_val = val; cpunum_set_clockscale(ti->cpunum, val ? ti->on_speed : ti->off_speed); } }