static unsigned int getCursorOffset() { unsigned int offset = 0; outPortB(REG_SCREEN_CTRL, REG_CURSOR_HIGH); offset = inPortB(REG_SCREEN_DATA) << 8; outPortB(REG_SCREEN_CTRL, REG_CURSOR_LOW); offset += inPortB(REG_SCREEN_DATA); /* return offset * sizeof character cell (2) */ return offset * 2; }
uint8_t Intel8255::readPortB(void) { IBF_B = true; latchOutPortB = (latchOutPortB & portBWriteMask ) + ( inPortB() & (~portBWriteMask)); updateINTR_B(); IBF_B = false; checkINTR_B(); return latchOutPortB; }