// Path: src/main/java/eu/rekawek/coffeegb/cpu/BitUtils.java
// public static void checkByteArgument(String argumentName, int argument) {
//     checkArgument(argument >= 0 && argument <= 0xff, "Argument {} should be a byte", argumentName);
// }
// 
// Path: src/main/java/eu/rekawek/coffeegb/cpu/BitUtils.java
// public static void checkWordArgument(String argumentName, int argument) {
//     checkArgument(argument >= 0 && argument <= 0xffff, "Argument {} should be a word", argumentName);
// }
// 
// Path: src/main/java/eu/rekawek/coffeegb/cpu/BitUtils.java
// public static int getLSB(int word) {
//     checkWordArgument("word", word);
//     return word & 0xff;
// }
// 
// Path: src/main/java/eu/rekawek/coffeegb/cpu/BitUtils.java
// public static int getMSB(int word) {
//     checkWordArgument("word", word);
//     return word >> 8;
// }


import static eu.rekawek.coffeegb.cpu.BitUtils.checkByteArgument;
import static eu.rekawek.coffeegb.cpu.BitUtils.checkWordArgument;
import static eu.rekawek.coffeegb.cpu.BitUtils.getLSB;
import static eu.rekawek.coffeegb.cpu.BitUtils.getMSB;

    public void setD(int d) {
        checkByteArgument("d", d);
        this.d = d;
    }

    public void setE(int e) {
        checkByteArgument("e", e);
        this.e = e;
    }

    public void setH(int h) {
        checkByteArgument("h", h);
        this.h = h;
    }

    public void setL(int l) {
        checkByteArgument("l", l);
        this.l = l;
    }

    public void setAF(int af) {
        checkWordArgument("af", af);
        a = getMSB(af);
        flags.setFlagsByte(getLSB(af));
    }

    public void setBC(int bc) {
        checkWordArgument("bc", bc);
        b = getMSB(bc);
// Path: src/main/java/eu/rekawek/coffeegb/cpu/BitUtils.java
// public static void checkByteArgument(String argumentName, int argument) {
//     checkArgument(argument >= 0 && argument <= 0xff, "Argument {} should be a byte", argumentName);
// }
// 
// Path: src/main/java/eu/rekawek/coffeegb/cpu/BitUtils.java
// public static void checkWordArgument(String argumentName, int argument) {
//     checkArgument(argument >= 0 && argument <= 0xffff, "Argument {} should be a word", argumentName);
// }
// 
// Path: src/main/java/eu/rekawek/coffeegb/cpu/BitUtils.java
// public static int getLSB(int word) {
//     checkWordArgument("word", word);
//     return word & 0xff;
// }
// 
// Path: src/main/java/eu/rekawek/coffeegb/cpu/BitUtils.java
// public static int getMSB(int word) {
//     checkWordArgument("word", word);
//     return word >> 8;
// }


// Path: src/main/java/eu/rekawek/coffeegb/cpu/Registers.java
import static eu.rekawek.coffeegb.cpu.BitUtils.checkByteArgument;
import static eu.rekawek.coffeegb.cpu.BitUtils.checkWordArgument;
import static eu.rekawek.coffeegb.cpu.BitUtils.getLSB;
import static eu.rekawek.coffeegb.cpu.BitUtils.getMSB;


    public void setD(int d) {
        checkByteArgument("d", d);
        this.d = d;
    }

    public void setE(int e) {
        checkByteArgument("e", e);
        this.e = e;
    }

    public void setH(int h) {
        checkByteArgument("h", h);
        this.h = h;
    }

    public void setL(int l) {
        checkByteArgument("l", l);
        this.l = l;
    }

    public void setAF(int af) {
        checkWordArgument("af", af);
        a = getMSB(af);
        flags.setFlagsByte(getLSB(af));
    }

    public void setBC(int bc) {
        checkWordArgument("bc", bc);
        b = getMSB(bc);
        c = getLSB(bc);