Пример #1
0
int acia_snapshot_read_module(struct snapshot_s *p)
{
    if (_acia_snapshot_read_module(p) < 0) {
        _acia_enabled = 0;
        return -1;
    }
    /* FIXME: Why do we need to do so???  */
    if (acia_enable() == 0) {
        acia_reset();          /* Clear interrupts.  */
        _acia_enabled = 1;
    }
    return 0;
}
Пример #2
0
static void acia_write_byte(LONG addr, BYTE data)
{
  CLOCK("Wait states: 6");
  cpu_add_extra_cycles(6);

  switch(addr) {
  case 0xfffc00:
    DEBUG("Control %02x", data);
    if(data == 3) {
      DEBUG("Reset");
      acia_reset();
    } else if((data & 0x7C) != 0x14)
      DEBUG("Unsupported configuration");
    acia_control = data;
    break;
  case 0xfffc02:
    TRACE("Write %02x", data);
    ikbd_write_byte(data);
    break;
  }
}
Пример #3
0
/* PLUS4-specific reset sequence.  */
void machine_specific_reset(void)
{
    serial_traps_reset();

    acia_reset();
    rs232drv_reset();

    printer_reset();

    plus4tcbm1_reset();
    plus4tcbm2_reset();

    ted_reset();

    sid_reset();

    cs256k_reset();
    h256k_reset();

    drive_reset();
    datasette_reset();
}
Пример #4
0
void acia_write(uint16_t addr, uint8_t val)
{
        if (addr & 1)
        {
		putchar(val);
		// acia_sr &= 0xFD;
                // acia_updateint();
        }
        else if (val != acia_cr)
	{
		if (!(val & 0x40)) // interupts disabled as serial TX buffer empties.
			fflush(stdout);
	        acia_cr = val;
	        if (val == 3)
              		acia_reset();
	        switch (val & 3)
                {
	                case 1: acia_tapespeed=0; break;
	                case 2: acia_tapespeed=1; break;
	        }
        }
}
Пример #5
0
void main_reset()
{
        m6502_reset();
        crtc_reset();
        video_reset();
        sysvia_reset();
        uservia_reset();
        serial_reset();
        acia_reset(&sysacia);
        wd1770_reset();
        i8271_reset();
        scsi_reset();
        vdfs_reset();
        sid_reset();
        music4000_reset();
        music5000_reset();
        sn_init();
        if (curtube != -1) tubes[curtube].reset();
        else               tube_exec = NULL;
        tube_reset();

        memset(ram, 0, 64 * 1024);
}