public void receiveFrame(USART.Frame frame) {
        int data = frame.value;

        if (mode) { // Instruction mode
            switch (data) {
                case CLEAR_SCREEN:
                    clearScreen();
                    break;
                case SCROLL_LEFT:
                    scrollLeft();
                    break;
                case SCROLL_RIGHT:
                    scrollRight();
                    break;
                case HOME:
                    cursor = 0;
                    break;
                default:
                    if (data >= 192) {
                        cursor = data + 40 - 192;
                    } else if (data >= 128) {
                        cursor = data - 128;
                    }
                    break;
            }
            mode = MODE_DATA;
        } else if (data == (byte) 254) {
            mode = MODE_INSTRUCTION;
        } else {
            setCursor(frame.value);
            cursor = (cursor + 1) % 80;

        }
        // TODO: display actual LCD contents
    }