 }
 
 void pcd8544_newline(void) {
-    while (current_col != 0) {
-        for (uint8_t i = 0; i != 6; i++)
-            SPI.transfer(0x00);
-        inc_col();
-    }
+    uint8_t n = PCD8544_WIDTH - current_x;
+    for (uint8_t i = 0; i != n; i++)
+        SPI.transfer(0x00);
+    inc_x(n);
 }

    pcd8544_set_is_data();
}

void pcd8544_place_cursor(uint8_t column, uint8_t line) {
    if (line >= PCD8544_LINES)
        line %= PCD8544_LINES;
    if (column >= PCD8544_COLS)
        column %= PCD8544_COLS;
    // Yes, x is pixel addressed, y is line addressed This makes sense because
    // we write 8 pixels at a time.
    current_col = column;
    current_line = line;
    pcd8544_set_is_command();
    SPI.transfer(PCD8544_SET_X_ADDRESS | (current_col * 6));
    SPI.transfer(PCD8544_SET_LINE_ADDRESS | current_line);
    pcd8544_set_is_data();
}

static inline void write_bytes(const uint8_t * data, size_t count) {

                write_bytes(numbers_24x16[line] + (16 * ((*(clock + i)) - '0')), 16);
                write_byte(0x00, 1);
            }
        write_byte(0x00, 4);
    }
}

