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;
|
||||
return;
|
||||
}
|
||||
serial->ier = val;
|
||||
serial->ier = val & 0xf;
|
||||
serial_update_ints(serial);
|
||||
break;
|
||||
case 3:
|
||||
|
|
@ -160,6 +160,9 @@ void serial_write(uint16_t addr, uint8_t val, void *p)
|
|||
serial->int_status |= SERIAL_INT_MSR;
|
||||
serial_update_ints(serial);
|
||||
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_update_ints(serial);
|
||||
break;
|
||||
case 7:
|
||||
temp = serial->scratch;
|
||||
break;
|
||||
}
|
||||
// pclog("%02X\n",temp);
|
||||
return temp;
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ typedef struct
|
|||
uint8_t dlab1,dlab2;
|
||||
uint8_t dat;
|
||||
uint8_t int_status;
|
||||
uint8_t scratch;
|
||||
|
||||
int irq;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue