public NesBus() {
        int pages = ADDRESS_SIZE >> ADDRESS_SHIFT;

        reader = new NesBusReader[pages];
        writer = new NesBusWriter[pages];

        for (int i = 0; i < pages; i++) {
            reader[i] = defaultReader;
            writer[i] = defaultWriter;
        }

        mapReader(0x0000, 0x1FFF, new RamReader(this));
        mapWriter(0x0000, 0x1FFF, new RamWriter(this));

        mapReader(0x8000, 0xFFFF, new PrgReader(this));
    }