int x, y, c, sx, sy, cx, cy, zx, zy, xx, yy, n, sn;
openWin(512, 384);
for (y = 0; y < 384; y++) {
    for (x = 0; x < 512; x++) {
        sn = 0;
        for (sx = 0; sx < 4; sx++) {
            cx = (x * 4 + sx) * 56 + 4673536;
            for (sy = 0; sy < 4; sy++) {
                cy = (y * 4 + sy) * -56 - 124928;
                zx = cx; zy = cy;
                for (n = 1; n < 447; n++) {
                    Mul64Shr_RRRI(dR(xx), dR(zx), dR(zx), 24); // xx = (zx * zx) >> 24;
                    Mul64Shr_RRRI(dR(yy), dR(zy), dR(zy), 24);
                    if (xx + yy > 0x4000000) goto sk0;
                    Mul64Shr_RRRI(dR(zy), dR(zy), dR(zx), 23);
                    zx = xx + cx - yy;
                    zy = zy + cy;
                }
sk0:
                sn = sn + n;
            }
        }
        sn = sn >> 4;
        c = sn << 8;
        if (sn < 256) goto sk1;
        c = 0;
        if (sn >= 447) goto sk1;
        c = sn + 0xfe01;
sk1:
        setPix(x, y, c << 8);
    }
}
waitInf();
