public void mapReader(int start, int end, NesBusReader reader) {
        int startPage = start >> ADDRESS_SHIFT;
        int endPage = end >> ADDRESS_SHIFT;
        int pagesToMap = endPage - startPage + 1;

        if (reader == null)
            reader = defaultReader;

        for (int page = 0; page < pagesToMap; page++) {
            this.reader[startPage + page] = reader;
        }
    }