コード例 #1
0
ファイル: devices.c プロジェクト: 8l/FUZIX
/* This is called with interrupts off. */
void platform_interrupt(void)
{
	switch (last_interrupt)
	{
		case INTERRUPT_WDT:
			timer_interrupt();
			break;

		case INTERRUPT_USCI_A0:
			tty_interrupt();
			break;
	}
}
コード例 #2
0
ファイル: main.c プロジェクト: jameszhan/FUZIX
/* We assign these to dummy to deal with an sdcc bug (should be fixed in next
   SDCC) */
void platform_interrupt(void)
{
  uint8_t dummy;
  uint8_t irq = *((volatile uint8_t *)0x37E0);

  tty_interrupt();
  kbd_interrupt();

  if (irq & 0x40)
    dummy = sdcc_bug_2753(*((volatile uint8_t *)0x37EC));
  if (irq & 0x80) {	/* FIXME??? */
    timer_interrupt();
    dummy = sdcc_bug_2753(*((volatile uint8_t *)0x37E0));	/* Ack the timer */
  }
}
コード例 #3
0
ファイル: devtty.c プロジェクト: EtchedPixels/FUZIX
void tty_poll(void)
{
	uint8_t reg;

	/* Do the VG port */
	if (ports & 0x10) {
		reg = vg_tr1865_wrst;
		if (reg & 0x01) {
			reg = vg_tr1865_ctrd;
			tty_inproc(3, reg);
		}
		if ((trs_flow & 0x10) && fullq(&ttyinq[3]))
			vg_tr1865_ctrd = vg_tr1865_ctrd_save & ~1;
	}
	/* Do the Model I/III port */
	if (ports & 0x08)
		tty_interrupt();
}
コード例 #4
0
ファイル: devtty.c プロジェクト: davidgiven/FUZIX
void platform_interrupt(void)
{
	timer_interrupt();
	tty_interrupt();
}