| Zeile 277: | Zeile 277: | ||
* @return Gelesener Wert | * @return Gelesener Wert | ||
*/ | */ | ||
| − | + | uint8_t cmos_read(uint8_t offset) { | |
| − | outb(CMOS_PORT_ADDRESS,offset&0x7F); | + | uint8_t tmp = inb(CMOS_PORT_ADDRESS); |
| + | outb(CMOS_PORT_ADDRESS, (tmp & 0x80) | (offset & 0x7F)); | ||
return inb(CMOS_PORT_DATA); | return inb(CMOS_PORT_DATA); | ||
} | } | ||
| Zeile 287: | Zeile 288: | ||
* @param val Zu schreibender Wert | * @param val Zu schreibender Wert | ||
*/ | */ | ||
| − | void cmos_write( | + | void cmos_write(uint8_t offset,uint8_t val) { |
| − | outb(CMOS_PORT_ADDRESS,offset&0x7F); | + | uint8_t tmp = inb(CMOS_PORT_ADDRESS); |
| + | outb(CMOS_PORT_ADDRESS, (tmp & 0x80) | (offset & 0x7F)); | ||
outb(CMOS_PORT_DATA,val); | outb(CMOS_PORT_DATA,val); | ||
} | } | ||