Implemented serial scratch register.
Serial IER register only 4 bits wide.
This commit is contained in:
parent
de6369b82f
commit
fd2fc0e02b
2 changed files with 8 additions and 1 deletions
|
|
@ -110,7 +110,7 @@ void serial_write(uint16_t addr, uint8_t val, void *p)
|
||||||
serial->dlab2 = val;
|
serial->dlab2 = val;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
serial->ier = val;
|
serial->ier = val & 0xf;
|
||||||
serial_update_ints(serial);
|
serial_update_ints(serial);
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
|
|
@ -160,6 +160,9 @@ void serial_write(uint16_t addr, uint8_t val, void *p)
|
||||||
serial->int_status |= SERIAL_INT_MSR;
|
serial->int_status |= SERIAL_INT_MSR;
|
||||||
serial_update_ints(serial);
|
serial_update_ints(serial);
|
||||||
break;
|
break;
|
||||||
|
case 7:
|
||||||
|
serial->scratch = val;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -221,6 +224,9 @@ uint8_t serial_read(uint16_t addr, void *p)
|
||||||
serial->int_status &= ~SERIAL_INT_MSR;
|
serial->int_status &= ~SERIAL_INT_MSR;
|
||||||
serial_update_ints(serial);
|
serial_update_ints(serial);
|
||||||
break;
|
break;
|
||||||
|
case 7:
|
||||||
|
temp = serial->scratch;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
// pclog("%02X\n",temp);
|
// pclog("%02X\n",temp);
|
||||||
return temp;
|
return temp;
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@ typedef struct
|
||||||
uint8_t dlab1,dlab2;
|
uint8_t dlab1,dlab2;
|
||||||
uint8_t dat;
|
uint8_t dat;
|
||||||
uint8_t int_status;
|
uint8_t int_status;
|
||||||
|
uint8_t scratch;
|
||||||
|
|
||||||
int irq;
|
int irq;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue